GDAL/OGR 1.7.0
ALERT: The GDAL/OGR 1.7.0 release has been discovered to have a serious bug which results in all Erdas Imagine files (HFA driver) being generated in a way that is unreadable by non-GDAL software. Due to this bug, the GDAL/OGR project has retracted the 1.7.0 release, and has issued it's replacement with the 1.7.1 bug fix release. See http://trac.osgeo.org/gdal/ticket/3382 for details.
Some of the bugfixes mentioned below might also have gone into 1.6.X maintenance releases.
In a nutshell…
- New GDAL drivers : BAG, EPSILON, Northwood/VerticalMapper, R, Rasterlite, SAGA GIS Binary, SRP (USRP/ASRP), EarthWatch .TIL, WKT Raster
- GDAL PCIDSK driver using the new PCIDSK SDK by default
- New OGR drivers : DXF, GeoRSS, GTM, PCIDSK and VFK
- New utility : gdaldem, gdalbuildvrt now compiled by default
- Add support for Python 3.X. Compatibility with Python 2.X preserved (#3265)
- Remove old-generation Python bindings.
- Significantly improved GDAL drivers: GeoRaster, GeoTIFF, HFA, JPEG2000 Jasper, JPEG2000 Kakadu, NITF
- Significantly improved OGR drivers: CSV, KML, SQLite (SpatiaLite support), VRT
- WARNING: incompatibility between MrSID GeoDSDK and libgeotiff 1.3.0 or internal libgeotiff on some platforms (see #3309)
GDAL/OGR 1.7.0 - General Changes
Build (All) :
- Add gdalbuildvrt to the list of utilities built by default (#2747)
- Improve Mingw compatibility (#2649)
- Add Expat read support for GML driver when Xerces is unavailable (#2999)
- Fix GML and ILI reading problems with Xerces 3.x (#3156)
- Add 8/12bit JPEG-in-TIFF support
- Fix trunk compilation against libdap 3.9.X (#3105)
Build (Windows) :
- Check for CURL_LIB instead of CURL_DIR
- ensure OGR_ENABLED gets defined if INCLUDE_OGR_FRMTS set (#2784)
- Change quoting in VCDIR and SETARGV to avoid likely problems.
- added dll and target-lib targets
- fix _findfirst handle type for win64 (#3035)
- Add support to compile OGR-postgis as a plugin (#3125)
- Trap failures in subdirectories and stop build
Build (Unix) :
- Use proper object file names when building prerequsites lists (#1878)
- Updated man page generation
- Add new ./configure test to check that the GCC 4.1 built-in functions for atomic memory access are really available
- Handle external libz (#2942)
- Add support for 64bit file i/o on BSD systems, through fseeko/ftello
- Add support for linking against libspatialite to benefit from spatial functions in SQL queries (#2666)
- Fix support for --with-threads configure option on BSDs (tested on DragonFlyBSD 2.2.1)
- Add support for autodetection of ogdi 3.2 in ./configure (#3007)
- Remove additional dependency to libgdal.so added during linking in gdal/apps (#2970)
- Improved ax_oracle_oci.m4 macro to handle libnnzXX for Oracle 10 and 11.
- support using the Oracle Instant Client SDK
- Make --with-ingres work with newer versions (#3126)
- Search for alternative HDF4 flavor in HDF4 testing macro. Alternative HDF4 (libmfhdfalt/libdfalt) build is NetCDF-compatible and used in Debian.
- Support MacOSX "fat" binary building
Port :
- Provide API and implementation for thread and SMP safe atomic increments (#2648)
- Add /vsisubfile virtual file driver
- Added gzip write implementation
- VSI ZIP : Allow natural chaining of VSI drivers without requiring double slash
- Add a shortcut when looking for .csv files that are already open
- Add CPLSetThreadLocalConfigOption()
- Add CPLIsUTF8() and CPLForceToASCII(); Use them in GML, KML, GPX and GeoRSS drivers (#2971)
- Add CPLStrlcpy() and CPLStrlcat(), clones of BSD strlcpy() and strlcat() functions
- Add CPLStrnlen()
- Add CSLLoad2() and CPLReadLine2L() with max number of lines and chars per line allowed
- cplkeywordparser.cpp: Support parsing IMD files with values of the form list of lists
- odbc: Fixed the null terminators for columns of length (x*511)+1, where x>1. (#2727)
- unix VSIF*L : reworked to avoid unnecessary seeks which can be expensive
- added HTTPAUTH and USERPWD options for http fetch (#3091)
GDAL 1.7.0 - Overview of Changes
Algorithms:
- cutline : optimize by clipping cutline to region of interest (#2736)
- cutline : avoid scanline to scanline blending problems (#2740)
- rasterfill : substantially reworked
- rasterfill : deprecate bConicSearch option - unused
- rasterize : optimized
- rasterize : Added GDALRasterizeLayersBuf() function to rasterize geometries directly
into the supplied raster array.
- rasterize : Add ALL_TOUCHED rasterize option (#2840)
- rasterize : Added 3D support for rasterizing points and lines. (#3202)
- rasterize : correct case of vertical/horizontal lines on raster right/bottom edge (#3268)
- Added GDALCreateGenImgProjTransformer3() function
- warp: Reduce destination file size, especially when it has compression (#1688)
- warp: Fix crash when reprojecting to irrelevant SRS (#3079)
- warp: avoid using the destination nodata value for integer datatypes (#3142)
- warp: fix panDstValid generation, and avoid using it improperly (#3222)
- warp: Restore support of reprojection of a lat-long image crossing 180E/180W longitude (#3206)
- contour: Fix name of GDAL_CG_Create in contour.cpp (#2795)
- contour: Generate contours with correct orientation (#3129)
- gdalgeoloc: Improve geoloc backmap interpolation (#2501)
- overview: added support for cubic convolution overviews
- gdal_grid: 3 new metrics: data point count, average distance between data points
and a grid node, average distance between data points.
- gdal_grid: Properly cast the poOptions parameter in data metrics computation functions. (#3207)
Core :
- Added mechanism to clear overviews if zero overviews requested. Implemented by GTiff and HFA drivers (#2915)
- Support for overviews in subdatasets
- Support for overviews in proxydb directory (#2432)
- SetColorTable(NULL) is permitted and means delete (#2421)
- Preserve NBITS and SIGNEDBYTE in CreateCopy() for supporting drivers (#2902)
- GDALCopyWords() : performance optimizations
- Add GDALCheckDatasetDimensions() and GDALCheckBandCount()
- Add GDALGetColorInterpretationByName()
- Use tiff .ovr for overviews if .aux is just metadata (#2854)
- Add missing argument in function declaration for GDALRATTranslateToColorTable()
- Do not use colortable for bit2grayscale overviews (#2914)
- Support world files with blank lines (ESRI Merge)
- Add worldfiles in GetFileList() (ESRI Merge)
- Fix rpb/imd loading with a path (#3047)
- Add support for using overviews in GDALDataset::BlockBasedRasterIO() (#3124)
- Take into account SIGNEDBYTE for GetStatistics() & GetHistogram() (#3151)
- Add GDALReadOziMapFile() and GDALLoadOziMapFile() to read projection and georeferencing information from OziExplorer .MAP files.
- Added declarations for GDALLoadTabFile() and GDALReadTabFile()
- Add missing case for CInt16 and CInt32 in GDALNoDataMaskBand and GDALNoDataValuesMaskBand
Utilities :
- gdaldem: new for GDAL/OGR 1.7.0 (#2640)
- gdalinfo:
- add -norat switch
- do not report RPC or GEOLOCATION metadata with -nomd
- Use pretty wkt to display GCP projection
- gdalwarp:
- fix cutline blend distance setting (#2733)
- in -te case, adjust the resolution after computing the image dimensions
- improved cutline support (#2733, #2847, #2884, #2984)
- avoid overwriting an existing destination file that cannot be opened in update mode with a new GTiff file
- better heuristics to guess output extent when projection from lat/long world extent to other world global projections (#2305)
- gdaltindex:
- gdal_contour:
- gdalbuildvrt:
- gdaladdo: add -clean option (#2915)
- gdaladdo: add -q option
- gdal_grid: Add support for spatial filtering with -clipsrc option
- gdal_translate: support translation of a dataset with subdatasets if the parent has bands
- gdal_translate: Add 'gray' as a value of -expand rgb option
- gdal_translate: Add -unscale commandline option
- gdal_merge.py: Add progress report
- gdal_vrtmerge.py: Fix -separate case (#2836)
- gdal_vrtmerge.py: Write the <SourceProperties> element (#1985)
- gdal_retile.py: add lanczos resampling (#2859)
- gdal_fillnodata.py: ensure dstfile support works by copying source (#2866)
- GDAL2Tiles: --srcnodata support + fixed KML rendering for -p raster
- rgb2pct.py: Added ability to use a preexisting color table from a file (#2958)
- pct2rgb.py and rgb2pct.py : Copy the GCPs and their projection to the target dataset.
- classify.py: Fix order of args to numpy.ones() and numpy.zeros() (#3089)
- hsv_merge.py: New sample script to greyscale as intensity into an RGB image,
for instance to apply hillshading to a dem colour relief.
- support filename globbing for various Python scripts (#2783)
- --formats will add 'v' in report on drivers that support virtual io
- all utilities and scripts : consistently advertize -q as the official quiet
option, but accept both -q and -quiet (#3820)
Changes in various drivers :
- Implement support for overviews on subdatasets for HDF4, HDF5, NetCDF, NITF, XPM, TERRAGEN, PCIDSK (#2719)
- Add support for 64bit offsets in /vsisubfile, JPEG and JP2ECW drivers
- External overviews support added to some drivers (JDEM, ...)
- Avoid incorrect GEOGCS AXIS settings (#2713)
- Use GDALCheckDatasetDimensions() and GDALCheckBandCount() in various drivers
- Many memory leak fixes (HDF5, HKV, Leveler, MFF, NITF, RMF, JPEG2000, WCS ... drivers)
- Many fixes to improve robustness against corrupt data in many drivers
- Error out when trying to open a read-only dataset in update mode (#3147)
- Ensure that the same JPEG2000 driver that has been used with CreateCopy() is used to re-open it (#1596)
ADRG driver:
- Support PSP != 100 (#3193)
AIG driver:
- Differ opening of the RAT only when GetDefaultRat() is called. Will improve performances and make less likely the error message of #3031
AAIGRID driver:
- Fix bad reading of AAIGRID dataset whose last line doesn't have a linebreak character (#3022)
- Make the ArcInfo ASCII driver more Mac-compatible. (#3212)
BAG driver :
- New for GDAL/OGR 1.7.0
BLX driver:
- Implement progress callback in CreateCopy() (#2830)
BMP driver:
- Modify GetGeoTransform() to return geotransform based on the resolution information in the BMP header if nothing else is available (ESRI merge).
- use pam functions properly for geotransform when not using world file
BSB driver:
- Fix several issues with BSB files reading (#2782)
- Handle properly more than 256 GCPs (#2777)
- Add logic to chip GCPs around to avoid split over dateline problems (#2809)
- Add logic to reproject GCPs into Mercator for mercator projected images.
DTED driver:
- Re-enable DTED driver to recognize files not starting by a UHL record (#2951)
ECW driver:
- Enable the JP2ECW driver to open JP2 files with the VSILAPI
- Fix build with MSVC2008 (#2850)
- Fix memory overwrite while zooming an ECW image (#2934)
- Speed-up de-registeration of the driver that can take up to 3 seconds (#3134)
EHDR driver:
- Add color table update. Add limited support for floating point files (.flt) (ESRI Merge)
- added support for SIGNEDBYTE pixels (#2717)
- Restructure stats handling so pam capture works right when stx write fails
- improve a bit .clr reading (#3253)
ENVI driver:
- Move RPC info into the RPC domain (#3063)
- Converted to using VSI Large File API (#3274)
- re-enabled complex support (#3174)
EPSILON driver:
- New for GDAL/OGR 1.7.0
- Mainly used coupled with Rasterlite
ERS driver:
- Added PIXELTYPE support to report/create SIGNEDBYTE (#2902)
- Give precidence to PAM SRS, and even check for .aux file. (ESRI Merge)
FAST driver:
- Support 7 bands (#3307)
Fujibas driver:
- Fix to work on big-endian hosts
GenBin driver:
- Implemented custom class for 1bit (U1) files (#2730)
- Fix inverse flattening computation (#2755).
- Added U2 and U4 support
- Look for LSB, assuming MSB if not found (#2730)
GeoRaster driver:
- Fix compression problems
- Add MaskBand support
- Support UNICODE metadata
- Support cross database schema/user access
- add COORDLOCATOR create option
GeoTIFF driver :
- Add 8/12bit jpeg in tiff support
- Add support for creating external BigTIFF overview files, with BIGTIFF_OVERVIEW configuration option. (#2785)
- Add support for deleting a color table (#2421)
- Add logic for Imagine citation parsing
- Add logic for encoding and reading ESRI PE string from citation.
- Add support for reading and writing vertical datum info from geotiff
- Changes to units handling. (#2755)
- Optimize opening speed by defering fetching the coordinate system till GetProjectionRef (#2957)
- Optimize GTiffRasterBand::IReadBlock() for multi-band interleaved case.
- Avoid uncesserary re-writting the TIFF directory (#3021)
- Use official value for inverse flattening of the WGS84 ellipsoid (#2787)
- Add metadata domain for XML documents (#2786)
- Make GTiff driver friendly with files with huge number of bands and pixel interleaving (#2838)
- Avoid precaching other bands if block cache size is not big enough to accomodate them (#2838)
- Internal libtiff (4.0.0beta5) and libgeotiff (1.3.0beta) upgraded
- use the SetCitationToSRS call for the PCSCitationGeoKey in a similar fashion to the GTCitationGeoKey (#2933)
- NBITS set for GTiffOddBits. YCbCr JPEG added as a compression type. generate MINISWHITE IMAGESTRUCTURE metadata item. Set missing blocks to the nodata value if there is one. (ESRI Merge)
- Support GeoTIFF with only ProjectedCSTypeGeoKey defined (#3019)
- External overviews: try to preserve the bit depth of the original image
- Allow reading and creation of big all-in-one-strip 8bit TIFF (#3094)
- Handle projection methods for Google Mercator special case (#3217)
GFF driver :
- Fix support for big endian host (#2832)
- Add pam, and overview support. Switch to VSI*L API to support virtualio (#3014)
GIF driver :
- Introduced a BIGGIF driver to handle GIF files without using the slurp into memory approach. (#2542)
- CreateCopy() reports now progress
- Replace internal libungif by giflib-4.1.6 (#1825)
- Read projection and georeferencing from OziExplorer .MAP file if possible.
GRASS driver:
- Add support for GRASS 7.0 GDAL and OGR plugins (#2953)
- Use GRASS_GISBASE for GDAL GRASS driver instead of hard-coded path (#2721)
GRIB driver:
- only scan for PDS templates in GRIB2 files (#2858)
- Avoid dumping GribLen debug message if built with -DDEBUG.
- Remove verbosity from GRIB driver (#2887)
- Make GRIB detection thread safe (#3209)
- Check that bands have the same dimensions (#3246)
GS7BG driver:
- Recognize version 2 datasets (#3123)
HDF4 driver :
- Allow HDF4 subdataset name to include Windows letter drive (#2823)
HDF5 driver :
- subdatsets need to be numbered from 1 not 0 (#2462)
- Block size recognition. (#2270)
- Fix initial value for nGCPCount in HDF5ImageDataset (#2774)
- Fixes to type classification, and to avoid listing subdatsets for unsupported pixel data types (#2941)
- Mark PAM for not saving .aux.xml files at this level. Directly open subdatasets in HDF5Dataset::Open() if there is only one subdataset.
HFA driver:
- Support reading and evaluating 3rd order xforms (#2716)
- Various improvements to SRS support, particularly to preserve PE compatability. (#2755)
- Added HFAEntry::RemoveAndDestroy() method to remove nodes from tree (#2421)
- Added support for deleting color tables (#2421)
- Add a scaled progress monitor for HFADataset::IBuildOverviews()
- Fix HFA u2 compression/decompression (ESRI merge)
- Add support for reading compressed s8 HFA (#3152)
- Defer opening overviews till they are first requested (#3155)
- Support multiple excluded values (#3252)
- added a variety of additional coordinate system based types missing in some files (#3262)
- Various fixes (#2421, #2842, #2755, #3082, #2730)
Idrisi driver:
- Writing text file in CRLF format (#3199)
- forward porting esri changes + other changes
- provide default values on Create() (#3243)
INGR driver:
- Fix INGR driver that was failing on big endian hosts (#2898)
- Fix RLE support (#3106)
- Added overview building (#2904)
JPEG driver:
- Enable the JPEG driver to read and create 12bit JPEG images when JPEG12_ENABLED=yes
- Internal libjpeg: additional changes to ensure operation with IPP enabled apps (#2606,#2845)
- JPEG read optimizations : differ extraction of EXIF metadata and internal maskband
JPEG2000 (JasPer) Driver:
- Allow proper reading of JP2 images where dimensions are not multiple of 256 (#2399)
- Add a virtual I/O interface to able to read from/write to JPEG2000-NITF files
- Do not deregister jas_image_clearfmts() to avoid failure when gdal_translat'ing from JP2 streams
- Add proper reading of YCbCr images as RGB
- fix decoding of bit depth for BPCC and PCLR boxes
JP2KAK (Kakadu) Driver :
- Fix band selection from ycbcr to rgb converted images in DirectRasterIO (#2732)
- Support jpc vsisubfile streams
- add handling of reversibly compressed data with 9 to 16 bits precision (#2964)
- Modify transfer_bytes() buf32 case to offset/scale based on precision. (#2964) Fixed _WriteTile() lossless 16bit case to avoid improper 32K offset. Added support for NBITS image structure metadata, and creation option.
- Added logic to limit tiles to 64K due to jpeg2000 limitation. (ESRI Merge)
- Fix offseting of 16U buf32 data (#3027)
- Support 16u/16s imagery through DirectRasterIO interface (#3049)
- Support external overviews as an override to internal overviews
- Rework jp2kak support to use natural kakadu builds (Windows build)
- ensure external overviews get used if available (#3276)
- add preliminary multi-threading read support via DirectRasterIO()
LAN driver:
- Give preference to PAM coordinate system since built-in info is very limited. Fallback to PAM geotransform if internal missing. (ESRI Merge)
LCP driver:
- Add projection file support (#3255)
MEM driver:
- Allow creating bands of more than 2GB each if size_t is large enough.
- Added GetInternalHandle() implementation to fetch band memory buffer
MrSID driver:
- Implement faster resampling for 1:1 case
- Improve stream implementation so it works for jp2 with v7
- Make the JP2MrSID driver accept .ntf extension to allow reading jpeg2000 datastream in NITF files
- Avoid reporting large metadata objects. Add MG version to metadata.
NetCDF driver:
- Fix handling of pixel validity mask (#3112)
- correct a problem with 5+ dimensional data access (#2583)
- fix y flip detection in common case (#2654)
- add support for subdataset names with Windows full path names, like NETCDF:D:\...
NITF driver:
- Add support for reading & creating large (>4GB) NITF files.
- Add support for NITF/JPEG2000 overviews (JP2KAK)
- Add support for reading & creating 12bit JPEG compressed NITF files when JPEG12_ENABLED=yes
- Add support for creating a NITF file with many bands and big TRE content
- Add support for creating several uncompressed images in a NITF file (#2989)
- Add support for creating M3 (masked multi-block JPEG compressed) images
- Add support for unpacking a wider variety of pixel depths.
- Add support for overriding IGEOLO with GEOLOB TRE precision georef (#3180)
- Add support for for CFloat32 reading & writing (#2526)
- Add support for reading and writing NITF file with large single block (#3263)
- Allow Jasper driver to be used for NITF IC=C8 (JPEG2000) CreateCopy() if JP2ECW is not available
- Allow JP2MrSID driver to be used for reading JPEG2000 datastreams in NITF
- Avoid issues when reading M3 single block images
- Fix CreateCopy() of multi block JPEG-NITF
- Various bugfixes (#2940, #2912, #3029, #3088)
- Support NITF file with a color table and JPEG2000 data content (#3110)
NWT_GRC / NWG_GRD drivers (Northwood/VerticalMapper) :
- New for GDAL/OGR 1.7.0
OGDI driver:
- improve finding of PROJ.4 include files for OGDI (#1242)
PCIDSK driver (old driver):
- Added worldfile reading. Added PAM fallback for geotransform.
- Added support for default overviews (ie. .ovr or .rrd). (ESRI Merge)
- fail somewhat gracefully on compressed images
PCIDSK driver (new driver):
- New for GDAL/OGR 1.7.0, using the PCIDSK SDK
PDS driver:
- Transfer various keywords to metadata
- Made keyword handler more in complaint with ODL (#2956)
- Support detached files with an offset (#3177)
- Support .LBL labelled compressed files
PNG driver :
- Upgrade internal libpng to 1.2.35
- Only write a world file if the source datasource has a geotransform
- Allow writing a nodata value of 0 as the transparent color value (#3208)
R driver:
- New for GDAL/OGR 1.7.0
Rasterlite driver
- New for GDAL/OGR 1.7.0
RIK driver:
- Improved error checking
SAGA GIS Binary driver:
- New for GDAL/OGR 1.7.0
SDE driver :
- Fix exporting ArcSDE raster results in a displaced image (#2063)
SRP driver (ASRP/USRP):
- New for GDAL/OGR 1.7.0
SRTM driver :
- Set GDALMD_AOP_POINT metadataitem (#1884)
TIL driver (EarthWatch .TIL) driver:
- New for GDAL/OGR 1.7.0
VRT driver :
- Honour the INIT_DEST warp option (#2724)
- Improve performance of LUTs in VRTComplexSource from O(n) to O(log2(n)) (#3003)
- Implement (advertized in doc) support for SetMetadataItem( "source_0", szFilterSourceXML, "vrt_sources" ) on a VRTSourcedRasterBand (#3052)
- Implement GetFileList() to list the source files
- Fix wrong initialization of destination buffer in VRTSourcedRasterBand::IRasterIO() in case of not standard pixel/line spacing. (#2867)
WCS driver:
- do not try to parse HTML content, which is returned by some provider when the server doesn't exist
- added HttpAuth and UserPwd options for authentication (#3091)
WKT Raster driver:
- New for GDAL/OGR 1.7.0
WMS driver:
- Support TMS/formatted URLs in WMS minidriver (#2878)
- Be tolerant if we have required 3 bands and got 4, or the other way round
- Declare a user agent string
OGR 1.7.0 - Overview of Changes
Utilities:
- ogrinfo: Preserve order of source layers specified on ogrinfo command line,
and use GetLayerByName() which enables to read some hidden layers like public.<table> layers from a PG database (#2922, #2026)
- ogr2ogr:
- Add -clipsrc and -clipdst option to clip geometries to the specified extents
- Add -fieldTypeToString option to conveniently cast any fields of given type to fields of type string (#2968)
- Add -progress option for ogr2ogr to displaying progress (#2998)
- Add -wrapdateline option to ogr2ogr to deal with geometries that cross 180 degree longitude (#3158)
- Add -dialect flag to specify SQL dialect
- Preserve order of source layers specified on command line (#2922)
- -overwrite and -append now automatically imply -update (#3048)
- Support converting to a format after field name "laundering" (#3247)
- ogrtindex:
- ogr2vrt.py : new script that will create a VRT corresponding to a source datasource (sample script for the moment, not promoted officially)
Core :
- Improved OGR feature style (#2875, #2808)
- Considerable speed-up of ExportToWkt() for very large geometries
- Added new OGR_GEOM_AREA special field (#2949)
- ensure forceToMultiLineString() works for MultiPolygons (#2735)
- Various fixes in OGR SQL engine (r16116, #2996, #2788, #3143, #3144)
- Add OGREnvelope::Intersect()
- Add OGR_G_ApproximateArcAngles() for ellipses
- Fix crash on Ubuntu 8.10 in GetFieldAsString() because of (too) strict guard logic (#2896)
- add field type max so we can iterate through all possible values
- Avoid making a 2D5 geometry from a 2D only linestring when reprojecting
OGRSpatialReference :
- Upgrade EPSG derived files to EPSG 7.1
- Added support to operate on COMPD_CS coordinate systems
- Added support for importing spatial reference definitions from the OziExplorer .MAP files.
- Introduce static methods to destroy OGRSpatialReference and OGRCoordinateTransformation objects
- Expose more of the axis orientation API to C
- Add missing Eckert 1, 2, 3 and 5 projections
- Fix typos in proj4 conversion for Wagner projections
- hack in EXTENSION nodes for google mercators (#3136)
- Validates PROJCS with AXIS definitions (#2739)
- Added support for urn:ogc:def:crs:OGC::CRS:84 (and CRS:83, CRS:27) per WMS spec.
- Wide variety of improvements to preserve PE strings through a morphFromESRI() and morphToESRI() process (#2755)
- Fix inversion of dictionnary filename and GEOGCS/PROJCS name in OGRSpatialReference::exportToERM() (#2819)
- Fix SpatialReference::IsSame() for LOCAL_CS case (#2849)
- Fix bug in ImportFromXML that prevented from retrieving projection method
- Accept both href and xlink:href in OGC XML
- improve us foot translation handling (#2901)
- OGRSpatialReference::importFromUrl() : add a default 10 second timeout to avoid waiting forever when remote server is stalled
- ensure we can translate mercator1sp with non-zero origin to proj4 (#3026)
- ensure scalefactor preserved in somerc translation (#3032)
- SRS_ESRI: attempt to correct equidistant cylindrical parameter morph (#3036)
- SRS_ESRI: improve plate_carree parameter morphing (#3036)
- SRS_PCI : Fix PCI projection string handling for UTM
- esri_extra.wkt: correct equidistant conic definitions (#3086)
- SRS_PANORAMA : Added support for British National Grid and Pulkovo 1995 datums.
- Improve recognition of WKT text strings when translating into proj4 hard-coded datum names, in particular nzgd49 (also add ggrs87, carthage, hermannskogel, ire65); Fix ellipsoid parameters for modified airy (#3104)
- OSRGetEllipsoidInfo() available for various OGR SRS modules
- added support for OGC:CRS84 and similar srses from wms/wcs spec in SetFromUserInput (#3090)
BNA driver :
- Fix output of BNA driver with polygons with inner ring (#2985)
- Proper CRLF output on Windows (#3256)
CSV driver :
- Add support for reading and writing CSV files with semicolon or tabulation as the field separator (#2925, #2136)
- Add automatic treatment of WKT column as geometry
- Add 'CREATE_CSVT' layer creation option
DXF driver :
- New for GDAL/OGR 1.7.0
Geoconcept driver:
- Fix 'private Class and SubClass headers are inverted' (#2919)
- Fix error in writing 2.5D/3D export file (#2921)
GeoJSON driver:
- updated JSON-C library to version 0.9
- use VSIF*L API
GML driver :
- Speed-up considerably parsing of GML coordinates in big geometries, in particular on Windows
- Add support for gml3.1.1 srsDimension attribute, to deal with 3D geometries (#2311)
- Support multiple <gml:pos> elements in linearrings of polygons (#3244)
- Limited support for GML3
- Support direct use of FIDs as long as they are all numeric or they have a completely fixed prefix (#1017)
- Fix OGRGMLLayer::GetFeatureCount() if there's a .XSD file available (#2969)
- Added support for out-of-band attributes on features (for NAS)
- Adding the date field type to xsd writer and precision info for OFTReal fields. (#2857)
GPX driver:
- Add GPX_SHORT_NAMES configuration option to make the GPX driver report shorter field names and avoid duplicated field names once translated to shapefile (#2966)
- Write the <bounds> element (write only)
- Avoid escaping XML content when writing <extensions>.
- Add appropriate xmlns when detecting Garmin GPX extensions
GRASS driver:
- Do not report 3D geometries for 2D GRASS maps (#3009)
GTM (GPSTrackMaker) driver :
- New for GDAL/OGR 1.7.0 (#3113)
ILI driver :
- Improved curve segmentation algorithm
- ILI1: Support for multiple point geomtries
- ILI1: Support Real and Integer column types
Ingres driver:
- Utilize the new OGC based ingres capabilities (#3159)
KML driver:
- Support reading MultiGeometry and layers with mixed geometry type.
- Speed-up considerably the reading of huge KML geometries (#3005)
- Speed-up considerably with huge number of layers
- Moved the location of the Style element to match the OGC Schema (#2858)
- Advertize 25D geometry type when relevant (#1803, #1853, #2181)
- Relax KML driver about xmlns (#3004)
MySQL driver :
- Fix mysql driver compilation with mysql 5.1/g++-4.3.2 (Mandriva 2009.1) (#2972)
- Fixed bug MySQL driver truncating decimal places for double field type. (#2852)
OCI driver :
- OCI varchar2 columns can be up to 4000 bytes (#2876)
ODBC driver :
- make it slightly less likely that the srs_tablename parsing will interfere with complex DSNs.
- support for schemas (#1969)
OGDI driver :
- fix to avoid applying old spatial filter to unrelated layer
- fix to force ResetReading() when changing current layer
PGEO driver :
- Recognize more ESRI shape type constants. (#2991, #3100)
- implement GetFIDColumn() and GetGeometryColumn() methods (#2694)
PostgreSQL driver:
- Add support for tables with 'geography' column type introduced in PostGIS 1.5 (#3216)
- Extend support of schemas in PG driver with 2 new options in the connection string: active_schema=foo and schemas=foo[,bar] (#522 and #525)
- Implement OGRPGTableLayer::CreateFeature() by using UPDATE instead of DELETE + INSERT (#2557)
- Implement SetNextByIndex() for layers of PG datasources (#3117)
- Support PG 'real' data type in tables (#3006)
- Speed-up PG database opening by avoiding 2 SQL requests per table
- Avoid evaluating GetFieldIndex() on each field of each feature, which can be very expensive if the layer has many fields
- allow ST_AsBinary with non binary connections
- added a configuration option PG_SKIP_VIEWS.
GeoRSS driver :
- New for GDAL/OGR 1.7.0 (#2726)
OCI driver:
- support blob column binding
PCIDSK driver :
- New for GDAL/OGR 1.7.0
Shape driver :
- Handle duplicate field names in shapefile driver. (#3247)
- Support for opening and handling .DBF files > 2 GB (#3011)
- Optimize to use shape bounds for spatial test before organizing poly (#2775)
- Support for alternate date format (#2746)
- Improve/fix TestCapability() on OGRShapeLayer
- Refreshed shapelib from upstream
S57 driver :
- Fix incorrect return value of GetFeatureCount() on S57 SOUNDG layer when SPLIT_MULTIPOINT=ON; also avoid warning on that layer when ADD_SOUNDG_DEPTH=OFF (#3163)
SQLite driver:
- Add creation and write support in SpatiaLite-compatible databases
- Add SPATIAL_INDEX creation option for SpatiaLite tables if linked against libspatialite (default to YES)
- Implement OGRSQLiteTableLayer::TestCapability(OLCFastFeatureCount)
- Implement OGRSQLiteLayer::GetFIDColumn() and GetGeometryColumn()
- Implement TestCapability(OLCRandomRead)
- Add a SQLITE_LIST_ALL_TABLES configuration option to list all(non-spatial) tables into a SQLite DB even if there are spatial tables
- Avoid reporting the primary key column as a regular column.
- Better precision for double values in CreateFeature()
VFK driver:
- New for GDAL/OGR 1.7.0
VRT driver:
- Allow fast spatial filtering in the VGS_Direct case
- Add support for CreateFeature(), SetFeature() and DeleteFeature() operations
- Added field definition and style control
- Added new vrt/schema creation capability (@dummy@ datasource, ogr2vrt.py script)
- Implement 'SrcRegion' element
- Add a 'reportSrcColumn' attribute to the 'GeometryField' to avoid reporting the x,y,wkt or wkb source fields in the VRT layer field definition
- Forward TestCapability(), GetExtent(), SetNextByIndex() to source layer when possible
XPlane/Flightgear driver:
- Improve handling of Bezier curves (#3030)
- Support new file names used by XPlane 9.00 & later
- Cut into 2 pieces airway segments that cross the antemeridian
- Add new layer 'Stopway' that contains the shape of the stopway/blastpad/over-run of a runway
- Recognize code 16 and 17 for seaplane bases and heliports and add a new field to APT layer
SWIG Language Bindings
General:
- Recommanded SWIG version is 1.3.39
- Added API :
- GDAL: gdal.FilldoData(), gdal.FileFromMemBuffer(), gdal.!Unlink(), gdal.ApplyGeoTransform(), gdal.InvGeoTransform(), Band.GetUnitType(), Band.GetBand(), Band.ComputeStatistics(), Band.HasArbitraryOverviews(), RasterAttributeTable.GetLinearBinning() and SetLinearBinning(), extend [Band|Dataset].[ReadRaster|WriteRaster] to accept pixel, line and band spacing parameters
- OGR: ogr.GeneralCmdLineProcessor(), Geometry.Segmentize(), FieldDefn.GetTypeName(),Geometry.ApproximateArcAngles()
- OSR: osr.!ImportFromMICoordSys(), osr.!ExportToMICoordSys(), SpatialReference.Clone(),osr.!EPSGTreatsAsLatLong(), osr.!ImportFromEPSGA()
- Make resampling an optionnal parameter for gdal.RegenerateOverview(), to be consistant with gdal.RegenerateOverviews()
- NONNULL checks have been added to check various arguments of methods
- add missing constants : DCAP_VIRTUALIO, color interpretations, OGR constants
CSharp bindings :
- Add support for GetFieldAsStringList, GetFieldAsDoubleList and GetFieldAsIntegerList in the C# wrapper (#2839)
- Support MSVC2008 builds with the csharp interface (#2862)
- Change the dll mapping rules to support the recent MONO versions
- Use GC pinned arrays instead of the double copy in the RasterIO functions (#3073)
- Add typemaps to support custom CPLErrorHandler via C# swig bindings
Perl bindings :
- in Polygonize make a local copy of the parameters as they are potentionally edited
Python bindings :
- Add support for Python 3.X. Compatibility with Python 2.X preserved (#3265)
- Remove old-generation Python bindings (gdal/pymod).
- Add Python binding's version description capabilities (#3137)
- NUMPY : Make Band|Dataset.ReadAsArray() take into account preallocated array (#2658, #3028)
- Various memory leaks fixed
- Fix gdal.RegenerateOverviews(), Feature.GetFieldAsStringList(), Feature.GetFieldAsIntegerList(), Feature.GetFieldAsDoubleList(), Transform.TransformPoints and CoordinateTransformation.TransformPoints
- Extend python TransformPoints typemap to accept any sequence (#3020)
- Make Geometry iterable (#1886)
Java bindings (general changes):
- Maintained again. A lot of changes to get them into clean state.
- !RasterIO API : added API for standard Java arrays in addition to DirectByteBuffer
- Javadoc available at http://gdal.org/java