rasterio
Fast and direct raster I/O for use with NumPy
Decision gist · record as of 2026-08-14
Yes. Rasterio is actively maintained, production-stable, has no known vulnerabilities, and is the standard Python interface for raster I/O in geospatial workflows. Medium install friction is manageable given the availability of official binary wheels. Install if you work with gridded geospatial data.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.12, NumPy >= 2, and GDAL >= 3.8; GDAL system library must be installed or available via binary wheels.
- Medium install friction due to compiled C/Cython dependencies and GDAL requirements, but official binary wheels are available for Linux, macOS, and Windows.
- Active maintenance with a recent release (6 days old) and 2560 repository stars indicate solid ongoing support.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive; you can use, modify, and distribute rasterio freely in commercial and open-source projects with minimal restrictions.
last release 2026-08-08 (6 days) · last repo commit 2026-08-14 · 2,560 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 9,654,386 downloads/mo, #1,513 on PyPI
Alternatives
Verify before relying
import rasterio
import numpy as np
with rasterio.open('input.tif') as src:
data = src.read()
profile = src.profile
with rasterio.open('output.tif', 'w', **profile) as dst:
dst.write(data)- Whether the HDF5, netCDF, and OpenJPEG2000 drivers mentioned are included in all PyPI binary wheels or only some platforms.
- Performance characteristics for very large raster files or streaming workflows.
What it is and what it does
Rasterio is a Python library for reading and writing geospatial raster data—gridded datasets stored in formats like GeoTIFF that are common in geographic information systems. It wraps GDAL and exposes raster I/O through a NumPy-based API, letting you read bands directly into arrays, inspect metadata like coordinate reference systems and transforms, and write processed data back to disk.
The library is designed for developers working with satellite imagery, digital elevation models, and other gridded geospatial data. It includes a command-line tool (rio) for interactive inspection and format conversion, plus support for plugins to extend functionality. Rasterio 1.5+ requires Python >= 3.12, NumPy >= 2, and GDAL >= 3.8, with official binary packages available for major platforms.
Use it for
- Read satellite or aerial imagery bands and perform band math (e.g., averaging RGB to create panchromatic data).
- Extract raster data within a georeferenced bounding box or window for regional analysis.
- Convert between raster formats (e.g., GeoTIFF to netCDF) with coordinate system and compression control.
- Inspect and validate raster metadata (CRS, transform, band count) before processing.
- Write processed NumPy arrays back to georeferenced raster files with custom compression and data types.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Rasterio is actively maintained, production-stable, has no known vulnerabilities, and is the standard Python interface for raster I/O in geospatial workflows. Medium install friction is manageable given the availability of official binary wheels. Install if you work with gridded geospatial data.
Install
rasterio on PyPI
Before you install
Medium install friction due to compiled C/Cython dependencies and GDAL requirements, but official binary wheels are available for Linux, macOS, and Windows. Active maintenance with a recent release (6 days old) and 2560 repository stars indicate solid ongoing support.
Requires Python >= 3.12, NumPy >= 2, and GDAL >= 3.8; GDAL system library must be installed or available via binary wheels.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute rasterio freely in commercial and open-source projects with minimal restrictions.
Quickstart
import rasterio
import numpy as np
with rasterio.open('input.tif') as src:
data = src.read()
profile = src.profile
with rasterio.open('output.tif', 'w', **profile) as dst:
dst.write(data)
Verify before relying
- Whether the HDF5, netCDF, and OpenJPEG2000 drivers mentioned are included in all PyPI binary wheels or only some platforms.
- Performance characteristics for very large raster files or streaming workflows.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.12 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 6 packagesaffineattrscertificlicknumpypyparsing |
| Maintenance | Actively maintained 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 9,654,386 / month, #1,513 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchProgramming Language :: CProgramming Language :: CythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Multimedia :: Graphics :: Graphics ConversionTopic :: Scientific/Engineering :: GIS |
Evidence: rasterio-1.5.1-cp312-cp312-macosx_14_0_arm64.whl; rasterio-1.5.1-cp312-cp312-macosx_15_0_x86_64.whl; rasterio-1.5.1-cp312-cp312-manylinux_2_28_aarch64.whl; rasterio-1.5.1-cp312-cp312-manylinux_2_28_x86_64.whl; rasterio-1.5.1-cp312-cp312-win_amd64.whl; rasterio-1.5.1-cp312-cp312-win_arm64.whl; rasterio-1.5.1-cp313-cp313-macosx_14_0_arm64.whl; rasterio-1.5.1-cp313-cp313-macosx_15_0_x86_64.whl; rasterio-1.5.1-cp313-cp313-manylinux_2_28_aarch64.whl; rasterio-1.5.1-cp313-cp313-manylinux_2_28_x86_64.whl; rasterio-1.5.1-cp313-cp313-win_amd64.whl; rasterio-1.5.1-cp313-cp313-win_arm64.whl; rasterio-1.5.1-cp314-cp314-macosx_14_0_arm64.whl; rasterio-1.5.1-cp314-cp314-macosx_15_0_x86_64.whl; rasterio-1.5.1-cp314-cp314-manylinux_2_28_aarch64.whl; rasterio-1.5.1-cp314-cp314-manylinux_2_28_x86_64.whl; rasterio-1.5.1-cp314-cp314t-macosx_14_0_arm64.whl; rasterio-1.5.1-cp314-cp314t-macosx_15_0_x86_64.whl; rasterio-1.5.1-cp314-cp314t-manylinux_2_28_aarch64.whl; rasterio-1.5.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “GeoTIFF read write”
- rasterioRasterio reads and writes geospatial raster data in formats like…
- tifffileRead and write TIFF files and TIFF-like formats (BigTIFF, OME-TIFF,…
- xarray-spatialxarray-spatial provides 150+ functions for raster analysis—surface…
Give your agent the search over MCP, or paste the wish link into any chat.
More GIS packages
Shapely provides Python tools for creating, manipulating, and analyzing 2D geometric objects (points, lines, polygons) using the GEOS library, with both scalar and vectorized NumPy-based operations.
pyproj provides a Python interface to PROJ, enabling cartographic projections and coordinate system transformations for geospatial applications.
GeoPandas extends pandas DataFrames to handle geographic data, combining pandas operations with shapely geometry and spatial analysis capabilities that would otherwise require a spatial database.
Install it if you work with geographic data in Python and want to avoid setting up a spatial database or learning a separate GIS tool.
geopy is a Python client for geocoding and distance calculation that converts addresses to coordinates and vice versa using multiple web-based geocoding services, and computes geodesic and great-circle distances between geographic points.
Install it if you need geocoding or distance calculations in your application.
Pyogrio provides fast, bulk-oriented read and write access to vector spatial data formats (Shapefile, GeoPackage, GeoJSON, etc.) via GDAL/OGR bindings, typically for use with GeoPandas GeoDataFrames.
h3 provides Python bindings to Uber's H3 geospatial indexing library, converting geographic coordinates into hierarchical hexagonal grid cells and performing spatial operations on them.
See also color-operations · rio-tiler · rasterstats · xarray-spatial · rioxarray · GDAL · rio-cogeo · fiona · rasterix · exactextract