eumap.parallel.blocks.RasterBlockWriter

class RasterBlockWriter(reader=None)[source]

Bases: object

Class for writing results of block wise raster processing results into a new raster file.

Parameters

reader (Optional[RasterBlockReader]) – RasterBlockReader instance to use for reading rasters.

For full usage examples please refer to the block processing tutorial notebook [1].

References

[1] Raster block processing tutorial

Examples

>>> from eumap.parallel.blocks import RasterBlockReader, RasterBlockWriter
>>>
>>> fp = 'https://s3.eu-central-1.wasabisys.com/eumap/lcv/lcv_landcover.hcl_lucas.corine.rf_p_30m_0..0cm_2019_eumap_epsg3035_v0.1.tif'
>>>
>>> reader = RasterBlockReader(fp)
>>> writer = RasterBlockWriter(reader)

Methods

write

Writes block wise calculation results to new raster file.

write(src_path, dst_path, geometry, block_func=<function _id>, geometry_mask=True, reader_kwargs={}, **kwargs)[source]

Writes block wise calculation results to new raster file.

Performs block_func on all blocks of file(s) listed in src_path that intersect with geometry and writes the results to a new raster.

Parameters
  • src_path (Union[str, Iterable[str]]) – Path(s) (or URLs) of the raster file(s) to read. If aggregator is initialized with reader=None, the first file in src_path will be used to initialize a new reader.

  • dst_path (str) – Path to write the result raster to.

  • geometry (dict) – The bounding geometry within which to read raster blocks, given as a dictionary (with the GeoJSON geometry schema).

  • block_func (Callable) – Callable to perform on the data for each block. Result must retain the shape of input data. Defaults to the identity function.

  • geometry_mask (bool) – Indicates wheather or not to use the geometry as a data mask. If False, calculation will be performed on all of the block data, regardless if some of it falls outside of the geometry.

  • reader_kwargs (dict) – Additional keyword arguments passed to RasterBlockReader.read_overlay().

  • **kwargs

    Additional raster profile keyword arguments passed to the rasterio dataset writer [1].

For full usage examples please refer to the block processing tutorial notebook [2].

References

[1] Writing datasets with Rasterio

[2] Raster block processing tutorial

Examples

>>> geom = {
>>>     'type': 'Polygon',
>>>     'coordinates': [[
>>>         [4765389, 2441103],
>>>         [4764441, 2439352],
>>>         [4767369, 2438696],
>>>         [4761659, 2441949],
>>>         [4765389, 2441103],
>>>     ]],
>>> }
>>>
>>> def is_urban_fabric(lc):
>>>     return lc == 1
>>>
>>> writer.write(fp, 'urban_fabric.tif', geom, is_urban_fabric, dtype='uint8', nodata=0)