Существует ли код Python для анализа файла geoPDF для получения проекции и данных изображения?инструмент geoPDF2KML? - PullRequest
2 голосов
/ 07 октября 2010

Я хочу организовать множество файлов geoPDF, чтобы их можно было легко просматривать наложенными на Google Карты и Google Планета Земля.

Мой первый шаг, я думаю, состоит в том, чтобы преобразовать geoPDF в изображение типа jpg, которое затем требует соответствия широты и длины информации.

Существует ли код Python для анализа файла geoPDF для получения проекции и данных изображения?

Инструмент geoPDF2KML?

Ответы [ 3 ]

3 голосов
/ 26 октября 2010

Шаги, которые я использовал в системе Ubuntu, в которой есть Python (Python уже является частью Unbuntu) 1. скачать и установить poppler 2. скачать и установить proj4 3. скачать и установить gdal

poppler$./configure --enable-xpdf-headers --prefix=/usr/local/include/poppler" then the usual "$make" and "$make install"

poppler$make

poppler$sudo make install

sudo apt-get install proj4

gdal$./configure --with-static-proj4=/usr/local/lib --with-threads --with-libtiff=internal --with-geotiff=internal --with-jpeg=internal --with-gif=internal --with-png=internal --with-libz=internal --with-poppler=/usr/local/include/poppler --with-python

gdal$make

gdal$sudo make install 
2 голосов
/ 03 марта 2011

Этот код, приведенный ниже, может помочь кому-то, желающему преобразовать множество geoPDF в KML-Superoverlay, который затем может быть включен как наложение веб-карты с помощью API Карт Google или API Google Планета Земля ...

import shlex
import subprocess
from subprocess import Popen, PIPE
import os


def step1_translate( input_file ):
    out = input_file + ".vrt"
    translate_command = "gdal_translate -of VRT %s %s" % (input_file,out)
    translate_args = shlex.split( translate_command )
    p1 = subprocess.Popen( translate_args) # translate
    print p1

def step2_warp( input_file):
    gdalwarp_command = "gdalwarp -of VRT -t_srs EPSG:4326 %s %s" % (output_file,output_file2)
    gdalwarp_args = shlex.split( gdalwarp_command )
    p2 = subprocess.Popen( gdalwarp_args   , stdin=p1.stdout ) #gdalwarp

def step3_tile( input_file, output_file, output_file2 ):
    gdal2tiles_command = "/home/boris/gdal/swig/python/scripts/gdal2tiles.py -p geodetic -k %s" % output_file2
    gdal2tiles_args = shlex.split( gdal2tiles_command )
    p3 = subprocess.Popen( gdal2tiles_args , stdin=p2.stdout) #gdal2tiles
2 голосов
/ 07 октября 2010

Один из вариантов - использовать GDAL ...

Последняя версия gdal (то есть текущая магистраль svn, а не выпущенная версия) должна поддерживать geoPDF.

Вам нужно будет скомпилировать его с параметром --with-poppler=yes и установить библиотеку pppler poppler. (Компиляция gdal может быть немного болезненной, просто чтобы предупредить вас раньше времени ...)

Привязки Python Gdal болезненны, но обычно они работают.

С этого момента вы сможете легко использовать GDAL для конвертации ваших JPEG-файлов в формате JPEG с географической привязкой.

Если вы еще не знакомы с GDAL, это может быть больше проблем, чем оно того стоит. Информация о географической привязке в geoPDF, вероятно, может быть извлечена другими способами ...

Надеюсь, это немного поможет, во всяком случае ...

...