【问题标题】:Plotting equal area map around a given Lat-Long using Cartopy使用 Cartopy 在给定的经纬度周围绘制等面积地图
【发布时间】:2020-12-19 19:29:54
【问题描述】:

我想在用户输入的纬度和经度周围制作一张方形地图。

import cartopy.crs as ccrs
import matplotlib.pyplot as plt 
import cartopy.feature  
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
x=float(input('Enter latitude:'))
y=float(input('Enter longitude:')) 

ax = plt.axes(projection=ccrs.PlateCarree())
ax.set_extent([y-10,y+10,x-10,x+10],ccrs.PlateCarree())

ax.coastlines()
ax.gridlines(draw_labels=True)
plt.show()

剧情不错 如果我不走向两极,这可行-

这里不计算地球的球度,停止在90度-

如果我将投影改为正交,极点问题可能会解决。

import cartopy.crs as ccrs
import matplotlib.pyplot as plt 
import cartopy.feature  
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
 
x=float(input('Enter latitude:'))
y=float(input('Enter longitude:')) 

ax = plt.axes(projection=ccrs.Orthographic(y,x))
ax.set_extent([y-10,y+10,x-10,x+10],ccrs.PlateCarree())


ax.coastlines()
ax.gridlines(draw_labels=True)

plt.show() 

我认为考虑了球形度,当我靠近赤道时,我可能会得到一个很好的正方形图。但是,当我接近两极时,正方形会开始缩小,最终我不会得到一个好的区域,因为我必须从那个正方形区域获取纬度和经度,并用它们计算一些值。

例如,下面有两个图

在 lat=80 long = 60 处绘制

这张图片澄清了这个问题。我也需要截然相反的一面,所以纬度应该再次从 90 开始减少到 0,但是经度会再次改变。这样,我无处可去,卡住了。

在 lat = 22 和 long = 78 处绘制

第一个变成矩形,第二个变成正方形。如何使它们与任何给定的经纬度面​​积相等?

即使我将set_extent 的投影更改为LCC 或任何其他,我也无法根据中心设置范围。

【问题讨论】:

    标签: python matplotlib cartopy


    【解决方案1】:

    解决方案相当简单,我完全误解了正交投影的工作原理。在正交投影中投影和设置范围都可以正常工作。这是解决方案-

    import cartopy.crs as ccrs
    import matplotlib.pyplot as plt 
    import numpy as np 
    x=float(input('Enter latitude:'))
    y=float(input('Enter longitude:')) 
    ax = plt.axes(projection=ccrs.Orthographic(y,x))
    ax.set_extent((-1000000,1000000,-1000000,1000000),ccrs.Orthographic(y,x))
    ax.coastlines('50m')
    ax.gridlines(draw_labels=True)
    plt.show()
    
    

    在 lat = 90 和 long = 180 处绘制

    在 lat=22 和 long = 88 处绘制

    两张地图清楚地覆盖了给定纬度、经度值周围的相同区域。 谢谢!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 2020-07-17
      • 2019-02-28
      • 2012-04-19
      相关资源
      最近更新 更多