我继承了一个包含地理数据堆栈的项目
- 一个 PostGIS DB(目前与此无关),
- 栅格时间序列的启用时间的 GeoServer ImageMosaic(来源是文件系统上的 GeoTIFF,而不是 DB)
- 用于可视化和查询数据的 OpenLayers(仍为 v5.3.0)前端。
我需要添加一个功能来从时间序列的两个任意栅格创建“差异栅格”(即差异栅格 = Raster 2 vals - Raster 1 vals)。这也可以通过“混合”等方式在视觉上完成,因为实际数据查询是通过 GetFeatureInfo 等对实际栅格数据执行的。
我知道 Leaflet 可以直接执行这些操作,但到目前为止,我还没有在 OpenLayers 中看到挂件以数学方式或仅通过视觉技巧来创建这样的“差异栅格”。
据我所知,我的选择是:
- 将整个前端迁移到 Leaflet。
- 前端做了很多花哨的事情,其中大部分是 OpenLayers 特定的,而这个选项似乎非常耗时。
- 利用 GeoServer 的 WebProcessingService 插件
- 到目前为止,GeoServer 的 WCS 仅实现了 GeoTools 的加法和乘法,而我的 Java 技能很可能不足以实现这一点。
- 利用 PostGIS 的栅格扩展
- 这可以通过 PostGIS 的 ST_MapAlgebra 轻松完成,但是这可能需要一些可能会引起安全问题的 OL - DB 接口。
- 使用第三方 JS 库
有什么明显我忽略的东西吗?
就第三方库而言,值得一提的是,源 GTIFF 是高分辨率无人机图像(每个约 9000x9000 像素),因此加载整个两个源 TIFF 以执行地图代数可能是一个性能问题。
>