inbo / niche_vlaanderen

Python package to run the NICHE Vlaanderen model
https://inbo.github.io/niche_vlaanderen/
MIT License
5 stars 2 forks source link

Pin rasterio to latest version 1.0.24 #256

Closed pyup-bot closed 5 years ago

pyup-bot commented 5 years ago

This PR pins rasterio to the latest release 1.0.24.

Changelog ### 1.0.23 ``` ------------------- - Break rio-calc output into chunks of user-specified size to constrain the amount of memory used (1668). - Attempts to set attributes of datasets opened in "r" mode now raise a custom DatasetAttributeError. This exception derives from both RasterioError and NotImplementedError, which maintains backwards compatibility (1676). - Block sizes are no longer guarded when creating untiled datasets (1689). - CRS objects are now hashable and equivalent CRS objects have the same hash value (1684). - Allow AWS regions to be specified no matter the signing of requests (1670). - Add links to API documentation from the Python quickstart guide. - Use "CRS.from_epsg({})" instead of "CRS.from_dict(init='epsg:{}')" as the representation for CRS objects that are completely described by an EPSG code. - Use GDAL's string parsing to get metadata item keys and values, which accommodates uncommon "KEY:VALUE" forms. ``` ### 1.0.22 ``` ------------------- - Add JPEG2000 to enums.Compression so that the compression of JP2 files can be reported (1654). - Remove mock import from compat and move to test code (1651). ``` ### 1.0.21 ``` ------------------- - Fix for bug in implementation of the pickle protocol and added support for Python's copy protocol (1643). ``` ### 1.0.20 ``` ------------------- - Fix for an unchecked NULL pointer introduced in 1.0.19 that could result in segmentation fault on import of rasterio._env on Linux when GDAL data files are not available (for example, with wheels as on PyPI). ``` ### 1.0.19 ``` ------------------- - Do not set GDAL_DATA and PROJ_LIB when data files can be found at their built in locations (1631). - Add linear_units property to CRS (1638). - Ensure that AWS_NO_SIGN_REQUESTS is sufficient for accessing public S3 datasets and that import of boto3 is not required (1637). - An out_dtype parameter has been added to DatasetReaderBase.read, enabling on-the-fly casting of raster values to the desired type (1637). This uses the same latent feature used to get support for "int8" data. - Restore pickle protocol for CRS, using WKT as state (1625). - Support for signed 8-bit integer datasets ("int8" dtype) has been added (1595). ``` ### 1.0.18 ``` ------------------- - Fix a regression reported in 1623. ``` ### 1.0.17 ``` ------------------- - Fix a regression in evaluation of CRS equality (1620). ``` ### 1.0.16 ``` ------------------- - A bug preventing GCPs from being created with new BufferedDatasetWriter instances (1600) has been fixed (1610). - A previously unreported bug preventing BufferedDatasetWriters from being opened in r+ mode has been fixed. - A regression in creating CRS objects from PROJ4 strings that include "+wktext" (1609) has been fixed. - Regressions in str representations of empty CRS objects and the handling of unreferenced datasets in rasterio._base have been fixed (1616). - GDAL seems to work best if GDAL_DATA is set as early as possible. Ideally it is set when building the library or in the environment before importing Rasterio, but for wheels we patch GDAL_DATA into os.environ when rasterio.env is imported. This resolves 1611. ``` ### 1.0.15 ``` ------------------- - Google cloud storage support was *not* in fact added in 1.0.14, but is present in 1.0.15. ``` ### 1.0.14 ``` ------------------- - The _CRS class has been refactored so that a WKT representation, rather than PROJ4 representation, is the canonical form. This resolves issues 1397 and 1587 specifically, and an entire category of issues discussed in https://rasterio.groups.io/g/dev/message/68. - Native support for Google Cloud Storage using "gs://" URLs has been added (1577). - On entering a dataset context (DatasetBase.__enter__) a new anonymous GDAL environment is created if needed and is entered. This makes `with rasterio.open(...) as dataset:` roughly equivalent to `with rasterio.open(...) as dataset, Env():`. This helps prevent bugs when datasets are created and then used later or are used in different scopes. ``` ### 1.0.13 ``` ------------------- - Fix a buffer dttype mismatch on Windows introduced in 1.0.12 (1579). ``` ### 1.0.12 ``` ------------------- - Rasterio's lower level I/O functions now take Py_ssize_t index arrays and will raise exceptions for type mismatches instead of swallowing the exceptions (1076). - The _boundless_vrt_doc function's background layer no longer needs an in-memory dataset and the performance regression noted in 1499 has been reversed. We've also found a performance improvement in masked boundless reads in the case that the source data is entirely valid. - The signature of the private _boundless_vrt_doc function in rasterio.vrt has changed. Its background keyword argument now takes an int or float, a new masked keyword argument has been added, and the function returns a unicode str instead of ascii-encoded bytes. - The copy and copyfiles functions of rasterio.shutil now raise an exception when the source and destination paths identify the same dataset (1569). ``` ### 1.0.11 ``` ------------------- - Prevent needless warning when making boundless reads with a fill value (1499). - The GDAL band cache is flushed at the top of build_overviews to fix 1497. - Options --gdal-data and --proj-data have been added to the rio-env command so that users of Rasterio wheels can get paths to set GDAL_DATA and PROJ_LIB environment variables. - The attempt to make GDAL and PROJ support file discovery and configuration automatic within methods of the CRS class has been reverted. Users must execute such code inside a `with Env()` block or set the GDAL_DATA and PROJ_LIB environment variables needed by GDAL. ``` ### 1.0.10 ``` ------------------- - Avoid segmentation fault when OSRGetAuthority* functions return null pointers, making Rasterio more robust when reading CRS that don't map perfectly to PROJ. - Ensure that GDAL and PROJ support files can be found in Rasterio wheels when we call CRS methods (1539). - Accomodate the Esri flavor of projection WKT (1537). - Add missing raster offsets and scales properties (1527). ``` ### 1.0.9 ``` ------------------ Bug fixes: - Delegate test of the environment for existing session credentials to the session class to generalize credentialization of GDAL to cloud providers other than AWS (1520). The env.hascreds function is no longer used in Rasterio and has been marked as deprecated. - Switch to use of botocore Credentials.get_frozen_credentials (1521). - Numpy masked arrays with the normal Numpy mask sense (True == invalid) are now supported as input for feature.shapes(). The mask keyword argument of the function keeps to the GDAL sense of masks (nonzero == invalid) and the documentation has been improved to communicate this (1517). - The defaults for WarpedVRT's `src_nodata` and `nodata` keyword arguments are no longer None, but are markers for the default behavior: inheritance of nodata values from the VRT's source dataset. Values of `None` for these keyword arguments means that the VRT does not inherit from the source and has no nodata value at all (1503). - WEBP has been added to the Compression enum. Exploitation of this new compression mode will require GDAL 2.4. - Rasterio now check for two AWS environment variables before creating a session (1494). - The ensure_env_with_credentials decorator which wraps rasterio.open will no longer clobber the credentials in a surrounding environment or seek credentials when they already exist (1507). - The comparison of CRS objects to dicts and strs that we pledged to remove at 1.0 has at last been removed (1492). ``` ### 1.0.8 ``` ------------------ Bug fixes: - Datasets contained in MemoryFile buffers are now opened in r+ or w+ mode instead of r or w. - The namedtuple _asdict method is overridden in BoundingBox to work around a bug in Python 3.4.3 (1486, 1488). This unblocks creation of manylinux1 wheels for Python 3.4. ``` ### 1.0.7 ``` ------------------ Bug fixes: - Use the non-resolving path form of files_inout_arg in rio-convert and rio-shapes (999). - Filling the empty regions of boundless reads was too slow in some cases and a faster solution has been found (1480). - Require cligj>=0.5 for compatibility with click 7.0. - Precisely specify CLI option and argument names for click 6.x and 7.0 compatibility. ``` ### 1.0.6 ``` ------------------ Bug fixes: - If the build_overviews method of a dataset is passed a list of factors that specify more than one 1x1 pixel overview (1333), Rasterio raises an exception. - Calling calculate_default_transform for large extents should no longer result in the out of memory error reported in 1131. The rio-warp command should also now run more quickly and with a smaller memory footprint. - We have a more general fix for the problem of filling the empty regions of boundless reads (1471). ``` ### 1.0.5 ``` ------------------ Bug fixes: - The fill value for boundless reads was ignored in Rasterio versions 1-1.0.4 but now applies (1471). - An invalid shortcut has been eliminated and Rasterio now produces a proper mask in the boundless masked read case (1449). - Loss of a row or column in geometry_window() and mask() has been fixed (1472). ``` ### 1.0.4 ``` ------------------ Bug fixes: - Boundless reads of datasets without a coordinate reference system have been fixed (1448). - A y-directional error in disjoint_bounds (1459) has been fixed. - Prevent geometries from being thrown near projection singularities (1446). - Missing --aws-no-sign-requests and --aws-requester-pays options added to the main rio command (1460). - Add missing bilinear, cubic spline, lanczos resampling modes for overviews (1457). - Raise ValueError if get_writer_for_driver() is called without a driver name. - Windows are now frozen so that they are hashable (1452). Refactoring: - Use of InMemoryRaster eliminates redundant code in the _warp module (1427, 816). - Generalize sessions to support cloud providers other than AWS (1429). ``` ### 1.0.3.post1 ``` ------------------------ This version corrects errors made in building binary wheels for 1.0.3. There are no bug fixes or new features in this version. ``` ### 1.0.3 ``` Bug fixes: - A regression in GeoJSON source handling in rio-rasterize (1425) has been fixed. - Rasterization of linear rings (1431) is now supported. - The input file handler of rio-rasterize has been changed so that it does not reject GeoJSON files (1425). - Linear rings have been added as acceptable input for rio-rasterize and other commands and functions (1431). ``` ### 1.0.2 ``` ------------------ Bug fixes: - The output of calculate_default_transform() can be fixed to output dimensions as well as to output resolution (1409). - In using rio-warp, the --src-bounds option can now override the bounds of the source dataset when --dimensions is used (1419). - Bounds of rotated rasters are now calculated correctly (1422). - A band indexing bug in reproject() (1350) has been fixed (1424). ``` ### 1.0.1 ``` ------------------ Bug fixes: - Bounding envelopes are densified at higher precision in transform_bounds to fix 1411. - Add LERC compression to enums.Compression (1412). - The reproject() function now passes dst_alpha properly to _reproject(), which unlocks materialization of warp destination alpha band masks (1417). - The --dimensions and --src-bounds options of rio-warp can be used together as expected (1418). ``` ### 1.0.0 ``` ------------------ There have been no changes since release candidate 5. ``` ### 1.0rc5 ``` ------------------- - C source files are now generated using Cython 0.28.3, which gives us support for Python 3.7 (1404, 1405). ``` ### 1.0rc4 ``` ------------------- - An integer overflow when multiplying the warp memory limit (1401) has been fixed. ``` ### 1.0rc3 ``` ------------------- - CRS based EPSG codes can now report that code using a new `to_epsg()` method (1288). - A regression in rasterio.warp.reproject has been reported (1395), confirmed, and fixed. ``` ### 1.0rc2 ``` ------------------- Deprecation: - The rasterio.vfs module has been removed. - Reading array data or masks from datasets opened in "w" mode is prohibited. - Property set_* methods of datasets have been removed. The appropriate properties should be used instead. For example, ``dataset.crs = "EPSG:4326"`` instead of ``dataset.set_crs("EPSG:4326")``. - Rasterio ignores creation options saved in the metadata of datasets by Rasterio versions < 1.0b1. ``` ### 1.0rc1 ``` ------------------- Bug fixes: - Internal Env() in `rasterio.open` has been replaced with an environment ensuring decorator (1009). The same decorator ensures that credentials are obtained when functions from `rasterio.shutils` are called. - Input file arguments for all CLI commands are now parsed and validated in a uniform manner (999). - Local loggers have all been changed to `getLogger(__name__)` in rasterio.rio module (1328). ``` ### 1.0b4 ``` ------------------ Bug fixes: - We now raise an exception when WarpedVRT is asked to add an alpha band and one already exists for the VRT. ``` ### 1.0b3 ``` ------------------ Bug fixes: - The warp memory limit configuration available in gdalwarp has been added to `reproject()` and `WarpedVRT`. - Avoid boundless reads when sampling pixels outside a dataset's extent (1249). - The logic behind rio-warp's --target-aligned-pixels has been factored into a new `aligned_target()` function in the warp module to help resolve 853. - A regression in the VSI path of some zip:// URLs has been fixed (1377). - Transform, coordinate reference system, and ground control points are properly set when opening a dataset in w+ mode (1359. ``` ### 1.0b2 ``` ------------------ Breaking changes: - `boundless=True` reads from warped VRTs are disallowed. Instead, VRTs should be constructed so that only data bounded by their extents is read. In exchange, boundless reads for non-VRT datasets are faster and more robust. Upcoming deprecations: - Comparison of CRS objects to str or dict is deprecated. New features: - Added `out`, `out_shape`, `window`, `resampling` keyword parameters to the `dataset_mask` method (1298). - CRS.from_string can now take WKT strings as input. Bug fixes: - Tests have been added to confirm that reading from a WarpedVRT will use the source dataset's masks and overviews. - Expectations of warp tests that use resampling algorithms other than nearest neighbor have been corrected. - WarpedVRT.crs now returns a CRS, not a str. - A Windows-crashing bug in the _warp module has been fixed (1356). ``` ### 1.0b1 ``` ------------------ Breaking changes: - The signatures of all Dataset constructors have changed: these method now take instance of ParsedPath or UnparsedPath from rasterio.path and do not take strings. - The signatures of get_writer_for_path and get_writer_for_driver have changed in the same way. - Whether to print GeoJSON feature sequences or a GeoJSON feature collection from rio-shapes is now controlled by a ``--sequence/--collection`` option. A sequence is now the default (927). - Comparing empty ``CRS`` objects returns ``True`` (1034). - Deprecated window functions have been removed from the rasterio module. Their replacements are in rasterio.windows (1115). - The deprecated r- mode has been removed from ``rasterio.open()`` (1116). - A bytearray is no longer allowed as input to the ``MemoryFile`` constructor. Users must convert byte arrays to ``bytes before calling ``MemoryFile()``. - Signatures of private functions and classes in _features, _warp, _io have been changed to always take instances of Affine instead of GDAL geotransform arrays (796). - Calling `rasterio.Env()` no longer sets hidden default config options CHECK_WITH_INVERT_PROJ=True and GTIFF_IMPLICIT_JPEG_OVR=False (1011). - Rasterio no longer saves creation options in metadata on created datasets (1332). A number of deprecated features have been removed (1319). - In the rasterio.open function: we have removed 'affine' as an alias for 'transform'. - In the _base.DatasetBase class, and thereby all dataset objects: we have removed the mask_flags and affine properties. Instead, users must use the mask_flag_enums and transform properties. - In the _io.DatasetReaderBase class, and thereby all dataset objects: we have removed the read_mask method. Users must use the read_masks method. - In the features.rasterize function: we have removed 'replace' and 'add' as aliases for ``MergeAlg.replace`` and ``MergeAlg.add``. - In the profiles.Profile class: we have removed 'affine' as alias for 'transform' and have removed the `__call__` method. The class is no longer callable. Users must use the mapping protocol to copy and update profiles. - In the windows.WindowMethodsMixin class, and thereby all dataset objects: we have removed the 'boundless' keyword arg from the window and from_bounds methods. - In the windows.Window class: we have removed the num_cols and num_rows properties, the __getitem__ method, and the from_offlen and from_ranges class methods. Upcoming deprecation: - The rasterio.vfs module and its functions are being replaced by new functions in rasterio.path. - Reading array data or masks from datasets opened in "w" mode will be prohibited in Rasterio 1.0. We are warning about this now (1309). - Property set_* methods of datasets will be deprecated in 1.0. The appropriate properties should be used instead. For example, ``dataset.crs = "EPSG:4326"`` instead of ``dataset.set_crs("EPSG:4326")``. - Rasterio 1.0 will ignore creation options saved in the metadata of datasets by Rasterio versions < 1.0b1. Users can opt in to this behavior now by setting RIO_IGNORE_CREATION_KWDS=TRUE in their environments. New features: - New ParsedPath and UnparsedPath classes have been added to improve input file handling and validation. The existing parse_path and vsi_path functions have been rewritten to use these new classes and have been moved to the new rasterio.path module. The signature of rasterio.open has not been changed and users of Rasterio will be unaffected. - set_band_unit and set_band_description methods have been added to dataset writers/updaters to support rio-edit-info (1344). - A tools module has been added to collect file-based functions and supporting classes (1300). - ``rasterio.features.dataset_features()`` has been extracted from rio-shapes (1282, 1286). Bug fixes: - The block_shapes and files properties of datasets now return lists instead of tuples. - The ``--nodata`` option of rio-merge is now passed to the output file (1345). - The precision keyword arguments for methods in the windows and transform modules now default to None, which means no rounding of values by default (1139). - The pixel_precision keyword arguments for methods in the windows module now default to None (1143). - Rasterio functions and methods, even the private ones, now always take instances of Affine as transform parameters (796). - Importing the features, fill, io, and warp modules would set the CHECK_WITH_INVERT_PROJ=True and GTIFF_IMPLICIT_JPEG_OVR=False config options in a hidden way. This has been fixed in 1340. - Add Debian data directory to set of well-known paths to search (1337). - Pass precision parameter from ``merge`` to ``from_bounds`` (1307). - Added the missing w+ mode (1309). - Rotated datasets are now masked properly (1240, 1278). - Geometry collections are flattened in ``rasterize`` to work around incidental holes created by GDAL (1253, 1274). - Add missing support for Python geo protocol in features module (1268, (1269). - ``mask()`` now takes the ``indexes`` keyword parameter that is common elsewhere in the package (1224, 1225). - Sharing of dataset handles may be disabled for multithreaded applications using the new `sharing` keyword argument of `rasterio.open` (1260). - ``WarpedVRT()`` properly sets a CRS on the internal VRT handle when that VRT is produced by ``GDALCreateVRT()`` (1283). ``` ### 1.0a12 ``` ------------------- New features: - ``rasterio.open()`` now accepts URLs with GET parameters (1121). - Specific drivers and options can be used in ``rasterio.open()`` (1000, 1158, 1196). - ``rasterize()`` now supports GDAL's 'add' algorithm (1195). - GDAL version checking has been consolidated and improved (1210). Bug fixes: - Pad boundless read VRTs so we don't overflow due to rounding (1184). - Boundless reads of WarpedVRTs are enabled by setting an effective crs (1188). - Raise ValueError when invalid width/height are passed to the ``InMemoryRaster`` constructor (1144, 1194). - GDAL errors that are turned into Rasterio exceptions are no longer also sent automatically to the logger. They may, of course, be logged by user code. - Raster width and height were swapped in ``geometry_window()`` (1200). ``` ### 1.0a11 ``` ------------------- Breaking changes: - ``rasterio.copy()`` moved to ``rasterio.shutil.copy() (1173). - ``DatasetBase.colorinterp`` is now a setter/getter that operates on a sequence of ``ColorInterp.<enum>`` in band order (1134). New features: - Addition of ``rasterio.shutil.delete()`` and ``$ rio rm`` for deleting datasets (929). - Addition of ``rasterio.shutil.exists()`` for determining if a dataset exists (1173). - Addition of ``rasterio.shutil.copyfiles()`` to copy files associated with a datset from one location to another (1173). - Allow setting band color interpretation in a ``set_colorinterp()`` method and in ``$ rio edit-info --colorinterp`` (1133). Bug fixes: - Reprojection of numpy arrays using GCPs has never worked due to faulty code, but has been fixed (1166, 1171). - A circular import situation has been resolved by moving dataset mixin classes from ``rasterio.io`` to ``rasterio.windows`` and ``rasterio.transform`` (1174, 1173). - Prevent a segmentation fault in ``rasterio.features.rasterize()`` by guarding against unsupported GeoJSON input (1172, 1176). ``` ### 1.0a10 ``` ------------------- Breaking changes: - In the GeoJSON output of rio-blocks, the windows are now JSON representations of the ``Window`` class (1074). - The ``rasterio.windows.Window`` class no longer derives from ``tuple``. Comparisons like ``Window(0, 0, 1, 1) == ((0, 1), (0, 1))`` are no longer possible. Instead, call the ``.toranges()`` method of the former or coerce the latter using ``Window.from_ranges`` (1074). - The ``rasterio.windows.from_bounds`` function now always returns unbounded, meaning uncropped, Windows. For example, if given a bounding box entirely to the west and north of the geotransform's origin, the result will be a Window entirely to the left and above the dataset's row and column origin. Passing a ``boundless`` keyword argument to this function will result in a warning. - The ``TransformMethodsMixin.ul`` method, deprecated since 0.36, has been removed (1100). New features: - Float precision read/write windows are now supported throughout Rasterio (1074). - Use of old style range tuples as windows is deprecated and warned against (1074). - Addition of dataset ``block()`` method (1077). - Added access to subdatasets, both in the API and CLI (see `rio info --subdatasets`) (1127). Bug fixes: - We always reacquire the GIL when GDAL calls the rasterio logging error handler (1103, 1104). - Initialization of an unneeded array, sometimes contributing to memory exhaustion, has been eliminated (1131, 1132). - Rasterio's boundless reading has had a compositing bug. We are resolving it by using a VRT internally and relying upon the VRT's windowing and compositing logic (1161). - AWS credentials set in an ``Env`` are no longer clobbered by credentials from a default boto3 session inside ``rasterio.open`` (1075). - NaN can now be used as a nodata value in ``merge`` and when setting nodata from `rio edit-info` (1160). ``` ### 1.0a9 ``` ------------------ Breaking changes: - Removed `**options` argument from `rasterio.warp.transform()`. Transformer options should be set explicitly inside the currently active `rasterio.env.Env()`(1010). This argument was initially added in `1.0a1`. - The function `transform_geom()` now always splits geometries at the anti- meridian (1024). - The `crs` property of a dataset is now `None` instead of `CRS()` when the dataset's coordinate reference system is undefined (1057). New features: - Enable setting and getting `GDAL_CACHEMAX` (1042). - Integer config option values are now properly encoded and decoded (1042). - A `from_wkt()` CRS constructor has been added (1070). - Targeting aligned pixels in rio-warp (941). - A new `WarpedVRT` class that surfaces GDAL's warp-on-demand VRT features. No XML editing is required (1071, 1029). Bug fixes: - `dtypes.get_minimum_dtype()` now returns proper value for uint* types (1064). - Rasterio now uses `OSRRelease()` to avoid destroying shared spatial reference system objects (1031). - GDAL_SKIP and GDAL_DRIVER_PATH options, when needed, are now set before driver registration (1001). - A failure of reprojection to an array when source dataset bands have an index higher than 1 has been fixed (1056). ``` ### 1.0a8 ``` ------------------ Bug fixes: - Secrets kept in GDAL config options could have been leaked via the Python logger. AWS keys and tokens have always been redacted, but other options like GDAL_HTTP_USERPWD were not. Logging of GDAL config options has been removed. - Use of Rasterio with Python threads has not been well tested in previous versions and a bug (986) involving shared GDAL environment state was found. Rasterio now uses thread local variables to track GDAL environment state and uses the appropriate GDAL API functions to isolate the environments of child threads from each other while permitting inheritance from the main Python thread (993, 996, 997). Tests using both `ThreadPoolExecutor` and `ProcessPoolExecutor` have been added to guard against regresion. ``` ### 1.0a7 ``` ------------------ Roses are red. Irish say "feck." Calling conventions are a pain in the neck Bug fixes: - Use __stdcall for GDAL callbacks on Windows (935, 951). - Tear down Env more carefully (968, 969), taking particular care not to reinstate default options when a child environment is exited. - Always close open file handles when exiting context managers returned by `rasterio.open()` when file objects are given as arguments (973). - Properly append, not extend, shim module to extension list (975). ``` ### 1.0a6 ``` ------------------ Bug fixes: - Order of input datasets is preserved by rio-calc (947, 965). New features: - `MemoryFile()` can now take a file object parameter or bytes. The file should be opened in binary mode and its contents are read immediately into bytes. This form of argument is for convenience only; the provided file is not accessed in any other way. - A `ZipMemoryFile` class derived from `MemoryFile` has been added. It is created from a sequence of bytes representing a zip file. Its `open()` method can take a path, allowing access to files within the zip file. - For convenience of users, Rasterio's `open()` function now takes Python file objects as well as filenames and URLs (964). These file objects have their contents read into `MemoryFile` instances within the `open()` call, so this feature is equivalent to calling `MemoryFile(fp).open()`. Refactoring: - GDAL/OGR function definitions consolidated in gdal.pxi (949). - Shim APIs have been created to provide support for GDAL 2.0 and 2.1 features that may be absent in a system's GDAL installation. Packaging: - Shim API C modules are included in source distributions. ``` ### 1.0a5 ``` ------------------ - New binary wheels using version 1.2.0 of sgillies/frs-wheel-builds. See https://github.com/sgillies/frs-wheel-builds/blob/master/CHANGES.txt. ``` ### 1.0a4 ``` ------------------ New features: - Geographic bounds designated by a `--geographic` option may now be passed to `rio clip` (932). - The `rio edit-info` command's new `--unset-nodata` option can be used to delete a dataset's nodata value (510). Bug fixes: - Passing a `--co nodata=null` option to CLI commands will create datasets without any nodata value set. The `--co` option name follows GDAL's command line utilities. A `--profile` alias for this option has also been added. ``` ### 1.0a3 ``` ------------------ New features: - The `DatasetBase` class is now surfaced in `rasterio.io`. This is not too promote the practice of subclassing `DatasetBase` but to help users that would like to use type annotations (925) or make `isinstance()` assertions. - Ground control points may be read from and written to datasets (when the format permits) and may be used when reprojecting arrays with `reproject()` or on the command line with rio-warp (203, 916). A new rio-gcps command has been added, it can print a dataset's GCPs as GeoJSON Feature sequences or FeatureCollections. - A `BytesIO` like `MemoryFile` class has been added for an improved Python interface to GDAL's in-memory filesystem (899, 925). - Error handlers are pushed to GDAL on entering a GDAL environment and popped when exiting (876, 902, 907). - The GIL is released when calling GDAL's ChunkAndWarp() (912). Bug fixes: - transform_geom() would fail when encountering geometries with z coordinate values, but now handles them properly (922, 923). - show_hist() failed when nans were present in data (913) and this has been fixed with the use of nanmin() and nanmax() in 914. ``` ### 1.0a2 ``` ------------------ New features: - A new `mask_flag_enums` attribute has been added to dataset objects (881). - Support for complex data types has been enabled (714). Bug fixes: - Reduce log level when trying to identify a CRS as an EPSG code (905). - Acquire GIL when executing the error handler (903). - Raster data I/O involving ndarray views has now been corrected (900, 901). - Support for single band index in `sample()`, which was advertised in the docstring but not implemented, has been added (862). - The rio-overview CLI command no longer opens datasets in 'r+' mode when listing overviews (with the `--ls` option) (885). - Implicit JPEG overviews for JPEG-compressed GeoTIFF files have been disabled in Rasterio's default environment, which means decimation is slower but shows fewer JPEG compression artifacts (884). Refactoring: - Data type-specific functions such as `io_uint8()` have been eliminated from the private `_io` module and replaced by generic `io_band()`, `io_multi_band()`, and `io_multi_mask()` functions (901). ``` ### 1.0a1 ``` ------------------ Documentation: - New introduction, guidance on switching from GDAL's Python bindings and much more. Breaking changes: - The sense of rio-warp's `--bounds` options has been changed from source bounds to destination bounds (549). - Extracted Rasterio's public dataset classes into `rasterio.io` (743). - All Rasterio functions with will raise an exception if a GDAL style geotransform sequence is passed as `transform`. - The `affine` attribute of dataset objects is deprecated. - The `affine` member of dataset `profile` has been removed. - The `rasterio.drivers()` context manager has been removed. It is replaced by `rasterio.Env()`. - The `read_band()` method of dataset objects has been removed. It is replaced by `read()`. - The `read_mask()` method of dataset objects has been removed. It is replaced by `read_masks()`. - `get_data_window()`, `window_union()`, `window_intersection()`, and `windows_intersect()` have been removed from the `rasterio` module. They have been moved to `rasterio.windows`. - The `rasterio.tool` module has been removed. Its functions have been relocated to `rasterio.plot` and `rasterio.rio.insp`. - The `rasterio.tools` module has been removed. Its functions have been relocated to `rasterio.mask` and `rasterio.merge`. - The `rasterio.warp.RESAMPLING` enum has been replaced by `rasterio.warp.Resampling`. - The signatures of `rasterio.features.sieve()` and `rasterio.features.rasterize()` have been changed: the `output` argument is deprecated and is replaced by `out`. - In the CLI, the `-o` option no longer causes existing output files to be overwritten (751). New features: - Added `descriptions` and `units` attributes to dataset objects, exposing the descriptions and units of dataset bands (850, 851). - Creation of a `Window` class to abstract Rasterio's window selection tuples (759). - Performance of `reproject()` has been increased by using an approximate transformer as with gdal_translate (569). - `Band` objects may now represent one or more dataset bands and multiband reprojection of imagery kept in a GDAL dataset is now possible (569). Bug fixes: - `rasterize()` now checks that the `out_shape` is 2D before continuing (847). - Named AWS credential profiles are now properly set up up in the main CLI command's environment (838). Refactoring: - In the CLI, a GDAL environment is now configured by the top level command and then passed in a Click context to subcommands (841). - Removal of redundant copies of GDAL geotransform detection code (828). - Window methods of dataset objects have been extracted into functions of a new `rasterio.windows` module (803). Known bugs: - `warp.project()` and rio-warp may lose one or more columns of data when resampling to lower resolution (853). ``` ### 0.36.0 ``` ------------------- Bug fixes: - rio-merge now copies colormaps to output files (774, 778). - The correct `--force-overwrite` and `--output` usage is now provided in the case of a `FileOverwriteError` (750). - Passing undefined CRS to `reproject` no longer causes a segfault (749). - GDAL's invert projection check is always used by default in reprojecting (780). - Forward slashes are always used for GDAL VSI paths (`/vsizip/` etc) instead of `os.path.sep` (754, 789). Documentation: - Contributing guidelines have been added (701). - Axis order has been corrected in image processing doc (700). - A framework for comprehensive documentaton has been created (713, 723, 729, 737, 738, 739, 740, 748, 756, 760). New features: - `--src-nodata` and `--dst-nodata` options for rio-warp (746). - `read()` and `read_masks()` take an `out_shape` argument for decimated reads (761). - Color interpretation of bands added to rio-info output (766). - Dataset objects have a new per-dataset mask property: `dataset_mask` (716). - Utility functions for rehaping and plotting arrays have been added to `rasterio.plot` (718, 765). - New `CRS` class like our old crs dicts, but with methods attached (736, 770). Packaging: - setup.py has new install extras: '[plot]', and '[all]' (744). Refactoring: - We've standardized on `import numpy as np` (727, 738, 740) throughout the project. - The `five` module has been renamed to `compat` (745). Testing: - More coverage, more xfailing tests to mark known bugs (742, 762, 753, 773, 782). ``` ### 0.35.1 ``` ------------------- - Bug fix: restore support for URI-like GDAL dataset names such as 'NETCDF:foo:bar' (695). - Bug fix: ensure GDAL environment is initialized for `transform_bounds()` as well as the other functions in `rasterio.warp` (694). In implementation, we have done this with a function decorator. ``` ### 0.35.0.post1 ``` ------------------------- - Bug fix: added rasterfill.cpp to MANIFEST.in so it is included in source distributions no matter the build system's GDAL version (690). ``` ### 0.35.0 ``` ------------------- - Requirements: affine requirement upped to >=1.3.0 (430). - Bug fix: passing an empty JSON object to `crs.from_string()` raises CRSError instead of passing silently (628, 642). - Bug fix: GDAL errors are no longer written to stderr; we no longer undefine error handlers (649, 658). - Bug fix: the Rasterio library only configures a NullHandler, applications must configure their own handlers to see Rasterio's log messages (649, 658). - Bug fix: AWS credentials are only sought by Rasterio when s3:// URLs are passed to `rasterio.open()` (650, 665). - Bug fix: window comparison functions now raise a ValueError when windows do not intersect instead of returning an empty sequence (651, 656, 662). - Bug fix: upgrade from deprecated Numpy usage in `read()` by explicitly converting window offsets to ints (678, 680). - Refactoring: window comparison functions may now take a variable number of windows as positional arguments in addition to a sequence of windows. - Refactoring: logging is much finer grained now because we've changed to the `logger = logging.getLogger(__name__)` pattern throughout Rasterio (649, 658). - Refactoring: replaced old `drivers()` implementation with a new `Env` class and more consistent usage of it through the library and command line interface (665, 682). ``` ### 0.34.0 ``` ------------------- - Bug fix: S3 support was found missing in several of the CLI commands mentioned below. This is corrected in 0.34 and we have the tests to prove it (633). ``` ### 0.33.0 ``` ------------------- I played a lot of One-on-One on the computers of the mid-1980s and dedicate this release to the best 33 of all time, Larry Bird. - Bug fix: YCbCr JPEG-in-TIFF files no longer break rio-info (617, 618). - New feature: the ability to read dataset metadata and imagery from S3 objects is an extra feature that can be installed like this `pip install -U rasterio[s3]`. AWS Credentials are handled by boto3 (and botocore) and so can be provided by environment variables, session arguments, `~/.aws/credentials` file, or EC2 instance metadata. S3 access is enabled in the following CLI commands: rio-clip, rio-info, rio-insp, rio-bounds, rio-shapes, rio-sample and may be expanded in future versions. S3 objects are identified on the command line and in API functions by URIs following the pattern `s3://bucket/object`. Extra thanks to Rob Emanuele and Even Rouault for helping on this one (551, 610). - New feature: new and improved documentation coming soon to a website near you (588). - Refactoring: commands for the rio CLI have been moved to their own modules so that they're easier to find (594). - Refactoring: we've changed our primary pattern for checking errors set by GDAL API functions (600). ``` ### 0.32.0.post1 ``` ------------------------- - No changes to the library in this post-release version, but there is a significant change to the distributions on PyPI: to help make Rasterio more compatible with Shapely on OS X, the GDAL shared library included in the macosx (only) binary wheels now statically links the GEOS library. See https://github.com/sgillies/frs-wheel-builds/issues/5. ``` ### 0.32.0 ``` ------------------- - Bug fix: geometry factories and warp operations are properly deallocated in normal and error situations (494, 568). - Bug fix: a code block in rio-merge's help has been better formatted (535). - Bug fix: the rasterio.vfs module is imported in __init__.py to assist cx_Freeze (536). - Bug fix: old usage of `read_band()` has been replaced by `read()` throughout the docs (537). - Bug fix: accidental overwriting of existing files is now prevented by the `resolve_inout()` function in `rasterio.rio.helpers`. Commands that take one or more input files plus an output file should use this helper and force overwrite either by using a `--force-overwrite` option or by using the `-o output` option, which implicitly forces overwriting (539, 540). - Bug fix: missing support for NaN nodata value in rio-warp added (542, 544). - Bug fix: missing documentation of `rasterize()`'s `fill` parameter added (543). - Bug fix: raster dataset bounds are densified before transforming so that the projected output of rio-bounds is correct (556, 557). - Bug fix: add 'line' to the `Interleaving` enum (560). - Bug fix: convert `matplotlib` import errors to a `RuntimeWarning` (562). - Bug fix: deallocate CPL strings in error cases (573). - Bug fix: non-invertable affine transforms are prevented using `__future__.division` *580). - Bug fix: rio-warp clips output regions to the limits of the destination CRS unless disabled with `--no-check-invert-proj` (597). - New feature: the functionality previously available only in rio-mask is now available as `rasterio.tools.mask.mask()` (552). - New feature: raster bounds are used to label axes in `rasterio.tool.show()` (553). - New feature: GDAL's suggested warp bounds algorithm is wrapped and exposed for use in `warp()` and rio-warp (574). - Breaking change: align rio-warp's `--bounds` option with rio-merge's: these are in destination CRS units (541, 545). ``` ### 0.31.0 ``` ------------------- - Warn when rasters have no georeferencing and when the default identity transform will be applied by GDAL (524, 527). - Build OS X wheels using numpy>=1.10.2 (529). - When reading image windows in previous versions, given a window with ((row_start, row_stop), (col_start, col_stop)) if the stop index is greater than the width/height the start index effectively shifts as well. This can manifest itself in pixel misalignment if, e.g. you read block windows with a bit of padding to avoid edge effects. Now the window offsets are determined solely by row_start and col_start.(532, 533). ``` ### 0.30.0 ``` ------------------- - Added window utilities: get_data_window(), window_union(), window_intersection(), windows_intersect() (496, 506). - Warn when an alpha band that might provide a dataset mask is shadowed by a nodata attribute (508, 523). - IPython is not the default interpreter for rio-insp and the documentation saying it is has been corrected (518). - Guard against creating datasets with block sizes larger than the dataset width and height. Such datasets are semi-broken and are likely to be mangled when read (521). - Refactor of the `rasterio.features` tests (522). ``` ### 0.29.0 ``` ------------------- - Fill masked arrays in rio-calc when using Numpy 1.10.x as well as with 1.8.x (500). - When a raster dataset is not tiled, blockxsize and blockysize items are no longer included in its `profile` property. This prevents meaningless block size parameters from stripped, not tiled, datasets from being used when creating new datasets (503). ``` ### 0.28.0 ``` ------------------- - Ensure that tools module is packaged (489, 490). The rio-merge command was broken in 0.27.0 and is restored to working order in version 0.28.0. - Add `precision` keyword argument to `index()` method (492). ``` ### 0.27.0 ``` ------------------- - Ensure local uniqueness of the rio-shapes feature ids (479). - Surface compression and interleaving as dataset properties and in rio-info (481). In the module, these are enums (`enums.Compression` and `enums.Interleaving`); the values of the enums correspond to GDAL terms (i.e, "DEFLATE") and the names are what surface in the CLI ("deflate"). - Change get_window() and DatasetReader.window() to return a window guaranteed to cover the input bounding box (464, 485). - Bug fix for improperly computed transforms of output file in tools.merge and rio-merge (485). - More robust determination of dataset nodata values. In particular, the absence of a nodata value is much more clear: dataset.nodata should never return an out of range value when there is no nodata value, it should always return `None` (485). ``` ### 0.26.0 ``` ------------------- - Add dependency on click-plugins, a new project that takes over the plugin duties formerly assigned to cligj (426). - Change rio-stack's --photometric=RGB option to --rgb (429). Other photometric interpretations should be assigned using the --co option added in 0.25.0. - Allow for ndarray-like objects (like xray arrays), not just numpy arrays, in warp() and elsewhere (436). - Add --rgb flag to rio-convert (439). - Fixed resampling algorithm enumeration bug (441). - Colormap handling was made too strict in 0.24.1 and has been made more forgiving. Callers are now warned when alpha values will be ignored instead of receiving exceptions (444). - Add a .gitignore (445). Better late than never! - Add a checksum() method to base dataset class and checksums to output of rio-info (449). ``` ### 0.25.0 ``` ------------------- - New rio-warp command (264, 404). - Add driver-specific creation options (`--co`) to many commands (379, 403). - Add support for arbitrary CRS output to rio-bounds (385, 392). - Add support for getting values from template files in rio-edit-info with a `--like` option (387, 399). - New rio-overview command (388, 408). - Fix rounding error in extracting shapes from decimated data (391). - Remove creation options from meta property and move them to new profile property (405, 406). - Fix for bug in passing affine keyword argument to open() in 'w' mode (411). - New rio-convert command (414, 417), a replacement for gdal_translate with more features to come by 1.0. - Improved error messages when seeking a driver when none are registered (415). - Replace read_band() with read() in the rio-insp banner (418). - Fix an indexing error that prevented window() and window_bounds() from round-tripping properly (419). ``` ### 0.24.1 ``` ------------------- - Improve safety of the sample() generator (378). - Provide array masking features missing from Numpy<1.9 (380, 389). - Guard against attempts to write RGBA colormap entries to TIFFs, which the format can not support (394, 395). ``` ### 0.24.0 ``` -------------------408). - New rio-edit-info command (358). - Add option to package GDAL data in distributions (362). - Remove check that the path given to `rasterio.open()` in read mode is an existing file, turning on some non-file formats (364). - Addition of a `window_bounds()` method to dataset objects (366). - Delegation of command exiting to Click (367). ``` ### 0.23.0 ``` ------------------- - Redesign CLI as dynamically loaded entry points (346). ``` ### 0.22.0 ``` ------------------- - Return masked arrays in the boundless read case (338). - Add -o/--output option to rio-calc,merge,stack,mask,shapes,rasterize (333). ``` ### 0.21.0 ``` ------------------- - New rio-mask command (323). - Masking bug fix for rio-shapes (335). - Addition of single valued nodata property to be used instead of nodatavals (329). ``` ### 0.20.0 ``` ------------------- - Switch read() default to masked=False (300, 317). - Fix documentation of masking throughout module (305). - Remove option for in place nodata filling (309). - Enhancements for valid data footprint extraction in rio-shapes (316, 318). ``` ### 0.19.1 ``` ------------------- - Add missing blockxsize, blockysize, tiled keywords (301). ``` ### 0.19.0 ``` ------------------- - New rio-calc command (175). - Added a file band shortcut to fillnodata() (271). - Added fillnodata() to rio-calc functions (277). - New approach to masking arrays on read that conforms more closely to GDAL's RFC 15 (282, 284, 285). - New read_masks() method (284). - Deprecation of read_mask() and read_band (284). - New affine transform factory functions from_origin(), from_bounds() (287). - Improve correctness of indexing and rio-merge logic (288, 290). ``` ### 0.18.0 ``` ------------------- - New rio-rasterize command (187). - New window_transform method (215). - New sample method and rio-sample command (251, 275). - New fillnodata function based on GDAL's rasterfill.cpp (253). - Speedups for _features and _warp modules (259). - Enhancements for rio-info: 'res', 'lnglat', and 'stats' (269, 270). ``` ### 0.17.1 ``` ------------------- - Properly handle metadata tags with values that contain "=" (254). ``` ### 0.17.0 ``` ------------------- - Enhancements to rio-merge: relaxation of same-extent and same-resolution constraints, addition of --bounds and --res options (242, 247). - Data files in support of binary wheels (239). - Fix for reading bands with undefined nodata (237, 240). ``` ### 0.16.0 ``` ------------------- - More graceful, slice-like handling of windows (191). - Addition of optional z coordinate to warp.transform() (199). - Relax excessively strict transform guard, allowing translation of rasters with no georeferencing (210). - Removal of setuptools from the package's install_requires (222). ``` ### 0.15.1 ``` ------------------- - Fix incorrect use of output.dtype (196). ``` ### 0.15 ``` ----------------- - Support for more data types in seive() (159). - Handle unexpected PROJ.4 values like "+no_defs=True" (173). - Support for writing PNG, JPEG, etc using GDALCreateCopy (177). - New rio-stack command (180). - Moved rio CLI main entry point to rasterio/rio/main:cli. - Add rio-env command and --version option to rio. - Make -f and --format aliases for --driver in CLI options (183). - Remove older rio_* scripts (184). - `out` keyword arg supercedes `output` in rasterio.features (179). ``` ### 0.14.1 ``` ------------------- - Allow update of nodata values in r+ mode (167). ``` ### 0.14 ``` ----------------- - Fixed tag update crasher (145). - Add --mask and --bidx options to rio shapes (150). - Faster geometry transforms and antimeridian cutting (163). - Support for more data types in shapes() and rasterize() (155, 158). - Switch to Cython 0.20+ for development (151). ``` ### 0.13.2 ``` ------------------- - Add enum34 to requirements (149). - Make rasterize() more robust (146). - Pin Cython>=0.20 and Numpy>=1.8 (151). ``` ### 0.13.1 ``` ------------------- - Read unprojected images with less flailing (117). ``` ### 0.13 ``` ----------------- - Add single value options to rio info command (139, 143). - Switch to console scripts entry points for rio, &c (137). - Avoid unnecessary imports of Numpy in info command, elsewhere (140). ``` ### 0.12.1 ``` ------------------- - Add missing rasterio.rio package (135). ``` ### 0.12 ``` ----------------- - Add --mercator option for rio bounds (126). - Add option for RS as a JSON text sequence separator (127). - Add rio merge command (131). - Change layout of tests (134). ``` ### 0.11.1 ``` ------------------- - Add --bbox option for rio bounds (124). ``` ### 0.11 ``` ----------------- - Add rio shapes command (115). - Accept CRS strings like 'EPSG:3857' (116). - Write multiple bands at a time (95). ``` ### 0.10.1 ``` ------------------- - Numpy.require C-contiguous data when writing bands (108). ``` ### 0.10 ``` ----------------- - Add rio bounds command (111). - Add rio transform command (112). ``` ### 0.9 ``` ---------------- - Add meta and tag dumping options to rio_insp. - Leave GDAL finalization to the DLL's destructor (91). - Add pad() function (84). - New read() method, returns 3D arrays (83). - New affine attribute and AffineMatrix object (80, 86). - Removal of rasterio.insp script (51). - Read_band() is now a special case of read() (96). - Add support for multi-band reprojection (98). - Support for GDAL CInt16 datasets (97). - Fix loss of projection information (102). - Fix for loss of nodata values (109). - Permit other than C-contiguous arrays (108). ``` ### 0.8 ``` ---------------- - Add rasterize(), the inverse of shapes() (45, 62). - Change the sense of mask for shapes(). Masks are always positive in rasterio, so we extract shapes only where mask is True. ``` ### 0.7.3 ``` ------------------ - Fix sieve() bug (57). ``` ### 0.7.2 ``` ------------------ - Add rio_insp, deprecation warning in rasterio.insp (50, 52). - Fix transform bug in shapes() (54). ``` ### 0.7.1 ``` ------------------ - Source distribution bug fix (48). ``` ### 0.7 ``` ---------------- - Add a Band object, providing a shortcut for shapes() and sieve() functions (34). - Reprojection of rasters (12). - Enhancements to the rasterio.insp console: module aliases, shortcut for show(). - Add index() method. - Reading and writing of GDAL mask bands (41). - Add rio_cp program. - Enable r+ mode for GeoTIFFs (46). ``` ### 0.6 ``` ---------------- - Add support for dataset and band tags (32). - Add testing dependence on pytest (33). - Add support for simple RGBA colormaps (34). - Fix for a crasher that occurs when a file is sent through a write-read revolving door. - New docs for tags and colormaps. ``` ### 0.5.1 ``` ------------------ - Add mask option to shapes() function (26). - Add rasterio.insp interactive interpreter. ``` ### 0.5 ``` ---------------- - Access to shapes of raster features via GDALPolygonize (20). - Raster feature sieving (21). - Registration and de-registration of drivers via context managers (22). ``` ### 0.4 ``` ---------------- - Add nodatavals property (13). - Allow nodata to be set when opening file to write (17). ``` ### 0.3 ``` ---------------- - Drop six dependency (9) - Add crs_wkt attribute (10). - Add bounds attribute and ul() method (11). - Add block_windows property (7). - Enable windowed reads and writes (6). - Use row,column ordering in window tuples as in Numpy (13). - Add documentation on windowed reading and writing. ``` ### 0.2 ``` ---------------- - Band indexes start at 1 (2). - Decimation or replication of pixels on read and write (3). - Add rasterio.copy() (5). ``` ### 0.1 ``` ---------------- - Reading and writing of GeoTIFFs, with examples. ```
Links - PyPI: https://pypi.org/project/rasterio - Changelog: https://pyup.io/changelogs/rasterio/ - Repo: https://github.com/mapbox/rasterio