docs: def check_crs(self, dataset):
          '''
          int crs; //.......................................................... RECOMMENDED - A container variable storing information about the grid_mapping. All the attributes within a grid_mapping variable are described in http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/cf-conventions.html#appendix-grid-mappings. For all the measurements based on WSG84, the default coordinate system used for GPS measurements, the values shown here should be used.
                  crs:grid_mapping_name = "latitude_longitude"; //............. RECOMMENDED
                  crs:epsg_code = "EPSG:4326" ; //............................. RECOMMENDED - European Petroleum Survey Group code for the grid mapping name.
                  crs:semi_major_axis = 6378137.0 ; //......................... RECOMMENDED
                  crs:inverse_flattening = 298.257223563 ; //.................. RECOMMENDED
          '''
          grid_mapping = util.get_crs_variable(dataset)
          if grid_mapping is None:
              return Result(
                  BaseCheck.MEDIUM,
                  False,
                  'Recommended variable for grid mapping should exist',
                  ['A variable to describe the grid mapping should exist']
              )
          crs_variable = dataset.variables[grid_mapping]
          test_ctx = TestCtx(BaseCheck.MEDIUM, 'Recommended attributes for grid mapping variable {}'.format(crs_variable.name))
          test_ctx.assert_true(crs_variable is not None, 'A container variable storing the grid mapping should exist for this dataset.')
  
          epsg_code = getattr(crs_variable, 'epsg_code', '')
          semi_major_axis = getattr(crs_variable, 'semi_major_axis', None)
          inverse_flattening = getattr(crs_variable, 'inverse_flattening', None)
  
          test_ctx.assert_true(epsg_code != '',
                               'Attribute epsg_code should exist and not be empty: {}'.format(epsg_code))
          test_ctx.assert_true(semi_major_axis is not None,
                               'Attribute semi_major_axis should exist and not be empty: {}'.format(epsg_code))
          test_ctx.assert_true(inverse_flattening is not None,
                               'Attribute inverse_flattening should exist and not be empty: {}'.format(epsg_code))
          return test_ctx.to_result()