| 1 | = GDAL/OGR 2.3.0 *PRELIMINARY* Release Notes (to 1121758f74589f8850193a5baced7ab1335a4b39) = |
| 2 | |
| 3 | Note: due to the change of SCM during the development, #XXXX still refers to |
| 4 | Trac tickets. GitHub tickets are explicitly indicated with github #XXXX |
| 5 | |
| 6 | == In a nutshell... == |
| 7 | |
| 8 | * New GDAL drivers: |
| 9 | - PDS4: read/write |
| 10 | - RDA: DigitalGlobe Raster Data Access (read-only) |
| 11 | * New OGR drivers: |
| 12 | - MVT: add read/write driver for Mapbox Vector Tile standalone files or tilesets |
| 13 | - ESRIJson and TopoJSON: created from existing code of the GeoJSON driver |
| 14 | - WFS3: *experimental* read-only driver |
| 15 | * RFC 68: Make C++11 a build requirement |
| 16 | https://trac.osgeo.org/gdal/wiki/rfc68_cplusplus11 |
| 17 | * RFC 70: Guess output format from extension of output filename, if no explicit format passed to C++ or Python utilities |
| 18 | https://trac.osgeo.org/gdal/wiki/rfc70_output_format_guess |
| 19 | * RFC 71: Move to GitHub for source code repository and issue tracker. |
| 20 | https://trac.osgeo.org/gdal/wiki/rfc71_github_migration |
| 21 | * Significantly improved drivers: |
| 22 | - MBTiles (vector tiles support) |
| 23 | - DXF |
| 24 | - GRIB (GRIB2 write support) |
| 25 | - WCS (support WCS 2.0) |
| 26 | * Improvements in network-based /vsi handlers: /vsicurl, /vsis3, /vsigs. Add: |
| 27 | - /vsiaz for Microsoft Azure Blobs |
| 28 | - /vsioss for Alibaba Cloud Object Storage Service |
| 29 | - /vsiswift/ for OpenStack Swift object storage |
| 30 | * Command line utilities: use Unicode main on Windows to avoid issues with non-ASCII characters (#7065) |
| 31 | * Update to EPSG v9.2 (#7125) |
| 32 | * Update data/esri_extra.wkt and add data/esri_epsg.wkt, taken from https://github.com/Esri/projection-engine-db-doc (Apache v2 license) (#2163) |
| 33 | * Add support for PROJ.5 new API (requires proj 5.0.1 or later) |
| 34 | * More than 1000 fixes for issues/vulnerabilities found by OSS-Fuzz |
| 35 | * Remove raster OGDI driver (vector OGDI driver still there) (#7087) |
| 36 | |
| 37 | == New installed files == |
| 38 | |
| 39 | * data/pds4_template.xml |
| 40 | * data/esri_epsg.wkt |
| 41 | |
| 42 | == Backward compatibility issues == |
| 43 | |
| 44 | See MIGRATION_GUIDE.TXT |
| 45 | |
| 46 | == GDAL/OGR 2.3.0 - General Changes == |
| 47 | |
| 48 | Build(Unix): |
| 49 | * refresh config.{guess,sub} from latest upstream; upgrade to libtool 2.4.6 files |
| 50 | * add a --with-rename-internal-shapelib-symbols option that defaults to yes if --with-hide-internal-symbols is set; and make -with-rename-internal-libtiff/libgeotiff-symbols also defaults to yes when --with-hide-internal-symbols is set |
| 51 | * add a --with-charls switch (enabled by default) to compile that JPEGLS driver |
| 52 | * make --without-static-proj and --with-fgdb an error when filegdb (>= 1.5) embeds proj.4 symbols |
| 53 | * add --with-zstd switch (for GTiff ZStd compressino with internal libtiff) |
| 54 | * add support for ECW SDK 5.4, by detecting if we must link against the newabi or oldabi link |
| 55 | * fix detection of 64bit file API with clang 5 (#6912) |
| 56 | * GNUmakefile: add a static-lib and install-static-lib targets |
| 57 | * use .exe extension when building with mingw64* toolchains (#6919) |
| 58 | * Pass --silent to libtool in compile (C and C++), link, install and clean modes. |
| 59 | * Limit number of installed cpl*.h files installed to a fixed list. |
| 60 | |
| 61 | Build(Windows): |
| 62 | * always build the PDF driver, even when none of poppler/podofo/pdfium are available, in which case it is write-only (#6938) |
| 63 | * add new targets bindings, bindings_install and bindings_clean that depend on the new BINDINGS option in nmake.opt (#6948) |
| 64 | * for Kakadu, add capability to build as a plugin, and make it possibly to link only against the Kakadu .lib/.dll instead of incorporating some of its .obj (#6940) |
| 65 | * nmake.opt: Ensure PDB is included in release DLL if WITH_PDB requested (#7055) |
| 66 | * nmake.opt: use /MDd for OPTFLAGS for DEBUG=1 builds (#7059) |
| 67 | * nmake.opt: avoid some settings to be defined unconditionally (#5286) |
| 68 | * nmake.opt: add configuration to enable openssl (which is needed for thread-safe curl use) |
| 69 | |
| 70 | Developer corner: |
| 71 | * Add scripts/setdevenv.sh to setup env variables needed for running GDAL without installing it |
| 72 | |
| 73 | == GDAL 2.3.0 - Overview of Changes == |
| 74 | |
| 75 | Port: |
| 76 | * Add CPLJSONDocument/Object/Array - C++ thin wrapper around json-c library. (github #282) |
| 77 | * /vsicurl/: fix occasional inappropriate failures in Read() with some combinations of initial offset, file size and read request size (#6901) |
| 78 | * /vsicurl/: add a CPL_VSIL_CURL_NON_CACHED configuration option, so as to be able to specify filenames whose content must not be cached after dataset closing |
| 79 | * /vsicurl/: honour GDAL_HTTP_MAX_RETRY and GDAL_HTTP_RETRY_DELAY config options. Add extended filename syntax to pass options use_head, max_retry, retry_delay and list_dir. |
| 80 | * /vsicurl/: enable redirection optimization on signed URLs of Google Cloud Storage. Helps for the PLScenes driver (fixes #7067) |
| 81 | * /vsicurl/ and derived filesystems: redirect ReadDir() to ReadDirEx() (#7045) |
| 82 | * /vsicurl/ and related file systems: add compatibility with HTTP/2 (requires recent enough curl, buit against nghttp2). Can be controlled with the GDAL_HTTP_VERSION=1.0/1.1/2/2TLS |
| 83 | * /vsicurl/: fix 2.2 regression regarding retrieval of file size of FTP file (#7088) |
| 84 | * /vsicurl/: when stat'ing a file, fallback from HEAD to GET if the server issues a 405 error |
| 85 | * Add a VSICurlClearCache() function (bound to SWIG as gdal.VSICurlClearCache()) to be able to clear /vsicurl/ related caches (#6937) |
| 86 | * CPLHTTPSetOptions(): use SearchPathA() for curl-ca-bundle.crt on Windows. See https://github.com/curl/curl/issues/1538 |
| 87 | * CPLHTTPFetch() / vsicurl: add retry on HTTP 429, and add exponential backoff logic for retry delay |
| 88 | * CPLHTTPFetch(): when openssl is enabled, and used by libcurl, use openssl thread safety mechanism to avoid potential crashes in multithreading scenarios |
| 89 | * CPLHTTPFetch(): add a SSL_VERIFYSTATUS option / GDAL_HTTP_SSL_VERIFYSTATUS configuration option to check OCSP stapling |
| 90 | * CPLHTTPFetch(): add a USE_CAPI_STORE option / GDAL_HTTP_USE_CAPI_STORE configuration option to use certificates from the Windows certificate store |
| 91 | * Ignore SIGPIPE that may arose during curl operations (mostly when using OpenSSL for TLS) |
| 92 | * Add CPLHTTPMultiFetch() and CPLMultiPerformWait() |
| 93 | * /vsis3/: support reading credentials from ~/.aws/credentials, ~/.aws/config or IAM role on EC2 instances |
| 94 | * /vsis3/: properly handle cases where a directory contains a file and subdir of same names; implement Mkdir() and Rmdir() |
| 95 | * /vsis3/: fix Seek(Tell(), SEEK_SET) fails if current position is not 0 (#7062) |
| 96 | * /vsis3/: properly handle 307 TemporaryRedirection (#7116) |
| 97 | * /vsis3/: fix support of bucket names with dot in them (#7154) |
| 98 | * /vsis3/: make multipart upload work with Minio |
| 99 | * /vsigs/: add new authentication methods using OAuth2 refresh token or service account or Google Compute Engine VM authentication, or using ~/.boto file |
| 100 | * /vsigs/: add write, Unlink(), Mkdir() and Rmdir() support |
| 101 | * /vsigs/: allow authentication to be done with the GOOGLE_APPLICATION_CREDENTIALS configuration option pointing to a JSon file containing OAuth2 service account credentials |
| 102 | * /vsis3/ and /vsigs/: take into account user provided x-amz- / x-goog- HTTP headers with GDAL_HTTP_HEADER_FILE |
| 103 | * Fix CPLReadDirRecursive() to behave properly on /vsis3/ buckets that have foo (file) and foo/ (sub-directory) entries (#7136) |
| 104 | * /vsis3/: add a AWS_NO_SIGN_REQUEST=YES configuration option to disable request signing (#7205) |
| 105 | * /vsis3, /vsigs, /vsioss, /vsiaz: fix support of non-ASCII characters in keys (#7143) |
| 106 | * Add VSIGetActualURL(), typically to expand /vsis3/ paths to full URLs, and bind it to SWIG as gdal.GetActualURL() |
| 107 | * Add VSIGetSignedURL() |
| 108 | * Add VSIGetFileSystemsPrefixes() and VSIGetFileSystemOptions() |
| 109 | * CPLFormFilename() / CPLProjectRelativeFilename(): add /vsis3 and similar file systems to the list of filesystems requiring unix separator (github #281) |
| 110 | ù Make CPLFormFilename() properly work with http[s:]// filenames |
| 111 | * Add a CPLGetErrorCounter() function that can be used to test if new errors have been emitted |
| 112 | * Add cpl_safemaths.hpp to detect integer overflows (#6229) |
| 113 | * /vsigzip/: avoid trying to write a .gz.properties file on a /vsicurl/ file (#7016) |
| 114 | * CPLStrtod(): parse string like '-1.#IND0000000' as NaN instead of -1 (seen when looking at refs #7031, but does not fix it) |
| 115 | * Fix CPLCopyTree() that doesn't properly on MSVC 2015 (and possibly other platforms) (#7070) |
| 116 | * /vsimem/: to improve Posix compliance, do not make Seek() after end of file error out in read-only mode |
| 117 | * cpl_config.h.vc: define HAVE_LONG_LONG 1; cpl_port.h remove MSVC specific logic for int64 (github #264) |
| 118 | * /vsisparse/: make Read() detect end of file |
| 119 | * GDALVersionInfo("BUILD_INFO"): report if GEOS is available |
| 120 | * Add VSIMkdirRecursive() and VSIRmdirRecursive() |
| 121 | * Add CPLGetHomeDir() |
| 122 | * CPLSetErrorHandler(): avoid later crashes when passing a null callback (github #298) |
| 123 | * CPLHTTPParseMultipartMime(): make it format the pasMimePart[].papszHeaders in a standard key=value format without EOL |
| 124 | * CPLString: avoid std::string symbols to be exported with Visual Studio (#7254) |
| 125 | * I/O on Android: add support for 64-bit file operations if API level >= 24 (Android 7.0 or later) (github #339) |
| 126 | |
| 127 | Core: |
| 128 | * add GDALDataTypeIsFloating, GDALDataTypeIsSigned, GDALDataTypeUnionWithValue, GDALFindDataType, GDALFindDataTypeForValue (github #215). Add GDALDataTypeIsInteger() |
| 129 | * Cleanup ARE_REAL_EQUAL() and GDALIsValueInRange() (#6945, #6946) |
| 130 | * Various SSE2/AVX2 optimizations for GDALCopyWords() |
| 131 | * GDALGCPsToGeoTransform(): add GDAL_GCPS_TO_GEOTRANSFORM_APPROX_OK=YES and GDAL_GCPS_TO_GEOTRANSFORM_APPROX_THRESHOLD=threshold_in_pixel configuration option (#6995) |
| 132 | * RawDataset::IRasterIO(): don't assume all bands are RawRasterBand |
| 133 | * GDALOpenInfo: make number of bytes read at opening configurable with GDAL_INGESTED_BYTES_AT_OPEN |
| 134 | * GDALCopyWholeRasterGetSwathSize(): try to use at least 10 MB for swath size |
| 135 | * GDALDatasetCopyWholeRaster(), GDALRasterBandCopyWholeRaster(), GDALCreateCopy(): always call AdviseRead() on the full extent of the source dataset (#7082) |
| 136 | * make DefaultCreateCopy() copy RAT |
| 137 | * Generate gcore/gdal_version.h from git date and sha for a dev version (Unix builds only) |
| 138 | * Add GDALDataset::Open() |
| 139 | * Add C++ iterators for layers, bands and features in GDALDataset |
| 140 | * External .ovr: make sure that ExtraSamples tag is written |
| 141 | |
| 142 | Algorithms: |
| 143 | * Contour: make sure no 3D geometry is created unless -3d switch is defined (#336) |
| 144 | * Warper: revise/improver how working data type is inferred from other parameters |
| 145 | * Warper: when operating on single-band, skip target pixels whose source center pixel is nodata (2.2 regression, #7001) |
| 146 | * Warper: avoid blocking when number of rows is 1 and NUM_THREADS > 1 (#7041). Also limit the number of threads so that each one processes at least 65536 pixels |
| 147 | * Warper: use AdviseRead() when source chunks are sufficiently compact (#7082) |
| 148 | * Warper: fix rounding error in scale factor computation (github #273) |
| 149 | * Warper: use panSrcBands[0] in the single band case (regression fix, github #295) |
| 150 | * Warper: add very special case to handle situation where input raster edge touches dateline, but proj.4 transformation involves a discontinuity (#7243) |
| 151 | * Geoloc transformer: fix systematic pixel shift (github #244) |
| 152 | * RPC transformer: set output coordinates to HUGE_VAL when failure occurs, so that a following coordinate transformation can detect the error too (#7090) |
| 153 | * RPC transformer: return NULL at instantiation if the specified RPC_DEM file cannot be opened |
| 154 | * Export GDALRegisterTransformDeserializer() and GDALUnregisterTransformDeserializer() (#5392) |
| 155 | * GDALRasterize(): avoid hang in some cases with all_touched option (#5580) |
| 156 | * Optimize GDALResampleConvolutionVertical() and GDALPansharpenOperation::WeightedBroveyPositiveWeightsInternal() for SSE2 / AVX |
| 157 | * Overview / resampling: speed-up bicubic upsampling for SSE2 |
| 158 | * GDALGrid() with linear algorithm: avoid assertions/segmentation fault when GDALTriangulationFindFacetDirected() fails (#7101) |
| 159 | * GDALComputeProximity(): fix int32 overflow when computing distances on large input datasets (#7102) |
| 160 | * GDALAllRegister(): make sure that all drivers that need to look for sidecar files are put at the end |
| 161 | |
| 162 | Utilities: |
| 163 | * GDAL and OGR C++ and Python utilities: accept -f or -of to specify output format |
| 164 | * --optfile: re-parse inlined content with GDALGeneralCmdLineProcessor(), in particular to support --config key value in option file |
| 165 | * gdalsrsinfo: for consistency with other output, do not quote the proj.4 string output |
| 166 | * gdal_rasterize: fix segfault when rasterizing onto a raster with RPC (#6922) |
| 167 | * gdal_rasterize: add a -to option to specify transformer options |
| 168 | * gdal_rasterize / GDALRasterizeGeometries(): optimize rasterization for large number of small geometries (#5716) |
| 169 | * gdal_rasterize: fix crash in some situations with ALL_TOUCHED option (#7176) |
| 170 | * gdaladdo: support not specifying explicitly overview factors, and add -minsize option |
| 171 | * gdal_translate: add -a_scale / -a_offset (#7093) |
| 172 | * gdal_translate: add -colorinterp / -colorinterp_X options |
| 173 | * DefaultCreateCopy()/gdal_translate: do not destroy target file in case of failed copy wen using -co APPEND_SUBDATASET=YES (#7019) |
| 174 | * gdal_translate: make -b mask[,xx] use the appropriate band data type (#7028) |
| 175 | * gdal_translate property copy RAT (or not-copy RAT when -norat is specified) |
| 176 | * gdalwarp: make -crop_to_cutline works when RPC transform is involved |
| 177 | * gdalwarp: for RPC warping add a few extra source pixels by default |
| 178 | * gdalwarp: -crop_to_cutline: reduce number of iterations to find the appropriate densification (#7119) |
| 179 | * gdalwarp: do not set implicitly nodata on destination dataset when -dstalpha is specified (#7075) |
| 180 | * gdalwarp: display errors (such as invalid open options) on successful opening of destination dataset |
| 181 | * gdalwarp: fix "-dstnodata inf" (#7097) |
| 182 | * gdalwarp: fix when several input datasets with different SRS are specified, and no explicit target SRS is provided (#7170) |
| 183 | * gdalwarp: make sure to try to redefine the destination nodata value from the source nodata even if the newly created dataset has already set a default nodata value (#7245) |
| 184 | * gdalwarp: improve progress meter when using multiple source files. For GDALWarp() function, make sure that the progress goes monotonically from 0 to 1. (#352) |
| 185 | * gdal2tiles.py: fix GDAL 2.2 regression where tilemapresource.xml was no longer generated (#6966) |
| 186 | * gdal2tiles: add --processes=intval option to parallelize processing (#4379) |
| 187 | * gdalinfo --format / ogrinfo --format: report extra metada items in a 'Other metadata items:' section (#7007) |
| 188 | * gdalinfo: make sure to display geodetic coordinates always in degree (and not potentially in another unit such as grad) (#4198) |
| 189 | * gdalinfo: report 'Mask Flags: PER_DATASET NODATA' when NODATA_VALUES metadata item is specified |
| 190 | * gdal_edit.py: add a -colorinterp_X red|green|blue|alpha|gray|undefined option to change band color interpretation |
| 191 | * gdal_contour: return with non-0 code if field creation or contour generation failed (#7147) |
| 192 | * gdal_retile.py: fix failure if the filename contains % (percent) symbol (#7186) |
| 193 | * gdalbuildvrt: make warnings about heterogeneous projection/band characteristics more explicit (#6829) |
| 194 | * gdalbuildvrt: add support for band scale and offset (#3221) |
| 195 | * gdal_fillnodata.py, gdal_pansharpen.py, gdal_polygonize.py, gdal_proximity.py, gdal_sieve.py, rgb2pct.py: avoid potential problem on Windows in verbose mode (github #458) |
| 196 | |
| 197 | Sample Python scripts: |
| 198 | * Add gdal_mkdir.py, gdal_rm.py and gdal_rmdir.py samples scripts |
| 199 | * gdalcopyproj.py: fix use of GCP related API (github #255) |
| 200 | * ogr2vrt.py: automatically set relativeToVRT=1 for input and output filenames givn in relative form in the same directory |
| 201 | |
| 202 | Multi driver changes: |
| 203 | * tag (and do needed changes) CALS, FUJIBAS, PAUX, SGI, RS2, GXF, TERRAGEN, Rasterlite, CPG, MSGN, Leveller as supporting GDAL_DCAP_VIRTUALIO |
| 204 | |
| 205 | AIGRID: |
| 206 | * fix handling on raw 32-bit AIG blocks (#6886) |
| 207 | |
| 208 | BT driver: |
| 209 | * make GetNoDataValue()/SetNoDataValue() use PAM |
| 210 | |
| 211 | DIMAP driver: |
| 212 | * do not report dummy geotransform (see https://lists.osgeo.org/pipermail/gdal-dev/2018-January/048014.html) |
| 213 | |
| 214 | DTED driver: |
| 215 | * Support VerticalCS for DTED and SRTM drivers when REPORT_COMPD_CS config option is set (github #237) |
| 216 | |
| 217 | ECW driver: |
| 218 | * fix Windows compilation against old ECW SDK and VS < 2015 (#6943) |
| 219 | * make AdviseRead() to store its call parameters, and only do the actual work in RunDeferredAdviseRead() if TryWinRasterIO() determines that the IRasterIO() parameters are compatible of the AdviseRead() ones (#7082) |
| 220 | * data/ecw_cs.wkt: fix PRIMEM of MONTROME (#2340) |
| 221 | |
| 222 | EHdr driver: |
| 223 | * support reading/writing .clr as/from RAT (#3253) |
| 224 | |
| 225 | ENVI driver: |
| 226 | * support 'major frame offsets' keyword (#7114) |
| 227 | |
| 228 | ERS driver: |
| 229 | add extension metadata (github #320) |
| 230 | |
| 231 | GeoPackage driver: |
| 232 | * update from 'tiled gridded extension' to now OGC approved 'tiled gridded coverage data extension' (OGC 17-066r1) (#7159) |
| 233 | * avoid corruption of gpkg_tile_matrix when building overviews, down to a level where they are smaller than the tile size (#6932) |
| 234 | * fix opening subdatasets with absolute filenames on Windows (https://issues.qgis.org/issues/16997) |
| 235 | * fix possible assertion / corruption when creating a raster GeoPackage (#7022) |
| 236 | * properly handle non-0 nodata value in edge tiles, especially with TILING_SCHEME creation option |
| 237 | * do not write empty tiles for Float32 data type |
| 238 | * speed-up statistics retrieval on non-Byte datasets (#7096) |
| 239 | * make DELLAYER:rastertable / DROP TABLE rastertable delete the table and all references to it (#7013) |
| 240 | * create single tiled TIFF tiles if they are not bigger than 512x512 pixels |
| 241 | * avoid multi-threading issues when creating TIFF tiles with GDAL_NUM_THREADS defined. |
| 242 | |
| 243 | GeoRaster driver: |
| 244 | * handle memory allocation failures (#6884) |
| 245 | * add support for GCP (#6973) |
| 246 | |
| 247 | GTiff driver: |
| 248 | * add support for ZSTD compression/decompression (requires internal libtiff, or libtiff HEAD) |
| 249 | * when IRasterIO() realizes that several blocks are going to be needed, use MultiRangeRead() interface for /vsicurl/ related file systems to get data in parallel |
| 250 | * change default value of BIGTIFF_OVERVIEW to be IF_SAFER (github #231) |
| 251 | * make sure that -co PHOTOMETRIC=RGB overrides the color interpretation of the first 3 bands of the source datasets (#7064) |
| 252 | * allow modifying color interpretation on existing file opened in update mode |
| 253 | * Internal libtiff: resync with upstream HEAD (post 4.0.9) |
| 254 | * Internal libgeotiff: resync with upstream HEAD: use ProjScaleAtCenterGeoKey for CT_Mercator if ProjScaleAtNatOriginGeoKey is not set (github #296) |
| 255 | * fix compilation without BIGTIFF_SUPPORT (#6890) |
| 256 | * fix reading subsampled JPEG-in-TIFF when block height = 8 (#6988) |
| 257 | * when reading a COMPD_CS (and GTIFF_REPORT_COMPD_CS=YES), set the name from the GTCitationGeoKey (#7011) |
| 258 | * on reading use GeogTOWGS84GeoKey to override the defaults TOWGS84 values coming from EPSG code (#7144) |
| 259 | * when writing SRS, do not drop EXTENSION PROJ4 node if the projection is unknown (#7104) |
| 260 | * make it accept to write SetGeoTransform([0,1,0,0,0,1]) as a ModelTransformationTag, and remove particular cases with the [0,1,0,0,0,1] geotransform (#1683) |
| 261 | * warn when SetNoDataValue() is called on different bands with different values (#2083) |
| 262 | * add a GTIFF_HONOUR_NEGATIVE_SCALEY=YES config option that can be set to honour negative ScaleY value in GeoPixelScale tag according to the GeoTIFF specification (#4977) |
| 263 | * read/write Z dimension for ModelTiepointTag and ModelPixelScaleTag and translate it into/from band scale and offset, when there's a SRS with a vertical component (#7093) |
| 264 | * fix reading PCSCitationGeoKey (#7199) |
| 265 | * add support for reading and writing TIFF_RSID and GEO_METADATA GeoTIFF DGIWG tags |
| 266 | * use consistently multiplication/division by 257 when converting between GDAL [0,255] range to TIFF [0,65535] range for color map values (#2213) |
| 267 | * don't write <GDALMetadata> colorinterp when writing a file with a color table |
| 268 | * copy georeferencing info to PAM if the profile is not GeoTIFF |
| 269 | |
| 270 | GRIB driver: |
| 271 | * add GRIB2 write support |
| 272 | * update to degrib 2.14 and g2clib 1.6.0 |
| 273 | * add support for GRIB2 template 4.32 (github #249) |
| 274 | * add support for GRIB2 template '4.32 Simulate (synthetic) Satellite Product' |
| 275 | * add support for GRIB2 template 4.40 (Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents) |
| 276 | * update table 4.2-0-7 current (github #274) |
| 277 | * add support for GRIB1 products with non-zero NV (number of vertical coordinate parameters) field in GDS (NV is just ignored) (#7104) |
| 278 | * add support for Rotated pole LatLon projections (#7104) |
| 279 | * adjust the longitude range to be close to [-180,180] when possible for products whose left origin is close to 180deg. Can be controlled with the GRIB_ADJUST_LONGITUDE_RANGE=YES/NO config option, that defaults to YES (#7103) |
| 280 | * advertize .grb2 and .grib2 extensions in metadata |
| 281 | * expose product discipline of GRIB2 products in GRIB_DISCIPLINE (#5108) |
| 282 | * add a GRIB_PDS_TEMPLATE_ASSEMBLED_VALUES metadata items which expose a slightly higher view of GRIB_PDS_TEMPLATE_NUMBERS |
| 283 | * speed-up GetNoData() implementation of GRIB2 files by avoiding decompressing the data |
| 284 | * GRIB2: add support for Transverse Mercator, Albers Equal Area, Lambert Azimuthal projections, fixes in Mercator and Polar Stereographic support, adjustment for GS80 and WGS84 datums |
| 285 | * correctly read Mercator as Mercator_2SP when stdparallel1 != 0 |
| 286 | * GRIB2: add support for Grid point data - IEEE Floating Point Data template 5.4 encoding |
| 287 | * GRIB2: report Section 1 / Identification section as GRIB_IDS metadata item |
| 288 | * fix decimal_scale_factor != 0 handling with nbits = 0 for simple packing and JP2K compression/decompression, and PNG compression. |
| 289 | * GRIB2: don't error out on a unhandled template in Section 4 |
| 290 | * remove TDLPack support |
| 291 | |
| 292 | GSAG driver: |
| 293 | * fix reading issue that could cause a spurious 0 value to be read and shift all following values (#6992) |
| 294 | |
| 295 | GTX driver: |
| 296 | * do not emit error when opening with GDAL_PAM_ENABLED=NO (#6996) |
| 297 | |
| 298 | GRC driver: |
| 299 | * Fix handling of alpha values in GRC color table (#6905) |
| 300 | * Handle case of 0-len GRC class names (#6907) |
| 301 | |
| 302 | HDF5 driver: |
| 303 | * Added CInt16, CInt32, CFloat32, CFloat64 support (github #359) |
| 304 | * HDF5 driver as a plugin: register the BAG driver as well (#5802) |
| 305 | |
| 306 | HF2 driver: |
| 307 | * creation: copy source information (including nodata) into PAM if needed (#6885) |
| 308 | * fix reading tiles that are 1-pixel wide (2.1 regression, #6949) |
| 309 | |
| 310 | HFA driver: |
| 311 | * add GDAL_HFA_OVR_BLOCKSIZE configuration option to control HFA overviews block size (github #292) |
| 312 | |
| 313 | HTTP driver: |
| 314 | * do not open the underlying dataset with GDAL_OF_SHARED, to avoid later assertion |
| 315 | |
| 316 | ISIS3 driver: |
| 317 | * make sure that -co USE_SRC_HISTORY=NO -co ADD_GDAL_HISTORY=NO results in remove of History section (#6968) |
| 318 | * fix logic to initialize underlying GeoTIFF file in IWriteBlock(), and implement Fill() (#7040) |
| 319 | |
| 320 | JP2ECW driver: |
| 321 | * add NBITS creation option, and automatically select codestream output for .j2k extension |
| 322 | |
| 323 | JP2KAK driver: |
| 324 | * add support fr Kakadu 7.A (#7048) |
| 325 | * fix lossless compression with NBITS != 8 for Byte and NBITS != 16 for UInt16 |
| 326 | * use tile dimensions as block size up to 2048x2048 (#6941) |
| 327 | * make write side honour .j2k extension to generate only codestream |
| 328 | |
| 329 | JP2OpenJPEG driver: |
| 330 | * add support for OpenJPEG 2.2 (#7002) and 2.3 (#7074). Drop support for openjpeg 2.0 |
| 331 | * fix performance issues with small images with very small tile size, such as some Sentinel2 quicklooks (#7012) |
| 332 | * emit warning if GMLJP2v2 explicitly requested but georeferencing implemented |
| 333 | |
| 334 | JPEG driver: |
| 335 | * Add compatibility with libjpeg-turbo 1.5.2 that honours max_memory_to_use |
| 336 | * add capability to write EXIF and GPS tags in a EXIF segment |
| 337 | * Internal libjpeg: provide implementation of tmpfile() that works better on Windows (#1795) |
| 338 | * avoid mis-identification of some SRTMHGT files as JPEG |
| 339 | |
| 340 | JPEG2000 driver: |
| 341 | * add NBITS creation option, and automatically select codestream output for .j2k extension |
| 342 | |
| 343 | KEA driver: |
| 344 | * add some additional metadata items (STATISTICS_HISTOBINVALUES and STATISTICS_HISTONUMBINS) (#6892) |
| 345 | |
| 346 | L1B driver: |
| 347 | * support reading NOAA18 datasets (#7115) |
| 348 | |
| 349 | MBTiles driver: |
| 350 | * add read/write support for Mapbox vector tiles |
| 351 | * support opening and creating datasets with tiles whose dimension is not 256 (#7233) |
| 352 | * default to opening as RGBA (#6119) |
| 353 | |
| 354 | MEM driver: |
| 355 | * Avoid Create(foo.tif) / CreateCopy(foo.tif) on the MEM or Memory drivers to delete a 'real' foo.tif file |
| 356 | * add RAT support |
| 357 | |
| 358 | MRF driver: |
| 359 | * Add Zen chunk support |
| 360 | * Open option to ignore decompression errors and missing data files |
| 361 | * delay data file creation when NOCOPY is set |
| 362 | * Identify MRF metadata passed as filename |
| 363 | * Initialize PAM better on CopyCreate, enable external mask. |
| 364 | * Fix for coordinates when opening single overview level |
| 365 | * Use input mask if available to filter input data when creating JPEG compressed files. |
| 366 | * Add open option to select Z-slice, also Z-slice selection in the metadata file |
| 367 | |
| 368 | MrSID driver: |
| 369 | * add support for LTI_COLORSPACE_GRAYSCALEA and LTI_COLORSPACE_GRAYSCALEA_PM color |
| 370 | spaces |
| 371 | |
| 372 | NetCDF driver: |
| 373 | * avoid vector vs raster variable confusion that prevents reading Sentinel3 datasets, and avoid invalid geolocation array to be reported (#6974) |
| 374 | * fix raster read as nodata with Byte datatype, (valid_range={0,255} or _Unsigned = True) and negative _FillValue (#7069) |
| 375 | * be more tolerant on the formatting of standard parallel (space separated instead of {x,y,...} syntax), and accept up to 2/1000 error on spacing to consider a regular grid, to be able to read files provided by the national weather institute of Netherlands (KNMI) (#7086) |
| 376 | * on creation, attach grid_mapping attribute to all bands |
| 377 | * netCDF: support UTF-8 filenames on Windows (#7065) |
| 378 | * add support for reading files in rotated pole projection (#4285) |
| 379 | * behave correctly when an extra dimension of a variable has a corresponding 1D variable of different names (#7165) |
| 380 | * netCDF: fix bad interaction of SetNoDataValue() and SetGeoTransform()/SetProjection() for NC4/NC4C modes (#7245) |
| 381 | |
| 382 | NITF driver: |
| 383 | * add support for NITF CCINFA TRE (github #232) |
| 384 | * data/nitf_spec.xml: fix location of PIAPRD TRE (github #234) |
| 385 | * make sure that BLOCKA_ or TRE=BLOCKA= creation option override source NITF metadata; add a USE_SRC_NITF_METADATA=YES/NO creation option; make sure that gdal_translate doesn't preserve source BLOCKA when georeferencing is modified |
| 386 | * fix swapped lines and samples in IMRFCA (github #289) |
| 387 | * allow to read single-block JPEG2000 compressed images with one dimension > 8192 pixels (fixes #407) |
| 388 | |
| 389 | PCIDSK driver: |
| 390 | * sort overviews (#7100) |
| 391 | |
| 392 | PCRaster driver: |
| 393 | * fix fseek/ftell for large files on Windows (#322) |
| 394 | |
| 395 | PDF driver: |
| 396 | * add support for Poppler 0.58 (#7033) |
| 397 | * round to upper integer when computing a DPI such that page size remains within limits accepted by Acrobat (#7083) |
| 398 | * do not emit 'Cannot find GPTS object' on VP.Measure objects whose Subtype != GEO |
| 399 | |
| 400 | PDS driver: |
| 401 | * map STEREOGRAPHIC with fabs(lat)=90 to Polar_Stereographic (#6893) |
| 402 | |
| 403 | PLMosaic driver: |
| 404 | * update to use the new Basemaps and Mosaics API |
| 405 | * take into account BBOX for XYZ tiles |
| 406 | |
| 407 | PNM driver: |
| 408 | * add .pgm and .ppm extensions in metadata |
| 409 | |
| 410 | RMF driver: |
| 411 | * add RMF native overviews support (github #266) |
| 412 | * fix raster garbage values while reading sparse RMF files (github #267) |
| 413 | * add native overview build (github #275) |
| 414 | * fix NoData value update (github #312) |
| 415 | * fix elevation units write and update (github #314) |
| 416 | |
| 417 | RRASTER driver: |
| 418 | * add support for reading creator and created metadata items, band names and color table / RAT |
| 419 | * add update and create/createcopy support |
| 420 | |
| 421 | SAGA driver: |
| 422 | * add support for .sg-grd-z files (github #228) |
| 423 | |
| 424 | Sentinel2 driver: |
| 425 | * make sure that the True Color Image subdatset really uses the R,G,B bands and not the R,R,R (#7251) |
| 426 | * add support for direct opening of .zip files of new safe_compact L1C products (#7085) |
| 427 | |
| 428 | SRTMHGT driver: |
| 429 | * set appropriate description when opening a .hgt.zip file |
| 430 | * recognizes the .hgt.gz extension (#7016) |
| 431 | * add support for reading .SRTMSWBD.raw.zip files (GRASS #3246) |
| 432 | |
| 433 | USGSDEM driver: |
| 434 | * properly handle southern hemisphere UTM projections (#344) |
| 435 | |
| 436 | VICAR driver: |
| 437 | * optimize nodata handling, and map STEREOGRAPHIC with fabs(lat)=90 to Polar_Stereographic (#6893) |
| 438 | |
| 439 | VRT driver: |
| 440 | * add option for separable kernel (github #216) |
| 441 | * warn if band attribute of VRTRasterBand is not the one expected |
| 442 | * implement FlushCache() |
| 443 | * fix use of VRTs that point to the same source in multi-threaded scenarios (#6939) |
| 444 | * Warped VRT: correctly take into account cutline for implicit overviews; also avoid serializing a duplicate CUTLINE warping options in warped .vrt (#6954) |
| 445 | * Warped VRT: fix implicit overview when output geotransform is not the same as the transformer dst geotransform (#6972) |
| 446 | * fix IGetDataCoverageStatus() in the case of non-simple sources, which unbreaks gdalenhance -equalize (#6987) |
| 447 | * re-apply shared='0' on sources if existing in original VRT when rewriting it due to invalidation |
| 448 | * avoid error being emitted when opening a VRTRawRasterBand in a .zip files (#7056) |
| 449 | * implement VRTDataset::AdviseRead() (in the particular case of a single source) (#7082) |
| 450 | * allow to incorporate a warped VRT as CDATA in the SourceFileName field of a regular VRT |
| 451 | * VRTDerivedRasterBand: fix detection of Python runtime already loaded when more than 100 modules are linked. Fixes QGIS3 use case (#7213) |
| 452 | * add RAT support |
| 453 | * for consistency, make sure that VRT intermediate datatype demotion is done, e.g that a VRT band of type Byte, with a source of type Float32, requested as Float32 buffer involves Float32 -> Byte -> Float32 conversions |
| 454 | |
| 455 | WCS driver: |
| 456 | * add support for WCS 2.0 |
| 457 | * add caching |
| 458 | * add various open options |
| 459 | |
| 460 | WMS driver: |
| 461 | * ArcGIS miniserver: use latestWkid and wkt metadata (#6112) |
| 462 | * avoid AdviseRead() to download too many tiles at once (#7082) |
| 463 | * recognize /ImageServer?f=json ESRI endpoints |
| 464 | * Add support for maximum size and expiration time and unique per dataset name for WMS cache |
| 465 | |
| 466 | XYZ driver: |
| 467 | * fix 2.2.0 regression where the driver hangs on some dataset with missing samples (#6934) |
| 468 | * support non numeric characters when there is an header line (#7261) |
| 469 | |
| 470 | == OGR 2.3.0 - Overview of Changes == |
| 471 | |
| 472 | Core: |
| 473 | * OGRLayer::FilterGeom(): make sure a feature with a null or empty geometry never matches a spatial filter (#7123) |
| 474 | * OGRSimpleCurve::get_LinearArea(): return 0 on a non-closed linestring (#6894) |
| 475 | * OGRFeature::SetField: Improve the setting for OFTInteger fields from a double. |
| 476 | * OGR_G_TransformTo(): emit error message when source geometry has no SRS |
| 477 | * OGR API SPY: various fixes |
| 478 | * OGRCurve::get_isClosed(): do not take into account M component (#7017) |
| 479 | * OGRLineString::setPoint() and addPoint() with a OGRPoint* argument. properly takes into account ZM, Z and M dimensions (#7017) |
| 480 | * OGRMultiSurface: refuse to add a triangle to it. (github #357) |
| 481 | * OGRPolyhedralSurface: importFromWkt(): remove support for invalid constructs, that contrary to comments are not supported by PostGIS |
| 482 | * Fix OGR[Curve]Polygon::Intersects(OGRPoint*) to return true when point is on polygon boundary (#7091) |
| 483 | * Emit an explicit error message for OGRGeometry::IsValid(), IsSimple(), IsRing() when GEOS is not available |
| 484 | * Make OGRGeometry::assignSpatialReference() a virtual method, and make implementation recursively assign the SR to child geometries (#7126) |
| 485 | * Expose OGRGeometry::swapXY() as OGR_G_SwapXY() in C API (#7025) |
| 486 | * importFromWkt(): fix import of GEOMETRYCOLLECTION ending with POINT EMPTY or LINESTRING EMPTY (#7128, 2.1 regression) |
| 487 | * OGRSQL: avoid silent cast so that int64->int overflow is better signaled |
| 488 | * OGRSQL: accept using the real FID column name (in addition to the special 'FID' alias) (#7050) |
| 489 | * Add GDAL_DCAP_NONSPATIAL capability to ODS, REC, XLS and XLSX drivers |
| 490 | * Add GDAL_DCAP_FEATURE_STYLES capability to CAD, DGN, DWG, DXF, EDIGEO, JML, KML, lIBLML, MITAB, OpenAIR and VRT drivers |
| 491 | * Add DMD_CREATIONFIELDDATASUBTYPES metadata type (github #278) |
| 492 | * OGRParseDate(): only accept seconds up to 60 included for leap seconds (#6525) |
| 493 | * Fix OGRPolygon::IsPointOnSurface() broken with polygons with holes |
| 494 | * OGRFormatDouble(): add a OGR_WKT_ROUND config option that can be set to FALSE to disable the heuristics that remove trailing 00000x / 99999x patterns (#7188) |
| 495 | * Add C++ iterators for feature in layer and field values in features. |
| 496 | * Add C++ iterators for "sub-parts" of geometry classes |
| 497 | * Const-correctness fixes in signatures of methods of OGRFeatureDefn, OGRFeature, OGRFieldDefn and OGRGeomFieldDefn classes. |
| 498 | * Fix constness of OGR_G_CreateFromWkb(), OGR_G_CreateFromFgf(), OGR_G_ImportFromWkb() and related C++ methods |
| 499 | * Fix const correctness of OGRGeometry::importFromWkt() and OGRGeometryFactory::createFromWkt(), and add compatibility wrappers |
| 500 | |
| 501 | OGRSpatialReference: |
| 502 | * Update to EPSG v9.2 (#7125) |
| 503 | * Update data/esri_extra.wkt and add data/esri_epsg.wkt, taken from https://github.com/Esri/projection-engine-db-doc (Apache v2 license) (#2163) |
| 504 | * Add support for PROJ.5 new API (requires proj 5.0.1 or later) |
| 505 | * Add a OSRFindMatches() function to look for equivalent SRS in the EPSG database, map it to SWIG Python. Enhance gdalsrsinfo to use it |
| 506 | * Add OGRSpatialReference::convertToOtherProjection() (bound to C as OSRConvertToOtherProjection() and to SWIG) to transform between different equivalent projections (currently Merc_1SP <--> Merc_2SP and LCC_1SP <--> LCC_2SP) (#3292) |
| 507 | * Fix OGRSpatialReference::IsSame() to return FALSE when comparing EPSG:3857 (web_mercator) and EPSG:3395 (WGS84 Mercator) (#7029) |
| 508 | * importFromProj4(): implement import of Hotine Oblique Mercator Two Points Natural Origin, and fix OGRSpatialReference::Validate() for that formulation (#7042) |
| 509 | * morphFromESRI(): fix remapping from DATUM = D_S_JTSK + PRIMEM = Ferro to OGC DATUM System_Jednotne_Trigonometricke_Site_Katastralni_Ferro |
| 510 | * Add alternate simpler signature for OGRGeometryFactory::createFromWkt() |
| 511 | * Add importFromWkt(const char**) |
| 512 | |
| 513 | Utilities: |
| 514 | * ogrmerge.py: fix '-single -o out.shp in.shp' case (#6888) |
| 515 | * ogrmerge.py: allow using wildchar '*' in source names and use glob.glob to expand it |
| 516 | * ogrmerge.py: correctly guess vrt format |
| 517 | * ogrmerge.py: error when outputting to a existing vrt if -overwrite_ds is not specified |
| 518 | * ogr2ogr: fix crash when using -f PDF -a_srs (#6920) |
| 519 | * ogr2ogr: make -f GMT work again (#6993) |
| 520 | * ogr2ogr: make it fail if GetNextFeature() returned NULL with an error |
| 521 | * ogr2ogr: honour -select when using -addfiels |
| 522 | * ogr2ogr: preserve source geometry field name for output drivers that support GEOMETRY_NAME layer creation option (such as GPKG) |
| 523 | * ogr2ogr: add support for circularstring, compoundcurve, curvepolygon, multicurve and multisurface in SetZ() |
| 524 | * GDALVectorTranslate(): fix converting from Memory to Memory datasources (#7217) |
| 525 | * gnmmanage: fix crash on shape files with linestring and multilinestring geometries mixing |
| 526 | * ogrtindex: fix crash when using -f SQLITE -t_srs XXXX (#7053) |
| 527 | * ogrinfo: always open in read-only mode, unless -sql without -ro is specified |
| 528 | |
| 529 | Multi driver changes: |
| 530 | * port/tag ILI, NAS, DGN, NTF, SDTS, OGR_GMT, Geoconcept, AVCE00, AVCBin to VirtualIO API |
| 531 | |
| 532 | Amigocloud driver: |
| 533 | * Fixed data field types (github #246) |
| 534 | * Output list of datasets if dataset id is not provided. |
| 535 | * Implemented waiting for job to complete on the server. This will improve write to AmigoCloud reliability. |
| 536 | * Add HTTP user agent (github #263) |
| 537 | * add OVERWRITE open option (github #268) |
| 538 | |
| 539 | AVCE00 driver: |
| 540 | * Make sure AVCE00 opens .e00 files and not AVCBIN one |
| 541 | |
| 542 | AVCBin driver: |
| 543 | * fix 2.1 regression regarding attributes fetching (#6950) |
| 544 | |
| 545 | Carto driver: |
| 546 | * fix append mode by retrieving the sequence name for the primary key (#7203) |
| 547 | * fix insertion with ogr2ogr -preserve_fid (#7216) |
| 548 | * fix missing features when iterating over a SQL result layer with pagination (#6880) |
| 549 | |
| 550 | CSV driver: |
| 551 | * add a STRING_QUOTING=IF_NEEDED/IF_AMBIGUOUS/ALWAYS layer creation option, that defaults to IF_AMBIGUOUS (quote strings that look like numbers) |
| 552 | * temporarily disable spatial and attribute filter when rewriting CSV file (#7123) |
| 553 | * fix autodetection of types when a Real value is followed by a Integer64 one (#343) |
| 554 | |
| 555 | DGNv8 driver: |
| 556 | * add support for building against static library (#7155) |
| 557 | |
| 558 | DXF driver: |
| 559 | * Support LEADER and MULTILEADER entities (#7111, #7169) |
| 560 | * Support HELIX and TRACE entities |
| 561 | * Support spline hatch boundaries |
| 562 | * Support MLINE entity |
| 563 | * Support rows/columns within INSERT |
| 564 | * Add support for block attributes (ATTRIB entities) (#7139) |
| 565 | * Support text styles (#7151) |
| 566 | * Support cylinders (CIRCLE entities with thickness) |
| 567 | * set dx and dy to DXF LABEL style string on TEXT and MTEXT objects (github #225) |
| 568 | * fix reading of hatches with boundaries that contain elliptical arcs (#6971) |
| 569 | * fix reading files where INSERT is the last entity and DXF_MERGE_BLOCK_GEOMETRIES is false (#7006) |
| 570 | * fix ordering of vertices in a SOLID entity (#7089) |
| 571 | * only apply certain escaping rules to the text of the MTEXT object (#7047) |
| 572 | * Handle all known MTEXT escapes; allow user to turn off text unescaping (fixes #7122) |
| 573 | * do not apply the OCS transformation for MTEXT (#7049) |
| 574 | * do not output dx and dy in MTEXT style strings (#7105) |
| 575 | * apply DXF codepage encoding while decoding ExtendedEntity field (#5626) |
| 576 | * allow user to set the tolerance used when joining parts of a hatch boundary with a DXF_HATCH_TOLERANCE config option, and default to 1e-7 of the extent of the geometry (#7005) |
| 577 | * refactor out block insertion to its own function, and transform insertion point of an INSERT entity into OCS (#7077) |
| 578 | * on write side, force 'defpoints' layer to be non-displayed (#7078) |
| 579 | * entities on layer 0 within a block should inherit the style of the layer the INSERT is on. Do that for entities with a PEN style string for now. (#7099) |
| 580 | * OCS fixes for HATCH and INSERT entities (#7098) |
| 581 | * defer inlining of blocks until actually required (#7106) |
| 582 | * Read DIMSTYLEs and block record handles |
| 583 | * Handle linetype scales (#7129) |
| 584 | * mproved support for DIMENSION entities (#7120) |
| 585 | * handle ByBlock colors (#7130) |
| 586 | * Fix parsing of complex linetypes (#7134) |
| 587 | * Correct color for ByBlock text features; respect hidden objects (#5592, #7099, #7121) |
| 588 | * Make ACAdjustText also transform text width and offset (#7151) |
| 589 | * Honor block base points (#5592) |
| 590 | * Use BRUSH style tool instead of PEN when reading polygonal SOLIDs and leader arrowheads; add PEN style string to 3DFACE |
| 591 | * Specify ground units for TEXT dx and dy style values; interpret dx and dy in the writer |
| 592 | * Fix bug in text style property retrieval; handle text color in DIMENSION fallback renderer |
| 593 | * Write text styles and HATCH elevations; fix output of invalid extent values (#7183) |
| 594 | * Allow access to unused entity group codes with RawCodeValues field (github #226) |
| 595 | * Reduce the size of header.dxf and trailer.dxf (tested with AutoCAD, QCAD Teigha, QCAD dxflib, FME) |
| 596 | * Make the writer aware of linetype scaling |
| 597 | * Don't force elevation to zero in smooth polylines (#7200) |
| 598 | * Always output all edges in polyface mesh, and add styling (#7219) |
| 599 | * Remove incorrect OCS transformation from MLINE entities |
| 600 | * Introduce 3D extensible mode to allow translation of 3D entities |
| 601 | |
| 602 | ESRIJson driver: |
| 603 | * "New": extracted from code previously in GeoJSON driver |
| 604 | * avoid endless looping on servers that don't support resultOffset (#6895) |
| 605 | * use 'latestWkid' in priority over 'wkid' when reading 'spatialReference' (github #218) |
| 606 | * recognize documents that lack geometry fields (#7071) |
| 607 | * do not attempt paging requests on a non-HTTP resource |
| 608 | * recognize documents starting with a very long fieldAliases list (#7107) |
| 609 | |
| 610 | FileGDB driver: |
| 611 | * remove erroneous ODsCCreateGeomFieldAfterCreateLayer capability declaration (github #247) |
| 612 | * add LAYER_ALIAS layer creation option (#7109) |
| 613 | * FileGDB / OpenFileGDB: attempt to recover EPSG code using FindMatches() |
| 614 | * FileGDB / OpenFileGDB: linearize Bezier curves with a more reasonable number of points |
| 615 | |
| 616 | GeoJSON driver: |
| 617 | * Add support for json-c v0.13 (github #277) |
| 618 | * support loading (true) GeoJSON files of arbitrary size (#6540) |
| 619 | * in update mode, support appending features, in some cases, without ingesting features of existing file into memory |
| 620 | * writer: accept writing ZM or M geometry by dropping the M component (#6935) |
| 621 | * fix 2.2 regression regarding lack of setting the FeatureCollection CRS on feature geometries (fixes https://github.com/r-spatial/sf/issues/449#issuecomment-319369945) |
| 622 | * make sure that -lco WRITE_NAME=NO works even if the native data has a 'name' attribute |
| 623 | * ignore 'properties' member of features whose value is null or empty array |
| 624 | * fix writing of id with RFC7946=YES (#7194) |
| 625 | * add ID_FIELD and ID_TYPE layer creation options |
| 626 | |
| 627 | GeoPackage driver: |
| 628 | * default to version 1.2 (#7244) |
| 629 | * speed-up loading of databases with hundreds of layers |
| 630 | * make driver robust to difference of cases between table_name in gpkg_contents/gpkg_geometry_columns and name in sqlite_master (#6916) |
| 631 | * fix feature count after SetFeature() with sqlite < 3.7.8 (#6953) |
| 632 | * do not error out if extent in gpkg_contents is present but invalid (#6976) |
| 633 | * avoid GetFeature() to hold a statement, that can cause database locking issues (https://issues.qgis.org/issues/17034) |
| 634 | * emit warning when feature geometries are not assignable to layer geometry type |
| 635 | * remove UNIQUE keyword for PRIMARY KEY of gpkg_metadata (doesn't hurt, but just to align with the examples of DDL in the GeoPackage spec) |
| 636 | * fix logic to detect FID on SQL result layer when several FID fields are selected (#7026) |
| 637 | * fix handling of spatial views |
| 638 | * do not try to update extent on gpkg_contents after GetExtent() on a empty layer of a datasource opened in read-only mode |
| 639 | * when inserting a SRS with a non-EPSG code, then avoid using srs_id that could be later assigned to a EPSG code |
| 640 | * when deleting a layer, delete from gpkg_metadata metadata records that are only referenced by the table we are about to drop |
| 641 | * fix incorrect rtree_<t>_<c>_update3 trigger statement (https://github.com/opengeospatial/geopackage/issues/414) |
| 642 | * fix definition of extensions |
| 643 | * only create metadata table if needed, and register it as extension |
| 644 | * declare gpkg_crs_wkt extension when using GPKG_ADD_DEFINITION_12_063=YES config option, and do not emit warning when finding it declared |
| 645 | |
| 646 | GeoRSS driver: |
| 647 | * fix detection of field type (#7108) |
| 648 | |
| 649 | GML driver: |
| 650 | * CreateGeometryFromGML(): accept gml:Arc with odd number of points > 3, even if they are invalid |
| 651 | * decode gml:Solid as PolyhedralSurface (#6978) |
| 652 | * JPGIS FGD v4: fix logic so that coordinate order reported is lon/lat (github #241) |
| 653 | * a GML_FEATURE_COLLECTION=YES/NO dataset creation option |
| 654 | * fix FORCE_SRS_DETECTION=YES effect on feature count and SRS reporting on gml files with .gfs (#7046) |
| 655 | * do not try to open some kml files (#7061) |
| 656 | * do not report gml:name / gml:description of features as layer metadata |
| 657 | |
| 658 | GMLAS driver: |
| 659 | * get the srsName when set on the srsName of the gml:pos of a gml:Point (#6962) |
| 660 | * CityGML related fixes: better take into account .xsd whose namespace prefix is not in the document, fix discovery of substitution elements, handle gYear data type (#6975) |
| 661 | * properly interpret SolidPropertyType (#6978) |
| 662 | * handle GML geometries in elements that are a substitutionGroup of an element (#6990) |
| 663 | * make sure to try namespaces that are indirectly imported (helps in the case of parsing the result of a WFS GetFeature request) |
| 664 | * take into account gYearMonth XML data type (https://github.com/BRGM/gml_application_schema_toolbox/issues/46) |
| 665 | * implement resolution of internal xlink:href='#....' references (https://github.com/BRGM/gml_application_schema_toolbox/issues/31) |
| 666 | * Recognize gml:Envelope as a Polygon geometry (https://github.com/BRGM/gml_application_schema_toolbox/issues/56#issuecomment-381967784) |
| 667 | |
| 668 | GMT: |
| 669 | * fix creation of several layers |
| 670 | |
| 671 | IDB driver: |
| 672 | * optimize spatial query using spatial index and st_intersects function (#6984) |
| 673 | * close connection at dataset closing (#7024) |
| 674 | |
| 675 | ILI driver: |
| 676 | * declare OLCCreateField and OLCSequentialWrite capabilities |
| 677 | |
| 678 | Ingres driver: |
| 679 | |
| 680 | JML driver: |
| 681 | * add support for reading and write SRS from gml:Box element (#7215) |
| 682 | |
| 683 | KML driver: |
| 684 | * KML / LIBKML: read documents with an explicit kml prefix (#6981) |
| 685 | * KML/LIBKML: make sure layer names are unique (QGIS github#5415) |
| 686 | |
| 687 | LIBKML driver: |
| 688 | * fix reading placemarks in toplevel container, when it has subfolders (#7221) |
| 689 | * improve open performance on huge number of layers |
| 690 | |
| 691 | MDB driver: |
| 692 | * fix multi-thread support (https://issues.qgis.org/issues/16039) |
| 693 | |
| 694 | MITAB driver: |
| 695 | * support for additional datums (#5676) |
| 696 | * add support for Reseau_National_Belge_1972 / EPSG:31370 on writing (#6903) |
| 697 | * add support for SWEREF99 datum (#7256) |
| 698 | * fix EPSG datum code for NTF Paris |
| 699 | * support units as code instead of string when reading a coordsys string from a .mif (#3590) |
| 700 | * add read/write support between MapInfo text encodings and UTF-8. Add ENCODING layer/dataset creation option (github #227) |
| 701 | * do not emit error if the .ind file is missing, just a debug message (#7094) |
| 702 | * accept creating files with LCC_1SP SRS (#3292) |
| 703 | * support 'CREATE INDEX ON layer_name USING field_name' (if called after field creation and before first feature insertion) |
| 704 | * avoid reporting invalid extent on empty .mif |
| 705 | * report aspatial .tab as wkbNone geometry type |
| 706 | |
| 707 | mongoDB driver: |
| 708 | * compilation fix on Windows |
| 709 | |
| 710 | MSSQLSpatial driver: |
| 711 | * Fix issues on x64 (#6930) |
| 712 | * Implement EXTRACT_SCHEMA_FROM_LAYER_NAME layer creation option. |
| 713 | * properly format DELETE statement with schema (#7039) |
| 714 | |
| 715 | MySQL: |
| 716 | * fix compilation issue with MariaDB 10.1.23 (#6899) and MariaDB 10.2 (#7079) |
| 717 | * make sure geometry column name is properly set (GDAL 2.0 regression, github #397) |
| 718 | |
| 719 | NAS driver: |
| 720 | * [NAS/GML] try reversing non contiguous curves |
| 721 | * Allow usage of a GFS template file for type assignment and mapping of element paths to attributes and remove arbitrary hacks that used to avoid attribute name conflicts: |
| 722 | * New option: NAS_GFS_TEMPLATE: specify gfs template |
| 723 | * New option: NAS_NO_RELATION_LAYER: skip unused alkis_beziehungen (also makes progress available) |
| 724 | * Multiple geometries per layer |
| 725 | * NAS_INDICATOR updated to "NAS-Operationen;AAA-Fachschema;aaa.xsd;aaa-suite" |
| 726 | * use single geometry column name from input (like GMLAS) |
| 727 | * accept unqualified attribute name in wfs:Update |
| 728 | |
| 729 | NTF driver: |
| 730 | * fix regression introduced by fix for https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2166 causing some valid records to be skipped (#7204) |
| 731 | |
| 732 | NULL driver: |
| 733 | * Generalize OGR NULL development driver as a GDAL raster+vector one; enable to compile it --with-null |
| 734 | |
| 735 | OCI driver: |
| 736 | * initialize in multi-threaded compatible mode (https://issues.qgis.org/issues/17311) |
| 737 | * support for extended max_string_size (#7168) |
| 738 | |
| 739 | ODBC driver: |
| 740 | * deal with table names that require double quoting (#7242) |
| 741 | |
| 742 | ODS driver: |
| 743 | * add read/write support for Boolean sub datatype |
| 744 | |
| 745 | OSM driver: |
| 746 | * performance improvements |
| 747 | * increase string buffer for osm XML files (#6964) |
| 748 | * OGR_SQL/OSM: avoid OSM driver warning about attribute filter not being taken into account when issuing a 'select * from X limit Y' request on a OSM datasource |
| 749 | |
| 750 | OpenFileGDB driver: |
| 751 | * properly read GeneralPolygon with M component whose all values are set to NaN (#7017) |
| 752 | |
| 753 | PDF driver: |
| 754 | * make OGR_PDF_READ_NON_STRUCTURED=YES configuration option work with documents without layers (#6359) |
| 755 | * Improvements to text and dash pattern support in writer (#7185) |
| 756 | |
| 757 | PG driver: |
| 758 | * do not be confused by a 'geometry' table in a non-PostGIS enabled database (#6896) |
| 759 | * PG/PGDump: make sure serial sequence is updated at layer closing/end-of-copy if we inserted features with fixed ids (#7032) |
| 760 | |
| 761 | PLScenes driver: |
| 762 | * remove support for V0 and V1 API. Only Data V1 is kept (#6933) |
| 763 | * add SkySatScene |
| 764 | |
| 765 | SEGY driver: |
| 766 | *report more attributes from Segy Standard Trace Header (github #315) |
| 767 | |
| 768 | Shapefile driver: |
| 769 | * Fix GetFeatureCount() to properly take into account spatial filter when attribute filter also in effect (#7123) |
| 770 | * use VSIStatL() in Create() to properly work with /vsimem/ directories (#6991) |
| 771 | * fix regression affecting GDAL 2.1.3 or later, 2.2.0 and 2.2.1, when editing the last shape of a file and growing it, and then appending a new shape, which resulted in corruption of both shapes (#7031) |
| 772 | * hide shapelib symbols on Unix |
| 773 | * improvements auto-identification of EPSG codes from input SRS, using OSRFindMatches() |
| 774 | * Improve guidance on use of SHAPE_RESTORE_SHX in SHPOpenLL() (#7246) |
| 775 | |
| 776 | SQLite/Spatialite driver: |
| 777 | * SQLite/GPKG: report SQLITE_HAS_COLUMN_METADATA=YES as driver metadata item when it is available (#7007) |
| 778 | * escape integer primary key column name on table creation (#7007) |
| 779 | * don't invalidate statistics when running a PRAGMA (https://issues.qgis.org/issues/17424) |
| 780 | * SQLite dialect: avoid erroring out if source layer has a OGR_STYLE field |
| 781 | * SQLite dialect: support SQLite 3.21, and LIKE, <>, IS NOT, IS NOT NULL, IS NULL and IS operators (fixes #7149) |
| 782 | * SQLite/GPKG: avoid parsing of OGR_SQLITE_JOURNAL to stop on JOURNAL_MODE keyword |
| 783 | |
| 784 | VFK driver: |
| 785 | * fix collecting linestrings for sbp layer |
| 786 | * collect geometries also for zvb layer |
| 787 | * Improve VFK parser logic (github #365) |
| 788 | * add option to suppress geometry (github #371) |
| 789 | |
| 790 | VRT driver: |
| 791 | * increase maximum size limit to 10 MB (instead of 1MB), and add config option to be able to force loading if above that |
| 792 | |
| 793 | XLS driver: |
| 794 | * workaround opening filenames with incompatible character set on Windows (https://issues.qgis.org/issues/9301) |
| 795 | |
| 796 | XLSX driver: |
| 797 | * avoid 'ogr2ogr -f XLSX out.xlsx in.shp -preserve_fid' to overwrite the first record. Note however that FID preservation itself doesn't really work with XLSX (#6994) |
| 798 | * fix non working detection of Date/Time fields in some documents (#7073) |
| 799 | * fix opening of documents with x: namespace in xl/workbook.xml (#7110) |
| 800 | * fix misdetection of field type if first cell blank (github #291) |
| 801 | * fix updating multi layer document where existing layers where dropped (#7225) |
| 802 | * add read/write support for Boolean sub datatype |
| 803 | * on writing, use %.16g formatting for floating point numbers (#7230) |
| 804 | |
| 805 | == SWIG Language Bindings == |
| 806 | |
| 807 | All bindings: |
| 808 | * Expose gdal.VSIFEofL() |
| 809 | * Expose gdal.GRA_Max, GRA_Min, GRA_Med, GRA_Q1 and GRA_Q3 (#7153) |
| 810 | * Expose Geometry.SwapXY() |
| 811 | * Expose Geometry.RemoveGeometry() |
| 812 | * Expose SpatialReference.SetMercator2SP() |
| 813 | * Expose Band.AdviseRead() and Dataset.AdviseRead() |
| 814 | |
| 815 | CSharp bindings: |
| 816 | |
| 817 | Java bindings: |
| 818 | * create single JNI shared library (gdalalljni.so/dll) (github #286) |
| 819 | |
| 820 | Perl bindings: |
| 821 | * Keep parent geometry alive if an object is created from a child geometry. Experimental methods Features and Geometries. Catch an error in storing a geometry into a feature. Prefer GeometryCount over GetGeometryCount and Geometry over GetGeometryRef. |
| 822 | * Set INSTALLSITEMAN1DIR and INSTALLSITEMAN3DIR according to what is in GDALmake.opt if INSTALL_BASE is set. (#6142) |
| 823 | * ignore no data cells in ClassCounts and Reclassify for real valued rasters. |
| 824 | * support for number line (or decision tree) classifiers also for integer bands. |
| 825 | * Set error handler separately in all modules (required by Strawberry Perl build). |
| 826 | |
| 827 | Python bindings: |
| 828 | * add scripts to python module (#342) |
| 829 | * make sure that errors in Open() related functions, that do not prevent dataset opening in C/C++, do not either prevent it in Python (#7094) |
| 830 | * avoid hang when calling gdal/ogr.UseExceptions()/DontUseExceptions() in wrong order (#6891) |
| 831 | * accept callback = 0 since SWIG generates it as the default argument of BandRasterIONumPy(). (github #219) |
| 832 | * fix 2.2.0 regression preventing use of callback function in Band.ComputeStatistics() (#6927) |
| 833 | * fix reference count issue on gdal.VSIStatL() when it returns None, that can cause Python crashes if None refcount drops to zero |
| 834 | * avoid potential cross-heap issue on Windows with numpy (https://trac.osgeo.org/osgeo4w/ticket/466) |
| 835 | * fix potential alignment issues when reading double values with ReadRaster() or ReadBlock() |
| 836 | * fix issue with PyInstaller (#7044) |
| 837 | * add a addAlpha option to gdal.DEMProcessing() |
| 838 | * fix for include files when building .cpp files (github #258) |
| 839 | * make gdal.Transform() return None in case of an error (instead of an invalid Transformer object) |
| 840 | * emit exceptions if VSI_RETVAL methods (such as gdal.Rename()) fail and gdal.UseExceptions() is enabled |
| 841 | * add addFields and forceNullable options to gdal.VectorTranslate() |
| 842 | * for command line utilities as functions, serialize number of floating-point arguments with higher precision |
| 843 | * Fix python 3.x package installation in custom prefixes (#6671) |
| 844 | * lots of PEP8-related fixes in scripts and autotest |
| 845 | * add NULL checks after PyUnicode_AsUTF8String() in case the unicode cannot be translated to UTF-8 and workaround SWIG bug to avoid crashes with Python 3. (github #356) |
| 846 | * make sure gdal.VectorTranslate() and gdal.Grid() open their source dataset with a vector driver (github #449) |
| 847 | * make 'for field_val in feature' work (github #451) |