我目前正在研究世界地图的可视化。现在,我可以使用自制的软件来实现可视化和点投影(Java),但我想升级该软件,以便能够在Python中使用类似的工具。
因此,我想将cartopy与PROJ4模块一起使用,而不是重新编码所有内容,并使用现有的出色库。
它完全适用于PlateCarree投影,但是当我要使用“近侧透视”时,我发现这两种方法之间的差别很小。
以下两张图片是从Java软件(1)和cartopy图(2)中提取的。
Cartopy(0.17)与matplotlib(3.0.2)和proj4(4.9.1)一起使用。在两张图片中,我们都在lon = lat = 0°和400 km处观察。
这是第一张图片(Java): Java visualization
这里是第二个(Cartopy): Cartopy representation
正如人们所观察到的那样,土地在地形图上的代表过多。假设我想获得与Java软件中的投影完全相同的投影(与电信领域中的“ TrueView angles”相同的表示形式),我在the cartopy crs module中发现:
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).
"""
所以我有一个问题:这是关于哪个投影的?角度是否固定,这意味着我有未发现的问题?还是在切平面上的正交投影?在这种情况下,角度是不守恒的,因此我需要一个解决方案来应用另一个投影(在我的情况下是正确的)。我可能会使用错误的...
感谢您的时间,
楼
答案 0 :(得分:0)
我不确定这是否是正交投影,但是CartoPy使用的是直接来自Proj4:
https://proj4.org/operations/projections/nsper.html
我认为此“近侧透视”坐标中的坐标是笛卡尔距离(与平面上原点的距离),而不是角度。听起来像是投影中使用的角度。您是否考虑过使用地球同步投影,但卫星高度不同?
https://scitools.org.uk/cartopy/docs/latest/crs/projections.html#geostationary
我可以说在这个投影中,坐标是角度(乘以卫星高度)。可能就是您要寻找的东西。