El álgebra de mapas para ráster es fácil con ArcGIS Raster Calculator (o QGIS). Pensé que esto sería fácil con servidores SIG web como GeoServer y MapServer más OpenLayers, etc. también. Lo que quiero lograr es hacer cosas simples como dividir dos imágenes y generar una tercera imagen de proporción que se mostrará en la página web. Pasé semanas para encontrar una solución y resulta bastante difícil (para mí).
He intentado algunas cosas, incluyendo:
Ráster PostGIS. Creo que el álgebra raster no es un problema aquí.
Pero el ráster PostGIS es bastante difícil de cargar en GeoServer. Hay muchas preguntas frecuentes sobre cómo cargar pgraster en GeoServer. Consulte, por ejemplo, ¿Cómo importar GeoTIFF a través de postGIS en GeoServer? ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserver ?, entre otros. Ni una sola respuesta aquí en GIS.SE o en el sitio web oficial de GeoServer ofrece una lista completa de los pasos que se pueden seguir para trabajar. Cargar pgraster en MapServer ha informado de un éxito, pero con un rendimiento muy lento. Ambos parecen requerir algo de mosaico, y un comando de una línea para importar un ráster a cualquiera de los servidores parece estar fuera de discusión.
GeoTIFF
GeoTIFF es fácil de cargar en GeoServer y MapServer. ¿Pero qué podemos hacer con él? Sin un PostGIS como SQL, recurrí y busqué brevemente usando WCS para hacer álgebra de mapas, pero no encontré mucho. ¿Es WCS una ruta viable para esto con los servidores actuales?
Programarlo de la manera difícil
De alguna manera, use AJAX para llamar a una página PHP o escriba un WPS usando GeoServer para importar imágenes a PostGIS, haciendo el álgebra de mapas y luego convirtiendo el grabador de resultados a un formato (por ejemplo, GeoTIFF) que se pueda cargar y mostrar fácilmente en GeoServer / MapServer.
Por supuesto, uno puede escribir código para leer GeoTIFF directamente y hacer el álgebra de mapas sin soporte SIG.
Nada de lo anterior me parece fácil o razonable teniendo en cuenta la facilidad con la que se puede hacer el mismo álgebra en Desktop GIS.
Me preguntaba si alguien ha tenido alguna experiencia haciendo Álgebra de mapas en un entorno web GIS, y ¿puede sugerir una ruta viable?
Estoy interesado en las soluciones de código abierto (por razones políticas dentro de mi organización). Soy consciente de que ArcGIS Server puede llamar al código python de ArcGIS, pero no tenemos la licencia y el entorno aquí no es favorable para adquirir una.
fuente
Respuestas:
Usando solo software de código abierto, casi seguramente necesitará hacer algo de programación usted mismo. GDAL es la biblioteca de E / S ráster de código abierto de facto , por lo que probablemente la usará a usted o a uno de sus muchos contenedores. Puede usar Python (por ejemplo, rasterio + numpy / scipy ) o node.js, por ejemplo, node-gdal (aunque tenga cuidado, actualmente está sincronizado / bloqueando). En cuanto a implementarlo realmente como un servicio web, no estoy seguro de cuál sería el mejor enfoque, pero aquí hay una pregunta relacionada: ¿ Comparar diferentes servidores SIG de código abierto?
Si la programación no es lo tuyo, puedes echar un vistazo a FME Server . Es un producto comercial pero probablemente sustancialmente más barato que ArcGIS Server, y tiene todo tipo de transformadores de cálculo de trama , por lo que me sorprendería mucho si no pudieran lograr lo que necesita hacer. No necesitaría cargar los rásteres en una base de datos, ya que puede leer casi cualquier formato de archivo ráster .
La parte del servidor le permitiría ejecutar las transformaciones (espacios de trabajo FME) en un servidor y utilizar una API, por ejemplo, la API REST del servidor FME , para iniciar esas transformaciones y acceder a los resultados.
El principal beneficio es que no necesitaría hacer mucha programación para poner en funcionamiento los servicios, solo una pequeña codificación frontal para trabajar con la API.
fuente
Lo que está buscando es un servidor de imágenes. ArcGIS for Server tiene esta extensión:
ArcGIS Image Extension para servidor
No conozco ningún equivalente de código abierto.
fuente
Probablemente pueda hacer esto en el navegador con WebGL:
http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/
pero requeriría algo de programación y un navegador compatible con WebGL. Pero debería ser rápido ya que usaría la GPU en la mayoría de los casos.
fuente