如何使用Basemap在Python中绘制GIS数据库?

问题描述

我需要在Python中绘制一个shapefile,它应该像这样简单:

m = Basemap(...)
m.readshapefile(path/filename,'.shp',...)

但是,我需要的数据包含在GIS数据库中,没有任何.shp文件(您可以从here下载)。我不知道如何使用底图绘制此数据,因为我对GIS的知识为零。你有什么主意吗?

解决方法

解决了! (感谢@gherka的建议)

  1. 导入geopandas和fiona,并检查'​​OpenFileGDB'是否在受支持的驱动程序中:
import geopandas as gpd
import fiona

fiona.supported_drivers
  1. 将.gdb文件转换为.shp(就我而言,您可能需要指定要转换的层!):
faults = gpd.read_file('./Qfaults_2020_WGS84.gdb/',layer=1)
faults.to_file("faults.shp")
  1. 使用底图绘制.shp文件:
    m = Basemap(projection='merc',resolution='i',llcrnrlon=llcrnrlon,llcrnrlat=llcrnrlat,urcrnrlon=urcrnrlon,urcrnrlat=urcrnrlat)
    m.readshapefile('./faults','.shp',linewidth=0.25,color='r',default_encoding='ISO8859-1')