GIS utility package
Project description
Current release info
| Name | Downloads | Version | Platforms |
|---|---|---|---|
conda-forge feedstock
pyramids - GIS utility package
pyramids is a GIS utility package built on top of GDAL/OGR for working with raster data (GeoTIFF, NetCDF), vector data (shapefiles, GeoJSON), and multi-temporal datacubes.
graph LR
GeoTIFF & NetCDF & Shapefile & UGRID -->|read| pyramids
subgraph pyramids
Dataset
NetCDF_class[NetCDF]
UgridDataset
DatasetCollection
FeatureCollection
end
Dataset -->|crop · reproject · align| Dataset
FeatureCollection -->|rasterize| Dataset
UgridDataset -->|interpolate| Dataset
Dataset -->|vectorize| FeatureCollection
DatasetCollection -->|temporal stack| Dataset
NetCDF_class -->|extends| Dataset
For detailed architecture diagrams, see docs/overview/architecture.md.
Main Features
- Dataset - Read, write, crop, reproject, and align single-band and multi-band rasters (GeoTIFF) with full no-data handling and coordinate reference system support.
- NetCDF - Extends Dataset for NetCDF files with time/variable dimensions and CF conventions metadata. Optional xarray interoperability.
- UgridDataset - Read and visualize UGRID-1.0 unstructured meshes (triangles, quads, mixed). Supports mesh-to-raster interpolation and mesh-to-vector export.
- DatasetCollection - Manage time-series of co-registered rasters as a temporal stack for multi-temporal analysis.
- FeatureCollection - Work with vector data (shapefiles, GeoJSON) through a unified GeoDataFrame and OGR DataSource interface, including rasterization and geometry operations.
- Spatial operations - Align rasters to a reference grid, reproject between coordinate systems, crop to vector boundaries, and convert between raster, NetCDF, and vector formats.
Installing pyramids
Installing pyramids from the conda-forge channel can be achieved by:
conda install -c conda-forge pyramids
It is possible to list all the versions of pyramids available on your platform with:
conda search pyramids --channel conda-forge
Install from GitHub
To install the latest development version, you can install the library from GitHub:
pip install git+https://github.com/serapeum-org/pyramids
pip
To install the latest release from PyPI:
pip install pyramids-gis
Optional extras
pip install pyramids-gis[viz] # cleopatra plotting support
pip install pyramids-gis[xarray] # xarray/NetCDF4 interoperability
Quick start
from pyramids.dataset import Dataset
# Open a raster file
src = Dataset.read_file("path/to/raster.tif")
print(src.epsg) # coordinate reference system EPSG code
print(src.cell_size) # pixel resolution
print(src.shape) # (rows, columns)
# Get the raster data as a NumPy array
arr = src.raster.ReadAsArray()
from pyramids.netcdf import NetCDF
# Open a NetCDF file
nc = NetCDF.read_file("path/to/data.nc")
print(nc.variables)
from pyramids.feature import FeatureCollection
# Open a vector file
vector = FeatureCollection.read_file("path/to/shapefile.shp")
print(vector.shape)
Testing
This project uses pixi as the environment and task manager.
# Install dependencies and create dev environment
pixi install -e dev
# Run all tests (excluding plot tests)
pixi run -e dev main
# Run plot tests only
pixi run -e dev plot
# Run a specific test file
pixi run -e dev pytest tests/netcdf/test_dimensions.py -v
# Run a single test by node id
pixi run -e dev pytest tests/netcdf/test_dimensions.py::TestStripBraces::test_with_braces -q
Docker
A Dockerfile is provided to run pyramids-gis in a controlled environment with the correct GDAL stack preinstalled via conda-forge. The image uses a multi-stage pixi build for a minimal production container.
Build the image:
docker build -t pyramids-gis:latest .
Run the container (mount your current folder as /workspace):
docker run --rm -it -v ${PWD}:/workspace pyramids-gis:latest bash
Inside the container you can verify the package is installed:
python -c "import pyramids; print('pyramids', pyramids.__version__)"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyramids_gis-0.14.0.tar.gz.
File metadata
- Download URL: pyramids_gis-0.14.0.tar.gz
- Upload date:
- Size: 234.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28e16c906efffeac965c403a01ad0205b46e7929b2873a40408acacd388de969
|
|
| MD5 |
4a224ec925cf5869d854b59a546fb797
|
|
| BLAKE2b-256 |
4f0d59e88e754a969d4e3d4ecc3c3d3b9f9fd88c8f753e9320d0008373b273bb
|
File details
Details for the file pyramids_gis-0.14.0-py3-none-any.whl.
File metadata
- Download URL: pyramids_gis-0.14.0-py3-none-any.whl
- Upload date:
- Size: 239.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b924ba0bd2fa321fdcff4ba9d872440ab680273c90292763f584c2ae80ee062
|
|
| MD5 |
0b5c3bbff6705248eba2931b2528f27b
|
|
| BLAKE2b-256 |
2021b7e7987603b79e80d194589f854cedb7b81f20fcf0712cea091fc8b2a900
|