Python: 只使用了 shapefile 的一部分

Python: Only using part of a shapefile

我正在使用 Python 3.6 创建显示北美降水数据的地图。到目前为止,我的代码将我的数据提取到 shapefile 中,然后将其绘制在地图上。

我的问题是我下载的 shapefile 包含所有大陆的形状。我想知道有没有一种方法只能从我的 shapefile 阅读北美大陆的内容?

如果这不可能,那么有人知道我在哪里可以下载只有北美的 shapefile 吗?谢谢!

这是我的代码中读取 shapefile:

的部分
import shapefile
sf=shapefile.Reader('continents')

这是 shapefile 的 link

看一下您提到的 shapefile,我们可以看到它的属性 Table(即 "CONTINENT")中有一个属性。因此,我们需要搜索所有的形状和select符合你想要的大陆(北美)的形状,像这样:

import shapefile

#read the shapefile
sf=shapefile.Reader('continent.shp')

#obtain shapes and its records
#the shapes are the actual coordinate points 
#the record contains all attributes related to each shape
shape_records = sf.shapeRecords()

#search for the ones with desired records
#this shapefile has only one attribute calles CONTINENT
desired_shapes = []
for s in shape_records:
    if s.record[0] == 'North America':
        desired_shapes.append(s.shape)
        #or do whatever you want with that element s.shape is the actual shape

如果您想查看描述 shapefile 用法的 this 页面。使用工具(如 QGis)查看数据具有哪些属性非常有用,这样您就可以继续以编程方式检测它们。