gpt4 book ai didi

python - basemap 中的 is_land(python)

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:48 24 4
gpt4 key购买 nike

我一直在尝试使用 mpl_toolkits.basemap 中的 .is_land 来掩盖陆地。

运行以下代码时:

map = basemap (llcrnrlon = 7.298914095230308,llcrnrlat = 58.98235690451632,
urcrnrlon = 12.27072348324015,urcrnrlat =
57.92306182768044,projection='cyl', resolution='f')

value = map.is_land(11.61168822665539, 57.86868795294363)

print(value) 返回 False

但是当没有指定区域时

map = Basemap(projection='cyl', resolution='f')

value = map.is_land(11.61168822665539, 57.86868795294363)

print(value) 返回 True

我不明白为什么。

我确实需要指定区域,否则代码运行速度会慢 5-6 倍。

最佳答案

您错误地应用了 is_land。根据http://matplotlib.org/basemap/api/basemap_api.html?highlight=is_land#mpl_toolkits.basemap.Basemap.is_landis_land 如果给定的 x,y 点(在投影坐标中)在陆地上,则返回 True,否则返回 False。土地的定义是基于与类实例关联的 GSHHS 海岸线多边形。积分 陆地区域内的湖泊不算陆地点。

这意味着您必须将经纬度坐标转换为投影的 x,y,然后运行 ​​is_land。喜欢这里:

map = Basemap(llcrnrlon = 7.298914095230308, llcrnrlat = 58.98235690451632, 
urcrnrlon = 12.27072348324015, urcrnrlat =
57.92306182768044,projection='cyl', resolution='f')

lon, lat = 11.61168822665539, 57.86868795294363) # test coords
xpt, ypt = map( lon, lat ) # convert to projection map
value = map.is_land(xpt, ypt) # test is_land

关于python - basemap 中的 is_land(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43299279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com