def test_write_to_rootgrp(self): uri = self.test_data.get_uri('narccap_wrfg') ds = nc.Dataset(uri,'r') meta = NcMetadata(ds) ds.close() crs = CFLambertConformal.load_from_metadata('pr',meta) path = os.path.join(self.current_dir_output, 'foo.nc') with nc_scope(path, 'w') as ds: variable = crs.write_to_rootgrp(ds) self.assertEqual(variable.grid_mapping_name, crs.grid_mapping_name) for k, v in crs.map_parameters_values.iteritems(): variable_v = variable.__dict__[k] try: self.assertEqual(variable_v, v) except ValueError: self.assertNumpyAll(variable_v, v) with nc_scope(path) as ds: meta2 = NcMetadata(ds) meta['variables']['Lambert_Conformal'] = meta2['variables']['Lambert_Conformal'] crs2 = CFLambertConformal.load_from_metadata('pr', meta) self.assertEqual(crs, crs2) path2 = os.path.join(self.current_dir_output, 'foo2.nc') with nc_scope(path2, 'w') as ds: crs2.write_to_rootgrp(ds)
def test_load_from_metadata(self): uri = self.test_data.get_uri('narccap_wrfg') ds = nc.Dataset(uri,'r') meta = NcMetadata(ds) crs = CFLambertConformal.load_from_metadata('pr',meta) self.assertEqual(crs.value,{'lon_0': -97, 'ellps': 'WGS84', 'y_0': 2700000, 'no_defs': True, 'proj': 'lcc', 'x_0': 3325000, 'units': 'm', 'lat_2': 60, 'lat_1': 30, 'lat_0': 47.5}) self.assertIsInstance(crs,CFLambertConformal) self.assertEqual(['xc','yc'],[crs.projection_x_coordinate,crs.projection_y_coordinate]) self.assertNumpyAll(np.array([ 30., 60.]),crs.map_parameters_values.pop('standard_parallel')) self.assertEqual(crs.map_parameters_values,{u'latitude_of_projection_origin': 47.5, u'longitude_of_central_meridian': -97.0, u'false_easting': 3325000.0, u'false_northing': 2700000.0, 'units': u'm'}) ds.close()