------------------
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).