forked from rasterio/rasterio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.txt
1972 lines (1604 loc) · 78.2 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes
=======
1.3.0 (TBD)
-----------
1.3b2 (TBD)
-----------
Changes:
- The merge tool has new "sum" and "count" merge methods (#2457).
1.3b1 (2022-05-10)
------------------
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 (2022-04-20)
------------------
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 (2022-02-04)
------------------
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 (2021-10-19)
------------------
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 (2021-10-14)
------------------
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 (2021-10-11)
-------------------
- Raise WarpOperationError if ChunkAndWarp* do not succeed instead of silently
failing to write to the warp output dataset (#2305).
1.2.9 (2021-10-01)
------------------
- 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 (2021-09-09)
------------------
- 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 (2021-09-07)
------------------
- 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 (2021-06-22)
------------------
- Replace the defective 1.2.5 sdist, which had breakpoint in merge.py. This did
not affect wheels.
1.2.5 (2021-06-21)
------------------
- 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 (2021-05-31)
------------------
- 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 (2021-04-26)
------------------
- 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 (2021-04-06)
------------------
- 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 (2021-03-03)
------------------
- 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 (2021-01-25)
------------------
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.
Bug fixes since 1.2b4:
- Fix dataset constructor so that tiled=False does the right thing (#2085).
- Allow WarpedVRT to default to using a source dataset's GCPs for
georeferencing (#2086).
- Ensure that error handling environment is closed only after its dataset
object is closed, preventing confusing error messages (#2088).
- Ensure WarpedVRT dataset objects are closed properly when exiting contexts
(#2093).
1.2b4 (2021-01-20)
------------------
- 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 (2021-01-11)
------------------
- Search for PROJ data in the module before searching system locations (#2080).
1.2b2 (2021-01-10)
------------------
- 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 (2020-12-13)
------------------
- 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 (2020-12-03)
------------------
- 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 (2020-10-20)
------------------
- 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 (2020-09-29)
------------------
- 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 (2020-09-14)
------------------
- 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 (2020-06-02)
------------------
- 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 (2020-05-07)
------------------
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 (2020-02-24)
------------------
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 (2019-12-18)
------------------
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 (2019-11-13)
------------------
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 (2019-10-07)
------------------
There have been no changes since 1.1b3.
1.1b3 (2019-10-03)
------------------
Bug fixes:
- A regression in WarpedVRT creation (#1799) has been fixed. This required
implementation of GDALDatasetH reference counting in DatasetBase.stop().
1.1b2 (2019-10-02)
------------------
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 (2019-10-01)
------------------
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 (2019-09-09)
-------------------
- 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.
1.0.27 (2019-09-05)
-------------------
- Resolve #1744 by adding a ``dtype`` keyword argument to the WarpedVRT
constructor. It allows a user to specify the working data type for the warp
operation and output.
- All cases of deprecated affine right multiplication have been changed to be
forward compatible with affine 3.0. The rasterio tests now pass without
warnings.
- The coordinate transformer used in _base._transform() is now properly
deleted, fixing the memory leak reported in #1713.
- An unavoidable warning about 4-channel colormap entries in
DatasetWriterBase.write_colormap() has been removed.
- All deprecated imports of abstract base classes for collections have been
corrected, eliminating the warnings reported in #1742 and #1764.
- DatasetWriterBase no longer requires that GeoTIFF block sizes be smaller than
the raster size (#1760). Block sizes are however checked to ensure that they
are multiples of 16.
- DatasetBase.is_tiled has been made more reliable, fixing #1376.
- Tests have been added to demonstrate that image corruption when writing
block-wise to an image with extra large block sizes (#520) is no longer an
issue.
1.0.26 (2019-08-26)
-------------------
- Allow `nan` to be used as fill for float32 datasets in ``rasterize`` (#1761).
- A WarpedVRTs destination crs now will default to ``src_crs`` if given, else
to the crs of the source dataset (#1755).
- Prevent open's ``sharing`` keyword argument from being pass on to GDAL as a
dataset opening option for create-copy formats like JPEG and PNG (#1758).
- Allow complex datasets to be created with a specified nodata value (#1747).
- Several Python deprecation warnings have been eliminated (#1742).
- When a MemoryFile is opened in write mode, a TypeError will be raised if
integer width and height are not given, fixing #1748.
- Return False when checking equality with objects incompatible with
``CRS.from_user_input()`` (#1719)
- Support CRS.from_user_input with other CRS object with ``to_wkt()`` method
(#1718)
1.0.25 (2019-08-06)
-------------------
- In ``features.rasterize()``, a shape with an associated value of ``None`` is
now burned in using the function's ``fill`` value and no longer triggers a
TypeError (#1738).
- Instances of pytest's tmp_path fixture in tests/test_dataset.py have been
replaced by instances of the older style tmpdir fixture (#1697).
- Add support for using GDAL 3.x and PROJ 6 libraries (#1700, #1729). Please
note that new features of GDAL 3 and PROJ 6 are not intended to surface.
Geometries and coordinates returned from rasterio keep to the traditional GIS
axis order used by GDAL versions < 3. To do this, rasterio applies a new
private extension function named osr_set_traditional_axis_mapping_strategy to
every OGRSpatialReferenceH object that will be returned from methods in the
_CRS module. Please also note that the binary wheels uploaded to PyPI for
1.0.25 will include GDAL 2.4, *not* GDAL 3.0.
- We were using pytest incorrectly and pytest 5 caught us doing it. This is
now fixed in commit b9f34ee.
- A bug preventing creation of Env instances, and thus dataset opening, when
AWS credentials exist in the environment but boto3 is unavailable has been
fixed (#1708).
1.0.24 (2019-06-05)
-------------------
- By default GDAL reuses existing dataset connections when possible.
Multi-threaded programs must avoid this as must programs that re-open
datasets in a different context, such as the overview-seeking program shown
in issue #1504. The sharing keyword argument of rasterio.open() was supposed
to allow users to disable connection reuse on a case-by-case basis, but the
implementation was faulty and connection reuse persisted (#1701). This has
been fixed in PR #1704.
1.0.23 (2019-05-15)
-------------------
- 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 (2019-03-20)
-------------------
- 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 (2019-02-28)
-------------------
- Fix for bug in implementation of the pickle protocol and added support for
Python's copy protocol (#1643).
1.0.20 (2019-02-27)
-------------------
- 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 (2019-02-26)
-------------------
- 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 (2019-02-07)
-------------------
- Fix a regression reported in #1623.
1.0.17 (2019-02-05)
-------------------
- Fix a regression in evaluation of CRS equality (#1620).
1.0.16 (2019-02-04)
-------------------
- 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 (2019-01-27)
-------------------
- Google cloud storage support was *not* in fact added in 1.0.14, but is
present in 1.0.15.
1.0.14 (2019-01-22)
-------------------
- 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 (2018-12-14)
-------------------
- Fix a buffer dttype mismatch on Windows introduced in 1.0.12 (#1579).
1.0.12 (2018-12-10)
-------------------
- 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 (2018-11-30)
-------------------
- 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 (2018-11-16)
-------------------
- 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 (2018-10-25)
------------------
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 (2018-10-02)
------------------
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 (2018-09-26)
------------------
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 (2018-09-24)
------------------
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 (2018-09-19)
------------------
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 (2018-09-17)
------------------
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 (2018-09-07)
------------------------
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 (2018-08-01)
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 (2018-07-27)
------------------
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 (2018-07-23)
------------------
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 (2018-07-12)
------------------
There have been no changes since release candidate 5.
1.0rc5 (2018-07-09)
-------------------
- C source files are now generated using Cython 0.28.3, which gives us support
for Python 3.7 (#1404, #1405).
1.0rc4 (2018-07-05)
-------------------
- An integer overflow when multiplying the warp memory limit (#1401) has been
fixed.
1.0rc3 (2018-07-03)
-------------------
- 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 (2018-06-29)
-------------------
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 (2018-06-27)
-------------------
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 (2018-06-23)
------------------
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 (2018-06-21)
------------------
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 (2018-06-19)
------------------
Breaking changes: