/odc-geo

Geometry utilities extracted from datacube-core

Primary LanguagePythonApache License 2.0Apache-2.0

odc.geo

Documentation Status Test Status Test Coverage Conda Version

This library combines geometry shape classes from shapely with CRS from pyproj to provide projection aware Geometry. It exposes all the functionality provided by shapely modules, but will refuse operations between geometries defined in different projections. Geometries can be brought into a common projection with Geometry.to_crs method.

Based on that foundation a number of data types and utilities useful for working with geospatial metadata are implemented. Of particular importance is GeoBox. It is an abstraction for a geo-registered bounded pixel plane where a linear mapping from pixel coordinates to the real world is defined.

To make working with geo-registered raster data easier an integration with xarray is provided. Importing odc.geo.xr enables the .odc. accessor on every xarray.Dataset and xarray.DataArray. This exposes geospatial information of a raster loaded with Open Datacube or rioxarray. Methods for attaching geospatial information to xarray objects in a robust way are also provided. Geospatial information attached in this way survives most operations you might do on the data: basic mathematical operations, type conversions, cropping, serialization to most formats like zarr, netcdf, GeoTIFF.

For more details see Documentation.

Map with GeoBoxes

Origins

This repository contains geometry related code extracted from Open Datacube.

For details and motivation see ODC-EP-06 enhancement proposal.