Imagen JP2 gigante de 2.5 GB: ¿Cómo colocarlo en mosaico?

11

Tengo una sola imagen JP2 de 2.5 GB de una ciudad que necesito dividir en mosaicos, que luego procesaré para crear un escenario de simulación de vuelo.

Google como podría, no puedo encontrar la solución.

Aparentemente, el JP2 tiene datos XML SIG integrados, lo que no me afecta de ninguna manera, ya que no lo necesito. Todo lo que intento hacer es dividir la imagen en un número x de preferiblemente 2048 x 2048 mosaicos.

Una utilidad para hacer esto en OSX o Win7 sería genial.

Ideas?

¡Gracias!

Stent Mutton
fuente
¿Está interesado en un enfoque QGIS o ArcGIS?
Aaron
55
pruebe gdal2tiles.py
mdsumner el

Respuestas:

14

Puede escribir un script de shell simple y usar la utilidad gdal_translate para cortar los mosaicos. En Mac, obtenga la compilación GDAL de ella e. En Windows, la mejor manera de obtener GDAL es a través del instalador OSGeo4W . En el siguiente script, debe reemplazar las siguientes cosas

  • XDIM e YDIM con su fuente jp2 X e Y dimensiones
  • gdal_translate con la ruta real en su sistema
  • input.jp2 con ruta a su archivo de entrada.

Guarde el script en un archivo de texto llamado script.sh. Abra una Terminal y ejecute 'bash script.sh'. Eso creará los mosaicos en un directorio llamado mosaicos /. El script se copia desde aquí con una pequeña modificación para su propósito.

#!/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
pensamientos espaciales
fuente
2
Ah, no hay problema Finder no sabría sobre el formato JP2, por lo que no ayudará. Necesita la biblioteca GDAL para leer JP2. Si instaló GDAL desde el enlace en mi respuesta, puede usar el comando 'gdalinfo' para obtener esa información. En mi sistema, GDAL está en /Library/Frameworks/GDAL.framework/Versions/1.9/Programs/gdalinfo. ejecute gdalinfo <ruta / a / su / jp2> e informará las dimensiones. Del mismo modo, agregue la ruta completa a gdal_translate en el script para que funcione.
pensamientos espaciales