Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是基线图中的陆地(python)_Python_Matplotlib Basemap - Fatal编程技术网

是基线图中的陆地(python)

是基线图中的陆地(python),python,matplotlib-basemap,Python,Matplotlib Basemap,我一直在试图用mpl\u工具包.basemap中的.is\u land来屏蔽land 运行以下代码时: map=Basemap(llcrnrlon=7.298914095230308,llcrnrlat=58.98235690451632, urcrnrlon=12.27072348324015,urcrnrlat= 57.92306182768044,投影='cyl',分辨率='f') value=map.is_-land(11.6116882265539,57.86868795294363)

我一直在试图用
mpl\u工具包.basemap
中的
.is\u land
来屏蔽land

运行以下代码时:

map=Basemap(llcrnrlon=7.298914095230308,llcrnrlat=58.98235690451632,
urcrnrlon=12.27072348324015,urcrnrlat=
57.92306182768044,投影='cyl',分辨率='f')

value=map.is_-land(11.6116882265539,57.86868795294363)

打印(值)
返回False

但当不指定区域时

map=Basemap(投影='cyl',分辨率='f')

value=map.is_-land(11.6116882265539,57.86868795294363)

打印(值)
返回True

我不知道为什么


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

您应用的
不正确。根据
is_land
如果给定的x,y点(在投影坐标中)在land上,则返回True,否则返回False。土地的定义基于 GSHHS与类实例关联的海岸线多边形。要点 陆地区域内的湖泊上方不算作陆地点

这意味着您必须将横向坐标转换为投影的x,y,然后运行
is\u 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

使用
projection='cyl'
,它是板卡利投影。因此,您可以在
map.is\u land()
中使用以度数表示的lat。换句话说,在这种情况下,
xpt,ypt=map(lon,lat)