Ejemplo n.º 1
0
 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 = series.SeriesLoader([self.path])
     result = loader.series_file(self.path, variable, lon, lat)
     expect = {"x": times, "y": values[:, 1, 0]}
     npt.assert_array_equal(expect["x"], result["x"])
     npt.assert_array_equal(expect["y"], result["y"])
Ejemplo n.º 2
0
def test_3d_variable_scalar_time(tmpdir):
    path = str(tmpdir / "file.nc")
    variable = "relative_humidity"
    time = dt.datetime(2019, 1, 1)
    pressures = [1000.001, 500, 250]
    longitudes = [0, 1]
    latitudes = [0, 1]
    values = np.arange(3 * 2 * 2).reshape(3, 2, 2)
    with netCDF4.Dataset(path, "w") as dataset:
        variable_3d_scalar_time(dataset, variable, time, pressures, longitudes,
                                latitudes, values)
    lon, lat = 0.1, 0.1
    loader = series.SeriesLoader([path])
    result = loader._load_netcdf4(path, variable, lon, lat, pressure=500)
    expect = {"x": [time], "y": [values[1, 0, 0]]}
    npt.assert_array_equal(expect["x"], result["x"])
    npt.assert_array_equal(expect["y"], result["y"])
Ejemplo n.º 3
0
 def test_series_given_missing_variable_returns_empty(self):
     pressure = 500
     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 = series.SeriesLoader([self.path])
     variable = "not_in_file"
     result = loader.series_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"])
Ejemplo n.º 4
0
def test_4d_variable(tmpdir):
    path = str(tmpdir / "file.nc")
    variable = "wet_bulb_potential_temperature"
    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(path, "w") as dataset:
        variable_4d(dataset, variable, times, pressures, longitudes, latitudes,
                    values)
    lon, lat = 0.1, 0.1
    loader = series.SeriesLoader([path])
    result = loader._load_netcdf4(path, variable, lon, lat, pressure=500)
    expect = {"x": times, "y": values[:, 1, 0, 0]}
    npt.assert_array_equal(expect["x"], result["x"])
    npt.assert_array_equal(expect["y"], result["y"])
Ejemplo n.º 5
0
 def test_series_given_dim0_variable(self):
     variable = "relative_humidity"
     pressure = 500
     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 = series.SeriesLoader([self.path])
     result = loader.series_file(self.path, variable, lon, lat, pressure)
     i, j = 1, 1
     expect = {"x": [t0, t1], "y": [values[1, j, i], values[3, j, i]]}
     npt.assert_array_equal(expect["x"], result["x"])
     npt.assert_array_equal(expect["y"], result["y"])