Rasterio reads and writes geospatial raster datasets
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).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 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).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 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.
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.
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-12 runners and thus are defective.