= GDAL/OGR 1.7.0 = 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: - Avoid unnecessary error message in gdaltindex when creating a new shapefile (#2779) - Rewritten to use OGR API instead of ShapeLib API, so as to produce .prj files more easily (#982) * gdal_contour: - make -3d option work even after -fl option (#2793) - Call GDALGetProjectionRef() on the dataset, not the raster band (#3062) * gdalbuildvrt: - Add -separate, -allow_projection_difference, -te, -tr, -q, -addalpha options - Add -srcnodata and -vrtnodata options (#3254) - Add -hidenodata option (#3327) - Avoid accidental overwriting of a non VRT dataset due to revered filename order - Fix -resolution lowest/highest (#3198) * 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 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. 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: - Skip layers whose schema does not match instead of terminating (#3141) - Add a -accept_different_schemas option for non-MapServer use cases (#3141) - Set SRS to tileindex when one is found in the tiles * 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 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 element (write only) * Avoid escaping XML content when writing . * 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_LAYERS 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