Opened 19 years ago

Last modified 9 years ago

#956 closed defect

Failure to store/load a big number of WKT-defined projections to/from GeoTiff using GDAL — at Initial Version

Reported by: varaev@… Owned by: warmerdam
Priority: high Milestone: 2.0.0
Component: default Version: unspecified
Severity: critical Keywords:
Cc:

Description

Hello Frank,
We are encountering quoite a few situations when we provide the WKT string to 
GDal's pDataset->SetProjection() upon saving a GeoTIFF file, and when we are 
trying to load the stored file, pDataset->GetProjectionRef() returns us an WKT 
definition with insufficient paramters. We are not sure whether the loss 
always occurs on loading or the saving also has some deficiencies, but 
definitely something is going out of whack in the course of WKT -> GDal -> WKT 
transformation.

Example projections (there are really MANY others!):

#1 British National Grid:

The string we provide upón Save:
PROJCS["British National Grid",GEOGCS["ORD SURV GB Coordinate System",DATUM
["Ord. Surv. of Gr. Br. 1936",SPHEROID["Airy 
1830",6377563.396,299.3249646],TOWGS84[446.448,-
125.157,542.06,4.16666666666667e-005,6.86111111111111e-
005,0.000233888888888889,-20.489]],PRIMEM["Greenwich",0],UNIT
["degree",0.0174532925199433],AUTHORITY["EPSG","4277"]],PROJECTION
["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER
["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER
["false_easting",400000],PARAMETER["false_northing",-100000],UNIT["Meter 
(m)",1],AUTHORITY["EPSG","27700"]]

The string that we receive on loading:
PROJCS["unnamed",GEOGCS["ORD SURV GB Coordinate System",DATUM
["unknown",SPHEROID["unretrievable - using 
WGS84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT
["degree",0.0174532925199433]],UNIT["metre",1,AUTHORITY
["EPSG","9001"]],AUTHORITY["EPSG","27700"]]

which clearly contains less information than it was provided.

#2 American Samoa:

Saved:
OJCS["American Samoa 1962 / American Samoa Lambert",GEOGCS["AMER. SAMOA 
Coordinate System",DATUM["American Samoa Islands - 1962",SPHEROID["Clarke 
1866",6378206.4,294.9786982],TOWGS84[-115,118,426,0,0,0,0]],PRIMEM
["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY
["EPSG","4169"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER
["latitude_of_origin",-14.2666666666667],PARAMETER["central_meridian",-
170],PARAMETER["scale_factor",1],PARAMETER
["false_easting",499999.9999949199],PARAMETER
["false_northing",312234.649996828],UNIT["US Survey Feet 
(usft)",0.304800609604316],AUTHORITY["EPSG","3102"]]

Loaded:
PROJCS["unnamed",GEOGCS["AMER. SAMOA Coordinate System",DATUM
["unknown",SPHEROID["unretrievable - using 
WGS84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT
["degree",0.0174532925199433]],UNIT["unknown",1],AUTHORITY["EPSG","3102"]]

#3 East Alabama, NAD83
Saved:
PROJCS["Alabama Eastern Zone ",GEOGCS["NAD83 Coordinate System",DATUM["North 
American Datum 1983",SPHEROID["GRS 1980",6378137,298.257222101],TOWGS84[-
0.9738,1.9453,0.5486,7.652997269562411e-006,2.79145037787737e-
006,3.15527857778544e-006,0]],PRIMEM["Greenwich",0],UNIT
["degree",0.0174532925199433],AUTHORITY["EPSG","4269"]],PROJECTION
["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER
["central_meridian",-85.8333333333],PARAMETER["scale_factor",0.99996],PARAMETER
["false_easting",200000],PARAMETER["false_northing",0],UNIT["Meter 
(m)",1],AUTHORITY["EPSG","26929"]]

Loaded:
PROJCS["unnamed",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID
["GRS 1980",6378137,298.2572221010002,AUTHORITY["EPSG","7019"]],AUTHORITY
["EPSG","6269"]],PRIMEM["Greenwich",0],UNIT
["degree",0.0174532925199433],AUTHORITY["EPSG","4269"]],UNIT
["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","26929"]]

#4 New Brunswick
After it's specified (and SetProjection() didn't report any failures), this 
projection fails to load at all and GDal simply reports that the TIFF doesn't 
have any projection (pDataset->GetProjectionRef() returns 0)

PROJCS["New Brunswick",GEOGCS["NAD27 Coordinate System",DATUM["NAD 1927 
(NADCON CONUS)",SPHEROID["Clarke 1866",6378206.4,294.9786982],TOWGS84[-
2,0,4,0,0,0,0]],PRIMEM["Greenwich",0],UNIT
["degree",0.0174532925199433],AUTHORITY["EPSG","4267"]],PROJECTION
["DoubleStereographic"],PARAMETER["latitude_of_origin",46.5],PARAMETER
["central_meridian",-66.5],PARAMETER["scale_factor",0.999912],PARAMETER
["false_easting",300000],PARAMETER["false_northing",800000],UNIT["Meter 
(m)",1]]

If you need more examples, we've a plenty of them :)
Thanks in advance!

Change History (0)

Note: See TracTickets for help on using tickets.