A bit of googling determines that the 'Adobe way' structure, together with its elements, is defined in the ISO PDF definition - ISO 32000-1 (2008).

Looking at this with a PostScript Developer hat, the /LPTS has to be associated with scaling / transforming the GPTS coordinates to the page coordinate system. There is a need to refer to the standard!

Best wishes,

Peter

Joaquim Luis wrote:
Brent,

I was also digging a bit on this matter. It's true that the blogger only opens our appetite as there is no more details on how to do it generally. I mean, for UTM maps it has become fairly obvious how one can do it. The relevant part in the
PS file is

[ {ThisPage} <<
/LGIDict <<
  /Description Title
  /CTM [(35.28267) (0) (0) (35.28267) (205188.64) (3207094.8)]
  /Projection <<
    /Description (WGS 84 UTM 16N)
    /ProjectionType (TC)
    /Datum (WGE)
    /CentralMeridian (-87.0)
    /OriginLatitude (0.0)
    /FalseEasting (500000.0)
    /FalseNorthing (0.0)
    /ScaleFactor (0.999600)
    /Type /Projection
   >>
   /Type /LGIDict
   /Version (2.1)
 >>
 >> /PUT pdfmark

However, there is no more info on how to program in this "TerraGo way"
A next post shads a bit more lite on the matter.
http://geopdf.blogspot.com/2009/02/geopdf-and-geops-with-adobe-style.html
As you can see in the quada.ps file there is an alternative "Adobe way",
which encodes the referencing as

% embed georegistation info
[ {ThisPage} <<
  /VP [ <<
    /Type /Viewport
    /BBox[0 0 dh dv]
    /Name Title
    /Measure <<
      /Type /Measure
      /Subtype /GEO
      /Bounds[0 0 0 1 1 1 1 0]
      /GPTS[29.0 -90.0 30.0 -90.0 30.0 -89.0 29.0 -89.0]
/LPTS[0.024324 0.039461 0.051689 0.978774 0.975675 0.961136 0.957432 0.022122]
      /GCS <<
        /Type /PROJCS
/WKT (PROJCS["WGS_1984_UTM_Zone_16N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]])
      >>
    >>
  >>]
 >> /PUT pdfmark

Now this is more familiar, except for the
/LPTS[0.024324 0.039461 0.051689 0.978774 0.975675 0.961136 0.957432 0.022122] part that, contrary to the promise has not been explained where it comes from.

I think I could implement the first encoding type in GMT's ps2raster (if I knew all the specs) Second type would be even easier ... if we had a way to translate the GMT projection syntax into
WKT, which we don't.

Joaquim


Joaquim,

Doing the format conversion from .ps to pdf is one thing (and there are several ways to do it), but embedding the georeferencing in the PDF to make it a GeoPDF is the interesting bit. I haven't found any open source project capable of do that. Or even capable of writing the PDF elements (e.g. Frames) necessary for writing the GeoPDF information. But I remain hopeful...

Brent

Joaquim Luis wrote:
Brent Fraser wrote:
I see the example calculation of the transformation matrix, and a statement "I created a GeoPDF by running the Postscript file through Ghostscript to create a Postscript file that looks like this"

But I don't see where the georeferencing is written into PDF to make it a GeoPDF. Is it a Ghostscript command line?

Brent,

One only has to convert it to pdf using ghostscript.
I did it with GMT's ps2raster, like that

ps2raster quad.ps -Tf -A

Joaquim Luis


Brent

Klokan Petr Přidal wrote:
Hi,

There is a great blog post (and the linked "worked example" post with details):
http://geopdf.blogspot.com/2009/02/geopdf-map-for-worked-example.html

It shows you how to create geopdf via GhostScript - so there is
already a practical open-source example how to encode the georeference
into the PDF/PS according the OGC standard - for use in Acrobat
Reader. To add support for such tag in MapServer, which generates pdf
dynamicaly via pdflib, should not be totally problematic.

Decoding is not as hard either, there are nice libraries like poppler
(http://poppler.freedesktop.org/), which allows you to parse vectors
(and convert them to SVG for example) or rasterize the PDF files (into
TIFF,...) via Cairo.
The work is in assigning correct geographic coordinates to the
coordinate system internally used in PDF files and especially write
the bridge to the outside world (with GDAL/OGR).
I am afraid that authors of the GeoPDF standard would not like this,
as it seems that the idea of GeoPDF is "see it in the Acrobat, print
it, but that's all". At least I think so, because they discontinued
their Geopdf2geotiff product and all the conversion tools are just one
way - into GeoPDF. Please correct me...

Anyway, in this moment you can quite easily use utility like
"pdfimages" to extract full quality image tiles from any GeoPDF (like
those from USGS) and merge it based on their location in PDF into one
GDAL file via VRT (gdalbuildvrt) with a bit of hacking. This is what I
did for my favorite USGS DRG of Grand Canyon ;-).
Look at: http://klokan.mzk.cz/~klokan/geopdf/ - soon I will update the
MapTiler.org overlay examples...

Unfortunately all PDF parsing libraries I know are GPL, and that means
we can't use them for the gdal driver - because of the license issues.
But to create a GPL utility for converting GeoPDF to anything what
GDAL/OGR supports should be OK. Poppler can be the best base of such
GDAL-based utility for reading/rasterizing of the GeoPDF files.

Now just find a sponsor and time to make it ;-).

Best,

Klokan Petr Pridal
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev







_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

--
--------------------------------------------------------------------------------
Peter J Halls, GIS Advisor, University of York
Telephone: 01904 433806     Fax: 01904 433740
Snail mail: Computing Service, University of York, Heslington, York YO10 5DD
This message has the status of a private and personal communication
--------------------------------------------------------------------------------
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to