forked from mathstuf/gdal-svn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
7404 lines (6071 loc) · 349 KB
/
NEWS
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
= GDAL/OGR 2.0 Release Notes (to r28500) =
***** Work in progress *****
== In a nutshell... ==
* New GDAL drivers:
- BPG: read-only driver for Better Portable Graphics format (experimental, no build support)
- GPKG: read/write/update capabilities in the unified raster/vector driver
- KEA: read/write driver for KEA format
- ROI_PAC: read/write driver for image formats of JPL's ROI_PAC project (#5776)
* New OGR drivers:
- Cloudant: read/write driver for Cloudant service
- JML: read/write driver for OpenJUMP .jml format
- Selaphin: read/write driver for the Selaphin/Seraphin format (#5442)
* Significantly improved drivers: CSV, GPKG, GTiff, MapInfo file, PG, SQLite
* RFC 31: OGR 64bit Integer Fields and FIDs (trac.osgeo.org/gdal/wiki/rfc31_ogr_64)
In OGR core, OGR SQL, Shapefile, PG, PGDump, GeoJSON, CSV, GPKG, SQLite, MySQL,
OCI, MEM, VRT, JML, GML, WFS, CartoDB, XLSX, ODS, MSSQLSpatial, OSM, LIBKML, MITAB
* RFC 46: GDAL/OGR unification ( http://trac.osgeo.org/gdal/wiki/rfc46_gdal_ogr_unification)
- GDAL and OGR PDF drivers are unified into a single one
- GDAL and OGR PCIDSK drivers are unified into a single one
* RFC 49: Add support for curve geometries (http://trac.osgeo.org/gdal/wiki/rfc49_curve_geometries)
In OGR core, and GML, NAS, PostgreSQL, PGDUMP, GPKG, SQLite, VFK, VRT drivers
* RFC 50: Add support for OGR field subtypes (http://trac.osgeo.org/gdal/wiki/rfc50_ogr_field_subtype)
In OGR core, OGR SQL, swig bindings, CSV, FileGDB, GeoJSON, GML, GPKG, OpenFileGDB, PG, PGDump, SQLite, VRT
* RFC 51: RasterIO() improvements : resampling and progress callback (http://trac.osgeo.org/gdal/wiki/rfc51_rasterio_resampling_progress)
* RFC 52: Stricter SQL quoting (http://trac.osgeo.org/gdal/wiki/rfc52_strict_sql_quoting)
* RFC 53: OGR not-null constraints and default values (http://trac.osgeo.org/gdal/wiki/rfc53_ogr_notnull_default)
In OGR core, OGR SQL, PG, PGDump, CartoDB, GPKG, SQLite, MySQL, OCI, VRT, GML, WFS, FileGDB, OpenFileGDB
* Upgrade to EPSG v8.5 database
* Fix locale related issues when formatting or reading floating point numbers (#5731)
== New installed files ==
== Backward compatibility issues ==
See MIGRATION_GUIDE.TXT
== GDAL/OGR 2.0 - General Changes ==
Build(Unix):
* Fix for cpl_recode_iconv.cpp compilation error on freebsd 10 (#5452)
* Fix pthread detection for Android
* Fix in Armadillo detection test (#5455)
* Fix detection of OCI by changing linking order to please modern GCC (#5550)
* Fix test to accept MariaDB 10.X as valid MySQL (#5722)
* Make sure $(GDAL_INCLUDE) is first to avoid being confused by GDAL headers of a previous version elsewhere in the include path (#5664)
* Always use stat rather than stat64 for Mac OSX in AC_UNIX_STDIO_64. (#5780, #5414).
* Add support for ECW SDK 5.1 (#5390)
Build(Windows):
* PDF: fix compilation issue with Visual Studio 2012 (#5744)
* PDF: Add support to compile the pdf driver as plugin (#5813)
* Add support for MrSID 9.1 SDK (#5814)
* when building netCDF, HDF4, HDF5 as plugins, call registration of 'sub-drivers' GMT, HDF4Image and HDF5Image (#5802)
Build(all):
* Fix compilation errors with json-c 0.12 (#5449)
* Fix compilation error in alg/gdalgrid.cpp when AVX is available, but not SSE (#5566)
== GDAL 2.0 - Overview of Changes ==
Port:
* Introduce a more generic lock API (recursive mutex, adaptive mutex, spinlock)
* Add types for CPLMutex, CPLCond and CPLJoinableThread (only enforced in -DDEBUG mode)
* Add CPLGetPhysicalRAM() and CPLGetUsablePhysicalRAM()
* CPLSpawn() on Windows: quote arguments with spaces in them (#5469)
* /vsigzip/: avoid infinite loop when reading broken .gml.gz file (#5486)
* /vsizip/ : fix bug that caused premature end of file condition with some read patterns (#5530)
* /vsizip/ on >4GB zips: accept .zip declare 0 disks (#5615)
* /vsistdout/: add VSIStdoutSetRedirection() for compatibility with MapServer FCGI (https://github.com/mapserver/mapserver/pull/4858)
* /vsimem/: update st_mtime and return it with Stat()
* /vsicurl/: avoid reading after end-of-file and fix failure when reading more than 16MB in a single time (#5786)
* VSIWin32Handle::Flush(): no-op implementation is sufficient to offer same guarantee as POSIX fflush() (#5556)
* Unix VSIL: reset eof in all cases in Seek()
* Windows plugins: complementary fix to #5211 to avoid error dialog box when there are dependency problems (#5525)
* Fix VSIReadDirRecursive() recursing on the parent or current directory (#5535)
* cpl_error: obfuscate password
* HTTP: set CURLOPT_NOSIGNAL if available (#5568)
* Add COOKIE option to CPLHTTPFetch() (#5824)
* Fix stack corruption upon thread termination with CPLSetThreadLocalConfigOption on Windows 32 bit (#5590)
* cpl_csv: Stop probing for csv/horiz_cs.csv. (#5698)
* vsipreload: implement clearerr() and readdir64() (#5742)
* CPLsetlocale(): return a string that is thread-locale storage to avoid potential race in CPLLocaleC::CPLLocaleC() (#5747)
* CPLHexToBinary(): faster implementation (#5812)
Core:
* Reduce lock contention on the global cache mutex and make it possible to use spin lock instead with GDAL_RB_LOCK_TYPE=SPIN
* EXIF reader: fix memleak in error code path
* EXIF reader: add missing validation for some data types (#3078)
* Fix crash in GDALPamRasterBand::SerializeToXML() when saving an empty RAT (#5451)
* ComputeStatistics(): use Welford algorithm to avoid numerical precision issues when computing standard deviation (#5483)
* Fix crashing issue with TLS finalization on Unix (#5509)
* GDALJP2Metadata::CreateGMLJP2(): use EPSGTreatsAsLatLong() and EPSGTreatsAsNorthingEasting() to determine if axis swapping is needed (#2131)
* GMLJP2: be robust when parsing GMLJP2 content that has nul character instead of \n (#5760)
* GDALMultiDomainMetadata::XMLInit(): when importing XML metadata, erase the existing document to replace it with the new one
* Metadata: fix correct sorting of StringList / metadata (#5540, #5557)
* Make GetMaskBand() work with GDT_UInt16 alpha bands (#5692)
* Fix 32bit overflow in GDALRasterBand::IRasterIO() and GDALDataset::BlockBasedRasterIO() (#5713)
* RasterIO: small optimization in generic RasterIO() implementation to avoid loading partial tiles at right and/or bottom edges of the raster when they are going to be completely written
* Fix crash when calling GetTiledVirtualMem() on non-Linux platform (#5728)
* Add GDAL_OF_INTERNAL flag to avoid dataset to be registered in the global list of open datasets
* GDALDriver::CreateCopy(): accept _INTERNAL_DATASET=YES as creation option, so as to avoid the returned dataset to be registered in the global list of open datasets
* Implement GDALColorTable::IsSame()
* GDALPamDataset: do not serialize dataset metadata unless it has been set through GDALDataset::SetMetadata() or GDALDataset::SetMetadataItem()
* GDALLoadTabFile: add TAB_APPROX_GEOTRANSFORM=YES/NO configuration option to decide if an approximate geotransform is OK (#5809)
Algorithms:
* RPC transformer: fix near interpolation in RPC DEM (#5553)
* RPC transformer: take into account nodata in RPC DEM (#5680)
* RPC transform: add RPC_DEM_MISSING_VALUE transformer option to avoid failure when there's no DEM at the transformed point (#5730)
* TPS transformer: fix crash if the forward or backward transform cannot be computed (#5588)
* OpenCL warper: remove unused variable in bilinear resampling that can cause compilation error (#5518)
* OpenCL wraper: fix code compilation with NVIDIA OpenCL (#5772)
* Overview: Fix and speed-up cubic resampling in overview computation to take into account scaling factor (#5685)
* Overview: ignore alpha=0 values when compute an average overview of an alpha band; and also avoid memory errors when calling GetMaskBand()/GetMaskFlags() after overview computation if GetMaskXXX() has been called before (#5640)
* Overview: avoid crash when computing overview with a X dimension much smaller than Y dimension (#5794)
* GDALRegenerateOverviewsMultiBand(): fix stride calculation error with certain raster dimensions (#5653)
* Warper: various speed optimizations
* Warper: fix Cubic and Bilinear resampling to work correctly with downsizing (#3740)
* Warper: fix and optimize CubicSpline
* Warper: regardless of the warping memory limit, add heuristics to determine if we must split the target window in case the 'fill ratio' of the source dataset is too low (#3120)
* Warper: accept warping options METHOD=NO_GEOTRANSFORM and DST_METHOD=NO_GEOTRANSFORM to run gdalwarp on ungeoreferenced images
* Warper: fix GDALSuggestedWarpOutput() wrong extent in some circumstances (e.g. dataset of big dimension with world coordinates) (#5693)
* Warper: fix integer overflow when reprojecting into an area with (part of) bounds completely outside of the source projection (#5789)
* GDALReprojectImage(): takes into account nodata values set on destination dataset
* Median cut and dithering: optimizations and enhancements to deal with 8-bit precision (only if using internal interface for now)
* rasterfill: add option to specify driver to use for temporary files
Utilities:
* gdalinfo: display extra metadata domains attached to band, and refactor code a bit (#5542)
* gdalinfo: add -oo option per RFC 46
* gdaladdo: add -oo option per RFC 46
* gdaladdo: add warning when subsampling factor 1 specified
* gdal_translate: add -oo option per RFC 46
* gdal_translate: add -r and -tr options per RFC 51
* gdal_translate: avoid preserving statistics when changing data type in situations where clamping can occur
* gdal_translate: don't recopy band units if rescaling or unscaling is involved (#3085)
* gdal_translate: increase GDAL_MAX_DATASET_POOL_SIZE default value to 450. (#5828)
* gdalwarp: add -oo option per RFC 46
* gdalwarp: initialize destination dataset to no_data value when automatically propagating source nodata (#5675)
* gdalwarp: add a -ovr option to select which overview level to use, and default to AUTO. Also add a generic OVERVIEW_LEVEL=level open option, and make it available in standard VRT (#5688)
* gdalwarp: only apply INIT_DEST when processing the first input dataset (#5387)
* gdalwarp: increase GDAL_MAX_DATASET_POOL_SIZE default value to 450. (#5828)
* gdaldem: avoid too large files to be produced when using -co COMPRESS=xxxx -co TILED=YES (#5678)
* gdal_grid: use nodata= parameter in the algorithm string to determine the nodata value to set on the band (#5605)
* gdal_edit.py: add -unsetstats option (and fix -a_nodata to run on all bands, ant not just first one)
* gdal_edit.py: add -stats and -approx_stats flags (patch by mwtoews, #5805)
* gdal_edit.py: change -mo add metdata to existing one; add new option -unsetmd to clean existing metadata
* gdal_retile.py: fix to make it work with input images of different resolutions (#5749)
* gdal_retile.py: implement progress bar (#5750)
* gdal_merge.py: add timing information in verbose output
* gdal2tiles.py: fix inverted long/lat in BoundingBox and Origin elements of tilemapresource.xml (#5336)
* pct2rgb.py: make it work with color tables with less than 256 entries (#5555)
* gdal_fillnodata.py: FillNodata: copy no data value to destination band when creating a dataset (if available) (#4625)
* gdalcompare.py: add options to supress selected comparisons
* gdalcompare.py: takes into account differences in overview bands
* gdalcompare.py: compute difference on float to avoid integer underflow
* epsg_tr.py: change to make it possible to export GEOCCS and COMPD_CS to proj.4 epsg and PostGIS spatial_ref_sys.sql files
Python samples:
* Added swig/python/samples/jpeg_in_tiff_extract.py
* tolatlong.py: report error when operating on a non-georeferenced dataset
AAIGRID:
* Fix formatting string (#5731)
AIGRID:
BAG driver:
* change nodata value for uncertainty band to 1e6 (#5482)
BMP driver:
* backout r17065 change that infered georeferencing based on the resolution information in the BMP header (#3578)
DIMAP driver:
* DIMAP 2: handle the case where the Raster_Data element is in main file (#5018, #4826)
* DIMAP 2: fix to extract geodetic SRS (#5018, #4826)
* DIMAP 2: fix to extract geotransform from JPEG2000 file if not available in XML (#5018, #4826)
DDS driver:
* Add ETC1 compression format support
* Header correction for worldwind client
DTED driver:
ECW driver:
ENVI driver:
* avoid generating potentially corrupted .hdr files when opening in update mode; Write 'Arbitrary' instead of 'Unknown' as the projection name for an undefined SRS (#5467)
* when writing, consider that LOCAL_CS SRS is like ungeoreferenced (#5467)
Envisat driver:
ERS driver:
* reset RasterInfo.RegistrationCellX/Y if setting a new geotransform on an updated .ers file (#5493)
* fix SetProjection() (#5840)
GeoRaster driver:
* fix Oracle SRID authority (#5607)
GIF driver:
* add compatibility with giflib 5.1 (#5519)
* fix crash on images without color table (#5792)
* fix reading of interlaced images with giflib >= 5.0
* validate the size of the graphic control extension block (#5793)
GRASS driver:
GRIB driver:
* avoid divide by zero while setting geotransform on 1xn or nx1 grib file (#5532à
* allow writing PDS template numbers to all bands (#5144)
GTiff driver:
New capabilities:
* for JPEG-in-TIFF, use JPEG capabilities to decompress fast overview levels 2,4 and 8, to generate 'hidden' overviews used by RasterIO()
* add DISCARD_LSB creation option (lossy compression) to be best used with PREDICTOR=2 and LZW/DEFLATE compression
* when GTIFF_DIRECT_IO=YES is enabled, performance improvements in GTiffRasterBand::DirectIO() with Byte dataset and Byte buffer
* implement dataset DirectIO()
* add GTIFF_VIRTUAL_MEM_IO=YES/NO/IF_ENOUGH_RAM configuration option so that RasterIO() can rely on memory-mapped file I/O (when possible and supported by the OS)
* support reading and created streamable files
* for JPEG-compressed TIFF, avoid quantization tables to be emitted in each strip/tile and use optimized Huffman coding by default
* avoid SetNoDataValue() to immediately 'cryztalize' the IFD
* allow unsetting TIFFTAG_SOFTWARE, TIFFTAG_DOCUMENTNAME, etc... by removing them from metadata list or passing None as a value of SetMetadataItem() (#5619)
* allow lossless copying of CMYK JPEG into JPEG-in-TIFF
* set alpha on target by default when translating from Grey+Alpha
* Internal overviews: for near, average, gauss and cubic, and pixel interleaving, make sure to use the same code path for compressed vs uncompressed overviews (#5701)
* internal libtiff updated to upstream libtiff 4.0.4beta
* internal libgeotiff updated to upstream libgeotiff SVN head
Fixes:
* when overriding metadata in update mode, make sure to clear it from PAM file (#5807)
* fix handling of Mercator_2SP (#5791)
* avoid TIFF directory to be written (at end of file) when creating a JPEG-in-TIFF file
* for a paletted TIFF with nodata, set the alpha component of the color entry that matches the nodata value to 0, so as gdal_translate -expand rgba works properly
* fix to make band SetMetadata(NULL) clear band metadata (#5628)
* fix error message when requesting a non existing directory
* check data type with PHOTOMETRIC=PALETTE
* be robust to out-of-memory conditions with SplitBand and SplitBitmapBand
* avoid using optimized JPEG --> JPEG-in-TIFF path if INTERLEAVE=BAND is specified with a 3-band JPEG
* to make Python bindings happy, avoid emitting CE_Failure errors due to libtiff errors when we still manage to open the file (#5616)
* avoid crash when reading GeoTIFF keys if the stored key type isn't the one expected
* make sure to call libgeotiff gtSetCSVFilenameHook() method when linking against external libgeotiff
* avoid/limit DoS with huge number of directories
GRASS driver:
* fix compilation issues against GRASS 7
GTX driver:
HDF4 driver:
HDF5 driver:
HFA driver:
* fix recognition of Hotine Mercator Azimuth Center in Imagine format (and Swisstopo GeoTIFF) (#5551)
* fix various hangs on invalid files
Idrisi driver:
IRIS driver:
* add support for the SHEAR data type (#5549)
JP2ECW driver:
* add metadata about JPEG2000 codestream and boxes (#5408)
JP2KAK driver:
* Compatibility with Kakadu v7.5 (#4575, #5344)
* Handle Kakadu version 7 allocator.finalize (#4575)
* fix bug in vsil_target::end_rewrite() that prevented TLM index to be generated (#5585)
* Add FLUSH in creation option XML (#5646)
JP2OpenJPEG driver:
* add YCC creation option to do RGB->YCC MCT, and turn it ON by default (#5634)
* deal correctly with datasets that have a color table
* add compatibility with OpenJPEG 2.1 (#5579)
* fix warning when reading a single tile image whose dimensions are not a multiple of 1024 (#5480)
JPEG driver:
* use EXIF overviews if available
* add EXIF_THUMBNAIL creation option to generate an EXIF thumbnail
* use optimized Huffman coding to reduce file size
* add support for reading and writing COMMENT
* optimize whole image reading with dataset IRasterIO()
* report non-fatal libjpeg errors as CE_Warning (or CE_Failure if GDAL_ERROR_ON_LIBJPEG_WARNING = TRUE) (#5667)
* in compressor, increase default val of max_memory_to_use to 500MB
JPIPKAK driver:
* avoid symbol collision with kdu_cpl_error_message from JP2KAK driver
* reset the bNeedReinitialize flag after a timeout (#3626)
KMLSuperOverlay driver:
* fix truncated raster on 32 bit builds (#5683)
L1B driver:
* add support for little-endian LRPT datasets (#5645)
* expose band mask when there are missing scanlines (#5645)
* expose WGS-84 or GRS-80 datum if read from header record (#5645)
LCP driver:
MAP driver:
* retrieve the image filename in a case insensitive way (#5593)
MBTiles driver:
* better detection of 4 bands dataset and take into account alpha component of color table in RasterIO() (#5439)
* avoid wrong detection of 3 bands when finding paletted PNG in /vsicurl mode (#5439)
* fix dimension computation when opening a single tile dataset
* better computation of extent from min/max of tile coordinates, for a single zoom level
MEM driver:
* implement optimized versions of raster band and dataset IRasterIO()
MSG driver:
* fix compilation problem (#5479)
* fix memory leaks (#5541)
NetCDF driver:
* Force block size to 1 scanline for bottom-up datasets if nBlockYSize != 1 (#5291)
NGSGEOID driver:
* make Identify() more restrictive
NITF driver:
* deal correctly with JPEG2000 NITF datasets that have a color table inboth Image Subheader and JP2 boxes, and for drivers that don't do color table expension
* HISTOA TRE: put definition of TRE in conformance with STDI-0002 (App L page 14) and STDI-0006 (Page 57) (#5572)
OGDI driver:
* Remove OGDIDataset::GetInternalHandle (#5779).
OZI driver:
* remove .map header detection from Identify() since this is actually handled by the MAP driver
PCIDSK driver:
* close dataset in case of exception in PCIDSK2Dataset::LLOpen() (#5729)
PDF driver:
* add compatibility with Poppler 0.31.0
* advertize LAYERS metadata domain
* fix compilation problem with Podofo on Windows (patch by keosak, #5469)
* add sanity check on page count
PDS driver:
* Added support for SPECTRAL_QUBE objects used e.g. by THEMIS instrument of Mars Odyssey spacecraft.
PNG driver:
* add creation options to write metadata in TEXT/iTXt chunks
* optimize whole image reading with dataset IRasterIO()
* Internal libpng: update to 1.2.52
PostgisRaster driver:
* Fix read of metadata for tables with multiple raster cols (#5529)
Rasdaman driver:
Rasterlite driver:
* accept space in filename
Raw drivers:
RMF driver:
RPFTOC driver:
SAGA driver:
SRP driver:
VRT driver:
* VRT warp: make selection of source overview work (#5688)
* VRT warp: expose as many overviews in warped dataset as there are in source dataset, and make warped VRT honour -ovr parameter of gdalwarp (#5688)
* make sure nodata value set on VRT raster band is taken into account in statistics computation (#5463)
* fix ComputeStatistics() on VRT that are a sub-window of source dataset (#5468)
* VRT raw: fix corrupted serialization on Windows (#5531)
* implement heuristics to determine if GetMinimum()/GetMaximum() should use the implementation of their sources of not. Can be overriden by setting VRT_MIN_MAX_FROM_SOURCES = YES/NO (#5444)
* VRT warp: avoid to warp truncated blocks at right/bottom edges, so that scale computation is correct
* fix RasterIO() to be able to fill buffers larger than 2GB (#5700)
* fix performance problem when serializing into XML a big number of sources
USGSDEM driver:
* take into account horizontal unit = ft in the UTM case (#5819)
WCS driver:
WEBP driver:
* Lazy uncompressed buffer allocation and optimize band-interleaved IRasterIO() for whole image reading
WMS driver:
* fix to make GDAL_DEFAULT_WMS_CACHE_PATH configuration option work as expected (#4540)
* move the WMS layer name encoding to be done before the sub datasets URLs are created.
XYZ driver:
* fix back line seeking with datasets that have not the same number of values per lines (#5488)
* deal with lines that have missing values (but still regularly spaced)
== OGR 2.0 - Overview of Changes ==
Core:
* OGRPolygon::importFromWkt(): fix memleak when importing broken 2.5D polygon
* Fix OGRFeature::SetGeometryDirectly() and SetGeomFieldDirectly() to free the passed geometry even if the method fails (#5623)
* OGR SQL: don't consider backslash-doublequote as an escape sequence when inside a single-quoted string literal
* OGR SQL: Add hstore_get_value(hstore, key) function
* Add OGR_API_SPY mechanism (http://www.gdal.org/ograpispy_8h.html)
* Make OGRParseDate() recognize ISO 8601 format
* ogr_core.h: only ignore -Wfloat-equal for IsInit() and not for the rest of the file and files that include it (#5299)
* OGR layer algebra: properly initialize field maps to avoid Valgrind warnings in OGRLayer::Update() (#5778)
* Make OGR_F_SetFieldBinary() set OFTString fields, mostly for testing purposes
OGRSpatialReference:
* Upgrade to EPSG v8.5 database
* Proj.4 import: for HOM, make sure +no_off/no_uoff is preserved, and change default value of gamma parameter to be the same as alpha (#5511)
* Proj.4 export: export Aitoff, Winkel I, Winkel II, Winkel-Tripel, Craster, Loximuthal, Quartic Authalic
* Adding support for Mercator_Auxiliary_Sphere without AUTHORITY SECTIONS (#3962)
* Add QSC (Quadrilateralized_Spherical_Cube) projection, compatible with PROJ 4.9
* Various fixes to put EXTENSION node before AUTHORITY and make it pass Validate() (#5724)
Utilities:
* ogrinfo: add -oo option per RFC 46
* ogr2ogr: add -oo and -doo options per RFC 46
* ogr2ogr: turn string value to one element list if destination field is stringlist
* ogr2ogr: fix problem with SRS when copying layers with multiple geometry columns with different SRS (#5546)
* ogr2ogr: add special case for -update and GPKG and input=output
* ogrlineref: fix project if reper lies on first point or last point of line
Other:
* OGR WCTS removed from tree
BNA driver:
* fix segfault when calling GetNextFeature() on a write-only layer
CartoDB:
* implement deferred field creation
* support boolean type
* register tables with cdb_cartodbfytable()
* fix creation of features with Date/DateTime/Time values
* fix for multi-user account, and optimization for SQL layers
* implement TestCapability() and CreateDataSource() similarly to PostgreSQL, i.e. redirect to Open() in update mode
* accept a user column to have the same name of the FID (cartodb_id)
* do automatic polygon->multipolygon promotion at creation time
CSV driver:
* add optional field type detection with AUTODETECT_TYPE=YES open option
* add QUOTED_FIELDS_AS_STRING open option that default to NO. So by default, if AUTODETECT_TYPE=YES, the content of quoted fields will be tested for real, integer,... data types
* fix to avoid truncation of WKT geometries to 8000 characters (#5508)
* fix segfault when reading allCountries.txt of geonames.org (#5668)
DGN driver:
DXF driver:
* improve TestCapability(ODsCCreateLayer)
DWG driver:
FileGDB driver:
* add layer creation option to set CONFIGURATION_KEYWORD
* avoid error message when failing to import SRS from WKID code (might be an ESRI code for example)
* do not reject features with null geometry
* use LatestWKID when available (#5638)
* avoid emitting error when opening a FileGDB v9, so that OpenFileGDB can be tried to open it, in the case FileGDB is a plugin (#5674)
* fix CreateFeature() to work when a esriFieldTypeGlobalID field is not set
FME driver:
GeoJSON driver:
* implement Date/Time/DateTime field type detection
* accept and skip UTF-8 BOM (#5630)
* ESRIJson: parse correctly rings of esriGeometryPolygon objects to build correct Polygon or MultiPolygon (#5538)
* internal libjson-c: Fix to read floating point numbers in non C locale (#5461)
* improve TestCapability(ODsCCreateLayer)
* make string comparison for authority name case insensitive so as to recognize lowercase 'epsg' (#4995)
GeoRSS driver:
GFT driver:
GME driver:
* Added fixes discovered while using v.in.ogr and v.out.ogr in GRASS
GML driver:
* fix bug that prevented multiple instanciation of the reader with Xerces backend (#5571)
* parse correctly GML geometries whose srsDimension attribue is on top-level geometry element and not on posList (#5606)
* add datasource option SRSDIMENSION_LOC=GEOMETRY to be able to write srsDimension attribute on top level geometry element, default on posList unchanged (#5066)
* Fix incorrect geometry cast when reading GML topogeometries (#5715)
* VFR: fix ST_Z type (changes) -- list all layers
* VFR: include also non-spatial (removed) features (ZaniklePrvky) in type ST_Z (changes)
* VFR: use String when 32-bit integer wasn't wide enough
* VFR: add support for UVOH file type
* update RUIAN GFS files: add missing GMLFeatureClasses to OB type (SpravniObvody, Mop, Momc)
* add support for parsing .xsd with a <choice> of polygonProperty and multiPolygonProperty
* remove wrong case insensitive comparison related to gml_registry.xml use
GPKG driver:
* add support for non-spatial layers via the gdal_aspatial extension (#5521)
* add support for creating spatial index
* implement ST_GeometryType(), GPKG_IsAsisgnable() and ST_SRID() to be compatible with Geometry Type Triggers and SRS ID Triggers Extensions
* make SELECT expressions passed to ExecuteSQL() be evaluated by SQLite
* make it possible to use spatialite 4.2.0 SQL functions
* add a 'INDIRECT_SQLITE' dialect that goes through the VirtualOGR mechanism (e.g. for compat with older Spatialite)
* allow table names with dash character (#5472)
* emit warning when required extensions are not implemented
* disable PRAGRAM integrity_check by default, since it can be expensive on big files
* read-only support for tables without integer primary key
* fix Date and DateTime support
* implement TEXT(maxwidth) type in read and creation
* implement deferred table creation
* fix reporting of geometry type for 2.5D (previous behaviour had the effect to turn to wkbUnknown)
* put correct value (1) in gpkg_geometry_columns for 2.5D tables (#5481)
* fix component geometry type of 3D MultiGeometries (#5629)
* fix GetExtent() crash on layers without extent set in gpkg_contents (#5471)
* avoid leak when a table has more than one FID column
* accept spatial tables whose geometry field is declared as BLOB
* recognize both GeomCollection and GeometryCollection as possible values, until GeoPackage SWG clears what is the official value
* escape all column names in SQL (#5520)
GPX driver:
GTM driver:
* declare OLCCreateField and OLCSequentialWrite capabilities
IDRISI driver:
* fix support for multi-ring polygons (#5544)
ILI driver:
* Use Ili1TransferElement written by ili2c 4.5.5 and newer
* Fix crash in polygon geometry reading
* Fix reading SURFACE polygons with multiple rings
ISIS3 driver:
* fix to recognize IsisCube.Mapping.LatitudeType = Planetocentric (#5717)
KML driver:
* fix segfault when calling GetNextFeature() on a write-only layer
LIBKML driver:
* add support for reading gx:MultiTrack
* rework libkml singleton factory management (#5775)
MITAB driver:
* add support for append/update/delete operations on .tab files (#5652)
* add support for CreateField() on non empty file, AlterFieldDefn() and DeleteField() for .TAB (#5652)
* implement SyncToDisk() for TAB layers (#5652)
* convert to use of VSI*L FILE API (#5558)
* don't write field width for integer fields in .mif, which is incompatible with MapInfo (#3853)
* report OLCCreateField for .mif files (#5477)
* fix opening .mif file without any record (#5570)
* swap StdParallel1 and stdParallel2 if necessary on LCC projections (https://github.com/mapgears/mitab/issues/1)
* take into account scale/bounds to properly round coordinates (https://github.com/mapgears/mitab/issues/2)
* add MITAB_BOUNDS_FILE configuration option to specify a file with projection bounds (https://github.com/mapgears/mitab/issues/3)
* add BOUNDS layer creation option (#5642)
* refactor import/export of MIF coordsys to use the TAB code; take into account MITAB_BOUNDS_FILE to add Bounds to the CoordSys string
* close polygon rings when reading Region from MIF file (#5614)
* fix segfault in CreateFeature() if passing an invalid OGR feature style string (#1209)
MSSQLSpatial driver:
* Implement SPATIAL_INDEX layer creation option for MSSQL (#5563)
* Implement support for WKB geometry upload (#5682)
* Fix schema handling in MSSQL driver (#5401)
* Fix spatial geometry field handling (#5474)
* Bind string fields to unicode string columns in the database (#5239)
* Fix recognizing image columns as geometry columns for the select layers. (#5498)
* Fix issue when creating non-spatial table (#5696)
* Fix to read metadata if the tables are specified in the connection string (#5796)
* Fix crash if the tablename is specified in the connection string (#5826)
MySQL:
* thread-safe initialization of mysql client library (#5528)
NAS driver:
* implement wfs:update (adds new context 'update' and fields "endet" and "anlass" to "delete" layer).
* also assign xlink:href attributes as layer attribute (not only in "alkis_beziehungen" layer; #5372)
* fix filtering on OGR_GEOMETRY special field
* make chevrons configurable by NAS_INDICATOR
OCI driver:
* add a ADD_LAYER_GTYPE=YES/NO layer creation option that defaults to YES to enforce a layer geometry type and is used to retrieve the layer geometry type when listing layers (#3754)
* Fix FID (multi_load=off, OGRNullFID) - start with 1 (not -1) (#5454)
* use VARCHAR2 instead of VARCHAR for unsupported types
* Fix "ORA-00972: identifier is too long" error (#5466)
* Fix memory leaks (#5599)
* Fix creation of date and datetime fields (#5600)
* initialize member variable to avoid UpdateLayerExtents() to be called randomly on non spatial tables (#5376)
* avoid spatial index to be created each time SyncToDisk() is called
* fix memory leak in DeleteLayer(const char*)
* fix reading of 2D geometries that were always turned as 3D
* in layers returned by ExecuteSQL(), only expose geometry column if there's one
* force NLS_NUMERIC_CHARACTERS to ". " (#5709)
ODBC driver:
* try alternate DSN template for 64bit ODBC
* make ODBC driver honour PGEO_DRIVER_TEMPLATE config. option (and also MDB_DRIVER_TEMPLATE in case PGEO_DRIVER_TEMPLATE isn't defined) (#5594)
OpenFileGDB driver:
* add compatibility with .gdbtable files bigger than 4 GB (#5615)
* support opening files with ConfigurationKeyword=MAX_FILE_SIZE_4GB or MAX_FILE_SIZE_256TB (#5615)
* fix occasionnal write-after-end-of-buffer (#5464)
* avoid error message when failing to import SRS from WKID code (might be an ESRI code for example)
* fix spatial filter with GeneralPolygon shapes (#5591)
* fix for reading GDB with string fields with a default value length > 127 (#5636)
* better handling of certain definitions of raster columns
* use LatestWKID when available (#5638)
* increase accepted size for field description zone up to 10 MB (#5660)
* fix ResetReading() on SQL layer with ORDER BY on indexed column (#5669)
* add support for non spatial GDB v9 tables (#5673)
* improve error reporting when file exists but cannot be opened due to permission problem (#5838)
OSM driver:
* add mechanism to compute fields from other fields/tags with SQL expressions. Apply it for z_order on lines layer
* fix random crash, particularly on MacOSX (#5465)
PG driver:
* implement deferred loading of table list, to optimize ExecuteSQL() (#5450)
* use COPY mode by default (unless PG_USE_COPY is set to NO) when inserting features in a newly create table (#5460)
* implement deferred creation of tables to capture all attribute and geometry column creations into a single CREATE TABLE statement (#5547)
* change "No field definitions found" from fatal error to debug
* when creating a table and filling it, avoid re-reading the table definition from PG system tables (#5495)
* better handling of SRS authority name different than EPSG (authority code must still be integral)
* fix crash when writing a StringList with 0 element (#5655)
* emit errors instead of debug messages when postgres issues an error (#5679)
* fix to make ExecuteSQL('CREATE DATABASE foo') work
* fix regression that prevented to retrieve more than 500 features from a connection with tables= parameter and on a SQL result layer (#5837)
PGDump driver:
* switch to DROP_TABLE=IF_EXISTS by default (#5627)
* fix crash when writing a StringList with 0 element (#5655)
PGeo driver:
* try alternate DSN template for 64bit ODBC
REC driver:
Shapefile driver:
* add SPATIAL_INDEX layer creation option (#5562)
* support .prj files with UTF-8 BOM
* fill 'date of last update' header with current time instead of dummy date, and add a DBF_DATE_LAST_UPDATE layer creation option to override this with a fixed date (#3919)
* fix reading of shapefiles whose .shx is non conformant (#5608)
* fix writing values up to 2^53 in OFTReal fields with 0 decimal places (#5625)
* delete implicit FID field as soon as we CreateField a real one
* GetExtent(): don't trust extent in header if it contains Not-A-Number values (#5702)
* make REPACK compact .shp if SetFeature() is called and changes one geometry size (#5706)
* add check not to cut unicode character while cut the string lengnt for field max length during SetFeature
* avoid reading whole .shx at open time for /vsicurl/
SOSI driver:
* remove error noise (#5710)
S57 driver:
* various compliance fixes in ISO8211 and S57 writer (#5798)
* make it possible to set LNAM_REFS=OFF as advertized in the doc
SQLite/Spatialite driver:
* SQLite/Spatialte: add support for multiple geometry colunn tables, accordingly with RFC 41 (#5494)
* SQLite SQL dialect: Add hstore_get_value(hstore, key) function
* remove 'T' suffix when formatting the content of a Date field (#5672)
* optimize CreateFeature() when fields can be null or not null from one feature to another one
* Spatialite: improve insertion performance by disabling triggers and doing the job ourselves
* Fix segmentation fault when executing OGR2SQLITE_Register() when compiling against sqlite 3.8.7 (#5725)
* make GetFIDColumn() work when run as first method call (#5781)
* emit warning when reading text values in a integer/real field (possible since SQLite has no strong typing)
SXF driver:
* Fix SXF file version check (#5456)
* Fix wrong Miller Cylindrical projection string
* Fix encoding issues (#5647)
* Fix extract z value to OGRGeometry
VFK driver:
* recode also header values
* process DKATUZE from header properly
* handle also duplicated records
* check attribute 'parametry_spojeni'
* speed-up GetFeatureCount()
* fix reading properties. Escape characters for SQL
* change SRS from EPSG 2065 to 5514
* fix reading SBP datablock (fix mismatch when reading from file and db)
VRT driver:
* do not propagate ignoring of x and y cols of a PointFromColumns to the source layer (#5777)
Tiger driver:
* Fix potential buffer underflow when providing /vsistdin/ to Tiger driver (#5567)
WAsP driver:
* added options and changed output precision to match WAsP Map Editor
* improve TestCapability(ODsCCreateLayer)
WFS driver:
* Add COOKIE option (#5824)
* when parsing a layer schema without geometry from the GML .xsd, do not expose a geometry field at the WFS layer level (#5834)
XLS driver:
XLSX driver:
* fix column numbering when there are more than 26 columns (#5774)
XPlane driver:
== SWIG Language Bindings ==
All bindings:
* bind GDALGetBandDataset() as Band.GetDataset()
* add Feature.GetFieldAsBinary()
CSharp bindings:
Java bindings:
* Pass eRWFlag to allow both reading or writing. Write was broken in DatasetRasterIO().
Perl bindings:
* NoDataValue: set max float if undef is given.
* Unit: set '' if undef is given.
* Also other changes that will also remove some "use of uninitialized value in subroutine entry" warnings.
* Automatic handling of SQL result layers.
* Switch to using doxygen-filter-perl from CPAN for the documentation.
* Fix issue with index attribute for field meta data (schema) (#5662)
Python bindings:
* add optional buf_xsize, buf_ysize and buf_type parameters to Dataset.ReadAsArray() and Dataset.LoadFile(), and use dataset RasterIO for better efficiency
* avoid generating Python exception when PyString_FromStringAndSize() fails and GDAL errors as Python exceptions are disabled
* Band.ReadRaster() and Dataset.ReadRaster(): clear the buffer in case there are holes in it due to odd spacings specified by the user
* Fix hang of Python in case of repeated call to gdal/ogr.UseExceptions() and CE_Warning emitted (#5704)
* for Python 2, accept unicode string as argument of Feature.SetField(idx_or_name, value) (#4608)
* for Python 2, accept Unicode strings to be passed as key and/or value of the dictionary passed to SetMetadata() (#5833)
* fix processing error of ogr_python.i with SWIG 3 (#5795)
* NUMPY driver: avoid returning CE_None in GetGeoTransform() when there's no geotransform set (#5801)
* Make GetFieldAsBinary() work with OFTString fields
* For Python3 compat, make Feature.GetField() use GetFieldAsBinary() if GetFieldAsString() fails (#5811)
= GDAL/OGR 1.11.0 Release Notes =
== In a nutshell... ==
* New GDAL drivers:
- KRO: read/write support for KRO KOKOR Raw format
* New OGR drivers:
- CartoDB : read/write support
- GME (Google Map Engine) : read/write support
- GPKG (GeoPackage): read-write support (vector part of the spec.)
- OpenFileGDB: read-only support (no external dependency)
- SXF driver: read-only support
- WALK : read-only support
- WasP : read-write support
* Significantly improved drivers: GML, LIBKML
* RFC 40: enhanced RAT support (#5129)
* RFC 41: multiple geometry fields support
* RFC 42: OGR Layer laundered field lookup
* RFC 43: add GDALMajorObject::GetMetadataDomainList() (#5275)
* RFC 45: GDAL datasets and raster bands as virtual memory mapping
* Upgrade to EPSG 8.2 database
== New installed files ==
* bin/ogrlineref
* lib/pkgconfig/gdal.pc
* gdalcompare.py
* data/gml_registry.xml
* data/inspire_cp_CadastralParcel.gfs
* data/inspire_cp_BasicPropertyUnit.gfs
* data/inspire_cp_CadastralBoundary.gfs
* data/inspire_cp_CadastralZoning.gfs
* data/ruian_vf_ob_v1.gfs
* data/ruian_vf_st_v1.gfs
* data/ogrvrt.xsd
== Backward compatibility issues ==
== GDAL/OGR 1.11.0 - General Changes ==
Build(Unix):
* add Unix configure support for SOSI
* remove pointers to old ver of ingres library files
* add --with-libjson-c configure option to build against external libjson-c (>= 0.11) (#4676)
* compilation fixes for iOS (#5197, #5198)
* update to autoconf 2.69
* add pkg-config gdal.pc (#3470)
* configure for FileGDB: add explicit linking to libfgdbunixrtl (requires FileGDB SDK >= 1.2) (#5215); also try .dylib extension (#5221)
* fix so that Java installs are found on the MAC to enable the MDB driver (#5267)
* fix compilation with recent MySQL versions (5.6 for example) (#5284)
* support --with-jp2mrsid with standalone Kakadu with MRSID v8 or later
* Fix parallel build in Python bindings (#5346)
* PCIDSK: don't link against libjpeg if configured --without-jpeg
* Update configure script to pick up ECW JP2 SDK 5.1 (#5390)
* add a 'make install' target for the Java bindings (#5424)
* add Vagrant configuration
Build(Windows):
* add option to generate VC project for x64 on makegdal_gen.bat
* nmake.opt: add WITH_PDB=1 option to optionaly generate .pdb file on Release builds (#5420)
* add support for building the OGR SOSI driver as a plugin (#3638)
* add support for building the HDF4 driver as plugin (#5294)
* add support for MrSID v9
* Remove makegdalXX.bat generated files
== GDAL 1.11.0 - Overview of Changes ==
Port:
* vsisubfile: fix Eof() behaviour to be POSIX compliant, so that the shapefile reader can read the last feature when using /vsitar (#5093)
* vsicache: fix for 32bit binaries when file size is over 2GB (#5170)
* vsicache: add optional nChunkSize and nCacheSize parameters to VSICreateCachedFile()
* vsicurl: add CPL_VSIL_CURL_USE_HEAD config option to disable use of CURL HEAD for other services like mapbox (likely lame python http implementations)
* vsitar: avoid infinite loop in case of invalid .tar structure
* vsizip: fix path separator in CPLFormFilename
* vsizip: allow additional extensions listed in CPL_VSIL_ZIP_ALLOWED_EXTENSIONS config option.
* vsizip: improve UTF-8 support of filenames inside ZIP file (#5361)
* vsizip: fix ZIP64 support
* vsigzip: reset EOF flag when doing a Seek() to be POSIX compliant
* curl: add .netrc support
* Windows CPLGetSymbol(): avoid dialog boxes to pop up when a DLL or one of its dependencies does not exist (#5211)
* Add CPLOPrintf() and CPLOvPrintf() functions for easy CPLString formatting
* CPLBase64DecodeInPlace() : fix to be robust to malformed base64 strings
* CPLQuadTree: add CPLQuadTreeInsertWithBounds() where the pfnGetBounds is not needed.
* CPLQuadTree: fix potential infinite recursion when inserting several points with identical coordinates in the mode with limited bucket size
* Protect concurrent calls to setlocale() by a mutex (#5366)
Core:
* RFC 45: GDAL datasets and raster bands as virtual memory mapping
* GDALRasterBand::GetHistogram(): ignore nodata values (#4750, #5289)
* allow auto loading of drivers to be disabled via config option
* PAM .aux.xml and VRT: serialize Z component of a GCP as 'Z' attribute,
for consistency, instead of GCPZ that could not be read back previously.
In reading code, try reading 'Z' and if not found try 'GCPZ' (#5326)
* JPEG2000: Add GDALGeorefPamDataset and GDALJP2AbstractDataset classes and use
them in JP2KAK, JP2ECW, JP2OpenJPEG, JPEG2000 and MrSID drivers so that PAM
georeferencing consistently overrides internal georeferencing
* GDALDataset::IRasterIO(): don't use BlockBasedRasterIO() when INTERLEAVE=PIXEL if the request band count is just 1
* CopyWholeRaster(): make default GDAL_SWATH_SIZE to 1/4 of GDAL_CACHEMAX instead of hard-coded value of 10 MB
* don't report empty RAT on GDALGetDefaultRAT() (#5232)
* modify GDALGCPsToGeotransform() to do the regression in normalized coordinates to make the math more stable.
* expose new GDALComposeGeoTransforms() function.
* GDALDefaultOverviews::HaveMaskFile(): avoid fetching .ovr file
* JPEG2000: Fix reading georeferencing from some JPEG2000 files with duplicated GeoTIFF JP2Box (#5249)
* Cleanup raster block mutex (#5296)
* Driver registration: move JPEG2000 (Jasper based) after MrSID JPEG2000 support
Algorithms:
* warper: fix regression with lanczos resampling when yradius > xradius (#5058)
* warper: Make GDALCreateGenImgProjTransformer2() and GDALCreateGenImgProjTransformer3() fail when the creation of the reprojection transformer fails
* warper: Fix warping when input pixel size is too close to 0 (#5190)
* warper: revise formula of cubic resampling kernel, and a few optimizations (#5209)
* warper: added DST_METHOD and support for GCP and TPS dest
* warper: add support for DST_METHOD=RPC
* warper: fix mode and near resampling corner computation (#5311)
* warper: GDALGenImgProjTransform(): don't set panSuccess[i] to 1 in the middle of the function, if an intermediate transform before has set the flag to 0
* warper: fix cutline blending (#5343)
* warper: Average/mode kernels: make them less sensitive to numerical precision issues (#5350)
* warper: Average/mode kernels: avoid 'holes' when the source coordinates are in a reversed order from the target coordinates (#5433)
* warper: provide prototypes and work around strict compiler requirements on some opencl platforms (#5400)
* RPC: fix for computation of adfGTFromLL (#5395)
* TPS: optimization for GCC x86_64 that make computation about twice faster with huge number of GCPs
* TPS: when using Armadillo to solve the coefficients, use solve(A,B) instead of inv(A)xB to faster resolution
* TPS: compute direct and inverse transformations in parallel when warping option NUM_THREADS or GDAL_NUM_THREADS config. options are set to > 1
* Geoloc: fix wrong bilinear interpolation in GDALGeoLocTransform() (#5305)
* Geoloc: fail transformation of coordinates that is located on a nodata place of the geoloc array
* rasterize: preliminary support for MERGE_ALG=ADD for heatmaps
* gdal_grid: Add AVX optimized version of GDALGridInverseDistanceToAPower2NoSmoothingNoSearch
* fill_nodata: GDALFillNodata(): Fix use of uninitialized memory and integer overflows (#4010, #5203)
* rpc: Fix out-of-bounds read in RPC dem cubic interpolation
Utilities:
* gdalinfo: add -listmdd and -mdd all options (#5275)
* gdal_translate: add a -exponent option to be used with -scale
* gdal_translate: fix output file naming scheme in gdal_translate -sds (#5119)
* gdal_translate: fix logic in detection non-gray color table level (#5245)
* gdal_translate: add a -norat option
* gdal_translate: don't add 0.1 when -scale is used with a dstmin equal to dstmax (usefull to generate a raster with uniform color, i.e. scaleRatio = 0)
* gdal_translate: use floor() to compute image coordinates from world coordinates when specifying -projwin (usefull when extracting from left or top of upper-left corner, which generate negative image coordinates) (#5367)
* gdaltindex: remove annoying warning 'Warning 1: Field location of width 255 truncated to 254' (#5121)
* gdaltindex: add -src_srs_name and -src_srs_format to go with MapServer RFC100; add also a -f and -lyr_name options to be able to create a non-shapefile tileindex
* gdalwarp: Fix segfault where metadata values weren't being nullchecked properly during conflict resolution (#5069)
* gdalwarp: honor -s_srs when using cutline (#5081)
* gdalwarp: copy nodata values from source to dest if -dstnodata is not given ; add option to not set dest nodata with -dstnodata None (#5087)
* gdalwarp: do not return a non-zero exit status for warnings
* gdalwarp: prevent from copying statistics metadata (#5319)
* gdal_rasterize: set the progress bar to 100% even when there's nothing to do
* gdal_grid: add support for diffferent types of geometries (#5341)
* gdal_grid: add -z_increase and -z_multiply options
* gdaldem: check that value of -z, -s, -az and -alt is numeric
* gdalbuildvrt: validate values of -srcnodata and -vrtnodata arguments
* gdal2tiles.py: Corrected OpenLayers code to reflect fix to geodetic resolution factor
* gdal2tiles.py: add --tmscompatible flag so as to produce 2 tiles at zoom level 0 in geodetic profile
* rgb2pct.py: Use python tempfile logic to avoid permissions issues with cwd (#5079)
* gdal_edit.py: add a -ro option for drivers refusing to use the dataset in update-mode.
* gdal_calc.py: add --allBands options (#5388)
* Add vsipreload.cpp that can be compiled as a shared library that can be LD_PRELOAD'ed as an overload of libc to enable VSI Virtual FILE API to be used with binaries using regular libc for I/O
* Add the wcs_virtds_params.py sample utility to be able to set the MapServer WCS virtual dataset parameters from a tileindex with rasters of mixed SRS (linked to MapServer RFC100)
* gdalcompare.py: move to scripts
* gdalcompare.py: ensure image dimensions match
* gdal_ls.py: Fix issue with UTF-8 characters
Multi driver changes:
* JPEG2000 drivers: take into account PixelIsPoint in GeoJP2 boxes, and expose AREA_OR_POINT=Point (#5437)
* JP2KAK, JP2ECW, JP2OpenJPEG, JPEG2000 CreateCopy(): take into account AREA_OR_POINT=Point if present to write GeoJP2 box (#5437)
AAIGRID:
* revert DECIMAL_PRECISION and add SIGNIFICANT_DIGITS to CreateCopy() (#3732)
AIGRID:
* Turn off errors that can be triggered if the info has no VAT table related with this coverage (#3031)
BAG driver:
* Recognise falseNorthing=10000000 as UTM South (#5152)
DIMAP driver:
* fix memleak in error-code path
DTED driver:
* Speed optimization to be more friendly with CPU cache in GDAL_DTED_SINGLE_BLOCK=YES mode
ECW driver:
* fix crash in GDALDeregister_ECW() with ECW SDK 5 called from GDALDestroy() (#5214)
* fix issue with ECW_CLEVER optimization when nPixelSpace != sizeof eBufDataType (#5262)
Envisat driver:
* implement more reliable way of extracting GCPs from Meris tie-points (#5423)
* add DEM corrections of TP-ADS products when present (#5423)
* workaround dateline discontinuity in GCPs so they can be used with GDAL warping transformers (#5423)
ERS driver:
* fix wrong interpretation of RegistrationCellX/RegistrationCellY (#2612, #3056, #5075)
GeoRaster driver:
* fix RPC support (#4038)
* fix read error when reading from pyramids (#5076)
* make regular table and secure file a default for RDT (#5127)
* fix error when reading NBIT pyramid levels (#5199)
* show the VAT as RAT (#5200)
* fix reading and writing of statistics metadata (#5237)
* add generate pyramid create options (#5288)
* fix incorrect geotransform interpretation when there is no SRS (#5323)
GRASS driver:
* fix compilation issues for GRASS 7
GRIB driver:
* display temperature unit as deg Celcius in metadata (#3606)
GTiff driver:
* when compiling against internal libtiff, in read-only mode, optimization to
avoid fetching the whole Strip/TileCounts and Strip/TileOffsets arrays
* add validation of source overview characteristics with COPY_SRC_OVERVIEWS (#5059)
* convert invalid TIFFTAG_RESOLUTIONUNIT=0 to 1(Unknown) (#5069)
* fix potential issues in gt_citation.cpp / CheckUTM()
* upgrade internal libtiff to latest CVS
* implement reading and writing of ICC profiles (#5246)
* make SetColorInterpretation() round-trip with GetColorInterpreation();
read color interpretation from PAM if it exists (overrides internal tiff color interpretation);
set TIFFTAG_PHOTOMETRIC=PHOTOMETRIC_RGB if calling SetColorInterpretation() with R,G,B and no explicit PHOTOMETRIC creation option defined
* gt_wkt_srs.cpp: fix compilation with external libgeotiff. The file is dependant of quite a few CPL stuff, don't try to pretend otherwise
* implement GetVirtualMemAuto() for some formulations of TIFF files (RFC 45)
* fix reading a single-strip TIFF file where the single strip is bigger than 2GB (32bit builds only) (#5403)
* look for .tab file before .wld/.tfw
GTX driver:
* Add nodata support (#4660)
HDF4 driver:
* Skip "SceneLineNumber" table if present in the list of geolocation fields of
ASTER L1A dataset.
HDF5 driver:
* add support for ODIM H5 georeferencing method (#5032)
* set SRS GEOGCS in all cases (reverts r25801 and closes #4160)
* support HDF5 NATIVE_SCHAR type, subdatsets without PAM (#5088)
* release all opened handles so the file is closed at dataset closing (#5103)
* better deal with dimensions of CSK-L1A HDF5 subdatasets (#4227)
* avoid segmentation fault when H5Sget_simple_extent_ndims() returns negative value (#5291)
HFA driver:
* add minimally tested support for u2 and u4 data in basedata
* use direct binning for thematic layers and real instead of integer for values (#5066)
* add a HFA_COMPRESS_OVR config option to select whether to create compressed overviews (#4866)
* fix rewriting of statics in existing HFA file where base data value is 8-bit (#5175)
* implement re-writing existing histogram in HFA file, after raster editing (#5176)
* avoid segfaults when creating a Imagine dataset with an invalid WKT (#5258)
* expose color columns in RAT as Integer with values in range [0-255] instead of Real with values [0-1] (#5362)
* report histogram column as GFU_PixelCount instead of GFU_Generic (#5359)
* ensure histogram column written as float for HFA when using RAT API (#5382)
Idrisi driver:
* Improve coordinate system handling and min/max statistics (#4980)
IRIS driver:
* add height information on bands; rename dataset metadata item CAPPI_HEIGHT --> CAPPI_BOTTOM_HEIGHT (#5104)
* IRIS: add support for two bytes data (#5431)
JP2ECW driver:
* fix problem with JP2 write with SDK v5
* fix issue with ECW_CLEVER optimization when nPixelSpace != sizeof eBufDataType (#5262)
* avoid writing dummy GeoJP2 box when source dataset has no georeferencing (#5306)
JP2KAK driver:
* preliminary support for Kakadu V7.x
* fix creation of unsigned int16 with reversible compression (#4050)
* on Windows, use VSI cache for I/O by default, instead Kakadu own I/O layer
* remove extension from 12bit to 16bit (#5328)
JP2OpenJPEG driver:
* avoid 'Empty SOT marker detected: Psot=12.' warning to be repeated several times
* add support for encoding GCPs in a GeoJP2 box (#5279)
* avoid writing dummy GeoJP2 box when source dataset has no georeferencing (#5306)
JPEG driver: