Giant 2.5 GB JP2 image: как это сделать?


11

У меня есть одно 2,5-гигабайтное изображение JP2 города, которое мне нужно разбить на фрагменты, которые я затем обработаю для создания декораций для имитации полета.

Google, как я мог, я не могу найти решение.

В JP2, очевидно, встроены XML-данные ГИС, что никак не влияет на меня, поскольку мне это не нужно. Все, что я пытаюсь сделать, это разбить изображение на x-число, предпочтительно 2048 x 2048 плиток.

Утилита для этого в OSX или Win7 была бы отличной.

Идеи?

Благодаря!


Вы заинтересованы в подходе QGIS или ArcGIS?
Аарон

5
попробуйте gdal2tiles.py
mdsumner

Ответы:


14

Вы можете написать простой скрипт оболочки и использовать утилиту gdal_translate для нарезки плиток. На Mac, получите сборку GDAL от ее e. В Windows лучший способ получить GDAL - через установщик OSGeo4W . В следующем скрипте вам нужно заменить следующие вещи

  • XDIM и YDIM с исходными размерами jp2 X и Y
  • gdal_translate с фактическим путем в вашей системе
  • input.jp2 с путем к вашему входному файлу.

Сохраните скрипт в текстовом файле с именем script.sh. Откройте Терминал и запустите «bash script.sh». Это создаст плитки в каталоге с именемiles /. Сценарий скопирован с небольшой модификацией для вашей цели.

#!/bin/bash
mkdir tiles

XDIM=24000
YDIM=24000
BLOCKSIZE=2048
XPOS=0
YPOS=0
BLOCKNO=0
while [ $YPOS -le $YDIM ]
do
while [ $XPOS -le $XDIM ]
  do
    echo "$XPOS $YPOS : ${BLOCKNO}.tif"
    gdal_translate -of GTiff -srcwin $XPOS $YPOS $BLOCKSIZE $BLOCKSIZE input.jp2 \
      tiles/${BLOCKNO}.tif
    BLOCKNO=`echo "$BLOCKNO + 1" | bc`
    XPOS=`echo "$XPOS + $BLOCKSIZE" | bc`
  done
YPOS=`echo "$YPOS + $BLOCKSIZE" | bc`
XPOS=0
done

2
Ах, нет проблем. Finder не будет знать о формате JP2, поэтому он не поможет. Вам нужна библиотека GDAL для чтения JP2s. Если вы установили GDAL по ссылке в моем ответе, вы можете использовать команду 'gdalinfo' для получения этой информации. В моей системе GDAL находится по адресу /Library/Frameworks/GDAL.framework/Versions/1.9/Programs/gdalinfo. запустите gdalinfo <путь / к / вашему / jp2>, и он сообщит об измерениях. Аналогичным образом добавьте полный путь к gdal_translate в скрипте, чтобы он работал.
spatialthoughts
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.