如何将matplotlib文件导出到kml

gc0ot86w  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(116)

bounty将在5天内到期。此问题的答案有资格获得+50声望奖励。Chopin希望引起更多关注这个问题。

我尝试使用kml格式导出matplotlib图。这个问题与下面的问题相同:
Export Python Plot to KML
我已经概述了确切的功能,但我不能让kml输出工作。相反,如果我导出一个simplekml函数,它可以正常工作。
我已经附上了下面的两个输出。输出% 1% 1工作,但% 2不工作。
输出1:

import simplekml
kml = simplekml.Kml()
kml.newpoint(name="Kirstenbosch", coords=[(18.432314,33.988862)])
kml.save("botanicalgarden.kml")

但是当尝试将matplotlib函数传递给simplekml函数时,我返回以下输出。我做错了什么?
输出2:

import matplotlib
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as ppl
from pylab import rcParams
import simplekml
rcParams['figure.figsize'] = (8,8)

# create rectangle over 0 to 10 degrees longitude and 0 to 10 degrees latitude
x = [0, 10, 10, 0, 0]
y = [10, 10, 0, 0, 10]
x1 = range(0,11)    # to draw a diagonal line

fig = ppl.figure(1)
ax = fig.add_axes([0,0,1,1])
ax.axis('off')
fig.patch.set_facecolor('blue')  # so we can see the true extent

ppl.plot(x, y, 'r', linewidth=3)
ppl.plot(x, y, '.b', linewidth=3)
ppl.plot(x1, x1, 'g', linewidth=3)

ppl.axis('off')
border1 = ppl.axis()

if False:
    ppl.show()
else:
    pngName = 'Overlay.png'
    fig.savefig(pngName, facecolor=fig.get_facecolor(), transparent=False)

bottomleft  = (border1[0],border1[2])
bottomright = (border1[1],border1[2])
topright    = (border1[1],border1[3])
topleft     = (border1[0],border1[3])

kml = simplekml.Kml()
ground = kml.newgroundoverlay(name='GroundOverlay')
ground.icon.href = pngName
ground.gxlatlonquad.coords =[bottomleft, bottomright, topright, topleft]
kml.save("GroundOverlay.kml")

vd2z7a6w

vd2z7a6w1#

确保您已执行以下操作:

pip install matplotlib
pip install basemap
pip install simplekml

此外,检查您是否在正确的工作目录中。此外,请确保您在目标目录中具有必要的权限。如果程序没有写入权限,则无法保存KML文件。此外,检查兼容性问题:您使用的mpl_toolkits.basemapmatplotlib版本之间可能存在兼容性问题。
最后,我能够很好地运行您的代码。见下图:

您提供的代码:

相关问题