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 = 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"])
Ejemplo n.º 2
0
    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"])
Ejemplo n.º 3
0
 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"])