L'algèbre cartographique pour raster est facile avec ArcGIS Raster Calculator (ou QGIS). J'avais pensé que ce serait facile avec les serveurs Web GIS tels que GeoServer et MapServer plus OpenLayers etc. Ce que je veux réaliser est de faire des choses simples comme diviser deux images et générer une troisième image de rapport à afficher sur la page Web. J'ai passé des semaines à trouver une solution et cela s'avère assez difficile (pour moi).
J'ai essayé plusieurs choses, notamment:
Raster PostGIS. Je pense que l'algèbre raster n'est pas un problème ici.
Mais le raster PostGIS est assez difficile à charger dans GeoServer. De nombreuses questions sont posées à plusieurs reprises sur la façon de charger pgraster dans GeoServer. Voir par exemple Comment importer GeoTIFF via postGIS dans GeoServer? ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserver ?, entre autres. Pas une seule réponse ici dans GIS.SE ou le site officiel de GeoServer ne donne une liste complète des étapes qui peuvent être suivies pour fonctionner. Le chargement de pgraster dans MapServer a rapporté un succès, mais avec des performances très lentes. Les deux semblent nécessiter un certain tuilage, et une commande à une ligne pour importer un raster sur l'un ou l'autre serveur semble être hors de question.
GeoTIFF
GeoTIFF est facile à charger dans GeoServer et MapServer. Mais que pouvons-nous en faire? Sans PostGIS comme SQL, je me suis tourné vers et j'ai brièvement recherché en utilisant WCS pour faire l'algèbre de la carte, mais je n'ai pas trouvé grand-chose. WCS est-il un chemin viable pour cela avec les serveurs actuels?
Programmer à la dure
Utilisez en quelque sorte AJAX pour appeler une page PHP ou écrire un WPS en utilisant GeoServer pour importer des images dans PostGIS, faire l'algèbre de la carte et convertir ensuite le résultat pgraster dans un format (par exemple GeoTIFF) qui peut être facilement chargé et affiché dans GeoServer / MapServer.
Bien sûr, on peut écrire du code pour lire directement GeoTIFF et faire l'algèbre cartographique sans prise en charge SIG.
Rien de ce qui précède ne me semble facile ou raisonnable compte tenu de la facilité avec laquelle la même algèbre peut être effectuée dans Desktop SIG.
Je me demandais si quelqu'un avait une expérience de l'algèbre cartographique dans un environnement SIG Web et pouvait suggérer un chemin viable?
Je suis intéressé par les solutions Open Source (pour des raisons politiques au sein de mon organisation.) Je suis conscient qu'ArcGIS Server peut appeler le code python d'ArcGIS, mais nous n'avons pas la licence et l'environnement n'est pas favorable pour en acquérir une.
Réponses:
En utilisant uniquement des logiciels open source, vous devrez presque certainement faire de la programmation vous-même. GDAL est la bibliothèque d'E / S raster open source de facto , donc vous l'utiliserez probablement ou l'un de ses nombreux wrappers. Vous pouvez utiliser Python (par exemple rasterio + numpy / scipy ) ou node.js, par exemple node-gdal (mais attention, il est actuellement synchrone / bloquant). Quant à l'implémenter en tant que service Web, je ne sais pas quelle serait la meilleure approche, mais il y a une question connexe ici: comparer différents serveurs SIG open source?
Si la programmation n'est pas votre truc, vous pouvez jeter un œil à FME Server . C'est un produit commercial mais probablement beaucoup moins cher qu'ArcGIS Server, et il a toutes sortes de transformateurs de calcul raster , donc je serais très surpris s'ils ne pouvaient pas accomplir ce que vous devez faire. Vous n'auriez pas besoin de charger les rasters dans une base de données car il peut lire à partir de n'importe quel format de fichier raster .
La partie serveur vous permettra d'exécuter les transformations (espaces de travail FME) sur un serveur et d'utiliser une API, par exemple l' API REST du serveur FME , pour initier ces transformations et accéder aux résultats.
Le principal avantage est que vous n'auriez pas besoin de faire beaucoup de programmation pour mettre les services en place, juste un peu de codage frontal pour fonctionner avec l'API.
la source
Ce que vous cherchez, c'est un serveur d'images. ArcGIS for Server a cette extension:
ArcGIS Image Extension for Server
je ne connais aucun équivalent open source.
la source
Vous pouvez probablement le faire dans le navigateur avec WebGL:
http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/
mais cela nécessiterait une programmation et un navigateur compatible WebGL. Mais cela devrait être rapide car il utiliserait le GPU dans la plupart des cas.
la source