Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update rasterio to 1.4.2 #513

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates rasterio from 1.0.27 to 1.4.2.

Changelog

1.4.1

specifies a testing dependency that was previously undeclared..

Bug fixes:

- The xy() transform method once again accepts grid coordinates as input
(3198).
- A dataset's index() method again returns a tuple of ints, not floats (3195).

Other changes:

- GDAL 3.10 will disable opening "MEM::" datasets by default. Rasterio's
internal usage of these datasets is wrapped in special configuration.
- New color interpretation constants of GDAL 3.10 have been added to the
ColorInterp enum (3194).

1.4.0

versions at compile and run time have been removed across the entirety of the
project (3166).

1.4.0rc2

---------------------

1.4.0rc1

---------------------

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.

1.4b2

------------------

Bug fixes:

- When reprojecting a masked array, we now use the mask (reduced) as an alpha
band. There is now also an option to create an alpha band in the output, and
turn that into a mask when returning a mask array (3156).
- Find installed GDAL data directory by searching for gdalvrt.xsd (3157).
- Allow rasterio.open() to receive instances of MemoryFile (3145).
- Leaks of CSL string lists in get/set_proj_data_search_path() have been fixed
(3140).
- Color interpretation is correctly set to "palette" after a colormap is
written (3133).

Other changes:

- _OverviewResampling enum renamed to OverviewResampling (3151).

1.4b1

------------------

Deprecations:

- The statistics() method of a dataset is faulty and will be removed in version
2.0 (3134).

New features:

- New dataset 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).
- An option to get a masked array from merge() and stack() has been added
(3130).
- The new stack tool and the existing CLI command now have the same bounds and
resolution behavior of merge() and rio-merge (3130).
- The merge tool and CLI command can now produce output with a resolution
equal to the highest source resolution. Defaults remain the same (3130.

Bug fixes:

- The Pyopener registry and VSI plugin have been rewritten to avoid filename
conflicts and to be compatible with multithreading. Now, a new plugin handler
is registered for each instance of using an opener (3113). Before GDAL 3.9.0
plugin handlers cannot not be removed and so it may be observed that the size
of the Pyopener registry grows during the execution of a program.
- A CSLConstList ctypedef has been added and is used where appropriate (3113).
- Missing parentheses in the denominators of the max_pixels calculation in
calc() and merge() have been added (3073, 3076). This constrains memory
use as originally intended.

Other changes:

- Enable support for extra dtypes in features.shapes: int8, float64 (3125).

1.4a3

------------------

This version is compatible with recent versions of Numpy 1.x and Numpy
2.0.0rc1.

Packaging:

- Wheels will be built using Numpy 2.0.0rc1 or a newer version and will be
compatible with the oldest supported Numpy 1.x.

Bug fixes:

- Rasterio's python opener VSI plugin prefix has been changed to "vsiriopener"
to not conflict with Fiona.
- Complex dtypes and nodata values can be used in merge() without errors or
warnings (3046).
- The use of approximate transformers is disable in the geolocation array
warping case, as they already are for RPCs (3056).
- All use of pkg_resouces has been eliminated (3061).
- Non-strings may once again be used as values of the dtype keyword argument of
rasterize(), fixing a bug introduced in 1.4a1 (3045).

Other changes:

- Performance of Transformers and rowcol() have been improved by relying more
on NumPy (3103).

1.4a2

------------------

Python support:

- Rasterio 1.4 requires Python version 3.9 or newer.

New features:

- 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, can be used as openers. This will become
the recommended usage, supplanting the use of single file openers.

Bug fixes:

- The rio CLI output file options no longer resolve to absolute paths.
- gzip, tar, and zip archive URIs containing drive letters were not always
parsed properly on Windows, but are now.

1.4a1

------------------

Deprecations:

- 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
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.
- The is_valid property of the CRS class is not useful and will be removed in
version 2.0 (2919).
- The FilePath class has been supplanted by rasterio.open's new opener keyword
argument and its associated GDAL virtual filesystem plugin. It will be
removed in version 2.0 (2919).

New Features:

- The Window class has a new 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.
- The merge tool and merge CLI command can create very large output datasets
without using more memory than the user chooses (3022). Merge output is
processed in chunks that default to 64 MB.
- Errors that GDAL handles internally within GDALDatasetRasterIO() and
GDALRasterIO() and WarpAndChunk() are chained together to be visible and
accessable from Python (2526).
- The new "rio create" command allows creation of new, empty datasets (3023).
- An optional range keyword argument (like that of numpy.histogram()) has been
added to show_hist() (2873, 3001).
- Datasets stored in proprietary systems or addressable only through protocols
not directly supported by GDAL can be accessed using the new opener keyword
argument of rasterio.open() (2898, 2907). This new feature is intended to
completely replace the FilePath class introduced in 1.3.0.
- Deallocate list of warp extras in _reproject(), fixing a potential leak
(494).
- Adjust several tests to small differences in output between GDAL 3.7 and 3.8
(2959).
- The output file size limits of rio-warp were made redundant by changes to the
GTiff driver in GDAL 2.1 and have been removed (2889). A --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.

Bug fixes:

- A nodata value passed to _boundless_vrt_doc(), used for boundless reads, has
been ignored in favor of the source dataset's own nodata value. It is no
longer ignored (3026).
- Avoid squeezing narrow 2-D arrays to 1-D (3008).
- Operations on closed MemoryFile and ZipMemoryFile objects now raise
ValueError as with other Python file objects (2870, ).
- Delay clamping of I/O windows until just before GDAL methods calls to improve
accuracy of sub-pixel reads (2864).

Other changes:

- The logic of 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).
- Rasterio now vendors and modifies the snuggs module (2956).
- Given an empty shapes argument, rasterize() now returns an empty array
(2993).
- AffineTransformer's bulk transformations have been sped up by replacing
a loop with a Numpy ufunc (2936).
- The crop and invert mutual exclusivity test in raster_geomtry_mask() has been
removed (2702).

1.3.10

-------------------

This version is compatible with recent versions of Numpy 1.x and Numpy
2.0.0rc1.

Packaging:

- Wheels for Python versions >= 3.9 will be built using Numpy 2.0.0rc1 or
a newer version and will be compatible with the oldest supported Numpy 1.x.
- Wheels for Python version 3.8 will be built using the oldest supported
version of NumPy and will not be compatible with Numpy 2.

Bug fixes:

- Rasterio's 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).
- Usage of pytest.warns(None) has been eliminated (3054).
- All use of pkg_resouces has been eliminated (3054).

1.3.9

------------------

Bug fixes:

- Lean on numpy for minimum and maximum values of float data types (2946).
- Replace rasterio.dtypes.in_dtype_range() with the version inside the
edit-info command (2946).
- Deallocate _filepath VSI filesystem plugin callback structs to prevent the
memory leak reported in 2932.

Packaging:

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.

1.3.8.post2

------------------------

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.

1.3.8.post1

------------------------

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.

1.3.8

------------------

- Rasterio's Python file VSI plugin is now compatible with GDAL VRTs such as
the one used for boundless reads of datasets (2856).
- Prevent a crash when accessing the block shapes of a multidataset HDF5 file
(2859).
- Add a workaround for a GDAL multithreaded compression bug introduced in 3.6.0
(2851).

1.3.7

------------------

- The sieve function now accepts as input opened datasets or multiband
Band objects (2838).
- Allow color values greater than 256 in colormaps (2769).
- Fix the GDAL datatype mapping of Rasterio's uint64 and int64 data types. They
were reversed in previous versions.
- Special characters, specifically "!", in an HTTP(S) URI's userinfo
subcomponent no longer break Rasterio's path parser (2776).
- Missing documentation for rio-blocks has been added to the CLI docs (2835).
- Ensure that the nodata mask value for all non-alpha bands is True in
sample_gen() (2832).
- GDAL often searches for sidecar files that may or may not exist. For the
Python file VSI plugin in _filepath.pyx, we have turned the logging level for
these events down from ERROR to INFO (2827).
- Full support for signed byte data in GDAL 3.7 has been added.
- The math for array_bounds has been fixed. It can now handle rotated arrays
(2787).

1.3.6

------------------

- Tests that use matplotlib have been cleaned up and the one in test_warp.py
which uses our vendored rangehttpserver has been marked as needing a network
().
- When computing the bounds of a sequence of feature or geometry objects, we
dodge empty "features" and "geometries" sequences that could be provided by,
e.g., Fiona 1.9.0 (2745).
- Decouple our Affine transformer from GDAL environments, fixing a performance
regression introduced in 1.3.0 (2754).
- StatisticsError is raised when dataset statistics cannot be computed (2760).
- In 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).

1.3.5.post1

------------------------

There are no code changes in this release. This is only to create new wheels as
the 1.3.5 macosx 10.15 wheels are defective.

1.3.5

------------------

Bug fixes:

- Fixed plot.show(adjust=True) with respect to 16-bit integer data (2733).
- Align offsets in rio-clip as well as height and width to match gdal_translate
with -projwin (2729).
- Allow rio-warp's --target-aligned-pixels option to be used with --dst-bounds
or --src-bounds (2729).
- Normalize paths before calling os.add_dll_directory on Windows (2705).
- 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 all
versions of the affine module.
- Better, recursive cleanup of MemoryFile /vsimem/ directories.
- Python ignores SIGPIPE by default. By never catching BrokenPipeError via
`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).
- Fixes for unsigned access to S3 (2688, backport of 2669).
- Ignore blockysize when converting untiled datasets to tiled datasets (2687,
backport of 2678).

1.3.4

------------------

This version is good for use with GDAL 3.6.0 as well as previous versions.

Changes:

- Resampling tests have been updated to account for changes in GDAL 3.6.0
(2653).
- Variables in TransformerBase.xy have been renamed for better clarity (2609).
- Avoid use of a fixed port for the warp test server (2619).

Bug fixes:

- Use Python long for FilePath VSI plugin's file position (2652).
- In the case that a GDAL function returns NULL but doesn't set an error, we
now raise SystemError instead of silently failing (2645).
- Azure storage access key can be taken from the environment if not explicitly
provided to AzureSession (2637).
- Skip empty parts of PATH on Windows when adding DLL directories (2626).
- get_data_window is fixed for the case where the nodata value is nan (2629).
- Ensure that GTiff, not COG, driver is used by default for TIFFs (2634).

1.3.3

------------------

Packaging:

The rasterio._loading module, which supports DLL loading on Windows,
has been moved into __init__.py and is no longer used anywhere else
(2594).

Bug fixes:

- GeoTIFF profiles combining tiled=False and a defined blockysize are now
supported (2599).
- URLs with // in the query string are now properly parsed (2603).
- Rasterio's Python file VSI plugin now sets the position of the underlying
stream to 0 on close, resolving 2550.

1.3.2

------------------

Packaging:

1.3.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:

- get_data_window has been improved and extended to 1D (2510).
- Broadcasting of coordinates in transform.xy has been restored (2538).
- A bug in nodata filling (2474) has been fixed by patching GDAL (wheels
only).
- Support for PROJ_DATA has been added (2530).
- Non-informative errors arising from opening a dataset in write mode are
silenced (2525).
- N-D arrays are once again accepted by sampling.sample_gen (2547).
- MemoryDataset's memory layout has been fixed to properly support
non-contiguous data (2512).

1.3.0.post1

------------------------

This version corrects errors made in building binary wheels for 1.3.0. There
are no bug fixes or new features in this version.

1.3.0

------------------

Bug fixes:

- Temporarily restore rasterio.parse_path (wrapper with a warning).
- In 1.3b3, rasterio.dtypes.uint64 mapped to 'uint32'. Now it correctly maps to
'uint64' (reported in 2502).

1.3b3

------------------

Bug fixes:

- A bottleneck in construction of non-EPSG CRS objects has been fixed (2488).
- The last runtime checks for GDAL version 3.1+ have been removed (2463).

1.3b2

------------------

Changes:

- The merge tool has new "sum" and "count" merge methods (2457).

Bug fixes:

- Some GDAL methods may set a failure level error while also succeeding,
according to their return value. We now ensure that callers of these methods
can clear any leftover errors (2487).

Linux and macOS wheels for 1.3b1 are built using the version of rasterio-wheels
dated 2022-06-21.

1.3b1

------------------

New features:

- A dataset's write method now accepts Numpy masked arrays and has a "masked"
keyword argument. In this case, if masked is False, the masked array's filled
method is called with the dataset's nodata value or else the masked array's
fill value. If the masked argument is True, the dataset's write_mask method
is called.

Changes:

- Various decorators requiring a GDAL version of 2+ have been deleted. Rasterio
now absolutely requires GDAL 3.1+ (2452).

Packaging:

Wheels for 1.3b1 are built using the version of rasterio-wheels dated
2022-05-10.

1.3a4

------------------

Deprecations:

- The precision keyword arguments of methods in rasterio.transform,
rasterio.windows, and rasterio.merge are unused and will be removed in
version 2.0. The --precision option of rio-merge is similarly deprecated
(2432).
- The rasterio.path module will be removed in version 1.4 and a deprecation
warning is issued when the module is imported (2423).

New features:

- Datasets have a new statistics method that computes the minimum, maximum,
mean, and standard deviation of a raster band's data, matching the output of
gdalinfo (2441).
- The rio-warp CLI command now takes --wo (--warper-option) and --to
(--transformer-option) options, allowing the use of PROJ coordinate
transformation pipelines like "--to coordinate_operation=proj=pipeline"
(2438).

Changes:

- The Python file VSI plugin is now created and installed at the same time
other GDAL drivers are registered (2435).
- Various optimizations for sample_gen() (2338).
- Update Cython property declarations to modern style (2316).
- The rasterio.path module has been moved to rasterio._path and all its member
made private (2423). A new version of rasterio.path temporarily provides
aliases to maintain compatibility.

Bug fixes:

- Rasterio's warper is fixed such that it can support reprojection to a
specific dataset band (2369).
- Erroneously overlapping slices (reported in 2378) are now prevented by
ensuring that slice indexes with negative values are set to zero (2434).
- Prevent erroneous sign flip in a south-up dataset's res property (2370).
- Allow DatasetReader and DatasetWriter to take string filenames and URLs
(2426).
- Support for compound EPSG CRS has been added (2425).
- Z coordinates are no longer ignored when transforming using RPCs (2422).
- Integer overflow errors in CRS.from_epsg are caught and CRSError is raised
(2395).

1.3a3

------------------

New features:

- The CRS class has been added to rasterio.__all__.
- Python file objects and file-like objects from, for example, fsspec are
adapted for opening to get a dataset without copying file data to a
MemoryFile (2141).

Bug fixes:

- Fix bug in usage of numpy 1.14 (2377).
- rasterio.open returns a dataset accessor and never a
contextlib._GeneratorContextManager for all kinds of input (2360).
- Fix the "adjust" keyword argument of rasterio.plot.show (2359).
- Preserve origin when scaling in creating a WarpedVRT (2364).
- Exceptions are no longer raised for a category of errors emitted from
warp-related GDAL functions (2353).
- Enable unsafe casting for copyto in the merge tool (2265).

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.

1.3a2

------------------

New features:

- The InMemoryRaster class in rasterio._io has been removed and replaced by a
more direct and efficient wrapper around numpy arrays (2301).
- Add support for PROJ JSON based interchange for CRS (2212).
CRS.to_dict(proj_json=True) returns a PROJ JSON style dict and CRS.from_dict()
will accept a PROJ JSON style dict. PROJ JSON text is accepted by
CRS.from_user_input().

1.3a1

------------------

Note: building from source now requires Cython (2016).

New features:

- More efficient window intersection and union (2164).
- New Affine, GCP, and RFC transformer classes (2225).
- Add support for enum and tuple type creation options (2102)

Bug fixes:

- Standardize rounding of window lengths and offsets to match GDAL (2311).
- Allow addition of subdatasets to GPKG rasters opened in "w" mode with the
APPEND_SUBDATASET creation option (2300).
- WarpedVRT: Remove deprecated dst_* parameters (2197).
- Add GDAL DLL directory to DLL search path on Windows and Python >= 3.8.
DLLs will be loaded from .libs (for wheels) or from directories in PATH
environment variable.
- Add version to CRS.to_wkt() for WKT2 support (2122).

1.2.10

-------------------

- Raise WarpOperationError if ChunkAndWarp* do not succeed instead of silently
failing to write to the warp output dataset (2305).

1.2.9

------------------

- Compute geometry_window more accurately and tightly for rotated rasters,
fixing a regression introduced in 1.2.1 (2303).
- Copy mask to destination in rio-clip and rio-convert (2232).
- Use a default 70% confidence threshold when matching CRS to definitions in
authority files (2293). The confidence threshold can be defined when calling
to_epsg and to_authority, which partially addressed the issue reported in
2290.

1.2.8

------------------

- Correct for the sense of OCTTransform's return value (2287).
- Fix a regression in the rasterio.transform module's xy and rowcol functions
(2283).

1.2.7

------------------

- CRS objects are now compared to the EPSG authority using OSRFindMatches for
compatibility with GDAL 3.3.2 (2279).
- Allow open's fp keyword argument to pass the credential decorator (2267).
- Fix a copy-paste bug in features.geometry_window() affecting Y-axis padding
(2266).
- Note upcoming deprecation of the height and width parameters of
rasterio.windows.from_bounds() and stop using these parameters in project
code and tests.
- The transform.xy and transform.rowcol functions now return a pair of
single-element lists if passed a pair of single-element lists. This was the
original behavior, but was broken in version 1.2.1 (2242).

1.2.6

------------------

- Replace the defective 1.2.5 sdist, which had breakpoint in merge.py. This did
not affect wheels.

1.2.5

------------------

- Change rio-warp to unrotate imagery by default to match gdalwarp (2125).
- Internal to write() cast int8 arrays to uint8 (2180).
- Get correct nodata values for complex_int16 data (2206).
- Prevent merge failures due to window and slicing mismatches (2204 and
2202).

1.2.4

------------------

- Eliminate unneeded marker for CLI nodata options to be ignored. We will stick
with None (2191).
- Guard against use of gauss resampling when creating a WarpedVRT (2190).
- Prevent segfaults when buffer and band indexes are mismatched in
io_multi_band and io_multi_mask (2189).
- Change comparisons of nodata to IgnoreOption to accomodate changes in click
8.0.
- Use Window constructor instead of from_slices in windows.union to allow a
proper union to be formed from windows extending outside a dataset (2186).
- Read GDAL CInt16 data as np.complex64 and allow saving complex data to CInt16
(2185).
- Skip merge sources which do not overlap the destination.
- Allow unsafe casting in the merge tool, restoring behavior of version 1.2.0
(2179).
- Remove a workaround for an old Python 3.4 bug from the BoundingBox
implementation (2172).
- Add setuptools as an explicit installation requirement.

1.2.3

------------------

- Change usage of super() to be Python 3 compatible only.
- Use numpy.isclose instead of equals when merging float data (fixes 2163).
- The restriction on resampling methods available to overviews has been made
more clear with the addition of a not-yet-public _OverviewResampling enum
(2157).
- Fix a regression introduced in 1.2.2: from_bounds() can again return Windows
of zero height or width.
- Search for GDAL data in installed packages is done before searching in
built-in locations when entering an Env, as is already done when importing
rasterio.env.

1.2.2

------------------

- Add a --nodata option to rio-clip to help support the relative complement use
case (2087).
- Remove boundless keyword argument from WarpedVRT method signatures (2084).
- Implement the advertised intent of warp.reproject's src_crs parameter. It can
override the source's crs (2036).
- A regression in the merge tool's min and max methods has been fixed (2145).
- windows.from_bounds raises WindowError when the given bounds and transform are
inconsistent with each other (2138).
- Support for GDAL's "sum" resampling algorith has been added (2137).
- Cython and numpy versions are pinned in pyproject.toml. Numpy versions
correspond to scipy's oldest supported versions for Python versions 3.6-3.10.
- GDAL data path is configured in env.py with set_gdal_config (2139).
- AWS sessions are not created for pre-signed URLs (2133).

1.2.1

------------------

- Cast rio-calc's nodata option before filling rasters (2110).
- The rio-clip command only works on rasters with rectilinear geo transforms.
This is noted in the command's help and an error will be raised if the
requirement is not met (2115).
- Support for geotransforms with rotation in Window.from_bounds and
feature.geometry_window has been added (2112).
- Fix an off-by-one error in the merge tool (2106, 2109).

1.2.0

------------------

Note well: Python versions before 3.6 are no longer supported by this project.

New features:

- Binary wheels on PyPI include PROJ 7.2.1 and GDAL 3.2.1.
- Support for Azure Blob Storage using an "az" URI scheme.
- Support for RPCs and coordinate transformations and raster warping with RPCs.
- dst_path and dst_kwds parameters for rasterio's merge tool allow results to
be written directly to a dataset.
- In "w" mode the driver keyword argument of open() may be omitted.
- transform_geom() has been optimized for sequences of geometries.

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).
- Remove non-breaking hyphens accidentally added to README, open the file with
encoding="utf-8" when reading the description so that future UTF-8 chars
don't break package setup.

1.2b3

------------------

- Search for PROJ data in the module before searching system locations (2080).

1.2b2

------------------

- Emit a warning to the Python logger when a metadata item can't be decoded to
a Python unicode object (2078).
- Use language_level=3 Cython directive for all .pyx sources (2077).
- Deprecated usage of numpy.ndarray.tostring() has been changed to use
tobytes().

1.2b1

------------------

- Remove compat module and future namespace imports (2067).
- A bug in construction of requester pays AWS sessions has been fixed (2062).
- Support for the "rms" resampling method in a future version of GDAL has been
added (2056).

1.2a1

------------------

- Support for Azure Blob Storage using an "az" URI scheme has been added
(1906).
- Support for RPCs and coordinate transformations and raster warping with RPCs
has been added (1845, 1922, 2029, 2030, 2031).
- Add dst_path and dst_kwds parameters to rasterio's merge tool to allow
results to be written directly to a dataset (1867).
- Rasterio's merge tool can now accept Paths as input (2043).
- A bug in accessing public Alibaba Cloud data has been fixed (2018).
- In "w" mode the driver keyword argument of open() may be omitted, in which
case the driver will be determined by the file extension of the first
positional argument (2008).
- The transform_geom has been optimized for sequences of geometries (1827).

1.1.8

------------------

- Multipolyons passed to rasterize are flattened to avoid holes in output
(2014).
- If the certifi package can be imported, its certificate store location will
be passed to GDAL during import of rasterio._env unless CURL_CA_BUNDLE is
already set (2009).

1.1.7

------------------

- Add missing methods needed to determine whether GDAL treats a CRS as lat/long
or northing/easting (1943).
- Wrap calls to GDALChecksumImage so that errors set by GDAL are propagated to
Python as a RasterioIOError.
- Raise RasterioDeprecationWarning when a dataset opened in modes other than
'r' is given to the WarpedVRT constructor.
- Base RasterioDeprecationWarning on FutureWarning, following the
recommendation of PEP 565.
- Fix a segmentation fault that occurs when a WarpedVRT closes after the
dataset it references has been previously closed (2001).
- Add resampling option to merge and rio-merge (1996).

1.1.6

------------------

- Remove background layer from boundless VRT (1982). It's not needed since
fixes in GDAL after 3.1.3. Wheels on PyPI for rasterio 1.1.6 will patch GDAL
2.4.4 to fix those GDAL issues.
- Clean up VSI files left by MemoryFileBase, resolving 1953.
- Do not pass empty coordinate arrays to warp._transform to avoid crashes with
some versions of GDAL as reported in 1952. Instead, directly return empty
output arrays.
- Properly convert block size `--co` option values to int in rio-clip and
rio-warp to prevent exceptions reported in 1989.
- Fail gracefully when rio-convert lacks an input file (1985).
- Allow merge.merge() to open one dataset at a time (1831).
- Optimize CRS.__eq__() for CRS described by EPSG codes.
- Fix bug in ParsedPath.is_remote() reported in 1967.
- The reproject() method accepts objects that provide `__array__` in addition
to instances of numpy.ndarray (1957, 1959).
- Custom labels may be used with show_hist() by giving the `label` keyword
argument a sequence of label strings, one per band.

1.1.5

------------------

- Earlier versions of rasterio set the CHECK_WITH_INVERT_PROJ config option to
`True` by default. This is very rarely necessary and broke the GRIB format
driver (1248), so we no longer set this option (1942). Users of rasterio
1.1.5 in combination with GDAL 1.11 and PROJ 4.8 may see some small
differences, compared to rasterio versions < 1.1.5, in results of warping
global datasets.
- WarpedVRT can properly handle two use cases that weren't ruled out in version
1.1.4: simple scaling of datasets and control over the scaling of reprojected
output (1921, 1936).
- The error in making boundless reads of datasets opened using the
OVERVIEW_LEVEL reported in 1929 has been resolved by 1939.
- The pixel shift in reads from datasets reported in the user discussion group
and 1932, has been fixed (1938).
- We have extended the signature of merge's method function (1933).
- The MemoryFile implementation has been improved so that it can support
multi-part S3 downloads (1926).
- Members of the Resampling enum with a value > 7 can only be used in warp
operations (1930). We now raise a ResamplingAlgorithmError if they are used
with non-warp read and writes.
- To help users of poetry, the conditional requirements in setup.py have been
changed to use PEP 496 environment markers exclusively (1777).

1.1.4

------------------

Bug fixes:

- Raise a more helpful exception when asked to open a dataset in write mode
using a read-only driver (1919).
- Missing support for geometry collections in the rasterio.features module
(1914) has been fixed (1915).
- Support for the int8 data type has been extended to the InMemoryRaster class
(1880).
- rasterio.plot.show_hist caused a Python 3.8 syntax warning. This was fixed by
1874.
- Make the strict intersection in rio-clip optional with a --with-complement
option (1907).
- Add a new as_vsi() method to the Path class for internal use and improve
Windows path handling and tests thereof (1895).

1.1.3

------------------

Bug fixes:

- Raise RasterioIOError when errors occur while creating a dataset (1796).
- Filter more categories of invalid features in rasterize (1815).
- Fall back to use of a DummySession instead of failing when boto3 isn't
available (1864).
- A crashing bug involving boundless reads of VRTs (1863) has been fixed.
- The required transform argument of windows.from_bounds() was changed from a
positional arg to a keyword arg in commit 361112e but no guard against the
default value of None was added (1857). The function now raises WindowError
if no transform is given.
- dataset_mask returned in some cases an array with dtype "int64" (1856). This
bug was introduced in 1.1.2 and has been fixed.

1.1.2

------------------

Bug fixes:

- Sampling of WarpedVRT datasets was broken in version in 1.1.1 (1833) and has
been fixed.
- The missing out_dtype keyword argument has been added to
WarpedVRTReaderBase.read() (1849).
- The missing --format option has been added to rio-calc (1846).
- Reduce all the band masks when computing the dataset mask. Previously we had
missed the last band.
- PR 1842 makes sure that rio-calc's cleanup doesn't fail due to unbound
variables.
- The conflict between the --bbox/--feature/--collection and
--sequence/--collection option of rio-bounds (1807) has been fixed by
removing "collection" from the possible JSON type options.
- Increase default precision for the merge tool from 7 to 10 (1837).
- Allow rio-clip and rio-convert to overwrite output files (1836).
- Allow src_crs parameter to fully override the source dataset's CRS (1808).

Packaging notes:

- The wheels on PyPI now include the base (version 1.8) PROJ datum grids and
are thus a few MB larger in size.

1.1.1

------------------

Bug fixes:

- Calling a dataset's sample method with coordinates outside the extent of a
dataset with a nodata value of None has raised a TypeError (1822). Now, it
gives the values we would get from a boundless read of the dataset's values.
- Use new set_proj_search_path() function to set the PROJ data search path. For
GDAL versions before 3.0 this sets the PROJ_LIB environment variable. For
GDAL version 3.0 this calls OSRSetPROJSearchPaths(), which overrides
PROJ_LIB (1823).
- Check for header.dxf file instead of pcs.csv when looking for installed GDAL
data. The latter is gone with GDAL 3.0 but the former remains (1823).
- RGB rasters are now properly displayed by rasterio.plot.show (1650).

Notes:

- The wheels on PyPI include GDAL 2.4.3 with a patch that addresses the
multithreading issue reported in 1828.

1.1.0

------------------

There have been no changes since 1.1b3.

1.1b3

------------------

Bug fixes:

- A regression in WarpedVRT creation (1799) has been fixed. This required
implementation of GDALDatasetH reference counting in DatasetBase.stop().

1.1b2

------------------

Bug fixes:

- When built from the official source distribution rasterio 1.1b1 would not
import due to the omission of _transform.c from the list of extension sources
in setup.py. This has been fixed.

1.1b1

------------------

Deprecations:

- Support for Python 2 is deprecated and a warning is raised from the
rasterio.compat module. This module will be deleted in a future version.

New features:

- Added a new ``tag_namespaces()`` method datasets that returns names of
metadata namespaces that can be passed to the existing ``tags()`` method
(1740).
- Zoom levels can be automatically computed by rio-overview (511).
- An alternative endpoint for S3-compatible network storage can now be set when
creating an instance of AWSSession (1779). See GDAL's documentation of its
AWS_S3_ENDPOINT configuration option for more details.
- The merge tool has a new ``method`` keyword argument that can be used to
override the default painter's algorithm. It takes an alternative method name
as a string or a callable. Please see the merge tool docstring for the
callable's signature (1500).
- A new ``rasterio.transform.from_gcps()`` function returns the Affine matrix
that is a best fit to given ground control points (1749).

Bug fixes:

- Handle the AWS extension mentioned in 1159. Note that this does not enable
writing directly to S3.
- A syntax error in the specification of a Python version marker for enum34 in
requirements.txt has been fixed.
- Several cases of memory leaks involving temporary in-memory datasets have
been fixed. The rasterio test suite now runs without leaving any datasets
open.
- The default mode for dataset sharing has been switch from ``sharing=True`` to
``sharing=False`` to better serve development of multithreaded applications
(1775).
- Tests of rasterizing invalid shapes now catch the warnings about shape
skipping.

Other:

- The AUTHORS file has been updated and is now sorted by name (first name
first) or GitHub username.

1.0.28

-------------------

- Coercion to ``int`` was forgotten in the block size guard introduced in
1.0.27 and code that passes string valued ``blockxsize`` and ``blockysize``
keyword arguments to ``rasterio.open()`` was broken (1769).  This has been
fixed in 1.0.28.
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant