Ejemplo n.º 1
0
def test_read_raster_with_custom_crs_and_transform(example_gdal_path):
    import numpy as np

    with rasterio.open(example_gdal_path) as src:
        band = rasterio.band(src, 1)
        crs = geometry.CRS('EPSG:3577')
        nodata = -999
        transform = Affine(25.0, 0.0, 1000000.0, 0.0, -25.0, -900000.0)

        # Read all raw data from source file
        band_data_source = OverrideBandDataSource(band, nodata, crs, transform)
        dest1 = band_data_source.read()
        assert dest1.shape

        # Attempt to read with the same transform parameters
        dest2 = np.full(shape=(4000, 4000),
                        fill_value=nodata,
                        dtype=np.float32)
        dst_transform = transform
        dst_crs = crs
        dst_nodata = nodata
        resampling = datacube.storage.storage.RESAMPLING_METHODS['nearest']
        band_data_source.reproject(dest2, dst_transform, dst_crs, dst_nodata,
                                   resampling)
        assert (dest1 == dest2).all()
Ejemplo n.º 2
0
    def open(self):
        """Context manager yielding a band datasource.

        :yields: A
          :class:`datacube.storage.storage.OverrideBandDataSource`
          which uses an :class:`S3Source` as a source.
        """
        self.source.bidx = self.get_bandnumber()

        yield OverrideBandDataSource(self.source,
                                     nodata=self.nodata,
                                     crs=self.get_crs(),
                                     transform=self.get_transform(
                                         self.macro_shape))