Tengo ortofotos de un área que necesito para servir como mapa de fondo para mis vectores. Lo obtuve como 2500 archivos (71,5MB cada uno) en formato TIFF sin formato con el archivo de palabra TFW correspondiente: 180GB de datos. El sistema de coordenadas es local y coincide con mis vectores (no hay código EPSG para él, pero lo llamé "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 retile tanto más grande para tener solo 71 archivos porque abrir 2500 archivos tiff es excesivo. Acabo de fusionar 49 TIFF (7x7) en un ECW - 35000x35000pixels - el más grande es alrededor de 200MB) 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 comparar. ECW es mucho más rápido en la vista previa del navegador (soy consciente del problema de licencia del servidor ECW pero eso no debería ser un problema). Encontré una presentación "GeoServer con esteroides" y leí acerca de ImageMosaic, ImagePyramid, retilizar, agregar 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 es una de las respuestas positivas, 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 tiff en un servidor.
Los datos se servirán a través de LAN con un máximo de 20 usuarios conectados en la hora pico. El servidor SQL no tiene una gran cantidad de datos. Lo siento si me falta 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 (Java HotSpot (TM) Server VM), Native JAI + Native JAI ImageIO = true
Original TIFF
gdalinfo D:\75720-47970.tif
Driver: GTiff/GeoTIFF
Files: D:\75720-47970.tif
D:\75720-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
fuente
Respuestas:
Realicé 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, era ~ 1.5 GB. Así que creo que un TIFF puede ser de un tamaño similar a un ECW.
Mosaicaría 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) simplemente dejaría que GeoServer haga el resto.
Entiendo que el rendimiento entre PostGIS y TIFF favorecerá el tiff.
Referencias
fuente
Tuve un problema similar hace unas semanas. Lo resolví de esta manera:
De esta manera obtienes 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. Basado en mi propio ejemplo, tuve que usar 82 ortofotomapas (40 GB 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 más grandes que los de origen. Entonces, en mi caso, los datos crecieron de 40 GB a ~ 96 GB.
EDITAR Y debe controlar los parámetros de su servidor porque 2 GB de RAM y win7 + geoserver + postgres pueden ahogarse a veces. Quizás una buena forma de aumentar el rendimiento sería trasladar la base de datos a otra máquina, o cambiar Win7 a Linux (o ambas) porque el sistema * nix es menos costoso que uno de MS.
fuente