| 1 | = GDAL/OGR 2.0 Release Notes = |
| 2 | |
| 3 | == In a nutshell... == |
| 4 | |
| 5 | * New GDAL drivers: |
| 6 | - BPG: read-only driver for Better Portable Graphics format (experimental, no build support) |
| 7 | - GPKG: read/write/update capabilities in the unified raster/vector driver |
| 8 | - KEA: read/write driver for KEA format |
| 9 | - PLMosaic: read-only driver for Planet Labs Mosaics API |
| 10 | - ROI_PAC: read/write driver for image formats of JPL's ROI_PAC project (#5776) |
| 11 | - VICAR: read-only driver for VICAR format |
| 12 | * New OGR drivers: |
| 13 | - Cloudant: read/write driver for Cloudant service |
| 14 | - CSW: read-only driver for OGC CSW (Catalog Service for the Web) protocol |
| 15 | - JML: read/write driver for OpenJUMP .jml format |
| 16 | - PLScenes: read-only driver for Planet Labs Scenes API |
| 17 | - Selaphin: read/write driver for the Selaphin/Seraphin format (#5442) |
| 18 | * Significantly improved drivers: CSV, GPKG, GTiff, JP2OpenJPEG, MapInfo file, PG, SQLite |
| 19 | * RFC 31: OGR 64bit Integer Fields and FIDs (trac.osgeo.org/gdal/wiki/rfc31_ogr_64) |
| 20 | In OGR core, OGR SQL, Shapefile, PG, PGDump, GeoJSON, CSV, GPKG, SQLite, MySQL, |
| 21 | OCI, MEM, VRT, JML, GML, WFS, CartoDB, XLSX, ODS, MSSQLSpatial, OSM, LIBKML, MITAB |
| 22 | * RFC 46: GDAL/OGR unification ( http://trac.osgeo.org/gdal/wiki/rfc46_gdal_ogr_unification) |
| 23 | - GDAL and OGR PDF drivers are unified into a single one |
| 24 | - GDAL and OGR PCIDSK drivers are unified into a single one |
| 25 | * RFC 49: Add support for curve geometries (http://trac.osgeo.org/gdal/wiki/rfc49_curve_geometries) |
| 26 | In OGR core, and GML, NAS, PostgreSQL, PGDUMP, GPKG, SQLite, VFK, VRT, Interlis drivers |
| 27 | * RFC 50: Add support for OGR field subtypes (http://trac.osgeo.org/gdal/wiki/rfc50_ogr_field_subtype) |
| 28 | In OGR core, OGR SQL, swig bindings, CSV, FileGDB, GeoJSON, GML, GPKG, OpenFileGDB, PG, PGDump, SQLite, VRT |
| 29 | * RFC 51: RasterIO() improvements : resampling and progress callback (http://trac.osgeo.org/gdal/wiki/rfc51_rasterio_resampling_progress) |
| 30 | * RFC 52: Stricter SQL quoting (http://trac.osgeo.org/gdal/wiki/rfc52_strict_sql_quoting) |
| 31 | * RFC 53: OGR not-null constraints and default values (http://trac.osgeo.org/gdal/wiki/rfc53_ogr_notnull_default) |
| 32 | In OGR core, OGR SQL, PG, PGDump, CartoDB, GPKG, SQLite, MySQL, OCI, VRT, GML, WFS, FileGDB, OpenFileGDB and MSSQLSpatial |
| 33 | * RFC 54: Dataset transactions (https://trac.osgeo.org/gdal/wiki/rfc54_dataset_transactions) |
| 34 | In PG, GPKG, SQLite, FileGDB and MSSQLSpatial |
| 35 | * RFC 55: refined SetFeature() and DeleteFeature() semantics. |
| 36 | In GPKG, Shape, MySQL, OCI, SQLite, FileGDB, PG, CartoDB, MITAB and MSSQL |
| 37 | * RFC 56: OFTTime/OFTDateTime millisecond accuracy ( https://trac.osgeo.org/gdal/wiki/rfc56_millisecond_precision ) |
| 38 | * RFC 57: 64bit histogram bucket count ( https://trac.osgeo.org/gdal/wiki/rfc57_histogram_64bit_count ) |
| 39 | * Upgrade to EPSG v8.5 database |
| 40 | * Fix locale related issues when formatting or reading floating point numbers (#5731) |
| 41 | |
| 42 | == New installed files == |
| 43 | * data/gdalvrt.xsd: XML schema of the GDAL VRT format |
| 44 | |
| 45 | == Backward compatibility issues == |
| 46 | |
| 47 | See https://svn.osgeo.org/gdal/branches/2.0/gdal/MIGRATION_GUIDE.TXT |
| 48 | |
| 49 | == GDAL/OGR 2.0 - General Changes == |
| 50 | |
| 51 | Build(Unix): |
| 52 | * Fix for cpl_recode_iconv.cpp compilation error on freebsd 10 (#5452) |
| 53 | * Fix pthread detection for Android |
| 54 | * Fix in Armadillo detection test (#5455) |
| 55 | * Fix detection of OCI by changing linking order to please modern GCC (#5550) |
| 56 | * Fix test to accept MariaDB 10.X as valid MySQL (#5722) |
| 57 | * Make sure $(GDAL_INCLUDE) is first to avoid being confused by GDAL headers of a previous version elsewhere in the include path (#5664) |
| 58 | * Always use stat rather than stat64 for Mac OSX in AC_UNIX_STDIO_64. (#5780, #5414). |
| 59 | * Add support for ECW SDK 5.1 (#5390) |
| 60 | * Do not enable Python bindings if PYTHON env variable is set without --with-python being explicitely specified (#5956) |
| 61 | |
| 62 | Build(Windows): |
| 63 | * PDF: fix compilation issue with Visual Studio 2012 (#5744) |
| 64 | * PDF: Add support to compile the pdf driver as plugin (#5813) |
| 65 | * Add support for MrSID 9.1 SDK (#5814) |
| 66 | * when building netCDF, HDF4, HDF5 as plugins, call registration of 'sub-drivers' GMT, HDF4Image and HDF5Image (#5802) |
| 67 | |
| 68 | Build(all): |
| 69 | * Ruby bindings: disable autoconf and makefile support (#5880) |
| 70 | * Fix compilation errors with json-c 0.12 (#5449) |
| 71 | * Fix compilation error in alg/gdalgrid.cpp when AVX is available, but not SSE (#5566) |
| 72 | |
| 73 | == GDAL 2.0 - Overview of Changes == |
| 74 | |
| 75 | Port: |
| 76 | * Introduce a more generic lock API (recursive mutex, adaptive mutex, spinlock) |
| 77 | * Add types for CPLMutex, CPLCond and CPLJoinableThread (only enforced in -DDEBUG mode) |
| 78 | * Add CPLGetPhysicalRAM() and CPLGetUsablePhysicalRAM() |
| 79 | * CPLSpawn() on Windows: quote arguments with spaces in them (#5469) |
| 80 | * /vsigzip/: avoid infinite loop when reading broken .gml.gz file (#5486) |
| 81 | * /vsizip/ : fix bug that caused premature end of file condition with some read patterns (#5530) |
| 82 | * /vsizip/ on >4GB zips: accept .zip declare 0 disks (#5615) |
| 83 | * /vsitar/: remove useless validation test that prevents from opening valid .tar files (#5864) |
| 84 | * /vsistdout/: add VSIStdoutSetRedirection() for compatibility with MapServer FCGI (https://github.com/mapserver/mapserver/pull/4858) |
| 85 | * /vsimem/: update st_mtime and return it with Stat() |
| 86 | * /vsimem/: in update mode, when seeking after end of file, only extend it if a write is done |
| 87 | * /vsimem/: Make Rename() on a directory also rename filenames under that directory (#5934) |
| 88 | * /vsicurl/: avoid reading after end-of-file and fix failure when reading more than 16MB in a single time (#5786) |
| 89 | * Allow CPL_VSIL_CURL_ALLOWED_EXTENSIONS to be set to special value {noext} |
| 90 | * VSIWin32Handle::Flush(): no-op implementation is sufficient to offer same guarantee as POSIX fflush() (#5556) |
| 91 | * Unix VSIL: reset eof in all cases in Seek() |
| 92 | * Windows plugins: complementary fix to #5211 to avoid error dialog box when there are dependency problems (#5525) |
| 93 | * Fix VSIReadDirRecursive() recursing on the parent or current directory (#5535) |
| 94 | * cpl_error: obfuscate password |
| 95 | * HTTP: set CURLOPT_NOSIGNAL if available (#5568) |
| 96 | * Add COOKIE option to CPLHTTPFetch() (#5824) |
| 97 | * CPLHTTPFetch(): add retry logic in case of 502, 503 and 504 errors with the GDAL_HTTP_MAX_RETRY (default: 0)and GDAL_HTTP_RETRY_DELAY (default: 30 s) config options (#5920) |
| 98 | * Fix stack corruption upon thread termination with CPLSetThreadLocalConfigOption on Windows 32 bit (#5590) |
| 99 | * cpl_csv: Stop probing for csv/horiz_cs.csv. (#5698) |
| 100 | * vsipreload: implement clearerr() and readdir64() (#5742) |
| 101 | * CPLsetlocale(): return a string that is thread-locale storage to avoid potential race in CPLLocaleC::CPLLocaleC() (#5747) |
| 102 | * CPLHexToBinary(): faster implementation (#5812) |
| 103 | |
| 104 | Core: |
| 105 | * Add imagery (satellite or aerial) metadata support (Alos, DigitalGlobe, Eros, GeoEye, OrbView, Landsat, Pleiades, Resurs-DK1, Spot/Formosat). |
| 106 | * Reduce lock contention on the global cache mutex and make it possible to use spin lock instead with GDAL_RB_LOCK_TYPE=SPIN |
| 107 | * Block cache: make block cache manager safe with respect to writing dirty blocks (#5983) |
| 108 | * EXIF reader: fix memleak in error code path |
| 109 | * EXIF reader: add missing validation for some data types (#3078) |
| 110 | * Fix crash in GDALPamRasterBand::SerializeToXML() when saving an empty RAT (#5451) |
| 111 | * ComputeStatistics(): use Welford algorithm to avoid numerical precision issues when computing standard deviation (#5483) |
| 112 | * Fix crashing issue with TLS finalization on Unix (#5509) |
| 113 | * GDALJP2Metadata::CreateGMLJP2(): use EPSGTreatsAsLatLong() and EPSGTreatsAsNorthingEasting() to determine if axis swapping is needed (#2131) |
| 114 | * GDALJP2AbstractDataset: implement GetFileList() to report .wld/.j2w if used |
| 115 | * GMLJP2: be robust when parsing GMLJP2 content that has nul character instead of \n (#5760) |
| 116 | * GMLJP2: add missing rangeParameters element to validate against GMLJP2 schema (#5707) |
| 117 | * GMLJP2: write non null bounding box at root of FeatureCollection (#5697) |
| 118 | * GMLJP2: SRS export as GML: output XML definition of a SRS as a GML 3.1.1 compliant Dictionary (#5697) |
| 119 | * GMLJP2: when setting GDAL_JP2K_ALT_OFFSETVECTOR_ORDER=TRUE write it as a XML comment so that we can interpret the OffsetVector elements correctly on reading |
| 120 | * GMLJP2: when parsing a GMLJP2 box, accept srsName found on gml:RectifiedGrid if not found on origin.Point, so as to be compatible with the example of DGIWG_Profile_of_JPEG2000_for_Georeferenced_Imagery.pdf (#5697) |
| 121 | * GMLJP2: add compatibility with GMLJP2 v2.0 where SRS is expressed as CRS URL |
| 122 | * GMLJP2: on reading, don't do axis inversation if there's an explicit axisName requesting easting, northing order (#5960); also strip axis order in reported SRS |
| 123 | * JP2Boxes: add null terminated byte to GDAL XML, XML or XMP boxes |
| 124 | * Add GDALGetJPEG2000Structure() (#5697) |
| 125 | * GDALMultiDomainMetadata::XMLInit(): when importing XML metadata, erase the existing document to replace it with the new one |
| 126 | * Metadata: fix correct sorting of StringList / metadata (#5540, #5557) |
| 127 | * Make GetMaskBand() work with GDT_UInt16 alpha bands (#5692) |
| 128 | * Fix 32bit overflow in GDALRasterBand::IRasterIO() and GDALDataset::BlockBasedRasterIO() (#5713) |
| 129 | * 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 |
| 130 | * Fix crash when calling GetTiledVirtualMem() on non-Linux platform (#5728) |
| 131 | * Add GDAL_OF_INTERNAL flag to avoid dataset to be registered in the global list of open datasets |
| 132 | * 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 |
| 133 | * Implement GDALColorTable::IsSame() |
| 134 | * GDALPamDataset: do not serialize dataset metadata unless it has been set through GDALDataset::SetMetadata() or GDALDataset::SetMetadataItem() |
| 135 | * GDALLoadTabFile: add TAB_APPROX_GEOTRANSFORM=YES/NO configuration option to decide if an approximate geotransform is OK (#5809) |
| 136 | * Optimize copy efficiency from tiled JPEG2000 images |
| 137 | * Avoid fetching remote non-existing resources for sidecar files, when using /vsicurl/ with a URL that takes arguments (#5923) |
| 138 | |
| 139 | Algorithms: |
| 140 | * RPC transformer: fix near interpolation in RPC DEM (#5553) |
| 141 | * RPC transformer: take into account nodata in RPC DEM (#5680) |
| 142 | * RPC transformer: add RPC_DEM_MISSING_VALUE transformer option to avoid failure when there's no DEM at the transformed point (#5730) |
| 143 | * RPC transformer: in DEM mode, implement optimization, in specific conditions (input points at same longitude, DEM in EPSG:4326) to extract several elevations at a time |
| 144 | * TPS transformer: fix crash if the forward or backward transform cannot be computed (#5588) |
| 145 | * OpenCL warper: remove unused variable in bilinear resampling that can cause compilation error (#5518) |
| 146 | * OpenCL wraper: fix code compilation with NVIDIA OpenCL (#5772) |
| 147 | * Overview: Fix and speed-up cubic resampling in overview computation to take into account scaling factor (#5685) |
| 148 | * 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) |
| 149 | * Overview: avoid crash when computing overview with a X dimension much smaller than Y dimension (#5794) |
| 150 | * GDALRegenerateOverviewsMultiBand(): fix stride calculation error with certain raster dimensions (#5653) |
| 151 | * Warper: numerous speed optimizations (SSE2 specific code, more fast code paths, ...) |
| 152 | * Warper: fix Cubic and Bilinear resampling to work correctly with downsizing (#3740) |
| 153 | * Warper: fix and optimize CubicSpline |
| 154 | * 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) |
| 155 | * Warper: accept warping options METHOD=NO_GEOTRANSFORM and DST_METHOD=NO_GEOTRANSFORM to run gdalwarp on ungeoreferenced images |
| 156 | * Warper: fix GDALSuggestedWarpOutput() wrong extent in some circumstances (e.g. dataset of big dimension with world coordinates) (#5693) |
| 157 | * Warper: fix integer overflow when reprojecting into an area with (part of) bounds completely outside of the source projection (#5789) |
| 158 | * Warper: add min,max,med,q1 and q3 resampling algorithms (#5868) |
| 159 | * Warper: add a SRC_COORD_PRECISION warping option to help getting more reproducable output when -wm parameter changes (#5925) |
| 160 | * Warper: fix failure in GDALSuggestedWarpOut2() when top-left and bottom-right corners tranform to the same point (#5980) |
| 161 | * GDALReprojectImage(): takes into account nodata values set on destination dataset |
| 162 | * Median cut and dithering: optimizations and enhancements to deal with 8-bit precision (only if using internal interface for now) |
| 163 | * rasterfill: add option to specify driver to use for temporary files |
| 164 | * Polygonize: speed optimization: do not try to build the polygon for pixels that are masked by the mask band (i.e. alpha, nodata, etc...). Can considerably speed-up processing when the nodata outline forms a very complex polygon |
| 165 | |
| 166 | Utilities: |
| 167 | * gdalinfo: display extra metadata domains attached to band, and refactor code a bit (#5542) |
| 168 | * gdalinfo: add -oo option per RFC 46 |
| 169 | * gdalinfo: add -json switch (partial implementation of RFC 44) |
| 170 | * gdaladdo: add -oo option per RFC 46 |
| 171 | * gdaladdo: add warning when subsampling factor 1 specified |
| 172 | * gdal_translate: add -oo option per RFC 46 |
| 173 | * gdal_translate: add -r and -tr options per RFC 51 |
| 174 | * gdal_translate: add a -projwin_srs option to be able to express -projwin coordinates in another SRS than the one of the dataset |
| 175 | * gdal_translate: support -'outsize avalue 0' or '-outsize 0 avalue' to preserve aspect ratio |
| 176 | * gdal_translate: avoid preserving statistics when changing data type in situations where clamping can occur |
| 177 | * gdal_translate: adjust RPC metadata (pixel/line offset/scale) when subsetting/rescaling, instead of just discarding it |
| 178 | * gdal_translate: don't recopy band units if rescaling or unscaling is involved (#3085) |
| 179 | * gdal_translate: increase GDAL_MAX_DATASET_POOL_SIZE default value to 450. (#5828) |
| 180 | * gdal_translate: preserve NBITS image structure metadata when possible |
| 181 | * gdalwarp: add -oo option per RFC 46 |
| 182 | * gdalwarp: add -te_srs option to specify -te in a SRS which isn't the target SRS |
| 183 | * 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) |
| 184 | * gdalwarp: initialize destination dataset to no_data value when automatically propagating source nodata (#5675) |
| 185 | * gdalwarp: only apply INIT_DEST when processing the first input dataset (#5387) |
| 186 | * gdalwarp: increase GDAL_MAX_DATASET_POOL_SIZE default value to 450. (#5828) |
| 187 | * gdalwarp: do not preserve NODATA_VALUES metadata item in output dataset if adding an alpha channel with -dstalpha |
| 188 | * gdalwarp: fix '-dstnodata none' to avoid read of uninitialized values (#5915) |
| 189 | * gdalwarp: make -crop_to_cutline densify cutline in source SRS before reprojecting it to target SRS (#5951) |
| 190 | * gdaldem: avoid too large files to be produced when using -co COMPRESS=xxxx -co TILED=YES (#5678) |
| 191 | * gdallocationinfo: add -oo option |
| 192 | * gdaltransform: add a -output_xy flag to restrict output coordinates to 'x y' only |
| 193 | * gdal_grid: use nodata= parameter in the algorithm string to determine the nodata value to set on the band (#5605) |
| 194 | * gdalbuildvrt: add a -r option to specify the resampling algorithm |
| 195 | * gdal_edit.py: add -unsetstats option (and fix -a_nodata to run on all bands, ant not just first one) |
| 196 | * gdal_edit.py: add -stats and -approx_stats flags (patch by mwtoews, #5805) |
| 197 | * gdal_edit.py: change -mo add metdata to existing one; add new option -unsetmd to clean existing metadata |
| 198 | * gdal_edit.py: add -oo to specify open options |
| 199 | * gdal_retile.py: fix to make it work with input images of different resolutions (#5749) |
| 200 | * gdal_retile.py: implement progress bar (#5750) |
| 201 | * gdal_merge.py: add timing information in verbose output |
| 202 | * gdal_merge.py: take into account alpha band to avoid writing zones of source images that are fully transparent (#3669) |
| 203 | * gdal2tiles.py: fix inverted long/lat in BoundingBox and Origin elements of tilemapresource.xml (#5336) |
| 204 | * pct2rgb.py: make it work with color tables with less than 256 entries (#5555) |
| 205 | * gdal_fillnodata.py: FillNodata: copy no data value to destination band when creating a dataset (if available) (#4625) |
| 206 | * gdal_proximity.py: add a -use_input_nodata flag |
| 207 | * gdalcompare.py: add options to supress selected comparisons |
| 208 | * gdalcompare.py: takes into account differences in overview bands |
| 209 | * gdalcompare.py: compute difference on float to avoid integer underflow |
| 210 | * 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 |
| 211 | |
| 212 | Python samples: |
| 213 | * Added swig/python/samples/jpeg_in_tiff_extract.py |
| 214 | * Added dump_jp2.py |
| 215 | * Added validate_jp2.py |
| 216 | * Added build_jp2.py |
| 217 | * Added gcps2ogr.py |
| 218 | * tolatlong.py: report error when operating on a non-georeferenced dataset |
| 219 | |
| 220 | AAIGRID: |
| 221 | * Fix formatting string (#5731) |
| 222 | |
| 223 | BAG driver: |
| 224 | * change nodata value for uncertainty band to 1e6 (#5482) |
| 225 | |
| 226 | BMP driver: |
| 227 | * backout r17065 change that infered georeferencing based on the resolution information in the BMP header (#3578) |
| 228 | |
| 229 | DIMAP driver: |
| 230 | * DIMAP 2: handle the case where the Raster_Data element is in main file (#5018, #4826) |
| 231 | * DIMAP 2: fix to extract geodetic SRS (#5018, #4826) |
| 232 | * DIMAP 2: fix to extract geotransform from JPEG2000 file if not available in XML (#5018, #4826) |
| 233 | |
| 234 | DDS driver: |
| 235 | * Add ETC1 compression format support |
| 236 | * Header correction for worldwind client |
| 237 | |
| 238 | ECW driver: |
| 239 | * correctly assign color interpretation to bands if order is unusual |
| 240 | |
| 241 | ENVI driver: |
| 242 | * 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) |
| 243 | * when writing, consider that LOCAL_CS SRS is like ungeoreferenced (#5467) |
| 244 | |
| 245 | ERS driver: |
| 246 | * reset RasterInfo.RegistrationCellX/Y if setting a new geotransform on an updated .ers file (#5493) |
| 247 | * fix SetProjection() (#5840) |
| 248 | |
| 249 | GeoRaster driver: |
| 250 | * fix Oracle SRID authority (#5607) |
| 251 | * fix user-defined SRID issue (#5881) |
| 252 | * new SRID search (#5911) |
| 253 | |
| 254 | GIF driver: |
| 255 | * add compatibility with giflib 5.1 (#5519) |
| 256 | * fix crash on images without color table (#5792) |
| 257 | * fix reading of interlaced images with giflib >= 5.0 |
| 258 | * validate the size of the graphic control extension block (#5793) |
| 259 | * implement GetFileList() to report worldfile |
| 260 | |
| 261 | GRASS driver: |
| 262 | * GRASS 7.0.0 support (#5852) |
| 263 | |
| 264 | GRIB driver: |
| 265 | * avoid divide by zero while setting geotransform on 1xn or nx1 grib file (#5532à |
| 266 | * allow writing PDS template numbers to all bands (#5144) |
| 267 | |
| 268 | GTiff driver: |
| 269 | New capabilities: |
| 270 | * for JPEG-in-TIFF, use JPEG capabilities to decompress fast overview levels 2,4 and 8, to generate 'hidden' overviews used by RasterIO() |
| 271 | * add DISCARD_LSB creation option (lossy compression) to be best used with PREDICTOR=2 and LZW/DEFLATE compression |
| 272 | * when GTIFF_DIRECT_IO=YES is enabled, performance improvements in GTiffRasterBand::DirectIO() with Byte dataset and Byte buffer |
| 273 | * implement dataset DirectIO() |
| 274 | * 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) |
| 275 | * support reading and created streamable files |
| 276 | * for JPEG-compressed TIFF, avoid quantization tables to be emitted in each strip/tile and use optimized Huffman coding by default |
| 277 | * avoid SetNoDataValue() to immediately 'cryztalize' the IFD |
| 278 | * allow unsetting TIFFTAG_SOFTWARE, TIFFTAG_DOCUMENTNAME, etc... by removing them from metadata list or passing None as a value of SetMetadataItem() (#5619) |
| 279 | * allow lossless copying of CMYK JPEG into JPEG-in-TIFF |
| 280 | * set alpha on target by default when translating from Grey+Alpha |
| 281 | * 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) |
| 282 | * add RPCTXT=YES creation option to write sidecar _RPC.TXT file |
| 283 | * internal libtiff updated to upstream libtiff 4.0.4beta |
| 284 | * internal libgeotiff updated to upstream libgeotiff SVN head |
| 285 | * speed optimization on write (at least in Vagrant) (#5914) |
| 286 | * use importFromEPSG() when ProjectedCSTypeGeoKey is available (#5926) |
| 287 | * on reading better deal with a few ESRI formulations of WebMercator (#5924) |
| 288 | Fixes: |
| 289 | * when overriding metadata in update mode, make sure to clear it from PAM file (#5807) |
| 290 | * fix handling of Mercator_2SP (#5791) |
| 291 | * avoid TIFF directory to be written (at end of file) when creating a JPEG-in-TIFF file |
| 292 | * 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 |
| 293 | * fix to make band SetMetadata(NULL) clear band metadata (#5628) |
| 294 | * fix error message when requesting a non existing directory |
| 295 | * check data type with PHOTOMETRIC=PALETTE |
| 296 | * be robust to out-of-memory conditions with SplitBand and SplitBitmapBand |
| 297 | * avoid using optimized JPEG --> JPEG-in-TIFF path if INTERLEAVE=BAND is specified with a 3-band JPEG |
| 298 | * to make Python bindings happy, avoid emitting CE_Failure errors due to libtiff errors when we still manage to open the file (#5616) |
| 299 | * avoid crash when reading GeoTIFF keys if the stored key type isn't the one expected |
| 300 | * make sure to call libgeotiff gtSetCSVFilenameHook() method when linking against external libgeotiff |
| 301 | * avoid/limit DoS with huge number of directories |
| 302 | * clean spurious spaces when reading values from _RPC.TXT |
| 303 | * serialize RPC in PAM .aux.xml file if using PROFILE != GDALGeoTIFF and RPB = NO |
| 304 | * fix clearing of GCPs (#5945) |
| 305 | * avoid generated corrupted right-most and bottom-most tiles for 12-bit JPEG-compressed (#5971) |
| 306 | * make sure to use scanline write API when writing single-band single-strip 1-bit datasets |
| 307 | |
| 308 | GRASS driver: |
| 309 | * fix compilation issues against GRASS 7 |
| 310 | |
| 311 | HDF4 driver: |
| 312 | * Add configuration support to be able to open more files simultaneously |
| 313 | * Add class suffix to the parameter name when parsing HDF-EOS objects. |
| 314 | * Fix AnyTypeToDouble() to use proper type (int instead of long) to work with DFNT_INT32/DFNT_UINT32 on 64-bit Linux (#5965) |
| 315 | * MODIS: Set more correct values for PIXEL_/LINE_ OFFSET/STEP by comparing longitude and latitude subdatasets dimensions with main subdataset dimensions |
| 316 | |
| 317 | HDF5 driver: |
| 318 | * avoid opening BAG files in the case HDF5 and BAG are plugins, and HDF5 is registered before BAG |
| 319 | |
| 320 | HFA driver: |
| 321 | * fix recognition of Hotine Mercator Azimuth Center in Imagine format (and Swisstopo GeoTIFF) (#5551) |
| 322 | * fix various hangs on invalid files |
| 323 | * read projection even when it does not contain datum information (#4659) |
| 324 | |
| 325 | HTTP driver/wrapper: |
| 326 | * make it work with vector files too |
| 327 | * fix handling of non VSI*L file on Windows |
| 328 | |
| 329 | IRIS driver: |
| 330 | * add support for the SHEAR data type (#5549) |
| 331 | |
| 332 | JPEG2000 driver: |
| 333 | * do expansion of 1-bit alpha channel to 8-bit by default. Can be controlled with the 1BIT_ALPHA_PROMOTION open option (default to YES) |
| 334 | * add GMLJP2 creation option |
| 335 | * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box |
| 336 | * Add capability of reading GMLJP2 v2 embedded feature collections and annotations |
| 337 | * Add read/write support for RPC in GeoJP2 box (#5948) |
| 338 | |
| 339 | JP2ECW driver: |
| 340 | * add metadata about JPEG2000 codestream and boxes (#5408) |
| 341 | * Add 1BIT_ALPHA_PROMOTION open option (default to YES) to control expansion of 1-bit alpha channel to 8-bit |
| 342 | * correctly assign color interpretation to bands if order is unusual |
| 343 | * add WRITE_METADATA and MAIN_MD_DOMAIN_ONLY creation options to write GDAL metadata, JP2 XML boxes or XMP box |
| 344 | * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box |
| 345 | * Add capability of reading GMLJP2 v2 embedded feature collections and annotations |
| 346 | * Add read/write support for RPC in GeoJP2 box (#5948) |
| 347 | |
| 348 | JP2KAK driver: |
| 349 | * Compatibility with Kakadu v7.5 (#4575, #5344) |
| 350 | * Handle Kakadu version 7 allocator.finalize (#4575) |
| 351 | * fix bug in vsil_target::end_rewrite() that prevented TLM index to be generated (#5585) |
| 352 | * Add FLUSH in creation option XML (#5646) |
| 353 | * Do expansion of 1-bit alpha channel to 8-bit by default. Can be controlled with the 1BIT_ALPHA_PROMOTION open option (default to YES) |
| 354 | * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box |
| 355 | * Add capability of reading GMLJP2 v2 embedded feature collections and annotations |
| 356 | * Add read/write support for RPC in GeoJP2 box (#5948) |
| 357 | |
| 358 | JP2OpenJPEG driver: |
| 359 | * Support writing arbitrary number of bands. (#5697) |
| 360 | * Generate cdef box when transparency is needed. Add NBITS, 1BIT_ALPHA and ALPHA creation options (#5697) |
| 361 | * add INSPIRE_TG (for conformance with Inspire Technical Guidelines on Orthoimagery), PROFILE, JPX and GEOBOXES_AFTER_JP2C creation option (#5697) |
| 362 | * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box |
| 363 | * Add capability of reading GMLJP2 v2 embedded feature collections and annotations |
| 364 | * add PRECINCTS creation option (#5697) |
| 365 | * allow several quality values to be specified with QUALITY creation option. Add TILEPARTS, CODEBLOCK_WIDTH and CODEBLOCK_HEIGHT options (#5697) |
| 366 | * support reading&writing datasets with unusual order of band color interpretation (#5697) |
| 367 | * add WRITE_METADATA and MAIN_MD_DOMAIN_ONLY creation options to write GDAL metadata, JP2 XML boxes or XMP box (#5697) |
| 368 | * add support for reading/writing/updating IPR box (from/into xml:IPR metadata domain) (#5697) |
| 369 | * add YCC creation option to do RGB->YCC MCT, and turn it ON by default (#5634) |
| 370 | * add USE_SRC_CODESTREAM=YES experimental creation option, to reuse the codestream of the source dataset unmodified |
| 371 | * support reading & writing images with a color table (#5697) |
| 372 | * support update mode for editing metadata and georeferencing (#5697) |
| 373 | * add compatibility with OpenJPEG 2.1 (#5579) |
| 374 | * fix warning when reading a single tile image whose dimensions are not a multiple of 1024 (#5480) |
| 375 | * Add 1BIT_ALPHA_PROMOTION open option (default to YES) to control expansion of 1-bit alpha channel to 8-bit |
| 376 | * Add read/write support for RPC in GeoJP2 box (#5948) |
| 377 | * limit number of file descriptors opened |
| 378 | |
| 379 | JPEG driver: |
| 380 | * use EXIF overviews if available |
| 381 | * add EXIF_THUMBNAIL creation option to generate an EXIF thumbnail |
| 382 | * use optimized Huffman coding to reduce file size |
| 383 | * add support for reading and writing COMMENT |
| 384 | * optimize whole image reading with dataset IRasterIO() |
| 385 | * report non-fatal libjpeg errors as CE_Warning (or CE_Failure if GDAL_ERROR_ON_LIBJPEG_WARNING = TRUE) (#5667) |
| 386 | * in compressor, increase default val of max_memory_to_use to 500MB |
| 387 | |
| 388 | JPIPKAK driver: |
| 389 | * avoid symbol collision with kdu_cpl_error_message from JP2KAK driver |
| 390 | * reset the bNeedReinitialize flag after a timeout (#3626) |
| 391 | |
| 392 | KMLSuperOverlay driver: |
| 393 | * fix truncated raster on 32 bit builds (#5683) |
| 394 | * make Identify() more restrictive to avoid false positives |
| 395 | |
| 396 | L1B driver: |
| 397 | * add support for little-endian LRPT datasets (#5645) |
| 398 | * expose band mask when there are missing scanlines (#5645) |
| 399 | * expose WGS-84 or GRS-80 datum if read from header record (#5645) |
| 400 | |
| 401 | MAP driver: |
| 402 | * retrieve the image filename in a case insensitive way (#5593) |
| 403 | |
| 404 | MBTiles driver: |
| 405 | * better detection of 4 bands dataset and take into account alpha component of color table in RasterIO() (#5439) |
| 406 | * avoid wrong detection of 3 bands when finding paletted PNG in /vsicurl mode (#5439) |
| 407 | * fix dimension computation when opening a single tile dataset |
| 408 | * better computation of extent from min/max of tile coordinates, for a single zoom level |
| 409 | * use standard EPSG:3857 origin to fix a ~8m shift (#5785) |
| 410 | |
| 411 | MEM driver: |
| 412 | * implement optimized versions of raster band and dataset IRasterIO() |
| 413 | |
| 414 | MSG driver: |
| 415 | * fix compilation problem (#5479) |
| 416 | * fix memory leaks (#5541) |
| 417 | |
| 418 | NetCDF driver: |
| 419 | * Force block size to 1 scanline for bottom-up datasets if nBlockYSize != 1 (#5291) |
| 420 | * Fix computation of inverse flattening (#5858) |
| 421 | * In case the netCDF driver is registered before the GMT driver, avoid opening GMT files |
| 422 | * Fix crash on opening a NOAA dataset (#5962) |
| 423 | |
| 424 | NGSGEOID driver: |
| 425 | * make Identify() more restrictive |
| 426 | |
| 427 | NITF driver: |
| 428 | * 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 |
| 429 | * HISTOA TRE: put definition of TRE in conformance with STDI-0002 (App L page 14) and STDI-0006 (Page 57) (#5572) |
| 430 | |
| 431 | OGDI driver: |
| 432 | * Remove OGDIDataset::GetInternalHandle (#5779). |
| 433 | |
| 434 | OZI driver: |
| 435 | * remove .map header detection from Identify() since this is actually handled by the MAP driver |
| 436 | |
| 437 | PCIDSK driver: |
| 438 | * close dataset in case of exception in PCIDSK2Dataset::LLOpen() (#5729) |
| 439 | |
| 440 | PCRaster driver: |
| 441 | * Allign libcsf code with PCRaster raster format code (#5843) |
| 442 | * Implement Create() (#5844) |
| 443 | * Improve handling of no-data value (#5953) |
| 444 | |
| 445 | PDF driver: |
| 446 | * add compatibility with Poppler 0.31.0 |
| 447 | * in the OGC Best practice case, switch rotational terms of the geotransform matrix (gt[2] and gt[4]) |
| 448 | * in the OGC Best practice case, handle rotations of 90 and 270 degrees. |
| 449 | * advertize LAYERS metadata domain |
| 450 | * deal with OHA- datum (Old Hawaiian) |
| 451 | * fix compilation problem with Podofo on Windows (patch by keosak, #5469) |
| 452 | * add sanity check on page count |
| 453 | |
| 454 | PDS driver: |
| 455 | * Added support for SPECTRAL_QUBE objects used e.g. by THEMIS instrument of Mars Odyssey spacecraft. |
| 456 | |
| 457 | PNG driver: |
| 458 | * add creation options to write metadata in TEXT/iTXt chunks |
| 459 | * optimize whole image reading with dataset IRasterIO() |
| 460 | * Internal libpng: update to 1.2.52 |
| 461 | |
| 462 | PostgisRaster driver: |
| 463 | * Fix read of metadata for tables with multiple raster cols (#5529) |
| 464 | |
| 465 | Rasterlite driver: |
| 466 | * accept space in filename |
| 467 | |
| 468 | RPFTOC driver: |
| 469 | * add tweak for weird relative directory names in the A.TOC file (#5979) |
| 470 | |
| 471 | VRT driver: |
| 472 | * VRT warp: make selection of source overview work (#5688) |
| 473 | * 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) |
| 474 | * make sure nodata value set on VRT raster band is taken into account in statistics computation (#5463) |
| 475 | * fix ComputeStatistics() on VRT that are a sub-window of source dataset (#5468) |
| 476 | * VRT raw: fix corrupted serialization on Windows (#5531) |
| 477 | * 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) |
| 478 | * VRT warp: avoid to warp truncated blocks at right/bottom edges, so that scale computation is correct |
| 479 | * fix RasterIO() to be able to fill buffers larger than 2GB (#5700) |
| 480 | * fix performance problem when serializing into XML a big number of sources |
| 481 | * do not output empty <Metadata> node on VRTDataset and VRTRasterBand elements |
| 482 | * fix rounding of output window size on VRTSimpleSource (#5874) |
| 483 | * add trick to make relativeToVRT works for a VRT-in-VRT |
| 484 | * add more checks to CheckCompatibleForDatasetIO() to avoid issues with overview bands (#5954) |
| 485 | * preserves relative links on reserialization of existing VRT (#5985) |
| 486 | |
| 487 | USGSDEM driver: |
| 488 | * take into account horizontal unit = ft in the UTM case (#5819) |
| 489 | |
| 490 | TIL driver: |
| 491 | * fix half pixel shift in geo registration (#5961) |
| 492 | |
| 493 | WEBP driver: |
| 494 | * Lazy uncompressed buffer allocation and optimize band-interleaved IRasterIO() for whole image reading |
| 495 | |
| 496 | WMS driver: |
| 497 | * Add support for ArcGIS server REST API |
| 498 | * fix to make GDAL_DEFAULT_WMS_CACHE_PATH configuration option work as expected (#4540) |
| 499 | * move the WMS layer name encoding to be done before the sub datasets URLs are created. |
| 500 | |
| 501 | XYZ driver: |
| 502 | * fix back line seeking with datasets that have not the same number of values per lines (#5488) |
| 503 | * deal with lines that have missing values (but still regularly spaced) |
| 504 | |
| 505 | == OGR 2.0 - Overview of Changes == |
| 506 | |
| 507 | Core: |
| 508 | * OGRPolygon::importFromWkt(): fix memleak when importing broken 2.5D polygon |
| 509 | * Fix OGRFeature::SetGeometryDirectly() and SetGeomFieldDirectly() to free the passed geometry even if the method fails (#5623) |
| 510 | * OGR SQL: Add hstore_get_value(hstore, key) function |
| 511 | * OGR SQL: sanitize how we deal with field names expressed as table_name.field_name and "fieldname.with_point_inside". By default, use standard quoting rules, and be tolerant when there's no ambiguity |
| 512 | * OGR SQL: support arbitrary boolean expression on ON clause of a JOIN |
| 513 | * OGR SQL: accept AS keyword in 'FROM table_name AS alias' clause |
| 514 | * OGR SQL: don't consider backslash-doublequote as an escape sequence when inside a single-quoted string literal |
| 515 | * Add OGR_API_SPY mechanism (http://www.gdal.org/ograpispy_8h.html) |
| 516 | * Make OGRParseDate() recognize ISO 8601 format |
| 517 | * ogr_core.h: only ignore -Wfloat-equal for IsInit() and not for the rest of the file and files that include it (#5299) |
| 518 | * OGR layer algebra: properly initialize field maps to avoid Valgrind warnings in OGRLayer::Update() (#5778) |
| 519 | * Make OGR_F_SetFieldBinary() set OFTString fields, mostly for testing purposes |
| 520 | * OGR_G_CreateGeometryFromJson(): attach a WGS84 SRS to the returned geometry if the json object has no 'crs' member (#5922) |
| 521 | |
| 522 | OGRSpatialReference: |
| 523 | * Upgrade to EPSG v8.5 database |
| 524 | * 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) |
| 525 | * Proj.4 export: export Aitoff, Winkel I, Winkel II, Winkel-Tripel, Craster, Loximuthal, Quartic Authalic |
| 526 | * Adding support for Mercator_Auxiliary_Sphere without AUTHORITY SECTIONS (#3962) |
| 527 | * Add QSC (Quadrilateralized_Spherical_Cube) projection, compatible with PROJ 4.9 |
| 528 | * Various fixes to put EXTENSION node before AUTHORITY and make it pass Validate() (#5724) |
| 529 | * importFromEPSG()/exportToProj4(): avoid precision loss in TOWGS84 parameters, e.g. on Amersfoort / RD EPSG:4289 (https://trac.osgeo.org/proj/ticket/260) |
| 530 | * Add OSRCalcInvFlattening() and OSRCalcSemiMinorFromInvFlattening(), and use them in various places (#5858) |
| 531 | * Remove deprecated variant of OGRSpatialReference::importFromOzi() (#5932) |
| 532 | |
| 533 | Utilities: |
| 534 | * ogrinfo: add -oo option per RFC 46 |
| 535 | * ogrinfo: display dataset and layer metadata. Add -nomdd, -listmdd, -mdd all|domain options, like in gdalinfo. OGR VRT: add dataset and layer metadata support |
| 536 | * ogrinfo: add -nocount and -noextent options |
| 537 | * ogr2ogr: add -oo and -doo options per RFC 46 |
| 538 | * ogr2ogr: add -spat_srs option |
| 539 | * ogr2ogr: turn string value to one element list if destination field is stringlist |
| 540 | * ogr2ogr: fix problem with SRS when copying layers with multiple geometry columns with different SRS (#5546) |
| 541 | * ogr2ogr: add special case for -update and GPKG and input=output |
| 542 | * ogr2ogr: when copying a layer that has a source integer/integer64 field with same name as target FID column, avoid creating it into target layer and use its content as the FID value (#5845) |
| 543 | * ogr2ogr: in non-append mode, if target layer has a FID creation option, reuse source FID name and source FIDs, unless -unsetFid is specified (#5845) |
| 544 | * ogr2ogr: copy source dataset and layer metadata, unless disabled by -nomd. Additionnal dataset metadata can be set with -mo KEY=VALUE |
| 545 | * ogr2ogr: add -ds_transaction to force dataset transactions, mainly for FileGDB driver |
| 546 | * ogr2ogr: fix crash with -clipdst when a reprojection fails before (#5973) |
| 547 | * ogrlineref: fix project if reper lies on first point or last point of line |
| 548 | * ogr_layer_algebra.py: for Update, Clip and Erase, only creates attribute of input layer by default (#5976) |
| 549 | |
| 550 | Other: |
| 551 | * OGR WCTS removed from tree |
| 552 | |
| 553 | Cross driver changes: |
| 554 | * MSSQLSpatial and GPKG: use standardized 'GEOMETRY_NAME' option name. Add GEOMETRY_NAME to SQLite (#5816) |
| 555 | * FileGDB and MySQL: use standardized 'FID' option name. SQLite: add a FID layer creation option (#5816) |
| 556 | * SQLite, GPKG, PG, PGDump: in a newly created table, allow to create a integer field with same name of FID column (#5845) |
| 557 | |
| 558 | BNA driver: |
| 559 | * fix segfault when calling GetNextFeature() on a write-only layer |
| 560 | |
| 561 | CartoDB: |
| 562 | * add CARTODBFY layer creation option |
| 563 | * launder layer and column names by default (#5904) |
| 564 | * enable by default batch insertion of features in update mode |
| 565 | * on a newly created layer, send new features created by CreateFeature() by chunks of a maximum size of 15 MB (configurable through CARTODB_MAX_CHUNK_SIZE). |
| 566 | * implement deferred field creation |
| 567 | * support boolean type |
| 568 | * register tables with cdb_cartodbfytable() |
| 569 | * fix creation of features with Date/DateTime/Time values |
| 570 | * fix for multi-user account, and optimization for SQL layers |
| 571 | * implement TestCapability() and CreateDataSource() similarly to PostgreSQL, i.e. redirect to Open() in update mode |
| 572 | * accept a user column to have the same name of the FID (cartodb_id) |
| 573 | * do automatic polygon->multipolygon promotion at creation time |
| 574 | * in authenticated mode, retrieve all column information, including spatial info, default value and primary key in one single statement |
| 575 | * use integer primary key of tables, when available, to scroll faster among features instead of using OFFSET/LIMIT (#5906) |
| 576 | |
| 577 | CSV driver: |
| 578 | * add optional field type detection with AUTODETECT_TYPE=YES open option |
| 579 | * 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 |
| 580 | * fix to avoid truncation of WKT geometries to 8000 characters (#5508) |
| 581 | * fix segfault when reading allCountries.txt of geonames.org (#5668) |
| 582 | * accept space as separator as input/output, and add MERGE_SEPARATOR=YES/NO open option |
| 583 | |
| 584 | DXF driver: |
| 585 | * improve TestCapability(ODsCCreateLayer) |
| 586 | |
| 587 | FileGDB driver: |
| 588 | * add layer creation option to set CONFIGURATION_KEYWORD |
| 589 | * avoid error message when failing to import SRS from WKID code (might be an ESRI code for example) |
| 590 | * do not reject features with null geometry |
| 591 | * use LatestWKID when available (#5638) |
| 592 | * 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) |
| 593 | * fix CreateFeature() to work when a esriFieldTypeGlobalID field is not set |
| 594 | * report width of string fields (#5806) |
| 595 | * add compatibility with FileGDB SDK v1.4 |
| 596 | * enable bulk load on newly created layers |
| 597 | |
| 598 | GeoJSON driver: |
| 599 | * implement Date/Time/DateTime field type detection |
| 600 | * expose a 'id' object, of type string, directly on Feature object (not in its properties) as a field |
| 601 | * add FLATTEN_NESTED_ATTRIBUTES and NESTED_ATTRIBUTE_SEPARATOR open options |
| 602 | * TopoJSON: establish layer schema from objects properties (#5870) |
| 603 | * implement automatic scrolling through result sets of ArcGIS GeoServices Feature Service (#5943) |
| 604 | * accept and skip UTF-8 BOM (#5630) |
| 605 | * ESRIJson: parse correctly rings of esriGeometryPolygon objects to build correct Polygon or MultiPolygon (#5538) |
| 606 | * avoid truncation of real numbers on reading (#5882) |
| 607 | * internal libjson-c: Fix to read floating point numbers in non C locale (#5461) |
| 608 | * improve TestCapability(ODsCCreateLayer) |
| 609 | * make string comparison for authority name case insensitive so as to recognize lowercase 'epsg' (#4995) |
| 610 | * support reading Feature without geometry field |
| 611 | |
| 612 | GeoRSS driver: |
| 613 | * fix to parse ATOM feed documents with atom: namespace (#5871) |
| 614 | |
| 615 | GME driver: |
| 616 | * Added fixes discovered while using v.in.ogr and v.out.ogr in GRASS |
| 617 | |
| 618 | GML driver: |
| 619 | * add XSD=filename open option |
| 620 | * add FORCE_SRS_DETECTION, INVERT_AXIS_ORDER_IF_LAT_LONG, CONSIDER_EPSG_AS_URN, READ_MODE, EXPOSE_GML_ID, EXPOSE_FID, DOWNLOAD_SCHEMA and REGISTRY open options |
| 621 | * fix bug that prevented multiple instanciation of the reader with Xerces backend (#5571) |
| 622 | * parse correctly GML geometries whose srsDimension attribue is on top-level geometry element and not on posList (#5606) |
| 623 | * add datasource option SRSDIMENSION_LOC=GEOMETRY to be able to write srsDimension attribute on top level geometry element, default on posList unchanged (#5066) |
| 624 | * add support for reading layers resulting from a WFS 2.0 join query |
| 625 | * read/write top <gml:description> and <gml:name> as DESCRIPTION and NAME metadata items. Also add GML_ID, DESCRIPTION and NAME creation options |
| 626 | * support to reader response to CSW GetRecords queries |
| 627 | * Fix incorrect geometry cast when reading GML topogeometries (#5715) |
| 628 | * VFR: fix ST_Z type (changes) -- list all layers |
| 629 | * VFR: include also non-spatial (removed) features (ZaniklePrvky) in type ST_Z (changes) |
| 630 | * VFR: use String when 32-bit integer wasn't wide enough |
| 631 | * VFR: add support for UVOH file type |
| 632 | * VFR: add missing support for OriginalniHraniceOmpv geometry |
| 633 | * VFR: update GFS files to RFC31 (OGR 64bit Integer Fields and FIDs) |
| 634 | * update RUIAN GFS files: add missing GMLFeatureClasses to OB type (SpravniObvody, Mop, Momc) |
| 635 | * add support for parsing .xsd with a <choice> of polygonProperty and multiPolygonProperty |
| 636 | * remove wrong case insensitive comparison related to gml_registry.xml use |
| 637 | * various fixes to better deal with ArcByCenterPoint() as found in FAA AIXML files |
| 638 | * make Expat parser accept trailing nul characters |
| 639 | * correctly record path to attribute in case of attribute located on a nested element when .gfs is created with GML_ATTRIBUTES_TO_OGR_FIELDS=YES |
| 640 | * fix GML_ATTRIBUTES_TO_OGR_FIELDS=YES to work correctly with xlink:href too (#5970 |
| 641 | * make GML_EXPOSE_GML_ID to be honoured on WFS documents |
| 642 | |
| 643 | GPKG driver: |
| 644 | * add support for non-spatial layers via the gdal_aspatial extension (#5521) |
| 645 | * add support for creating spatial index |
| 646 | * add layer metadata read/write support |
| 647 | * implement ST_GeometryType(), GPKG_IsAsisgnable() and ST_SRID() to be compatible with Geometry Type Triggers and SRS ID Triggers Extensions |
| 648 | * on creation, use GEOMCOLLECTION (instead of GEOMETRYCOLLECTION) (#5937) |
| 649 | * make SELECT expressions passed to ExecuteSQL() be evaluated by SQLite |
| 650 | * make it possible to use spatialite 4.2.0 SQL functions |
| 651 | * add a 'INDIRECT_SQLITE' dialect that goes through the VirtualOGR mechanism (e.g. for compat with older Spatialite) |
| 652 | * allow table names with dash character (#5472) |
| 653 | * emit warning when required extensions are not implemented |
| 654 | * disable PRAGRAM integrity_check by default, since it can be expensive on big files |
| 655 | * read-only support for tables without integer primary key |
| 656 | * fix Date and DateTime support |
| 657 | * implement TEXT(maxwidth) type in read and creation |
| 658 | * implement deferred table creation |
| 659 | * fix reporting of geometry type for 2.5D (previous behaviour had the effect to turn to wkbUnknown) |
| 660 | * put correct value (1) in gpkg_geometry_columns for 2.5D tables (#5481) |
| 661 | * fix component geometry type of 3D MultiGeometries (#5629) |
| 662 | * fix GetExtent() crash on layers without extent set in gpkg_contents (#5471) |
| 663 | * avoid leak when a table has more than one FID column |
| 664 | * accept spatial tables whose geometry field is declared as BLOB |
| 665 | * recognize both GeomCollection and GeometryCollection as possible values, until GeoPackage SWG clears what is the official value |
| 666 | * escape all column names in SQL (#5520) |
| 667 | * accept geometries with Spatialite format, that can be returned with issuing a SQL request using spatialite functions |
| 668 | * enable Spatialite 4.3 'amphibious' mode to avoid explicit cast to Spatialite geometries |
| 669 | |
| 670 | GPSBabel driver: |
| 671 | * automatically open .igc files, implement Identify() and add open options |
| 672 | * advertize creation option |
| 673 | |
| 674 | GTM driver: |
| 675 | * declare OLCCreateField and OLCSequentialWrite capabilities |
| 676 | |
| 677 | IDRISI driver: |
| 678 | * fix support for multi-ring polygons (#5544) |
| 679 | |
| 680 | ILI driver: |
| 681 | * Use Ili1TransferElement written by ili2c 4.5.5 and newer |
| 682 | * Fix crash in polygon geometry reading |
| 683 | * Fix reading SURFACE polygons with multiple rings |
| 684 | * Fix reading tables with polygon type |
| 685 | * Support curve geometries for ILI1 and ILI2. |
| 686 | * Add a MODEL open option |
| 687 | |
| 688 | ISIS3 driver: |
| 689 | * fix to recognize IsisCube.Mapping.LatitudeType = Planetocentric (#5717) |
| 690 | |
| 691 | KML driver: |
| 692 | * fix segfault when calling GetNextFeature() on a write-only layer |
| 693 | |
| 694 | LIBKML driver: |
| 695 | * add support for reading gx:MultiTrack |
| 696 | * rework libkml singleton factory management (#5775) |
| 697 | |
| 698 | MITAB driver: |
| 699 | * add support for append/update/delete operations on .tab files (#5652) |
| 700 | * add support for CreateField() on non empty file, AlterFieldDefn() and DeleteField() for .TAB (#5652) |
| 701 | * implement SyncToDisk() for TAB layers (#5652) |
| 702 | * convert to use of VSI*L FILE API (#5558) |
| 703 | * don't write field width for integer fields in .mif, which is incompatible with MapInfo (#3853) |
| 704 | * report OLCCreateField for .mif files (#5477) |
| 705 | * fix opening .mif file without .mid file (#5570) |
| 706 | * swap StdParallel1 and stdParallel2 if necessary on LCC projections (https://github.com/mapgears/mitab/issues/1) |
| 707 | * take into account scale/bounds to properly round coordinates (https://github.com/mapgears/mitab/issues/2) |
| 708 | * add MITAB_BOUNDS_FILE configuration option to specify a file with projection bounds (https://github.com/mapgears/mitab/issues/3) |
| 709 | * add BOUNDS layer creation option (#5642) |
| 710 | * refactor import/export of MIF coordsys to use the TAB code; take into account MITAB_BOUNDS_FILE to add Bounds to the CoordSys string |
| 711 | * close polygon rings when reading Region from MIF file (#5614) |
| 712 | * fix segfault in CreateFeature() if passing an invalid OGR feature style string (#1209) |
| 713 | |
| 714 | MSSQLSpatial driver: |
| 715 | * Implement SPATIAL_INDEX layer creation option for MSSQL (#5563) |
| 716 | * Implement support for WKB geometry upload (#5682) |
| 717 | * Fix schema handling in MSSQL driver (#5401) |
| 718 | * Fix spatial geometry field handling (#5474) |
| 719 | * Bind string fields to unicode string columns in the database (#5239) |
| 720 | * Fix recognizing image columns as geometry columns for the select layers. (#5498) |
| 721 | * Fix issue when creating non-spatial table (#5696) |
| 722 | * Fix to read metadata if the tables are specified in the connection string (#5796) |
| 723 | * Fix crash if the tablename is specified in the connection string (#5826) |
| 724 | * Include geometry column name in Update statement (#5930) |
| 725 | * Implement FID layer creation option (#5816) |
| 726 | * Fix issue when removing an MSSQL spatial layer |
| 727 | |
| 728 | MySQL: |
| 729 | * thread-safe initialization of mysql client library (#5528) |
| 730 | |
| 731 | NAS driver: |
| 732 | * implement wfs:update (adds new context 'update' and fields "endet" and "anlass" to "delete" layer). |
| 733 | * also assign xlink:href attributes as layer attribute (not only in "alkis_beziehungen" layer; #5372) |
| 734 | * fix filtering on OGR_GEOMETRY special field |
| 735 | * make chevrons configurable by NAS_INDICATOR |
| 736 | |
| 737 | OCI driver: |
| 738 | * 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) |
| 739 | * Fix FID (multi_load=off, OGRNullFID) - start with 1 (not -1) (#5454) |
| 740 | * use VARCHAR2 instead of VARCHAR for unsupported types |
| 741 | * Fix "ORA-00972: identifier is too long" error (#5466) |
| 742 | * Fix memory leaks (#5599) |
| 743 | * Fix creation of date and datetime fields (#5600) |
| 744 | * initialize member variable to avoid UpdateLayerExtents() to be called randomly on non spatial tables (#5376) |
| 745 | * avoid spatial index to be created each time SyncToDisk() is called |
| 746 | * fix memory leak in DeleteLayer(const char*) |
| 747 | * fix reading of 2D geometries that were always turned as 3D |
| 748 | * in layers returned by ExecuteSQL(), only expose geometry column if there's one |
| 749 | * force NLS_NUMERIC_CHARACTERS to ". " (#5709) |
| 750 | |
| 751 | ODBC driver: |
| 752 | * try alternate DSN template for 64bit ODBC |
| 753 | * make ODBC driver honour PGEO_DRIVER_TEMPLATE config. option (and also MDB_DRIVER_TEMPLATE in case PGEO_DRIVER_TEMPLATE isn't defined) (#5594) |
| 754 | |
| 755 | ODS driver: |
| 756 | * fix export of OFTDate fields that were exported as string |
| 757 | |
| 758 | OpenAir driver: |
| 759 | * tweak detection logic to read beyond first 10KB bytes when needed (#5975) |
| 760 | |
| 761 | OpenFileGDB driver: |
| 762 | * add compatibility with .gdbtable files bigger than 4 GB (#5615) |
| 763 | * support opening files with ConfigurationKeyword=MAX_FILE_SIZE_4GB or MAX_FILE_SIZE_256TB (#5615) |
| 764 | * fix occasionnal write-after-end-of-buffer (#5464) |
| 765 | * avoid error message when failing to import SRS from WKID code (might be an ESRI code for example) |
| 766 | * fix spatial filter with GeneralPolygon shapes (#5591) |
| 767 | * fix for reading GDB with string fields with a default value length > 127 (#5636) |
| 768 | * better handling of certain definitions of raster columns |
| 769 | * use LatestWKID when available (#5638) |
| 770 | * increase accepted size for field description zone up to 10 MB (#5660) |
| 771 | * fix ResetReading() on SQL layer with ORDER BY on indexed column (#5669) |
| 772 | * add support for non spatial GDB v9 tables (#5673) |
| 773 | * improve error reporting when file exists but cannot be opened due to permission problem (#5838) |
| 774 | * report width of string fields (#5806) |
| 775 | * try to deal more gracefully with inconsistent nValidRecordCount vs nTotalRecordCount values (#5842) |
| 776 | * report 25D layer geometry type on FileGDB v9 tables when relevant |
| 777 | * optimize sequential reading of sparse layers |
| 778 | * avoid warning when opening a00000004.gdbtable |
| 779 | * disable feature count optimization with IS NOT NULL on an index column |
| 780 | |
| 781 | OSM driver: |
| 782 | * add mechanism to compute fields from other fields/tags with SQL expressions. Apply it for z_order on lines layer |
| 783 | * fix random crash, particularly on MacOSX (#5465) |
| 784 | * add CONFIG_FILE, USE_CUSTOM_INDEXING, COMPRESS_NODES, MAX_TMPFILE_SIZE and INTERLEAVED_READING open options |
| 785 | |
| 786 | PG driver: |
| 787 | * use COPY mode by default (unless PG_USE_COPY is set to NO) when inserting features in a newly create table (#5460) |
| 788 | * add UNLOGGED=YES/NO layer creation option to create unlogged tables (improved version of patch by Javier Santana, #4708) |
| 789 | * implement deferred loading of table list, to optimize ExecuteSQL() (#5450) |
| 790 | * implement optimization for spatial table listing for PostGIS 2.x |
| 791 | * implement deferred creation of tables to capture all attribute and geometry column creations into a single CREATE TABLE statement (#5547) |
| 792 | * change "No field definitions found" from fatal error to debug |
| 793 | * when creating a table and filling it, avoid re-reading the table definition from PG system tables (#5495) |
| 794 | * better handling of SRS authority name different than EPSG (authority code must still be integral) |
| 795 | * fix crash when writing a StringList with 0 element (#5655) |
| 796 | * emit errors instead of debug messages when postgres issues an error (#5679) |
| 797 | * fix to make ExecuteSQL('CREATE DATABASE foo') work |
| 798 | * fix regression that prevented to retrieve more than 500 features from a connection with tables= parameter and on a SQL result layer (#5837) |
| 799 | * PG/PGDump: fix truncation of fields to work with multi-byte UTF-8 characters (#5854) |
| 800 | |
| 801 | PGDump driver: |
| 802 | * switch to DROP_TABLE=IF_EXISTS by default (#5627) |
| 803 | * fix crash when writing a StringList with 0 element (#5655) |
| 804 | |
| 805 | PGeo driver: |
| 806 | * try alternate DSN template for 64bit ODBC |
| 807 | |
| 808 | REC driver: |
| 809 | |
| 810 | Shapefile driver: |
| 811 | * add SPATIAL_INDEX layer creation option (#5562) |
| 812 | * support .prj files with UTF-8 BOM |
| 813 | * 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) |
| 814 | * fix reading of shapefiles whose .shx is non conformant (#5608) |
| 815 | * fix writing values up to 2^53 in OFTReal fields with 0 decimal places (#5625) |
| 816 | * delete implicit FID field as soon as we CreateField a real one |
| 817 | * GetExtent(): don't trust extent in header if it contains Not-A-Number values (#5702) |
| 818 | * make REPACK compact .shp if SetFeature() is called and changes one geometry size (#5706) |
| 819 | * add check not to cut unicode character while cut the string lengnt for field max length during SetFeature |
| 820 | * avoid reading whole .shx at open time for /vsicurl/ |
| 821 | * add SHAPE_REWIND_ON_WRITE configuration option that can be set to NO to disable correction of ring winding order on write. Usefull when dealing with MultiPolygon that are MultiPatch objects in fact (#5888) |
| 822 | * Make ENCODING layer creation option prioritary over SHAPE_ENCODING config. option |
| 823 | |
| 824 | SOSI driver: |
| 825 | * remove error noise (#5710) |
| 826 | |
| 827 | S57 driver: |
| 828 | * various compliance fixes in ISO8211 and S57 writer (#5798) |
| 829 | * make it possible to set LNAM_REFS=OFF as advertized in the doc |
| 830 | |
| 831 | SQLite/Spatialite driver: |
| 832 | * SQLite/Spatialte: add support for multiple geometry colunn tables, accordingly with RFC 41 (#5494) |
| 833 | * SQLite SQL dialect: Add hstore_get_value(hstore, key) function |
| 834 | * remove 'T' suffix when formatting the content of a Date field (#5672) |
| 835 | * optimize CreateFeature() when fields can be null or not null from one feature to another one |
| 836 | * Spatialite: improve insertion performance by disabling triggers and doing the job ourselves |
| 837 | * Fix segmentation fault when executing OGR2SQLITE_Register() when compiling against sqlite 3.8.7 (#5725) |
| 838 | * make GetFIDColumn() work when run as first method call (#5781) |
| 839 | * emit warning when reading text values in a integer/real field (possible since SQLite has no strong typing) |
| 840 | * support reading date/datetime from Julian day floating point representation |
| 841 | |
| 842 | SUA driver: |
| 843 | * tweak detection logic to read beyond first 10KB bytes when needed (#5975) |
| 844 | |
| 845 | SXF driver: |
| 846 | * Fix SXF file version check (#5456) |
| 847 | * Fix wrong Miller Cylindrical projection string |
| 848 | * Fix encoding issues (#5647) |
| 849 | * Fix extract z value to OGRGeometry |
| 850 | * Fix case sensitivity of RSC file |
| 851 | |
| 852 | VFK driver: |
| 853 | * recode also header values |
| 854 | * process DKATUZE from header properly |
| 855 | * handle also duplicated records |
| 856 | * check attribute 'parametry_spojeni' |
| 857 | * speed-up GetFeatureCount() |
| 858 | * fix reading properties. Escape characters for SQL |
| 859 | * change SRS from EPSG 2065 to 5514 |
| 860 | * fix reading SBP datablock (fix mismatch when reading from file and db) |
| 861 | |
| 862 | VRT driver: |
| 863 | * do not propagate ignoring of x and y cols of a PointFromColumns to the source layer (#5777) |
| 864 | * add an optional 'name' attribute on FID element, so as to be able to force the report of a FID column name even if it is not exposed as a regular field (related to #5845) |
| 865 | * handle optional <OpenOptions><OOI key='key'>value</OOI></OpenOptions> to specify open options |
| 866 | |
| 867 | Tiger driver: |
| 868 | * Fix potential buffer underflow when providing /vsistdin/ to Tiger driver (#5567) |
| 869 | |
| 870 | WAsP driver: |
| 871 | * added options and changed output precision to match WAsP Map Editor |
| 872 | * improve TestCapability(ODsCCreateLayer) |
| 873 | |
| 874 | WFS driver: |
| 875 | * automatically enable paging if WFS 2.0 capabilities report paging support |
| 876 | * evaluate SELECT with JOIN on server-side for a Join-capable WFS 2.0 server |
| 877 | * add a TRUST_CAPABILITIES_BOUNDS open option, that can be set to YES to trust layer bounds declared in GetCapabilities response, for faster GetExtent() runtime (#4041) |
| 878 | * add INVERT_AXIS_ORDER_IF_LAT_LONG, CONSIDER_EPSG_AS_URN and EXPOSE_GML_ID open options |
| 879 | * add capability to use spatial functions ST_xxxxx() as server-side filters |
| 880 | * add dataset and layer metadata |
| 881 | * allow SELECT with several ORDER BY columns |
| 882 | * report name of geometry column |
| 883 | * Add COOKIE option (#5824) |
| 884 | * when parsing a layer schema without geometry from the GML .xsd, do not expose a geometry field at the WFS layer level (#5834) |
| 885 | |
| 886 | XLSX driver: |
| 887 | * fix column numbering when there are more than 26 columns (#5774) |
| 888 | |
| 889 | XPlane driver: |
| 890 | * add support for Taxi Location 1300 record found in V1000 |
| 891 | |
| 892 | == SWIG Language Bindings == |
| 893 | |
| 894 | All bindings: |
| 895 | * bind GDALGetBandDataset() as Band.GetDataset() |
| 896 | * add Feature.GetFieldAsBinary() |
| 897 | |
| 898 | Java bindings: |
| 899 | * Pass eRWFlag to allow both reading or writing. Write was broken in DatasetRasterIO(). |
| 900 | * updates to generate maven artifacts |
| 901 | |
| 902 | Perl bindings: |
| 903 | * The breaking changes are described in more detail in swig/perl/Changes-in-the-API-in-2.0. |
| 904 | * More comprehensive use of strings as constants (such as capabilities); they are also taken from bindings, which added new ones, and not hard-coded. |
| 905 | * New classes (e.g., VSIF, GeoTransform, GeomFieldDefn) and new methods (e.g., constant lists, Dataset::SpatialReference). |
| 906 | * Much improved documentation and switch to Doxygen::Filter::Perl. |
| 907 | * New test codes. |
| 908 | * Errors are confessed with stack trace and often caught earlier with better messages. |
| 909 | * Use of attributes is deprecated and methods have been added to replace them. |
| 910 | * Multiple geometry fields have necessitated some changes in schema and field related methods. |
| 911 | * More support for named parameters (i.e., hashes as arguments). |
| 912 | * NoDataValue: set max float if undef is given. |
| 913 | * Unit: set '' if undef is given. |
| 914 | * Also other changes that will also remove some "use of uninitialized value in subroutine entry" warnings. |
| 915 | * Automatic handling of SQL result layers. |
| 916 | * Fix issue with index attribute for field meta data (schema) (#5662) |
| 917 | * Warn if attempt to create non-integer column for colors. |
| 918 | * Remove prefix GCP from GCP swig made attributes. |
| 919 | |
| 920 | Python bindings: |
| 921 | * add optional buf_xsize, buf_ysize and buf_type parameters to Dataset.ReadAsArray() and Dataset.LoadFile(), and use dataset RasterIO for better efficiency |
| 922 | * avoid generating Python exception when PyString_FromStringAndSize() fails and GDAL errors as Python exceptions are disabled |
| 923 | * Band.ReadRaster() and Dataset.ReadRaster(): clear the buffer in case there are holes in it due to odd spacings specified by the user |
| 924 | * Fix hang of Python in case of repeated call to gdal/ogr.UseExceptions() and CE_Warning emitted (#5704) |
| 925 | * for Python 2, accept unicode string as argument of Feature.SetField(idx_or_name, value) (#4608) |
| 926 | * for Python 2, accept Unicode strings to be passed as key and/or value of the dictionary passed to SetMetadata() (#5833) |
| 927 | * fix processing error of ogr_python.i with SWIG 3 (#5795) |
| 928 | * NUMPY driver: avoid returning CE_None in GetGeoTransform() when there's no geotransform set (#5801) |
| 929 | * Make GetFieldAsBinary() work with OFTString fields |
| 930 | * For Python3 compat, make Feature.GetField() use GetFieldAsBinary() if GetFieldAsString() fails (#5811) |