docs: def check_base_required_attributes(self, dataset):
          '''
          Check the global required and highly recommended attributes for 1.1 templates. These go an extra step besides
          just checking that they exist.
  
          :param netCDF4.Dataset dataset: An open netCDF dataset
  
  
          :Conventions = "CF-1.6" ; //......................................... REQUIRED    - Always try to use latest value. (CF)
          :Metadata_Conventions = "Unidata Dataset Discovery v1.0" ; //........ REQUIRED    - Do not change. (ACDD)
          :featureType = "timeSeries" ; //..................................... REQUIRED - CF attribute for identifying the featureType.
          :cdm_data_type = "Station" ; //...................................... REQUIRED (ACDD)
          :nodc_template_version = "NODC_NetCDF_TimeSeries_Orthogonal_Template_v1.1" ; //....... REQUIRED (NODC)
          :standard_name_vocabulary = "NetCDF Climate and Forecast (CF) Metadata Convention Standard Name Table "X"" ; //........ REQUIRED    - If using CF standard name attribute for variables. "X" denotes the table number  (ACDD)
          '''
          test_ctx = TestCtx(BaseCheck.HIGH, 'Required global attributes')
  
          conventions = getattr(dataset, 'Conventions', '')
          metadata_conventions = getattr(dataset, 'Metadata_Conventions', '')
          feature_type = getattr(dataset, 'featureType', '')
          cdm_data_type = getattr(dataset, 'cdm_data_type', '')
          standard_name_vocab = getattr(dataset, 'standard_name_vocabulary', '')
  
          accepted_conventions = 'CF-1.6'
  
          test_ctx.assert_true(conventions == accepted_conventions,
                               'Conventions attribute is missing or is not equal to CF-1.6: {}'.format(conventions))
          test_ctx.assert_true(metadata_conventions == 'Unidata Dataset Discovery v1.0',
                               "Metadata_Conventions attribute is required to be 'Unidata Dataset Discovery v1.0': {}".format(metadata_conventions))
          test_ctx.assert_true(feature_type in ['point', 'timeSeries', 'trajectory', 'profile', 'timeSeriesProfile', 'trajectoryProfile'],
                               'Feature type must be one of point, timeSeries, trajectory, profile, timeSeriesProfile, trajectoryProfile: {}'.format(feature_type))
          test_ctx.assert_true(cdm_data_type.lower() in ['grid', 'image', 'point', 'radial', 'station', 'swath', 'trajectory'],
                               'cdm_data_type must be one of Grid, Image, Point, Radial, Station, Swath, Trajectory: {}'.format(cdm_data_type))
  
          regex = re.compile(r'[sS]tandard [nN]ame [tT]able')
          test_ctx.assert_true(regex.search(standard_name_vocab),
                               "standard_name_vocabulary doesn't contain 'Standard Name Table': {}".format(standard_name_vocab))
  
          return test_ctx.to_result()