[gdal-dev] Testing Geospatial PDF support

Brent Fraser bfraser at geoanalytic.com
Tue Oct 19 14:11:13 EDT 2010


  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_geopdf.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",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",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",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",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