NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1734 most downloaded on PyPI
Fast and direct raster I/O for use with NumPy
Last release 4 days ago
30 Sep 2026
Ships unpredictably
gaps range from 8 days to 12 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
170 releases · first in 2013
Usage of a deprecated click function has been replaced ( gh-3635 ).
Full Changelog: 1.5.1...1.5.2
One column per quarter.
Acknowledge the Python deprecation warnings from using "fork" start mode in testing warp error propagation ( gh-3600 ).
Version 1.5.1 fixes a number of bugs and unblocks the release of affine 3.0.0.
Thanks for being patient, folks! It's a weird time in the open source software world.
DatasetBase.__dealloc__ has been removed and replaced by a __del__ method modeled after that of io.IOBase. This eliminates cryptic partial error messages from being printed as rio-calc finishes and finalizes (gh-3612).rasterio.warp.transform_geom: Deprecate antimeridian_cutting & antimeridian_offset
Full list of software versions
If we missed anyone, please reach out!
Full Changelog: 1.4.4...1.5.0
Second release candidate for version 1.5
Second release candidate for version 1.5
CRS.geodetic_crsDetailed summary
Changes since previous pre-release: 1.5rc0...1.5rc1
Full Changelog: 1.4.4...1.5rc1
First release candidate for version 1.5
First release candidate for version 1.5
CRS.geodetic_crsDetailed summary
Changes since previous pre-release: 1.5a1...1.5rc0
Full Changelog: 1.4.4...1.5rc0
Second pre-release for version 1.5
Second pre-release for version 1.5
CRS.geodetic_crsDetailed summary
Changes since previous pre-release: 1.5a0...1.5a1
Full Changelog: 1.4.4...1.5a1
First pre-release for version 1.5
First pre-release for version 1.5
High level overview:
CRS.geodetic_crsDetailed summary
Full Changelog: 1.4.4...1.5a0
CLI:rio.info: Fix use 'stats' for RasterioDeprecationWarning
Full list of software versions
If we missed anyone, please reach out!
Full Changelog: 1.4.3...1.4.4
💭: Released on 12/12 & version 1.4.4 (12*12=144)
This is the second release candidate for 1.4.4.
This is the second release candidate for 1.4.4.
Unless showstopper bugs are found in this release candidate or something else comes up, expect a final 1.4.4 release on Friday.
Changelog since previous release candidate: 1.4.4rc0...1.4.4rc1
Full Changelog: 1.4.3...1.4.4rc1
This is the first release candidate for 1.4.4.
This is the first release candidate for 1.4.4.
Unless showstopper bugs are found in this release candidate or something else comes up, expect a final 1.4.4 release in one week.
Full Changelog: 1.4.3...1.4.4rc0
Version 1.4.3 fixes two major regressions and several other minor bugs.
Version 1.4.3 fixes two major regressions and several other minor bugs.
rasterio.open() now raises TypeError instead of proceeding and crashing (#3266).GDALFillNodata() are now supported by rasterio.fill.fill nodata() (#3265).CRS.from_wkt().is_epsg_code() to erroneously return False when an EPSG code is embedded in WKT has been fixed (#3258).CRS._matches() has been rewritten to better support CRS.to_authority() and CRS.to_epsg() (#3255).Version 1.4.2 fixes two regressions and further improves compatibility with GDAL 3.10.
Version 1.4.2 fixes two regressions and further improves compatibility with GDAL 3.10.
GDAL version 3.10.0 will be released soon. No version of Rasterio before 1.4.2 will fully function with GDAL 3.10. To use GDAL 3.10, you must upgrade Rasterio to 1.4.2.
reproject() function now always returns a 2-D array, masked or non-masked, when requested (#3223).rowcol() methods once again return integers by default as they did in 1.3.11 (#3219).CRS.to_epsg(), which is slow, has been reduced, and CRS.__eq__() has been made much faster (#3216).All wheels on PyPI include GDAL 3.9.3.
The macOS ARM64 wheels on PyPI are available only for macOS version 14 (Sonoma) or newer because of changes on the platform we use to build those wheels.
Version 1.4.1 fixes two regressions, improves compatibility with GDAL 3.10, and specifies a testing dependency that was previously undeclared.
Version 1.4.1 fixes two regressions, improves compatibility with GDAL 3.10, and specifies a testing dependency that was previously undeclared.
The is_tiled property of a dataset will be removed in a future version and a pending deprecation warning will be raised if it is used (#3015).
This is the final 1.4.0 release. The package version, credits, and citation file have been updated. There have been no other changes since 1.4.0rc2. Rasterio is the work of 157 contributors, including 33 new contributors since 1.3.0.
Rasterio 1.4 will continue to support classic GIS programming work with a band-based data model.
The changes since 1.3.11 are fully described in the changelog, split across pre-releases. Here is a high-level summary.
This is the second release candidate for version 1.4. The only change is the removal of lingering conditional checks at compile and run time for GDAL
This is the second release candidate for version 1.4. The only change is the removal of lingering conditional checks at compile and run time for GDAL versions < 3.5, across all project modules. For example, in rasterio.dtypes we no longer check for GDAL support of 64-bit integers and work around their absence, we presume that support for 64-bit integers exist.
If you use Rasterio 1.4.0 with GDAL versions < 3.5, you may experience unexpected Python exceptions, and, rarely, undefined behavior. Wheels from PyPI and conda-forge distributions, for example, meet this requirement. Please test your deployments and upgrade Rasterio and GDAL together if you are building rasterio from source.
Version 1.4.0 will require GDAL >= 3.5. Conditional checks for older GDAL versions at compile and run time have been removed across the entirety of the project (#3166).
This is the first release candidate for 1.4.0. There are no API changes or bug fixes since 1.4b2.
This is the first release candidate for 1.4.0. There are no API changes or bug fixes since 1.4b2.
1.4.0 will require Python >= 3.9 and GDAL >= 3.5.
Unless showstopper bugs are found in this release candidate, expect a final 1.4.0 release in one week.
This is the first 1.4.0 release candidate. There have been no changes since 1.4b2.
1.4.0 requires Python >= 3.9 and GDAL >= 3.5.
rasterio.parse_path() was deprecated in version 1.3.0 and has been removed (#2423). The project has raised a deprecation warning on usage of this func…
rasterio.parse_path() was deprecated in version 1.3.0 and has been removed (#2423). The project has raised a deprecation warning on usage of this function for more than two years and has contacted dependent projects to change their usage.rasterio.open() to receive instances of MemoryFile (#3145)._OverviewResampling enum renamed to OverviewResampling (#3151).Wheels for Python 3.13 are available.
New dataset stats(), clear_stats(), and update_stats() methods have been added to replace the deprecated statistics() method (#3134).
This is the first 1.4 beta release containing all the API additions for 1.4.0. There are known bugs which may still be fixed before the first release candidate and some API additions may be removed if necessary.
statistics() method of a dataset is faulty and will be removed in version 2.0 (#3134).stats(), clear_stats(), and update_stats() methods have been added to replace the deprecated statistics() method (#3134).Rasterize() can now capture output in a new or previously opened dataset and can optionally return masked arrays (#3131).merge() and stack() has been added (#3130).merge() and rio merge (#3130).calc() and merge() have been added (#3073, #3076). This constrains memory use as originally intended.Wheels for Python 3.13 are not yet available.
features.shapes(): int8, float64 (#3125).This version is compatible with recent versions of Numpy 1.x and Numpy 2.0.0rc1.
This version is compatible with recent versions of Numpy 1.x and Numpy 2.0.0rc1.
Rasterio 1.4 requires Python version 3.9 or newer.
Rasterio 1.4 requires Python version 3.9 or newer.
Python openers can now support discovery of auxiliary "sidecar" files like .aux.xml, .msk, and .tfw files for GeoTIFFs (#3032). Additionally, filesystem objects, such as those from fsspec and tiledb, can be used as openers. This will become the recommended usage, supplanting the use of single file openers.
The is_tiled property of a dataset will be removed in a future version and a pending deprecation warning will be raised if it is used (#3015). This wa…
The first 1.4 pre-release is on the package index this morning. There are a number of changes to be aware of. Not all tests pass on Windows yet due to some not yet understood behavior around the default data type of Numpy arrays on the GitHub runners for that platform.
Rasterio 1.4 requires Python version 3.9 or newer.
is_tiled property of a dataset will be removed in a future version and a pending deprecation warning will be raised if it is used (#3015). This warning may be changed to a deprecation warning at version 1.5.0. Please consider copying the body of the property to your own project. It's just one line.is_valid property of the CRS class is not useful and will be removed in version 2.0 (#2919).round() method (#3022). It has the same parameter as Python's built-in round() and applies it to the window's offsets and lengths. It is used internally to avoid sub-pixel errors when reading from and writing to datasets.numpy.histogram()) has been added to show_hist() (#2873, #3001).rasterio.open() (#2898, #2907). This new feature is intended to completely replace the FilePath class introduced in 1.3.0._reproject(), fixing a potential leak (#494).--dry-run option has been added to the command. If used, the profile of the output dataset will be printed and no warping will occur.is_tiled has been simplified to match GDAL's own internal logic and do nothing more. It's now only a test that a raster's block width is not equal to the raster width (#3015).rasterize() better matches the behavior of Numpy array constructors. It no longer reduces the bit width of output, returning either float64 or int64 arrays unless a data type is explicitly selected, and the fill parameter no longer has an effect on the default data type (#3003).rasterize() now returns an empty array (#2993).raster_geometry_mask() has been removed (#2702).1.3.10 can no longer build because of a deleted Numpy release, so a new Rasterio release is in order. Some key bug fixes and packaging updates are com
1.3.10 can no longer build because of a deleted Numpy release, so a new Rasterio release is in order. Some key bug fixes and packaging updates are coming along for the ride.
This release allows any Numpy version >=2.0,<3 to be used to build the package.
Wheels on PyPI include recent versions of GDAL, PROJ, Curl, and libjpeg:
Deprecated usage of pytest.warns(None) in tests has been eliminated (#3054).
This version is compatible with recent versions of Numpy 1.x and Numpy 2.0.
merge() function and CLI command cannot handle rotated rasters. This is now noted in documentation and an error will be raised if any input is non-rectilinear (#3066).pytest.warns(None) in tests has been eliminated (#3054).This version is compatible with recent versions of Numpy 1.x and Numpy 2.0.0rc1.
Packaging:
Bug fixes:
Lean on numpy for minimum and maximum values of float data types (#2946).
GDAL 3.6.4 is patched in the PyPI wheels to fix the potential GTiff multithreading deadlock reported in https://github.com/OSGeo/gdal/issues/8470.
There are no code changes in this release. This is only to create new wheels that update curl to version 8.4.0 to address CVE-2023-38545 and CVE-38546…
There are no code changes in this release. This is only to create new wheels that update curl to version 8.4.0 to address CVE-2023-38545 and CVE-38546.
There are no code changes in this release. This is only to create new wheels that update libwebp to version 1.3.2 to address CVE-2023-4863, and to pub…
There are no code changes in this release. This is only to create new wheels that update libwebp to version 1.3.2 to address CVE-2023-4863, and to publish wheels for Python 3.12.
Rasterio 1.3.8 fixes three bugs that can result in segmentation faults due to doubly freed memory and illegal memory access.
Rasterio 1.3.8 fixes three bugs that can result in segmentation faults due to doubly freed memory and illegal memory access.
The Python wheels uploaded to PyPI now contain GDAL 3.6.4 and a copy of libtiff with support for LERC compression.
The Python wheels uploaded to PyPI now contain GDAL 3.6.4 and a copy of libtiff with support for LERC compression.
1.3.6 fixes a few minor bugs and performance issues.
1.3.6 fixes a few minor bugs and performance issues.
DatasetBase.__enter__ an Env is added to the dataset's context stack if needed, making an explicit with Env(): optional when using an opened dataset as a context manager (#2760).The PyPI wheels for 1.3.6 include a patch for https://github.com/OSGeo/gdal/issues/7170 and rename PROJ symbols for more safety when used in combination with spatiallite, pyproj, etc.
There are no code changes in this release. This is only to create new wheels as the 1.3.5 macosx 10.15 wheels were inadvertently built on GitHub macos
There are no code changes in this release. This is only to create new wheels as the 1.3.5 macosx 10.15 wheels were inadvertently built on GitHub macos-12 runners and thus are defective.
Affine version 2.4.0 exposes a bug in Rasterio's test_deprecated.py module, a test than erroneously fails. This test has been fixed and passes with al…
Happy New Year!
except Exception when, for example, piping the output of rio-shapes to the Unix head program, we avoid getting an unhandled BrokenPipeError message when the interpreter shuts down (#2689).This version is good for use with GDAL 3.6.0 as well as previous versions.
This version is good for use with GDAL 3.6.0 as well as previous versions.
The rasterio._loading module, which supports DLL loading on Windows, has been moved into __init__.py and is no longer used anywhere else (#2594).
The rasterio._loading module, which supports DLL loading on Windows, has been moved into __init__.py and is no longer used anywhere else (#2594).
// in the query string are now properly parsed (#2603).1.3.1 was packaged from a branch that lacked the advertised bug fixes. 1.3.2 fixes the problem. Packaging and bug fix notes from 1.3.1 are reiterated
1.3.1 was packaged from a branch that lacked the advertised bug fixes. 1.3.2 fixes the problem. Packaging and bug fix notes from 1.3.1 are reiterated below.
The GitHub release and discussion for 1.3.1 have been deleted.
Wheels for 1.3.2 are built using the version of rasterio-wheels dated 2022-08-17 and include PROJ 9.0.1 and GDAL 3.5.1.
Packaging:
1.3.1 was released from a branch lacking the advertised bug fixes. 1.3.2 contains the fixes listed under 1.3.1.
Wheels for 1.3.1 are built using the version of rasterio-wheels dated 2022-08-17 and include PROJ 9.0.1 and GDAL 3.5.1.
Packaging:
Wheels for 1.3.1 are built using the version of rasterio-wheels dated 2022-08-17 and include PROJ 9.0.1 and GDAL 3.5.1.
Bug fixes:
This release fixes two packaging issues. The project code itself has no changes other than an updated version string and a new change log entry.
This release fixes two packaging issues. The project code itself has no changes other than an updated version string and a new change log entry.
This version corrects errors made in building binary wheels for 1.3.0. There are no bug fixes or new features in this version.
Rasterio 1.3.0 has new features, deprecations, and many bug fixes. It supports Python versions 3.8+ and GDAL versions 3.1+. Please see https://github.…
Rasterio 1.3.0 has new features, deprecations, and many bug fixes. It supports Python versions 3.8+ and GDAL versions 3.1+. Please see https://github.com/rasterio/rasterio/blob/master/CHANGES.txt for a fine grain description of changes since 1.2.10. Major changes and deprecations are listed below.
Bug fixes:
1.3b3 fixes a significant bottleneck for non-EPSG CRS and adds 64-bit Windows wheels for Python 3.8-3.10.
1.3b3 fixes a significant bottleneck for non-EPSG CRS and adds 64-bit Windows wheels for Python 3.8-3.10.
Bug fixes:
1.3b2 is Rasterio's second pre-release containing a nearly complete view of new features for 1.3.0. We're not accepting new features for 1.3.0 and are
1.3b2 is Rasterio's second pre-release containing a nearly complete view of new features for 1.3.0. We're not accepting new features for 1.3.0 and are only working on major runtime and installation bugs. If you would be willing to try out this pre-release and provide feedback on GitHub, or in responses to this email, the 1.3.0 release will be better and will arrive sooner.
There's one significant bug fix since 1.3b1: error contexts no longer leak from use of GDAL's coordinate transformer.
Our set of binary wheels is small right now, but we'll keep working on that, and will send updates when we've added support for more platforms.
Changes:
Bug fixes:
Linux and macOS wheels for 1.3b1 are built using the version of rasterio-wheels dated 2022-06-21.
1.3b1 is Rasterio's first pre-release containing a nearly complete view of new features for 1.3.0. We're not accepting new features for 1.3.0 and are
1.3b1 is Rasterio's first pre-release containing a nearly complete view of new features for 1.3.0. We're not accepting new features for 1.3.0 and are only working on major runtime and installation bugs. If you would be willing to try out this pre-release and provide feedback on GitHub, or in responses to this email, the 1.3.0 release will be better and will arrive sooner.
There's one new feature since 1.3a4: support for writing both band data and band mask when passing a Numpy MaskedArray to a dataset's write method. Perhaps more interesting is that the binary wheels on PyPI include GDAL 3.5.0rc4 and PROJ 9.0.0, the latest versions of each.
Our set of binary wheels is small right now, but we'll keep working on that, and will send updates when we've added support for more platforms.
Big thanks to everyone who contributed since 1.3a4, particularly Alan Snow, who cleaned up a lot of obsolete code that was supporting older versions of GDAL.
New features:
Changes:
Packaging:
Wheels for 1.3b1 are built using the version of rasterio-wheels dated 2022-05-10.
The --precision option of rio-merge is similarly deprecated (#2432).
Deprecations:
New features:
Changes:
Bug fixes:
The CRS class has been added to rasterio.__all__.
New features:
Bug fixes:
Packaging:
Wheels for 1.3a3 are built using the version of rasterio-wheels dated 2022-02-04. Library versions include GDAL 3.4.1, PROJ 8.2.1, and GEOS 3.10.2.
The second 1.3 pre-release is on the package index this morning. There's one new feature: PROJJSON support (thank you, Alan Snow) and one change to th
The second 1.3 pre-release is on the package index this morning. There's one new feature: PROJJSON support (thank you, Alan Snow) and one change to the reprojection code that prevents unnecessary data copying when warping raster data stored in a numpy array (thank you, Ryan Grout). Your feedback on these would be greatly appreciated!
New features:
WarpedVRT: Remove deprecated dst_* parameters (#2197).
Note: building from source now requires Cython (#2016).
New features:
Bug fixes:
This is the final release from the 1.2 branch.
This is the final release from the 1.2 branch.
Nothing published for this version
Compute geometry_window more accurately and tightly for rotated rasters, fixing a regression introduced in 1.2.1 (#2303).
Correct for the sense of OCTTransform's return value (#2287).
Note upcoming deprecation of the height and width parameters of rasterio.windows.from_bounds() and stop using these parameters in project code and tes…
Replace the defective 1.2.5 sdist, which had breakpoint in merge.py. This did not affect wheels.
Change rio-warp to unrotate imagery by default to match gdalwarp (#2125).
Eliminate unneeded marker for CLI nodata options to be ignored. We will stick with None (#2191).
Change usage of super() to be Python 3 compatible only.
Add a --nodata option to rio-clip to help support the relative complement use case (#2087).
Cast rio-calc's nodata option before filling rasters (#2110).
Note well: Python versions before 3.6 are no longer supported by this project.
Note well: Python versions before 3.6 are no longer supported by this project.
New features:
Bug fixes since 1.2b4:
The CRS definition saved in RGB.byte.tif has been updated so that it is identified as precisely EPSG:32618 by GDAL 3.2.1 (#2083).
Search for PROJ data in the module before searching system locations (#2080).
Deprecated usage of numpy.ndarray.tostring() has been changed to use tobytes().
Remove compat module and future namespace imports (#2067).
Your coding agent can read these notes before it upgrades. Set up the MCP server →