This is the first 1.4 beta release containing all the API additions for 1.4.0. There are known bugs which may still be fixed before the first release candidate and some API additions may be removed if necessary.
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()
, andupdate_stats()
methods have been added to replace the deprecatedstatistics()
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()
andstack()
has been added (#3130). - The new stack tool and the existing CLI command now have the same bounds and resolution behavior of
merge()
andrio 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()
andmerge()
have been added (#3073, #3076). This constrains memory use as originally intended.
Packaging
Wheels for Python 3.13 are not yet available.
- PyPI wheels include GDAL 3.9.1 and curl 8.8.0.
Other changes
- Enable support for extra dtypes in
features.shapes()
: int8, float64 (#3125).