[gdal-dev] Re: Testing Geospatial PDF support
Even Rouault
even.rouault at mines-paris.org
Tue Oct 19 14:45:24 EDT 2010
Brent,
I'm not sure what you find is wrong. What does gdalinfo returns ?
The PDF driver will reproject the coordinates of the GPTS array from
geographic into UTM 35N and try to build a geotransform matrix from that. The
matrix may have rotating terms, so you likely need to use gdalwarp afterwards
to make it look "straight". However I'm not 100% sure this is the correct way
to interpret the the Adobe style georeferencing, but I didn't find a better one
up to know. So if you or someone else have any clue...
Most geospatial PDFs I've found in the wild (such as the one of cantopo) seem
to use the OGC Best Practice encoding.
Even
Le mardi 19 octobre 2010 20:11:13, Brent Fraser a écrit :
> Even,
>
>
> I've tested a couple of Geospatial PDFs with the code that's in GDAL
> trunk.
>
> The Canadian topos work well (e.g.
> ftp://ftp2.cits.rncan.gc.ca/pub/cantopo/50k_geopdf/085/b/cantopo_085b14_geo
> pdf.zip). They were produced using ESRI ArcMap 9.2.6.1500. I get a
> properly geo-referenced GeoTiff after running gdal_translate.
>
> I have another PDF produced by ArcMap10.0.0.2414. It has a main map
> and a keymap. The strange thing is that even though the coordinate
> system is UTM Zone 35 , it has a transformation matrix with geographic
> coordinates given. Here's a portion of the "dump" file:
>
> Item[4] : VP
> Type = array
> Item[0]:
> Type = dictionary
> Item[0] : Name = ÿþI (string)
> Item[1] : Measure
> Type = dictionary
> Item[0] : Subtype = GEO (name)
> Item[1] : LPTS
> Type = array
> Item[0]: 0 (int)
> Item[1]: 1 (int)
> Item[2]: 0 (int)
> Item[3]: 0 (int)
> Item[4]: 1 (int)
> Item[5]: 0 (int)
> Item[6]: 1 (int)
> Item[7]: 1 (int)
> Item[2] : GPTS
> Type = array
> Item[0]: 38.815000 (real)
> Item[1]: 23.644900 (real)
> Item[2]: 43.662600 (real)
> Item[3]: 23.387000 (real)
> Item[4]: 43.615000 (real)
> Item[5]: 31.889000 (real)
> Item[6]: 38.774900 (real)
> Item[7]: 31.540700 (real)
> Item[3] : GCS
> Type = dictionary
> Item[0] : WKT =
> PROJCS["WGS_1984_UTM_Zone_35N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
> EROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["De
> gree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["Fal
> se_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Me
> ridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origi
> n",0.0],UNIT["Meter",1.0]] (string)
> Item[1] : Type = PROJCS (name)
> Item[4] : Type = Measure (name)
> Item[5] : Bounds
> Type = array
> Item[0]: 0 (int)
> Item[1]: 1 (int)
> Item[2]: 0 (int)
> Item[3]: 0 (int)
> Item[4]: 1 (int)
> Item[5]: 0 (int)
> Item[6]: 1 (int)
> Item[7]: 1 (int)
> Item[2] : Type = Viewport (name)
> Item[3] : BBox
> Type = array
> Item[0]: 3168 (int)
> Item[1]: 2433 (int)
> Item[2]: 3557 (int)
> Item[3]: 2127 (int)
> Item[1]:
> Type = dictionary
> Item[0] : Name = ÿþA (string)
> Item[1] : Measure
> Type = dictionary
> Item[0] : Subtype = GEO (name)
> Item[1] : LPTS
> Type = array
> Item[0]: 0 (int)
> Item[1]: 1 (int)
> Item[2]: 0 (int)
> Item[3]: 0 (int)
> Item[4]: 1 (int)
> Item[5]: 0 (int)
> Item[6]: 1 (int)
> Item[7]: 1 (int)
> Item[2] : GPTS
> Type = array
> Item[0]: 40.190600 (real)
> Item[1]: 26.279300 (real)
> Item[2]: 40.767200 (real)
> Item[3]: 26.273100 (real)
> Item[4]: 40.769300 (real)
> Item[5]: 27.212000 (real)
> Item[6]: 40.192600 (real)
> Item[7]: 27.210200 (real)
> Item[3] : GCS
> Type = dictionary
> Item[0] : WKT =
> PROJCS["WGS_1984_UTM_Zone_35N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
> EROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["De
> gree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["Fal
> se_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Me
> ridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origi
> n",0.0],UNIT["Meter",1.0]] (string)
> Item[1] : Type = PROJCS (name)
> Item[4] : Type = Measure (name)
> Item[5] : Bounds
> Type = array
> Item[0]: 0 (int)
> Item[1]: 1 (int)
> Item[2]: 0 (int)
> Item[3]: 0 (int)
> Item[4]: 1 (int)
> Item[5]: 0 (int)
> Item[6]: 1 (int)
> Item[7]: 1 (int)
> Item[2] : Type = Viewport (name)
> Item[3] : BBox
> Type = array
> Item[0]: 57 (int)
> Item[1]: 2465 (int)
> Item[2]: 3052 (int)
> Item[3]: 46 (int)
>
> ------------------------
>
> The resulting GeoTiff has a scaling problem, I suspect related to the
> transformation matrix.
>
> Any thoughts on that?
>
> Thanks!
> Brent Fraser
More information about the gdal-dev
mailing list