首页 > 解决方案 > 它是近侧透视图中的正交投影吗?

问题描述

我目前正在研究世界地图可视化。目前,我可以使用自制软件进行可视化和点投影(Java),但我想升级软件以便能够在 Python 中使用类似的工具。

因此,我想将 cartopy 与模块 PROJ4 一起使用,而不是重新编码所有内容,并使用美妙的现有库。

它非常适用于 PlateCarree 投影,但是当我想使用 Nearside Perspective 时,我发现这两种方法之间存在细微差别。

下面两张图是从Java软件(1)和cartopy plot(2)中提取的。

Cartopy (0.17) 与 matplotlib (3.0.2) 和 proj4 (4.9.1) 一起使用。在两张图片中,我们在 lon=lat=0° 和 400 公里处进行观察。

这是第一张图片(Java): Java 可视化

这是第二个(Cartopy): Cartopy 表示

正如人们可以观察到的那样,土地在地图上的比例过高。假设我想获得与我的 Java 软件中的投影完全相同的投影(与电信领域中的“TrueView 角度”相同的表示),我在cartopy crs 模块中发现:

class NearsidePerspective(_Satellite):
        """
        Perspective view looking directly down from above a point on the globe.
        In this projection, the projected coordinates are x and y measured from
        the origin of a plane tangent to the Earth directly below the perspective
        point (e.g. a satellite).
        """

所以我得到了这个问题:这是关于哪个投影的?是否保留了角度,这意味着我有一个未被发现的问题?或者它是切平面上的正交投影?在这种情况下,角度是不守恒的,我需要一个解决方案来应用另一个投影(在我的例子中是正确的)。我可能用错了...

谢谢你的时间,

标签: pythoncartopyproj

解决方案


我不确定它是否是正交投影,但 CartoPy 使用的是直接来自 Proj4 的:

https://proj4.org/operations/projections/nsper.html

我认为这个近侧透视坐标中的坐标是笛卡尔距离(到平面上原点的距离),而不是角度。听起来角度是用于投影的。您是否考虑过使用地球同步投影,但使用不同的卫星高度?

https://scitools.org.uk/cartopy/docs/latest/crs/projections.html#geostationary

我可以说,在这个投影中,坐标是角度(乘以卫星高度)。可能是你正在寻找的。


推荐阅读