rslearn.dataset.compositing¶
compositing ¶
Built-in and abstract compositing methods for raster materialization.
BandSetCompositeRequest
dataclass
¶
All inputs needed to composite one materialized band set.
Source code in rslearn/dataset/compositing.py
Compositor ¶
Bases: ABC
Abstract base for compositing methods.
All built-in compositing methods and custom (jsonargparse-injectable) ones share this interface.
Source code in rslearn/dataset/compositing.py
build_composites ¶
build_composites(group: list[ItemType], requests: list[BandSetCompositeRequest], tile_store: TileStoreWithLayer, window: Window | None = None, request_time_range: tuple[datetime, datetime] | None = None) -> Iterator[RasterArray]
Yield composites for multiple band sets in a window.
The default implementation preserves the existing per-band-set behavior by
iterating over requests and delegating to build_composite. Custom
compositors can override this to enforce consistency across band sets or
to share expensive preprocessing work.
Source code in rslearn/dataset/compositing.py
build_composite
abstractmethod
¶
build_composite(group: list[ItemType], nodata_val: int | float | None, bands: list[str], bounds: PixelBounds, band_dtype: DTypeLike, tile_store: TileStoreWithLayer, projection: Projection, resampling_method: Resampling, remapper: Remapper | None, request_time_range: tuple[datetime, datetime] | None = None) -> RasterArray
Build a composite from items in the group.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
group
|
list[ItemType]
|
list of items to composite together. |
required |
nodata_val
|
int | float | None
|
scalar nodata value for the band set, or None. |
required |
bands
|
list[str]
|
band names to include in the composite. |
required |
bounds
|
PixelBounds
|
pixel bounds for the spatial extent. |
required |
band_dtype
|
DTypeLike
|
numpy dtype for the output. |
required |
tile_store
|
TileStoreWithLayer
|
tile store for reading raster data. |
required |
projection
|
Projection
|
target spatial projection. |
required |
resampling_method
|
Resampling
|
rasterio resampling enum. |
required |
remapper
|
Remapper | None
|
optional pixel-value remapper. |
required |
request_time_range
|
tuple[datetime, datetime] | None
|
optional time range for the request. |
None
|
Returns:
| Type | Description |
|---|---|
RasterArray
|
A RasterArray produced by this compositing method. |
Source code in rslearn/dataset/compositing.py
FirstValidCompositor ¶
Bases: Compositor
Select the first valid (non-nodata) pixel across items in order.
Source code in rslearn/dataset/compositing.py
build_composite ¶
build_composite(group: list[ItemType], nodata_val: int | float | None, bands: list[str], bounds: PixelBounds, band_dtype: DTypeLike, tile_store: TileStoreWithLayer, projection: Projection, resampling_method: Resampling, remapper: Remapper | None, request_time_range: tuple[datetime, datetime] | None = None) -> RasterArray
Build a first-valid composite.
Source code in rslearn/dataset/compositing.py
MeanCompositor ¶
Bases: Compositor
Per-pixel mean of valid (non-nodata) values across items.
Source code in rslearn/dataset/compositing.py
build_composite ¶
build_composite(group: list[ItemType], nodata_val: int | float | None, bands: list[str], bounds: PixelBounds, band_dtype: DTypeLike, tile_store: TileStoreWithLayer, projection: Projection, resampling_method: Resampling, remapper: Remapper | None, request_time_range: tuple[datetime, datetime] | None = None) -> RasterArray
Build a mean composite.
Source code in rslearn/dataset/compositing.py
MedianCompositor ¶
Bases: Compositor
Per-pixel median of valid (non-nodata) values across items.
Source code in rslearn/dataset/compositing.py
build_composite ¶
build_composite(group: list[ItemType], nodata_val: int | float | None, bands: list[str], bounds: PixelBounds, band_dtype: DTypeLike, tile_store: TileStoreWithLayer, projection: Projection, resampling_method: Resampling, remapper: Remapper | None, request_time_range: tuple[datetime, datetime] | None = None) -> RasterArray
Build a median composite.
Source code in rslearn/dataset/compositing.py
SpatialMosaicTemporalStackCompositor ¶
Bases: Compositor
Spatial first-valid compositing per timestep, stacked along T.
Source code in rslearn/dataset/compositing.py
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 | |
build_composite ¶
build_composite(group: list[ItemType], nodata_val: int | float | None, bands: list[str], bounds: PixelBounds, band_dtype: DTypeLike, tile_store: TileStoreWithLayer, projection: Projection, resampling_method: Resampling, remapper: Remapper | None, request_time_range: tuple[datetime, datetime] | None = None) -> RasterArray
Build a spatial-mosaic temporal-stack composite.
Source code in rslearn/dataset/compositing.py
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 | |
TemporalMeanCompositor ¶
Bases: _TemporalReducerCompositor
Reduce a multi-temporal raster stack to one timestep via temporal mean.
Source code in rslearn/dataset/compositing.py
TemporalMaxCompositor ¶
Bases: _TemporalReducerCompositor
Reduce a multi-temporal raster stack to one timestep via temporal max.
Source code in rslearn/dataset/compositing.py
TemporalMinCompositor ¶
Bases: _TemporalReducerCompositor
Reduce a multi-temporal raster stack to one timestep via temporal min.