有没有办法使用 geopandas 加载 <class '_io.BufferedReader'> 对象?

Is there a way to load a <class '_io.BufferedReader'> object using geopandas?

我正在尝试将 shapefile 作为包数据包含在 Python 中,但我很难理解如何处理 stream 数据。 Pandas' read_excel() 和 read_csv() 工作得很好,但是当我尝试访问更复杂的文件类型时,我不知道我应该做什么:

CPLE_OpenFailedError                      Traceback (most recent call last)
fiona/_shim.pyx in fiona._shim.gdal_open_vector()

fiona/_err.pyx in fiona._err.exc_wrap_pointer()

CPLE_OpenFailedError: '/vsimem/234656ed68374e389c0c432547115bb1' not recognized as a supported file format.

返回的文件类型是 <class '_io.BufferedReader'> 对象。我希望 geopandas.read_file() 或 fiona.open() 能够解决这个问题,但我认为我错过了关键的一步。这样可以加载地理空间数据吗?

geopandas.read_file() 通常应该使用 GeoPandas 0.9.0 或更新版本打开它。以下代码段适用于我。如果您有一些不起作用的细节,请尝试用一个最小的可重现示例来扩展您的问题。

>>> import geopandas as gpd
>>> import io

>>> df = gpd.read_file(gpd.datasets.get_path('nybb'))
>>> df.to_file('tst.json', driver="GeoJSON")

>>> f = io.open("tst.json", "rb")
>>> type(f)
_io.BufferedReader

>>> df = gpd.read_file(f)