def check_recommended_global_attributes(self, dataset):
recommended_ctx = TestCtx(BaseCheck.MEDIUM, '<STR_LIT>')<EOL>sea_names = [sn.lower() for sn in util.get_sea_names()]<EOL>sea_name = getattr(dataset, '<STR_LIT>', '<STR_LIT>')<EOL>sea_name = sea_name.replace('<STR_LIT:U+002CU+0020>', '<STR_LIT:U+002C>')<EOL>sea_name = sea_name.split('<STR_LIT:U+002C>') if sea_name else []<EOL>for sea in sea_name:<EOL><INDENT>recommended_ctx.assert_true(<EOL>sea.lower() in sea_names,<EOL>'<STR_LIT>'.format(sea)<EOL>)<EOL><DEDENT>for attr in ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>']:<EOL><INDENT>attr_value = getattr(dataset, attr, '<STR_LIT>')<EOL>try:<EOL><INDENT>parse_datetime(attr_value)<EOL>recommended_ctx.assert_true(True, '<STR_LIT>')  <EOL><DEDENT>except ISO8601Error:<EOL><INDENT>recommended_ctx.assert_true(False, '<STR_LIT>'.format(attr, attr_value))<EOL><DEDENT><DEDENT>value = getattr(dataset, '<STR_LIT>', '<STR_LIT>')<EOL>recommended_ctx.assert_true(value.lower() in ['<STR_LIT>', '<STR_LIT>'], '<STR_LIT>'.format(value))<EOL>ack_exists = any((getattr(dataset, attr, '<STR_LIT>') != '<STR_LIT>' for attr in ['<STR_LIT>', '<STR_LIT>']))<EOL>recommended_ctx.assert_true(ack_exists, '<STR_LIT>')<EOL>standard_name_vocab = getattr(dataset, '<STR_LIT>', '<STR_LIT>')<EOL>regex = re.compile(r'<STR_LIT>')<EOL>recommended_ctx.assert_true(regex.search(standard_name_vocab),<EOL>"<STR_LIT>".format(standard_name_vocab))<EOL>if hasattr(dataset, '<STR_LIT>'):<EOL><INDENT>recommended_ctx.assert_true(getattr(dataset, '<STR_LIT>', '<STR_LIT>') != '<STR_LIT>', '<STR_LIT>')<EOL><DEDENT>return recommended_ctx.to_result()<EOL>
Check the global recommended attributes for 2.0 templates. These go an extra step besides
just checking that they exist.

:param netCDF4.Dataset dataset: An open netCDF dataset

:id = "" ; //.................................................. RECOMMENDED - Should be a human readable unique identifier for data set. (ACDD)
:naming_authority = "" ; //.................................... RECOMMENDED - Backward URL of institution (for example, gov.noaa.ncei). (ACDD)
:history = "" ; //............................................. RECOMMENDED - Provides an audit trail for modifications to the original data. (ACDD)
:source = "" ; //.............................................. RECOMMENDED - The method of production of the original data. (CF)
:processing_level = "" ; //.................................... RECOMMENDED - Provide a description of the processing or quality control level of the data. (ACDD)
:comment = "" ; //............................................. RECOMMENDED - Provide useful additional information here. (CF)
:acknowledgment = "" ; //...................................... RECOMMENDED - A place to acknowledge various types of support for the project that produced this data. (ACDD)
:license = "" ; //............................................. RECOMMENDED - Describe the restrictions to data access and distribution. (ACDD)
:standard_name_vocabulary = "CF Standard Name Table vNN" ; //.. RECOMMENDED   - If using CF standard name attribute for variables. Replace NN with the CF standard name table number  (CF)
:date_created = "" ; //........................................ RECOMMENDED - Creation date of this version of the data(netCDF).  Use ISO 8601:2004 for date and time. (ACDD)
:creator_name = "" ; //........................................ RECOMMENDED - The name of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data. (ACDD)
:creator_email = "" ; //....................................... RECOMMENDED - The email address of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data. (ACDD)
:creator_url = "" ; //......................................... RECOMMENDED - The URL of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data. (ACDD)
:institution = "" ; //......................................... RECOMMENDED -The name of the institution principally responsible for originating this data..  An institution attribute can be used for each variable if variables come from more than one institution. (CF/ACDD)
:project = "" ; //............................................. RECOMMENDED - The name of the project(s) principally responsible for originating this data. Multiple projects can be separated by commas. (ACDD)
:publisher_name = "" ; //...................................... RECOMMENDED - The name of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format. (ACDD)
:publisher_email = "" ; //..................................... RECOMMENDED - The email address of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format. (ACDD)
:publisher_url = "" ; //....................................... RECOMMENDED - The URL of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format. (ACDD)
:geospatial_bounds = "" ; //................................... RECOMMENDED - Describes the data's 2D or 3D geospatial extent in OGC's Well-Known Text (WKT) Geometry format. (ACDD)
:geospatial_bounds_crs = "" ; //............................... RECOMMENDED - The coordinate reference system (CRS) of the point coordinates in the geospatial_bounds attribute. (ACDD)
:geospatial_bounds_vertical_crs = "" ; //...................... RECOMMENDED - The vertical coordinate reference system (CRS) for the Z axis of the point coordinates in the geospatial_bounds attribute. (ACDD)
:geospatial_lat_min = 0.0d ; //................................ RECOMMENDED - Describes a simple lower latitude limit. (ACDD)
:geospatial_lat_max = 0.0d ; //................................ RECOMMENDED - Describes a simple upper latitude limit. (ACDD)
:geospatial_lon_min = 0.0d ; //................................ RECOMMENDED - Describes a simple lower longitude limit. (ACDD)
:geospatial_lon_max = 0.0d ; //................................ RECOMMENDED - Describes a simple upper longitude limit. (ACDD)
:geospatial_vertical_min = 0.0d ; //........................... RECOMMENDED - Describes the numerically smaller vertical limit. (ACDD)
:geospatial_vertical_max = 0.0d ; //........................... RECOMMENDED - Describes the numerically larger vertical limit. (ACDD)
:geospatial_vertical_positive = "" ; //........................ RECOMMENDED - Use "up" or "down". (ACDD)
:time_coverage_start = "" ; //................................. RECOMMENDED - Describes the time of the first data point in the data set. Use ISO 8601:2004 for date and time. (ACDD)
:time_coverage_end = "" ; //................................... RECOMMENDED - Describes the time of the last data point in the data set. Use ISO 8601:2004 for date and time.(ACDD)
:time_coverage_duration = "" ; //.............................. RECOMMENDED - Describes the duration of the data set. Use ISO 8601:2004 for date and time. (ACDD)
:time_coverage_resolution = "" ; //............................ RECOMMENDED - Describes the targeted time period between each value in the data set. Use ISO 8601:2004 for date and time. (ACDD)
:uuid = "" ; //................................................ RECOMMENDED - Machine readable unique identifier for each file. A new uuid is created whenever the file is changed. (NCEI)
:sea_name = "" ; //............................................ RECOMMENDED - The names of the sea in which the data were collected. Use NCEI sea names table. (NCEI)