相关疑难解决方法(0)

防止未网格 pcolor(mesh) 数据出现虚假水平线

当我有一段跨越反子午线的未网格纬度/经度/数据对时,经度从 -180 交换到 +180,如何防止 cartopy 绘制pcolor(mesh)填充整个地球的网格单元?我的问题与此处的问题相同,只是我使用的是cartopy而不是basemap. 对链接问题(关于basemap)的一条近 5 年的评论声称有一个cartopy解决方案,但尚未发布。

\n\n

示例代码:

\n\n
#!/usr/bin/env python3.6\n\nimport numpy\nimport matplotlib.pyplot\nimport cartopy.crs\n\nlons = numpy.array([[-174.719, -175.297, -175.883],\n       [-175.164, -175.734, -176.312],\n       [-175.594, -176.164, -176.734],\n       [-176.016, -176.578, -177.148],\n       [-176.43 , -176.984, -177.547],\n       [-176.836, -177.383, -177.938],\n       [-177.227, -177.773, -178.312],\n       [-177.609, -178.148, -178.688],\n       [-177.984, -178.516, -179.047],\n       [-178.352, -178.875, -179.398],\n       [-179.727,  179.766,  179.266],\n       [ 179.945,  179.445,  178.945],\n       [ 179.625,  179.133,  178.641],\n       [ 179.312,  178.828,  178.336],\n       [ 179.008,  178.523,  178.039],\n …
Run Code Online (Sandbox Code Playgroud)

python matplotlib cartopy

5
推荐指数
2
解决办法
2701
查看次数

在Basemap中绘制包装路径

我试图绘制一个卫星地面轨道.我有一个度数的纬度和经度列表.经度值均为-180至+180度.我的第一个问题是使用latlon关键字(顺便说一句,我通过PyCall.jl包在Julia中使用它,所以请原谅看起来很奇怪的语法):

map = Basemap.Basemap(projection="mill",lon_0=0)
map[:drawcoastlines]()
map[:drawparallels](-90:30:90,labels=[1,0,0,0])
map[:drawmeridians](map[:lonmin]:60:map[:lonmax]+30,labels=[0,0,0,1])
map[:plot](lon,lat,color="red",latlon=true)
Run Code Online (Sandbox Code Playgroud)

奇怪的情节

这是......不应该是什么样子.我不确定问题是什么.但是,如果我先转换为地图坐标:

xx,yy = map(lon,lat) 
map[:plot](xx,yy,color="red")
Run Code Online (Sandbox Code Playgroud)

更好的情节

这要好得多,除了经度从+180到-180之间的线.有什么建议使这看起来更好?

可以在此处找到用于生成这些图的纬度,经度对(以度为单位).

python maps plot matplotlib-basemap

3
推荐指数
1
解决办法
1663
查看次数

标签 统计

python ×2

cartopy ×1

maps ×1

matplotlib ×1

matplotlib-basemap ×1

plot ×1