2

我正在使用 Mapbox GL JS 覆盖德克萨斯州上空的卫星数据图像。图像大到足以覆盖德克萨斯州,但即使使用 100% 正确的地理坐标,图像也不在正确的位置。我必须将图像拆分为 6 个长(西-东)图像,然后将它们垂直堆叠在单独的图像叠加层中:

在此处输入图像描述

这会产生所需的结果:

在此处输入图像描述

当使用 6 个堆叠的图像叠加层(每个 2 度高且非常宽以覆盖该州的宽度,顺便说一下)时,云的位置非常完美,零问题。它是完美的,除了必须制作 6 个图像叠加层来构建它根本不理想并且它增加了处理约束。

如果我将所有图像合并成一张大图并使用相同的坐标覆盖它 - 效果是错误的。即使图像完全相同。我已经突出显示了海岸线,因此您可以看到,当为整个州使用一张大图像叠加时,它变得不准确。对于风暴追逐者(我的目标受众)来说,这不是不可接受的。我曾尝试手动调整图像,但这并不好,我浪费了几天的时间来跟踪这个问题,这绝对是 Mapbox。我已经排除了其他可能性,例如用于获取数据的软件中的错误。

这是一个叠加而不是垂直分割的坏结果:

在此处输入图像描述

有什么可能导致这种情况的想法和解决方案吗?我完全迷路了。

4

1 回答 1

0

我很久以前就解决了这个问题,但是由于其他人也有同样的问题,所以在这里应该得到答案。问题与投影有关。图像可以通过坐标精确地切片和切块,但它们必须与它们所覆盖的地图的投影相匹配。对于 Mapbox,它使用 web 墨卡托,并且图像必须重新投影到 EPSG:3857。

将图像(例如 geoTIF)转换为此投影的实用程序是 GDAL(https://gdal.org/)。使用 GDAL 工具转换图像的命令类似于:

gdalwarp -t_srs EPSG:3857 input.tif input-projected.tif

希望这可以解决问题。这些问题是GIS社区的基础知识。如果你想使用这样的数据,我可以说我建议做我所做的:学习基本的 GIS 工具及其工作原理。它会拯救你。

于 2020-01-04T13:09:31.600 回答