GeoServer: ¿La mejor manera de publicar 2500 archivos TIFF o 71 ECW?

13

Tengo ortofotos de un área que necesito para servir como un mapa de fondo para mis vectores. Lo obtuve como 2500 archivos (71,5 MB cada uno) en formato TIFF sin procesar con el archivo de palabra TFW correspondiente: 180 GB de datos. El sistema de coordenadas es local y coincide con mis vectores (no hay un código EPSG para él, pero lo nombré como "32805" y puse una definición adecuada).

Para uso de escritorio en MapInfo, los convertí a ECW (con alguna herramienta que viene con MapInfo) y los reproduzco tanto más grandes para tener solo 71 archivos porque abrir 2500 archivos tiff es excesivo. Acabo de fusionar 49 TIFF (7x7) en uno ECW: 35000x35000 píxeles. El más grande es de aproximadamente 200 MB. Funciona muy bien y es realmente rápido en MapInfo.

Ahora estoy bastante confundido: ¿CÓMO servirlos en GeoServer?

He publicado un TIFF y un ECW para comparación. ECW es mucho más rápido en la vista previa del navegador (soy consciente de un problema de licencia del servidor ECW, pero eso no debería ser un problema). Encontré una presentación "GeoServer sobre esteroides" y leí sobre ImageMosaic, ImagePyramid, volviendo a compilar, agregando información general, etc. Fue bastante informativo pero aún no sé qué hacer.

Mi pregunta es: ¿cómo debo hacerlo? Mosaico o pirámide, y si una de las respuestas es positiva, necesito tu consejo o algunos consejos. Realmente me gustaría ser ECW debido al espacio en disco, por lo que no será necesario mantener 180GB de tiffs en un servidor.

Los datos se entregarán a través de LAN con un máximo de 20 usuarios conectados en hora pico. El servidor de SQL no tiene una gran cantidad de datos. Lo siento si me olvido de alguna otra información, pero la enviaré si es necesario.

  

Geoserver 2.1.4, Windows 7 32 bits, 2 GB de memoria del sistema, (1.7.0_09   (VM de servidor Java HotSpot (TM)), JAI nativo + JAI nativo ImageIO = verdadero

Original TIFF
gdalinfo D:720-47970.tif
Driver: GTiff/GeoTIFF
Files: D:720-47970.tif
       D:720-47970.tfw
Size is 5000, 5000
Coordinate System is ''
Origin = (7572000.000000000000000,4797500.000000000000000)
Pixel Size = (0.100000000000000,-0.100000000000000)
Metadata:
  TIFFTAG_SOFTWARE=Adobe Photoshop 7.0
  TIFFTAG_DATETIME=2006:10:09 13:02:57
  TIFFTAG_XRESOLUTION=72
  TIFFTAG_YRESOLUTION=72
  TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  ( 7572000.000, 4797500.000)
Lower Left  ( 7572000.000, 4797000.000)
Upper Right ( 7572500.000, 4797500.000)
Lower Right ( 7572500.000, 4797000.000)
Center      ( 7572250.000, 4797250.000)
Band 1 Block=5000x1 Type=Byte, ColorInterp=Red
Band 2 Block=5000x1 Type=Byte, ColorInterp=Green
Band 3 Block=5000x1 Type=Byte, ColorInterp=Blue
-------------

ECW file which is retiled from 7x7  original tiffs

gdalinfo D:\OF-45.ecw
Driver: ECW/ERDAS Compressed Wavelets (SDK 3.x)
Files: D:\OF-45.ecw
Size is 35000, 35000
Coordinate System is:
LOCAL_CS["LOCAL - (unsupported)",
    UNIT["Meter",1]]
Origin = (7571500.000000000000000,4798500.000000000000000)
Pixel Size = (0.100000000000000,-0.100000000000000)
Corner Coordinates:
Upper Left  ( 7571500.000, 4798500.000)
Lower Left  ( 7571500.000, 4795000.000)
Upper Right ( 7575000.000, 4798500.000)
Lower Right ( 7575000.000, 4795000.000)
Center      ( 7573250.000, 4796750.000)
Band 1 Block=35000x1 Type=Byte, ColorInterp=Red

  Overviews: 17500x17500, 8750x8750, 4375x4375, 2187x2187, 1093x1093, 546x546, 273x273, 136x136
Band 2 Block=35000x1 Type=Byte, ColorInterp=Green
  Overviews: 17500x17500, 8750x8750, 4375x4375, 2187x2187, 1093x1093, 546x546, 273x273, 136x136
Band 3 Block=35000x1 Type=Byte, ColorInterp=Blue
  Overviews: 17500x17500, 8750x8750, 4375x4375, 2187x2187, 1093x1093, 546x546, 273x273, 136x136
    
pregunta sys49152 03.11.2012 - 11:34

2 respuestas

7

Hice un experimento con un archivo TIFF y un ECW. Comenzó con un ECW de 1.2 GB, y lo convirtió a TIFF con compresión y pirámides, fue de ~ 1.5 GB. Así que creo que un TIFF puede ser de un tamaño similar a un ECW.

Yo crearía un mosaico de la imagen usando GDAL, asegurando que la compresión esté activada Luego construya pirámides, y si el archivo resultante es razonable (menos de 10 GB, supongo), dejaría que GeoServer haga el resto.

El rendimiento entre PostGIS y TIFF favorecerá el tiff, entiendo.

Referencias:

  • enlace
  • no puedo encontrar a otros ... ¡Debería documentar mejor lo que hago!
respondido por el Alex Leith 25.01.2013 - 04:17
7

Tuve un problema similar hace unas semanas. Lo resolví de esta manera:

  1. creando pirámides imagen de rásteres (todos los rásteres tenían pirámides depende de la tasa de escala estándar en mi proyecto
  2. creando mosaicos de trama (mosaico)
  3. poner todos los archivos en postgis (por WKTRaster )

De esta manera, obtiene MRDB (base de datos de resolución múltiple) que es la forma más efectiva de servir una gran cantidad de datos.

Después de lo anterior, simplemente puede conectar GeoServer a PostGIS y servir sus datos. Basándome en mi propio ejemplo, tuve que usar 82 ortophotomaps (40GB de datos) en mi aplicación, así que hice lo siguiente y ¡funciona muy bien! La desventaja de esta situación es que los mosaicos de trama son mucho más grandes que los de origen. Entonces, en mi caso, los datos aumentaron de 40 GB a ~ 96 GB.

EDIT Y debe monitorear los parámetros de su servidor porque 2GB de RAM y win7 + geoserver + postgres pueden ahogarse a veces. Tal vez una buena manera de aumentar el rendimiento sería mover la base de datos a otra máquina, o cambiar Win7 a Linux (o ambos) porque el sistema * nix es menos costoso que el de MS.

    
respondido por el Krystian 19.01.2013 - 15:36

Lea otras preguntas en las etiquetas