Python映射:在街道地图上绘制选举边界?

时间:2019-05-31 14:06:53

标签: python gis shapefile

我会认为这是如此简单,几乎在任何映射文档中都是示例1。但这似乎不...我想使用Cartopy在地图上绘制选民的边界。我可以以MapInfo或ShapeFile形式下载选民的GIS数据。一年前,当我尝试这样做时,我能找到的唯一方法是提取MapInfo多边形的经/纬度坐标,并使用matplotlib进行绘制。

今年我想变得更加优雅。有了MapInfo文件,我可以通过以下方式隔离我的特定选民

import geopandas as gpd

v = gpd.read_file('VicMaps/vic-july-2018-mid-mif/E_VIC18.MIF')
cg = v.loc[7].geometry

下面是我从shapefile中提取特定单个边界的工作。

另一个问题是,当我尝试在jupyter中运行此程序时,尝试绘制地图会导致内核(python 3.4)崩溃。

某处必须有此示例,但是到目前为止,我还没有找到适用于我的数据的示例。到目前为止,这是我从其他对他人问题的各种有用答案中总结出来的:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.io.shapereader import Reader
from cartopy.io.img_tiles import OSM

shp = Reader('VicMaps/E_AUGFN3_region.shp')

fig = plt.figure(figsize=(16,16))

tiler = OSM()
ax = plt.axes(projection=tiler.crs)
ax.set_extent([144.956158, 145.085398, -37.813662,  -37.690999])

for r, g in zip(shp.records(), shp.geometries()):
    if r.attributes['Elect_div'] == 'Cooper':
        ax.add_geometries(g, ccrs.Geodetic())

plt.show()

但是发生的是内核只是“意外地”死亡。

如果有人可以指出解决方案的方向,我将非常高兴!另外:我不喜欢卡托普;如果有更好的包装,我会用它。

谢谢!

0 个答案:

没有答案