我有近60个来自美国人口普查的压缩形状文件,属于不同的州。我想将它们合并成一个全国性的形状文件。我试过很多不同的方法,包括尝试使用read_file读取文件和各种其他使用csv文件或者shp文件本身的Python/pandas/geopandas示例进行下载。如果可能的话,我希望避免解压缩形状文件。据我所知,geopandas.read_file可以很好地处理压缩的形状文件(例如:https://www2.census.gov/geo/tiger/TIGER2010/TABBLOCK/2010/tl_2010_01_tabblock10.zip)。
但现在我已经把这些文件存到了本地。
下面是我在笔记本上尝试的代码:
from pathlib import Path
import pandas
import geopandas
folder = Path("/Users/kyle/Desktop/jupyter-env/blocks")
shapefiles = folder.glob("*.zip")
gdf = pandas.concat([
geopandas.read_file(shp)
for shp in shapefiles
]).pipe(geopandas.GeoDataFrame)
gdf.to_file(folder / 'compiled.shp')
我收到了消息 ValueError: No objects to concatenate
。
我可能漏掉了什么。 ZIP文件是不是和CSV文件有所不同?是否可以循环遍历本地或远程文件列表并将压缩的形状文件合并成一个大文件?
folder = Path("./blocks")
才能让它正常工作。不确定为什么整个路径从(从终端pwd
)没有起作用,但没关系。 - Kyle Pennell