Areas of interest#
easysnowdata.aoi#
Area of interest (AOI) parsing — the one spatial input of every loader.
Design contract §2.1: a loader accepts aoi as a (west, south, east,
north) tuple in EPSG:4326, a shapely geometry (EPSG:4326), a GeoJSON-like
mapping, a geopandas.GeoDataFrame / geopandas.GeoSeries in
any CRS, an odc.geo.geobox.GeoBox, or None for the whole globe.
parse_aoi() turns each of these into an AOI: a footprint
(single-row GeoDataFrame in EPSG:4326) plus, on request, a target grid
(GeoBox) in a UTM zone or any other CRS.
Antimeridian#
A bounding box whose west is greater than east ((170, -20, -170,
-10)) crosses the antimeridian. The footprint is stored as a MultiPolygon
split at ±180° (what STAC intersects and GDAL expect); AOI.bounds
keeps the STAC convention (west > east); grids are built on the
unwrapped geometry (longitudes 170 → 190) so a UTM or geographic GeoBox is
one contiguous raster.
A parsed area of interest: footprint in EPSG:4326 plus an optional grid. |
|
Parse any supported spatial input into an |
|
Return the UTM CRS for the centroid of a geometry in EPSG:4326. |
|
Split a geometry given in unwrapped longitudes (0…360) at 180°. |