Example #1
0
 def test_locator_given_time_pressure_format(self):
     pattern = self.path
     reference_time = dt.datetime(2019, 1, 1)
     times = [dt.datetime(2019, 1, 2), dt.datetime(2019, 1, 2, 3)]
     pressures = [1000, 950, 850]
     with netCDF4.Dataset(self.path, "w") as dataset:
         um = tutorial.UM(dataset)
         dataset.createDimension("longitude", 1)
         dataset.createDimension("latitude", 1)
         var = um.times("time", length=len(times))
         var[:] = netCDF4.date2num(times, units=var.units)
         um.forecast_reference_time(reference_time)
         var = um.pressures("pressure", length=len(pressures))
         var[:] = pressures
         dims = ("time", "pressure", "longitude", "latitude")
         coordinates = "forecast_period_1 forecast_reference_time"
         var = um.relative_humidity(dims, coordinates=coordinates)
         var[:] = 100.
     variable = "relative_humidity"
     initial_time = reference_time
     valid_time = times[1]
     pressure = pressures[2]
     locator = unified_model.Locator([self.path])
     _, result = locator.locate(pattern, variable, initial_time, valid_time,
                                pressure)
     expect = (1, 2)
     self.assertEqual(expect, result)
Example #2
0
 def test_locator_given_dim0_format(self):
     pattern = self.path
     times = [dt.datetime(2019, 1, 1), dt.datetime(2019, 1, 2)]
     with netCDF4.Dataset(self.path, "w") as dataset:
         um = tutorial.UM(dataset)
         dataset.createDimension("longitude", 1)
         dataset.createDimension("latitude", 1)
         var = um.times("time", length=len(times), dim_name="dim0")
         var[:] = netCDF4.date2num(times, units=var.units)
         um.forecast_reference_time(times[0])
         var = um.pressures("pressure", length=len(times), dim_name="dim0")
         var[:] = 1000.
         dims = ("dim0", "longitude", "latitude")
         coordinates = "forecast_period_1 forecast_reference_time pressure time"
         var = um.relative_humidity(dims, coordinates=coordinates)
         var[:] = 100.
     variable = "relative_humidity"
     initial_time = dt.datetime(2019, 1, 1)
     valid_time = dt.datetime(2019, 1, 2)
     locator = unified_model.Locator([self.path])
     _, result = locator.locate(pattern,
                                variable,
                                initial_time,
                                valid_time,
                                pressure=1000.0001)
     expect = (1, )
     self.assertEqual(expect, result)
Example #3
0
 def test_valid_times(self):
     units = "hours since 1970-01-01 00:00:00"
     times = {
         "time_0": [dt.datetime(2019, 1, 1)],
         "time_1": [dt.datetime(2019, 1, 1, 3)]
     }
     with netCDF4.Dataset(self.path, "w") as dataset:
         um = tutorial.UM(dataset)
         for name, values in times.items():
             var = um.times(name, length=len(values))
             var[:] = netCDF4.date2num(values, units=var.units)
         var = um.pressures("pressure", length=1)
         var[:] = 1000.
         var = um.longitudes(length=1)
         var[:] = 125.
         var = um.latitudes(length=1)
         var[:] = 45.
         dims = ("time_1", "pressure", "longitude", "latitude")
         var = um.relative_humidity(dims)
         var[:] = 100.
     variable = "relative_humidity"
     coord = unified_model.Coordinates()
     result = coord.valid_times(self.path, variable)
     expect = times["time_1"]
     np.testing.assert_array_equal(expect, result)
 def test_initial_time_given_forecast_reference_time(self):
     time = dt.datetime(2019, 1, 1, 12)
     with netCDF4.Dataset(self.path, "w") as dataset:
         um = tutorial.UM(dataset)
         um.forecast_reference_time(time)
     result = unified_model.read_initial_time(self.path)
     expect = time
     np.testing.assert_array_equal(expect, result)
Example #5
0
 def test_time_axis_given_time_pressure_lon_lat_dimensions(self):
     with netCDF4.Dataset(self.path, "w") as dataset:
         um = tutorial.UM(dataset)
         dims = ("time_1", "pressure_0", "longitude", "latitude")
         for dim in dims:
             dataset.createDimension(dim, 1)
         var = um.relative_humidity(dims)
     result = disk.time_axis(self.path, "relative_humidity")
     expect = 0
     self.assertEqual(expect, result)
Example #6
0
 def test_time_axis_given_dim0_format(self):
     coordinates = "forecast_period_1 forecast_reference_time pressure time"
     with netCDF4.Dataset(self.path, "w") as dataset:
         um = tutorial.UM(dataset)
         dims = ("dim0", "longitude", "latitude")
         for dim in dims:
             dataset.createDimension(dim, 1)
         var = um.relative_humidity(dims, coordinates=coordinates)
     result = disk.time_axis(self.path, "relative_humidity")
     expect = 0
     self.assertEqual(expect, result)