Index¶
aef_bng.index
¶
AEF tile index querying via STAC GeoParquet.
Queries the AEF STAC GeoParquet index directly from Source Cooperative S3 with predicate pushdown for spatial and temporal filtering. No local download required.
AEFBNGIndex()
¶
Manages the AEF STAC GeoParquet index for spatial/temporal tile queries.
Queries the index directly from Source Cooperative S3 with predicate pushdown, filtering to tiles that overlap the BNG extent.
Source code in aef_bng/index.py
load_for_bounds(bounds_bng=BNG_BOUNDS, years=None)
¶
Query the STAC index from S3 with spatial and temporal filters.
Uses predicate pushdown on the Parquet bbox and datetime columns to minimise data transfer, then clips to the BNG extent.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
bounds_bng
|
tuple[int, int, int, int]
|
BNG bounding box (minx, miny, maxx, maxy) in EPSG:27700. |
BNG_BOUNDS
|
years
|
list[int] | None
|
Years to include. If None, no temporal filter is applied. |
None
|
Returns:
| Type | Description |
|---|---|
GeoDataFrame
|
GeoDataFrame of matching AEF tiles. |
Source code in aef_bng/index.py
tiles_for_chunk(chunk, year)
¶
Find AEF tiles overlapping a BNG chunk for a given year.
Tiles are sorted by path for deterministic merge ordering when multiple tiles overlap at UTM zone boundaries.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chunk
|
ChunkSpec
|
The BNG chunk specification with WGS84 bounds. |
required |
year
|
int
|
The year to filter tiles for. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, object]]
|
List of dicts with keys: path, crs, year - sorted by path. |