python - 它是近侧透视图中的正交投影吗?
问题描述
我目前正在研究世界地图可视化。目前,我可以使用自制软件进行可视化和点投影(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).
"""
所以我得到了这个问题:这是关于哪个投影的?是否保留了角度,这意味着我有一个未被发现的问题?或者它是切平面上的正交投影?在这种情况下,角度是不守恒的,我需要一个解决方案来应用另一个投影(在我的例子中是正确的)。我可能用错了...
谢谢你的时间,
娄
解决方案
我不确定它是否是正交投影,但 CartoPy 使用的是直接来自 Proj4 的:
https://proj4.org/operations/projections/nsper.html
我认为这个近侧透视坐标中的坐标是笛卡尔距离(到平面上原点的距离),而不是角度。听起来角度是用于投影的。您是否考虑过使用地球同步投影,但使用不同的卫星高度?
https://scitools.org.uk/cartopy/docs/latest/crs/projections.html#geostationary
我可以说,在这个投影中,坐标是角度(乘以卫星高度)。可能是你正在寻找的。
推荐阅读
- git - github不接受令牌
- python - mpi4py 在函数之间广播 numpy 数组
- python - 如何在 matplotlib 中制作带有图像的颜色条?
- laravel - 如何更改 Laravel Mailable 模板中的标题徽标?
- java - 如何从 JAVA 调用 AWS lambda 函数?
- php - 在 PhpMyAdmin 中创建表时 MySQL 错误 1064
- openoffice-calc - 在开放式办公室中进行 vlookup 的正确语法
- java - Keylistener 无法一次处理多个键
- python - 如何使用存储在列表中的字符串作为变量名?(Python)
- python - 如何使用 python folium marker 保存自定义信息?