def test_surface_variable(self): variable = "air_pressure_at_sea_level" times = [ dt.datetime(2019, 1, 1), dt.datetime(2019, 1, 1, 12)] longitudes = [0, 1, 2] latitudes = [0, 1, 2] values = np.arange(2*3*3).reshape(2, 3, 3) with netCDF4.Dataset(self.path, "w") as dataset: variable_surface( dataset, variable, times, longitudes, latitudes, values) lon = 0 lat = 1 loader = profile.ProfileLoader([self.path]) result = loader.profile_file( self.path, variable, lon, lat) expect = { "x": [values[0, 1, 0], ], "y": [0,] } npt.assert_array_equal(expect["x"], result["x"]) npt.assert_array_equal(expect["y"], result["y"])
def test_profile_given_missing_variable_returns_empty(self): pressure = 500 lon = 1 lat = 1 times = [ dt.datetime(2019, 1, 1), dt.datetime(2019, 1, 1, 6), dt.datetime(2019, 1, 1, 12), ] pressures = [1000.001, 500, 250] longitudes = [0, 1, 2] latitudes = [0, 1, 2] values = np.arange(3 * 3 * 3 * 3).reshape(3, 3, 3, 3) with netCDF4.Dataset(self.path, "w") as dataset: variable_4d( dataset, "var_in_file", times, pressures, longitudes, latitudes, values, ) loader = profile.ProfileLoader([self.path]) variable = "var_not_in_file" result = loader.profile_file(self.path, variable, lon, lat, pressure) expect = {"x": [], "y": []} npt.assert_array_equal(expect["x"], result["x"]) npt.assert_array_equal(expect["y"], result["y"])
def test_profile_given_dim0_variable(self): variable = "relative_humidity" lon = 1 lat = 1 p0, p1 = 1000, 500 t0 = dt.datetime(2019, 1, 1) t1 = dt.datetime(2019, 1, 1, 3) longitudes = [0, 1] latitudes = [0, 1] pressures = [p0, p1, p0, p1] times = [t0, t0, t1, t1] values = np.arange(4*2*2).reshape(4, 2, 2) with netCDF4.Dataset(self.path, "w") as dataset: variable_dim0( dataset, pressures, times, longitudes, latitudes, values) loader = profile.ProfileLoader([self.path]) result = loader.profile_file( self.path, variable, lon, lat, t0) i, j = 1, 1 expect = { "x": [values[0, j, i], values[1, j, i]], "y": [p0, p1] } npt.assert_array_equal(expect["x"], result["x"]) npt.assert_array_equal(expect["y"], result["y"])