docs: def check_feature_type(self, ds):
          """
          Check the global attribute featureType for valid CF featureTypes
  
          9.4 A global attribute, featureType, is required for all Discrete Geometry representations except the orthogonal
          multidimensional array representation, for which it is highly recommended.
  
          The value assigned to the featureType attribute is case-insensitive.
  
          :param netCDF4.Dataset ds: An open netCDF dataset
          :rtype: compliance_checker.base.Result
          """
          # Due to case insensitive requirement, we list the possible featuretypes
          # in lower case and check using the .lower() method
          feature_list = ['point', 'timeseries', 'trajectory', 'profile', 'timeseriesprofile', 'trajectoryprofile']
  
          feature_type = getattr(ds, 'featureType', None)
          valid_feature_type = TestCtx(BaseCheck.HIGH, '§9.1 Dataset contains a valid featureType')
          valid_feature_type.assert_true(feature_type is None or feature_type.lower() in feature_list,
                                         "{} is not a valid CF featureType. It must be one of {}"
                                         "".format(feature_type, ', '.join(feature_list)))
          return valid_feature_type.to_result()