首页 > 解决方案 > 坐标转换脚本没有给我从 SVY21 到 WGS84 的准确读数

问题描述

我想将我的 SVY21 坐标数据集转换为 WGS84 坐标。

我目前正在使用我发现的这个 repo 中的这个脚本,但是这个脚本产生的结果不准确,差异高达 0.04,所以我转换的坐标最终位于同一个国家的完全不同的地理位置。

想知道是否有人可以帮助我编写将大型数据集从 SVY21 转换为 WGS84 的脚本?

EG 我想转换

38816.0396118, 34379.9602051 

但相反我得到

1.36728713070321, 103.890645888016 

当我应该得到

1.327235496598071, 103.93042021823591

我会在那些在线转换器上执行此操作,但我的文件大小非常大(可以达到几 GB),因此最好在我的本地计算机上运行脚本,而不是使用 Python 或 C++ 或任何其他可行的替代方案。此外,大多数在线转换器对文件大小也有限制。

这是一个准确的转换器链接:https ://dominoc925-pages.appspot.com/webapp/calc_svy21/default.html但它不接受我的文件大小。

感谢帮助 :D 谢谢~!

标签: pythonc++google-mapscoordinatescoordinate-transformation

解决方案


你可能有你的坐标错误的方式。考虑以下:

import pyproj

xfm = pyproj.Transformer.from_crs('EPSG:3414', 'EPSG:4326')
x, y = 38816.0396118, 34379.9602051

print(xfm.transform(x, y))
# prints: (1.3673123058118237, 103.89064694097199)

print(xfm.transform(y, x))
# prints: (1.3271927478890677, 103.93050656742128)

仍然相差大约万分之一度,但我不知道在这种情况下 pyproj 的坐标空间定义有多好。


推荐阅读