Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#2957 closed defect (fixed)

GeoTIFF Driver Coordinate System Lookup Slow

Reported by: warmerdam Owned by: warmerdam
Priority: normal Milestone: 1.7.0
Component: GDAL_Raster Version: unspecified
Severity: normal Keywords: GTiff
Cc: gaopeng


Performance of coordinate system lookups via EPSG csv files is poor with the Geotiff driver. The problem is particularly severe when many geotiff files are being processed.

Change History (6)

comment:1 by warmerdam, 13 years ago

Status: newassigned

The preliminary proposal to deal with this was:

However, feedback has been negative, with suggestions to either accelerate EPSG lookups, or to just defer coordinate system lookups till after the coordinate system is requested.

The first change to reduce the cost of EPSG lookups was to avoid calling CSVDeaccess() at the end of GTIFGetDefn() (captured as part of r16819 - updating from libgeotiff trunk). For cases were the same coordinate system was being looked up many times for distinct file opens this helped the performance dramatically.

The second change (r16821), in cpl_csv.cpp, avoided probing for files in CSVFilename() when the file was already open/accessed via CSVAccess(). This reduced file probing substantially in common cases, though it was not clear how much of a performance difference it makes.

The core of the CSVDeaccess() fix has been backported into 1.6 branch (r16822).

The core changes were also upstreamed into libgeotiff (

comment:2 by warmerdam, 13 years ago

Cc: gaopeng added

The GeoTIFF driver in trunk (r16823) has been altered to defer fetching the coordinate system till it has been requested. This can reduce the cost of opening a small geotiff file by 50% even when the .csv files are already accessed and ingested.

This change is deemed as somewhat risky, and has not been ported into 1.6 branch.

comment:3 by Even Rouault, 13 years ago

Frank, buildbot seems to indicate that r16823 cause perl-test to fail.

comment:4 by Even Rouault, 13 years ago

Regression in perl-test fixed in r16828.

comment:5 by warmerdam, 13 years ago

Resolution: fixed
Status: assignedclosed

Ported into 1.6-esri branch (r17276).

comment:6 by warmerdam, 13 years ago

Milestone: 1.7.0
Note: See TracTickets for help on using tickets.