我有一个程序可以在各种地图软件(例如Google Earth和Leaflet)上绘制数据。
我需要表示一个数据集,该数据集以numpy数组的形式存储在Google Earth上,并使用正方形多边形作为相应kml文件中的数据格式。
Pcolormesh产生一个彩色正方形网格。此外,它允许您提取每个正方形的顶点的坐标。如果然后将它们输入到simplekml库的多边形制作器中,它将很好用,只有我无法弄清楚如何从matplotlib中提取颜色数据并将其传递给我正在创建的对象。我一直在尝试从文档中找出答案。
这是我到目前为止所拥有的。该示例使用Cartopy,但我相信只有matplotlib引起了我的问题。
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.examples.waves import sample_data
import pdb
import simplekml
ax = plt.axes(projection=ccrs.Robinson())
ax.set_global()
lons, lats, data = sample_data(shape=(20, 40))
default_cmap = 'RdBu_r'
def make_path_polygons(mesh):
kml = simplekml.Kml()
paths = mesh.get_paths()
for path in paths:
kml.newpolygon(name="newpoly", outerboundaryis=path.vertices)
#NEED TO SET COLOR HERE
kml.save("gridpaths.kml")
mesh = plt.pcolormesh(lons, lats, data, transform=ccrs.PlateCarree(), cmap=default_cmap)
print(mesh.get_facecolors()) #Result: array([[0.1215, 0.4667, 0.7058]]), I would have hoped this returned a sequence corresponding to the coordinate data, but seems it does not
make_path_polygons(mesh)
ax.coastlines()
ax.gridlines()
plt.savefig("pcm.png")
我理解GE结果为何是无色的,因为现在我仅将坐标数据传递给simplekml,而没有其他任何传递。但是如何从mpl.QuadMesh对象中获取数据呢?任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
应通过array
的{{1}}获得完整的颜色信息,以及正在使用的颜色图和规范。
QuadMesh