Python 在底图上绘制 shapefile
Python Plotting a shapefile on a basemap
我正在使用 python 3.6 绘制包含 U.S 中大分水岭的 shapefile。我 运行 遇到的问题是这个 shapefile 有很多组件,例如 .dbf 文件、.prj 文件......等等。我不确定我是否必须单独读取所有文件然后绘制,或者是否有一个命令可以让我一次读取所有文件然后绘制。
到目前为止,这是我的代码:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
mydbf =('filename.dbf')
myprj =('filename.prj')
myqpj =('filename.qpj')
myshp =('filename.shp')
myshx =('filename.shx')
map= Basemap(projection='cyl',
lon_0=180,
lat_0=0,
resolution='l')
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='#ddaa66',lake_color='aqua')
map.drawcoastlines()
map.readshapefile(mydbf,myprj,myqpj,myshp,myshx,'Watersheds')
plt.show()
我在 运行 此代码时收到的错误消息是:
OSError: cannot locate filename.dbf.shp
在 readthedocs 的 basemap tutorial 中,它清楚地说明了 readshapefile
函数
The first parameter shapefile name must go without the shp extension. The library assumes that all shp, sbf and shx files will exist with this given name
因此你的电话应该是
map.readshapefile("filename",'Watersheds')
我正在使用 python 3.6 绘制包含 U.S 中大分水岭的 shapefile。我 运行 遇到的问题是这个 shapefile 有很多组件,例如 .dbf 文件、.prj 文件......等等。我不确定我是否必须单独读取所有文件然后绘制,或者是否有一个命令可以让我一次读取所有文件然后绘制。
到目前为止,这是我的代码:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
mydbf =('filename.dbf')
myprj =('filename.prj')
myqpj =('filename.qpj')
myshp =('filename.shp')
myshx =('filename.shx')
map= Basemap(projection='cyl',
lon_0=180,
lat_0=0,
resolution='l')
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='#ddaa66',lake_color='aqua')
map.drawcoastlines()
map.readshapefile(mydbf,myprj,myqpj,myshp,myshx,'Watersheds')
plt.show()
我在 运行 此代码时收到的错误消息是:
OSError: cannot locate filename.dbf.shp
在 readthedocs 的 basemap tutorial 中,它清楚地说明了 readshapefile
函数
The first parameter shapefile name must go without the shp extension. The library assumes that all shp, sbf and shx files will exist with this given name
因此你的电话应该是
map.readshapefile("filename",'Watersheds')