Example #1
0
 def test_bilinear_interpolation(self):
     lats = [89.6]
     lons = [-179.7]
     z = backend._get_elevation_from_path(lats, lons, ETOPO1_GEOTIFF_PATH,
                                          "bilinear")
     assert pytest.approx(z[0]) == self._interp_bilinear(
         0.4, 0.3, self.geotiff_z[:2, :2])
Example #2
0
 def test_nodata_is_nan(self):
     # EU-dem has NODATA over water.
     lat = [44.969186]
     lon = [-3.152424]
     z = backend._get_elevation_from_path([lat], [lon],
                                          EUDEM_TILE_PATH,
                                          interpolation="nearest")
     assert np.isnan(z)
Example #3
0
 def test_error_outside_dataset(self):
     lats = [0, 0, -90.1, 90.1]
     lons = [-180.1, 180.1, 0, 0]
     for lat, lon in zip(lats, lons):
         with pytest.raises(backend.InputError):
             z = backend._get_elevation_from_path([lat], [lon],
                                                  ETOPO1_GEOTIFF_PATH,
                                                  interpolation="lanczos")
Example #4
0
 def test_none_outside_dataset(self):
     lats = [0, 0, -90.1, 90.1]
     lons = [-180.1, 180.1, 0, 0]
     for lat, lon in zip(lats, lons):
         z = backend._get_elevation_from_path([lat], [lon],
                                              ETOPO1_GEOTIFF_PATH,
                                              interpolation="lanczos")[0]
         assert z is None
Example #5
0
 def test_single_file_dataset(self):
     lats = [0.1, -9]
     lons = [-50.5, 12.11]
     interpolation = "cubic"
     dataset = config.load_datasets()[ETOPO1_DATASET_NAME]
     elevations_by_dataset = backend.get_elevation(lats, lons, dataset,
                                                   interpolation)
     elevations_by_path = backend._get_elevation_from_path(
         lats, lons, ETOPO1_GEOTIFF_PATH, interpolation)
     assert elevations_by_dataset == elevations_by_path
Example #6
0
 def test_valid_read_from_dataset_with_nans(self):
     """
     Array looks like
         [[   2,    1,    0],
          [   3, 9999, 9999],
          [   4, 9999, 9999]
     with NODATA=9999 set on the GEOTIFF, bounds from 0-2 lat and lon.
     """
     lat = 0
     lon = 0
     z = backend._get_elevation_from_path([lat], [lon], NODATA_DATASET_PATH,
                                          "bilinear")
     assert z[0] == 4
Example #7
0
 def test_invalid_cubic_nodata(self):
     lat = 0
     lon = 2
     z = backend._get_elevation_from_path([lat], [lon], NODATA_DATASET_PATH,
                                          "cubic")
     assert np.isnan(z[0])
Example #8
0
 def test_invalid_bilinear_next_to_nodata(self):
     lat = 1
     lon = 0.5
     z = backend._get_elevation_from_path([lat], [lon], NODATA_DATASET_PATH,
                                          "bilinear")
     assert np.isnan(z[0])
Example #9
0
 def test_valid_nearest_next_to_nodata(self):
     lat = 1
     lon = 0.49
     z = backend._get_elevation_from_path([lat], [lon], NODATA_DATASET_PATH,
                                          "nearest")
     assert z[0] == 3
Example #10
0
 def test_nodata_read_from_dataset_with_nans(self):
     lat = 0
     lon = 2
     z = backend._get_elevation_from_path([lat], [lon], NODATA_DATASET_PATH,
                                          "bilinear")
     assert np.isnan(z[0])
Example #11
0
 def test_nearest_interpolation(self):
     lats = [89.51]
     lons = [-179.51]
     z = backend._get_elevation_from_path(lats, lons, ETOPO1_GEOTIFF_PATH,
                                          "nearest")
     assert z[0] == self.geotiff_z[0, 0]
Example #12
0
 def test_read_lr_corner(self):
     lats = [-90]
     lons = [180]
     z = backend._get_elevation_from_path(lats, lons, ETOPO1_GEOTIFF_PATH,
                                          "bilinear")
     assert z[0] == self.geotiff_z[-1, -1]
Example #13
0
 def test_all_interpolation_methods(self):
     lats = [0.5]
     lons = [0.4]
     for method in backend.INTERPOLATION_METHODS.keys():
         backend._get_elevation_from_path(lats, lons, ETOPO1_GEOTIFF_PATH,
                                          method)