MultiRasterSource#

class MultiRasterSource[source]#

Bases: RasterSource

Merge multiple RasterSources by concatenating along the channel dim.

Attributes

bbox

Bounding box applied to the source imagery.

crs_transformer

Associated CRSTransformer.

dtype

numpy.dtype of the chips read from this source.

extent

Extent of the RasterSource.

num_channels

Number of channels in the chips read from this source.

primary_source

Primary sub-RasterSource

shape

Shape of the raster as a (..., H, W, C) tuple.

__init__(raster_sources: Sequence[RasterSource], primary_source_idx: int = 0, channel_order: Optional[Sequence[int]] = None, raster_transformers: Sequence[RasterTransformer] = [], bbox: rastervision.core.box.Box | None = None)[source]#

Constructor.

Parameters
  • raster_sources (Sequence[RasterSource]) – Sequence of RasterSources.

  • primary_source_idx (int) – Index of the raster source whose CRS, dtype, and other attributes will override those of the other raster sources.

  • channel_order (Optional[Sequence[int]]) – Channel ordering that will be used by MultiRasterSource.get_chip(). Defaults to None.

  • raster_transformers (Sequence[RasterTransformer]) – List of transformers. Defaults to [].

  • bbox (rastervision.core.box.Box | None) – User-specified crop of the extent. If specified, the primary raster source’s bbox is set to this. If None, the full extent available in the source file of the primary raster source is used.

Methods

__init__(raster_sources[, ...])

Constructor.

from_stac(item, assets[, ...])

Construct a MultiRasterSource from a STAC Item.

get_chip(window[, out_shape])

Return the transformed chip in the window.

get_chip_by_map_window(window_map_coords, ...)

Same as get_chip(), but input is a window in map coords.

get_raw_chip(window[, out_shape])

Return raw chip without applying channel_order or transforms.

resize(chip[, out_shape])

set_bbox(bbox)

Set self.bbox to the given value.

validate_raster_sources()

Validate sub-RasterSources.

__getitem__(key: Any) ndarray#
Parameters

key (Any) –

Return type

ndarray

__init__(raster_sources: Sequence[RasterSource], primary_source_idx: int = 0, channel_order: Optional[Sequence[int]] = None, raster_transformers: Sequence[RasterTransformer] = [], bbox: rastervision.core.box.Box | None = None)[source]#

Constructor.

Parameters
  • raster_sources (Sequence[RasterSource]) – Sequence of RasterSources.

  • primary_source_idx (int) – Index of the raster source whose CRS, dtype, and other attributes will override those of the other raster sources.

  • channel_order (Optional[Sequence[int]]) – Channel ordering that will be used by MultiRasterSource.get_chip(). Defaults to None.

  • raster_transformers (Sequence[RasterTransformer]) – List of transformers. Defaults to [].

  • bbox (rastervision.core.box.Box | None) – User-specified crop of the extent. If specified, the primary raster source’s bbox is set to this. If None, the full extent available in the source file of the primary raster source is used.

classmethod from_stac(item: Item, assets: list[str] | None, primary_source_idx: int = 0, raster_transformers: list['RasterTransformer'] = [], channel_order: Optional[Sequence[int]] = None, bbox: rastervision.core.box.Box | tuple[int, int, int, int] | None = None, bbox_map_coords: rastervision.core.box.Box | tuple[int, int, int, int] | None = None, allow_streaming: bool = False) Self[source]#

Construct a MultiRasterSource from a STAC Item.

This creates a RasterioSource for each asset and puts all the raster sources together into a MultiRasterSource. If assets is not specified, all the assets in the STAC item are used.

Only assets that are readable by rasterio are supported.

Parameters
  • item (Item) – STAC Item.

  • assets (list[str] | None) – List of names of assets to use. If None, all assets present in the item will be used. Defaults to None.

  • primary_source_idx (int) – Index of the raster source whose CRS, dtype, and other attributes will override those of the other raster sources.

  • raster_transformers (list['RasterTransformer']) – RasterTransformers to use to transform chips after they are read. Defaults to [].

  • channel_order (Optional[Sequence[int]]) – List of indices of channels to extract from raw imagery. Can be a subset of the available channels. If None, all channels available in the image will be read. Defaults to None.

  • bbox (rastervision.core.box.Box | tuple[int, int, int, int] | None) – User-specified crop of the extent. Can be Box or (ymin, xmin, ymax, xmax) tuple. If None, the full extent available in the source file is used. Mutually exclusive with bbox_map_coords. Defaults to None.

  • bbox_map_coords (rastervision.core.box.Box | tuple[int, int, int, int] | None) – User-specified bbox in EPSG:4326 coords. Can be Box or (ymin, xmin, ymax, xmax) tuple. Useful for cropping the raster source so that only part of the raster is read from. Mutually exclusive with bbox. Defaults to None.

  • allow_streaming (bool) – Passed to RasterioSource. If False, assets will be downloaded. Defaults to True.

Return type

Self

get_chip(window: Box, out_shape: tuple[int, int] | None = None) ndarray[source]#

Return the transformed chip in the window.

Get processed chips from sub raster sources (with their respective channel orders and transformations applied), concatenate them along the channel dimension, apply channel_order, followed by transformations.

Parameters
  • window (Box) – The window for which to get the chip, in pixel coordinates.

  • out_shape (tuple[int, int] | None) – (height, width) to resize the chip to.

Returns

Array of shape (height, width, channels).

Return type

ndarray

get_chip_by_map_window(window_map_coords: Box, *args, **kwargs) ndarray#

Same as get_chip(), but input is a window in map coords.

Parameters

window_map_coords (Box) –

Return type

ndarray

get_raw_chip(window: Box, out_shape: tuple[int, int] | None = None) ndarray#

Return raw chip without applying channel_order or transforms.

Parameters
  • window (Box) – The window for which to get the chip.

  • out_shape (tuple[int, int] | None) –

Returns

Array of shape (…, height, width, channels).

Return type

np.ndarray

resize(chip: ndarray, out_shape: tuple[int, int] | None = None) ndarray#
Parameters
Return type

ndarray

set_bbox(bbox: Box) None#

Set self.bbox to the given value.

Note

This method is idempotent.

Parameters

bbox (Box) – User-specified bbox in pixel coordinates.

Return type

None

validate_raster_sources() None[source]#

Validate sub-RasterSources.

Checks if all raster sources have the same dtype.

Return type

None

property bbox: Box#

Bounding box applied to the source imagery.

property crs_transformer: CRSTransformer#

Associated CRSTransformer.

property dtype: dtype#

numpy.dtype of the chips read from this source.

property extent: Box#

Extent of the RasterSource.

property num_channels: int#

Number of channels in the chips read from this source.

property primary_source: RasterSource#

Primary sub-RasterSource

property shape: tuple[int, ...]#

Shape of the raster as a (…, H, W, C) tuple.