eumap.parallel.blocks.RasterBlockAggregator

class RasterBlockAggregator(reader=None)[source]

Bases: object

Class for aggregating results of block wise raster processing into a single result.

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, RasterBlockAggregator
>>>
>>> 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)
>>> aggregator = RasterBlockAggregator(reader)

Methods

aggregate

Aggregates results of block wise raster processing into a single result.

aggregate(src_path, geometry, block_func, agg_func=<function mean>, **kwargs)[source]

Aggregates results of block wise raster processing into a single result.

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.

  • 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.

  • agg_func (Callable) – Callable to produce an aggregation of block-wise results.

  • **kwargs

    Additional keyword arguments passed to RasterBlockReader.read_overlay().

Returns

The result of agg_func called with block-wise block_func results as the argument.

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

References

[1] Raster block processing tutorial

Examples

>>> geom = {
>>>     'type': 'Polygon',
>>>     'coordinates': [[
>>>         [4765389, 2441103],
>>>         [4764441, 2439352],
>>>         [4767369, 2438696],
>>>         [4761659, 2441949],
>>>         [4765389, 2441103],
>>>     ]],
>>> }
>>>
>>> def urban_fabric_area(lc):
>>>     return (lc==1) * 9e-4 # spatial resolution is 30x30 m
>>>
>>> result = agg.aggregate(
>>>     fp, geom,
>>>     block_func=urban_fabric_area,
>>>     agg_func=np.sum,
>>> )