python - 坐标转换脚本没有给我从 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 谢谢~!
解决方案
你可能有你的坐标错误的方式。考虑以下:
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 的坐标空间定义有多好。
推荐阅读
- ios - 在 iOS 上配置 Firebase 时,我应该更喜欢使用 APNs 密钥还是 APNs 证书
- firebase - firebase react native expo:这些文件都不存在
- java - 通用连接池已存在错误 (Oracle UCP)
- python - 为什么当我尝试使用对象 ID 打开链接时,它在 django 3.2 中不起作用?
- r - 使用 parSapply() 在 R 中使用并行化时如何导出具有修改值的全局变量
- php - 有什么功能可以修复或缩短蜿蜒的路径吗?
- sapui5 - sapui5 : typeERROR : i 不是构造函数
- c++ - 针对不同语言的不同 INTERFACE 编译器选项
- hadoop - 在 Apache Atlas VIA Rest API 中删除关系
- javascript - twitch embed 顶部的 React 组件不会触发点击事件