Beispiel #1
0
    def _location_to_tile_corner(cls, xs, ys, tile_size=1):
        """Convert locations to SRTM tile corner.

        For example, (-120.5, 40.1) becomes (-120, 40). The lower left corner
        of the tile is used. Decimals are used to preserve precsion for
        fractional tile sizes.

        Args:
            xs, ys: Lists of x and y coordinates.
            tile_size: Which value to round the tiles to. Int or Decimal.

        Returns:
            tile_names: List of (Decimal, Decimal) northing, easting tuples.
        """

        northings = [utils.decimal_base_floor(y, tile_size) for y in ys]
        eastings = [utils.decimal_base_floor(y, tile_size) for y in xs]

        return list(zip(northings, eastings))
Beispiel #2
0
 def test_fractional_base(self):
     assert utils.decimal_base_floor(5.6, Decimal("0.25")) == Decimal("5.5")
Beispiel #3
0
 def test_other_base(self):
     assert utils.decimal_base_floor(290.9, 50) == 250
Beispiel #4
0
 def test_negative_value(self):
     assert utils.decimal_base_floor(-5.1, 5) == -10
Beispiel #5
0
 def test_base_1_default(self):
     values = [-1, 0, 1, -0.6, -0.4, 0.4, 0.6, 99.91]
     for x in values:
         assert np.floor(x) == utils.decimal_base_floor(x)
         assert np.floor(x) == utils.decimal_base_floor(x, 1)