is_land 在底图中 (python)
is_land in basemap (python)
我一直在尝试用 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)
returns 错
但未指定区域时
map = Basemap(projection='cyl', resolution='f')
value = map.is_land(11.61168822665539, 57.86868795294363)
print(value)
returns 正确
我不明白为什么。
我确实需要指定区域,否则代码会比 运行 慢 5-6 倍。
您 is_land
应用不正确。根据 http://matplotlib.org/basemap/api/basemap_api.html?highlight=is_land#mpl_toolkits.basemap.Basemap.is_land
is_land
returns 如果给定的 x,y 点(在投影坐标中)在陆地上,则为 True,否则为 False。土地的定义是基于
与 class 实例关联的 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
我一直在尝试用 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)
returns 错
但未指定区域时
map = Basemap(projection='cyl', resolution='f')
value = map.is_land(11.61168822665539, 57.86868795294363)
print(value)
returns 正确
我不明白为什么。
我确实需要指定区域,否则代码会比 运行 慢 5-6 倍。
您 is_land
应用不正确。根据 http://matplotlib.org/basemap/api/basemap_api.html?highlight=is_land#mpl_toolkits.basemap.Basemap.is_land
is_land
returns 如果给定的 x,y 点(在投影坐标中)在陆地上,则为 True,否则为 False。土地的定义是基于
与 class 实例关联的 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