def test_update_single_file(self): # Testing the update of single files outputs = [ tempfile.NamedTemporaryFile( prefix= 'eustace.outputformats.test.FIELD_SURFACE_eustace_PRODUCTIONUMBER_LABEL_XXXX', suffix='.nc', delete=False) for index in range(2) ] dataset = [Dataset(output.name, 'w', 'NETCDF4') for output in outputs] for files in dataset: files.comment = '' files.close() v = OutputVariable.from_template(t, 'bob', 'Bob\'s House', ancillary_variables='Bob\'s Shed') merger = FilesMerger(['a', 'b', 'c'], ['d', 'e', 'f'], numpy.array([1, 2]), [v], [v], [v], [[1.]]) merger.update_single_file([outputs[0].name], [outputs[1].name]) new_outputs = [output.name.replace('_LABEL', '') for output in outputs] dataset = [Dataset(name, 'r', 'NETCDF4') for name in new_outputs] for files in dataset: self.assertEqual(files.ncattrs(), ['comment']) self.assertEqual( files.getncattr(files.ncattrs()[0]), u'input data preprocessed from LABEL retrievals.') files.close() for name in new_outputs: os.remove(name)
def test_init(self): #Test the correcteness of the init procedure v = OutputVariable.from_template(t, 'bob', 'Bob\'s House', ancillary_variables='Bob\'s Shed') self.assertRaises(ValueError, FilesMerger, 1, ['a'], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], 1, numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], ['a'], [1], [v], [v], [v], [v]) self.assertRaises(ValueError, FilesMerger, [1], ['a'], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], [1], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], ['a'], ['a'], [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], ['a'], ['a'], [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], ['a', 'b'], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], ['a', 'b'], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a', 'b'], ['a', 'b'], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a'], ['a', 'b'], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a', 'b'], ['a', 'b'], numpy.array([1]), [v], [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a', 'b'], ['a', 'b'], numpy.array([2]), 1, [v], [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a', 'b'], ['a', 'b'], numpy.array([2]), [v], 1, [v], [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a', 'b'], ['a', 'b'], numpy.array([2]), [v], [v], 1, [[1.]]) self.assertRaises(ValueError, FilesMerger, ['a', 'b'], ['a', 'b'], numpy.array([2]), [v], [v], [v], 1.) self.assertRaises(ValueError, FilesMerger, ['a', 'b'], ['a', 'b'], numpy.array([2]), [v], [v], [v], [[True]]) merger = FilesMerger(['a', 'b', 'c'], ['d', 'e', 'f'], numpy.array([1, 2]), [v], [v], [v], [[1.]]) self.assertEqual(merger.outputs_primary, ['a', 'b', 'c']) self.assertEqual(merger.outputs_ancillary, ['d', 'e', 'f']) self.assertEqual(merger.list_of_daily_sources[0], 1) self.assertEqual(merger.list_of_daily_sources[1], 2) self.assertEqual(merger.primary_fields, [v]) self.assertEqual(merger.primary_uncertainties, [v]) self.assertEqual(merger.ancillary_fields, [v]) self.assertEqual(merger.list_of_correlation_indexes, [[1.]]) self.assertEqual(merger.list_of_merged_main_outputs, []) self.assertEqual(merger.list_of_merged_ancillary_outputs, [])
from eustace.outputformats.definitions import SURFACEAIRMODEL_ANCILLARY_OCEAN_TAS_UNCERTAINTY_LOCALLYCORRELATED2 from eustace.outputformats.definitions import SURFACEAIRMODEL_ANCILLARY_OCEAN_TAS_UNCERTAINTY_SYSTEMATIC2 from eustace.outputformats.definitions import SURFACEAIRMODEL_ANCILLARY_OCEAN_TAS_UNCERTAINTY_PARAMETER0 from eustace.outputformats.definitions import SURFACEAIRMODEL_ANCILLARY_OCEAN_TAS_UNCERTAINTY_PARAMETER1 from eustace.outputformats.definitions import SURFACEAIRMODEL_ANCILLARY_OCEAN_TAS_UNCERTAINTY_PARAMETER2 from eustace.outputformats.definitions import SURFACEAIRMODEL_ANCILLARY_OCEAN_TAS_UNCERTAINTY_PARAMETER3 from eustace.outputformats.definitions import SURFACEAIRMODEL_ANCILLARY_OCEAN_TAS_UNCERTAINTY_PARAMETER4 from netCDF4 import Dataset from shutil import copyfile # Output variable template t = OutputVariableTemplate(numpy.float32, -3200, units='mm') # Output variable objects created fro testing purposes f1 = OutputVariable.from_template(t, 'field_1', 'first field', ancillary_variables='Bob\'s Shed') f2 = OutputVariable.from_template(t, 'field_2', 'second field', ancillary_variables='Bob\'s Shed') u1 = OutputVariable.from_template(t, 'total_uncertainty_field_1', 'first total uncertainty field') u2 = OutputVariable.from_template(t, 'total_uncertainty_field_2', 'second total uncertainty field') a11 = OutputVariable.from_template(t, 'ancillary_1_for_field_1', 'first ancillary variable for first field') a12 = OutputVariable.from_template( t, 'ancillary_1_for_field_2', 'second ancillary variable for first field') a21 = OutputVariable.from_template( t, 'ancillary_2_for_field_1', 'first ancillary variable for second field')