Feature and scalability overview#
GeoUtils provides a unified API for manipulating raster, vector, and point cloud data, and provides scalable CPU execution for most raster and point cloud operations, as well as some vector operations, through Dask or multiprocessing.
As many of our numerical operations rely on NumPy, SciPy, or Numba, those are planned to be linked to their GPU counterparts (CuPy and Numba CUDA) in the future.
The summary tables directly below list the core features of GeoUtils and their scalability.
See also
If you are interested in porting from GDAL/OGR, see our Cheatsheet: From GDAL/OGR page. While tables below provide a scalability summary, the detailed scalable execution behaviour of all operations is available on the Supported operations page. For performance comparisons, see the Performance page.
Summary#
GeoUtils exposes a consistent API across raster, vector, and point cloud objects wherever possible (similar in spirit to the recent GDAL CLI overhaul). Many operations also support convenient reference matching (e.g., matching a grid for reprojection or rasterization, bounds for cropping, or point coordinates for interpolation). See the Match-reference operations page for details.
At its core, GeoUtils provides two interchangeable ways to work with geospatial data:
Accessors that extend existing Xarray or GeoPandas structures (
rstfor rasters,pcfor point clouds, andvctfor vectors),GeoUtils objects
Raster,PointCloud, andVector.
All raster and point cloud operations support scalable execution using Dask or multiprocessing, allowing large datasets to be processed chunk-by-chunk without loading the full array into memory. Some vector operations also support scalable execution, although memory is often less limiting for vector data.
Additionally, some numerical routines of GeoUtils provide multiple computational backends (e.g., SciPy or Numba implementations).
All methods are tested to ensure they produce identical results whether executed in-memory, chunked, or with different computational backends.
Data operations#
We first describe GeoUtils’ core data operations, which operate on underlying arrays or geometries and can therefore benefit from scalable execution.
Legend
/denotes methods shared across object types.⟷denotes methods interfacing between two object types.
Method |
Description |
Scalable |
|---|---|---|
Raster / Vector / Point |
||
Display geospatial data. |
✅ |
|
Change CRS or raster grid. |
✅ |
|
Select data within a bounding box. |
✅ |
|
Mask, select or cut data by geometry. |
✅ |
|
Shift spatial coordinates. |
✅ |
|
Raster / Point |
||
Create boolean masks from geometries. |
✅ |
|
Measure distance to target values. |
✅ |
|
Filter values over local neighborhoods. |
✅ |
|
Randomly select valid cells or points. |
✅ |
|
Select common valid locations across datasets. |
✅ |
|
Sample valid pairs across spatial distances. |
✅ |
|
Estimate global statistics. |
✅ |
|
|
Estimate statistics grouped by bins, categories or zones. |
✅ |
Estimate and fit spatial semivariance. |
✅ |
|
Estimate error magnitude and spatial correlation. |
✅ |
|
Generate spatially correlated random values. |
✅ |
|
Raster ⟷ Vector |
||
Burn geometries onto a raster grid. |
✅ |
|
Convert raster regions to polygons. |
✅ |
|
Raster ⟷ Point |
||
Interpolate raster values at points. |
✅ |
|
Aggregate raster values around points. |
✅ |
|
Convert raster cells to points. |
✅ |
|
Convert regular points to a raster. |
❌ |
|
Create a raster from irregular points. |
✅ |
Metadata properties and operations#
In addition to data operations, GeoUtils exposes metadata properties and methods consistently across geospatial objects. These rely only on metadata and therefore do not load or modify underlying data arrays.
Attribute / Method |
Description |
|---|---|
Raster / Vector / Point |
|
Coordinate reference system (CRS) of object. |
|
Bounding box of object. |
|
Footprint polygon geometry of object. |
|
Whether geospatial object is loaded in-memory. |
|
Filename of object on disk, if it exists. |
|
Bounding box projected in another CRS. |
|
Footprint polygon geometry in other CRS. |
|
Get metric CRS suitable for this object. |
|
Summary of attributes for geospatial object. |
|
Raster / Point |
|
Data array (2D or 3D for raster, 1D for point cloud). |
|
Shape of data array. |
|
Whether object is a mask. |
|
Raster |
|
Geotransform to map raster cells to spatial coordinates. |
|
Nodata value used to represent missing data on disk. |
|
Interpretation of raster cell values, area-average or point-center. |
|
Point |
|
Number of points in the point cloud. |