python-3.x - 复合 CRS 与 pyproj 之间的转换
问题描述
我正在尝试将 (x,y,z) 坐标从复合 CRS 转换为另一个坐标。我在网上看到了这个例子,它确实对我有用。
import pyproj
cmpd_crs = pyproj.crs.CompoundCRS(name="WGS 84 + EGM96 height", components=["EPSG:4326", "EPSG:5773"])
trans = pyproj.Transformer.from_crs(cmpd_crs, "EPSG:4979") # epsg 4979 is Geographic 3D CRS
trans.transform(45, -122, 10)
这报道
(45.0, -122.0, -10.386833190917969)
但是,当我尝试使用 EPSG 代码在复合 CRS 之间进行其他转换时,它不起作用。例如:
import pyproj
c1 = pyproj.crs.CompoundCRS(name="NAD83+cgvd28",components=["EPSG:4617","EPSG:5713"])
c2 = pyproj.crs.CompoundCRS(name="NAD83+cgvd2013",components=["EPSG:4617","EPSG:6647"])
transformer = pyproj.Transformer.from_crs(c1,c2)
transformer.transform(45, -122, 10)
这个报告(没有任何变化)
(45.0, -122.0, 10.0)
和
import pyproj
c1 = pyproj.crs.CompoundCRS(name="WGS84 + EGM96", components=["EPSG:4326", "EPSG:5773"])
c2 = pyproj.crs.CompoundCRS(name="NAD83+cgvd2013",components=["EPSG:4617","EPSG:6647"])
transformer = pyproj.Transformer.from_crs(c1,c2)
transformer.transform(45, -122, 10)
这个报告(没有任何变化)
(45.0, -122.0, 10.0)
还
import pyproj
c1 = pyproj.crs.CompoundCRS(name="NAD83+cgvd28",components=["EPSG:4617","EPSG:5713"])
transformer = pyproj.Transformer.from_crs(c1,"EPSG:6649")
transformer.transform(45, -122, 10)
这个报告(仍然没有任何变化)
(45.0, -122.0, 10.0)
有什么见解吗?非常感谢!!
解决方案
推荐阅读
- java - Hive 3.1.2 UDAF 在 Spark 3.0.0 中不起作用
- c++ - 为什么微不足道的复制/移动可构造性取决于微不足道的可破坏性?
- php - 如何调用 d.multicall2
- firebase - 如何将 IndexedDB 与 Firestore 同步?
- xml - 将 XML 解组为结构时的空结果
- git - 如何在 Jenkins 多分支管道中参数化 Git URL?
- javascript - 如何在页面加载时在输入框中加载值 - JS
- python - 使用 dt.datetime Python 格式化
- servlets - 一些基本的 Java WebApplication/Servlet 需要的建议
- javascript - Firestore 安全规则不允许两个 uid 访问文档