geopandas.read_file#

geopandas.read_file(filename, bbox=None, mask=None, columns=None, rows=None, engine=None, **kwargs)[来源]#

从文件或URL返回一个GeoDataFrame。

Parameters:
filenamestr, path object or file-like object

要打开的文件或URL的绝对路径或相对路径,或者任何具有read()方法的对象(例如打开的文件或StringIO)

bboxtuple | GeoDataFrame or GeoSeries | shapely Geometry, default None

通过给定的边界框、GeoSeries、GeoDataFrame或shapely几何体过滤要素。使用engine=”fiona”时,如果给定GeoSeries或GeoDataFrame,则会解决CRS不匹配的问题。使用engine=”pyogrio”时,bbox必须与数据集处于相同的CRS。元组为(minx, miny, maxx, maxy),以匹配shapely几何对象的边界属性。不能与mask一起使用。

maskdict | GeoDataFrame or GeoSeries | shapely Geometry, default None

过滤与给定的字典样式geojson几何图形、GeoSeries、GeoDataFrame或shapely几何图形相交的要素。
如果给定GeoSeries或GeoDataFrame,将解决CRS不匹配的问题。
不能与bbox一起使用。如果传入多个几何图形,系统将首先联合所有几何图形,这可能会消耗大量计算资源。

columnslist, optional

要从数据源导入的列名称列表。列名称必须与数据源中的名称完全匹配。要避免读取任何列(除了几何列),请传递一个空列表。默认情况下,读取所有列。

rowsint or slice, default None

通过传递一个整数(前n行)或一个slice()对象来加载特定行。

enginestr, “pyogrio” or “fiona”

用于读取文件的底层库。目前,支持的选项是“pyogrio”和“fiona”。如果安装了,默认为“pyogrio”,否则尝试使用“fiona”。引擎也可以通过 geopandas.options.io_engine 选项全局设置。

**kwargs

要传递给引擎的关键字参数,可以用于写入多层数据,存储数据在归档文件(压缩文件)中等。在“pyogrio”引擎的情况下,关键字参数被传递给 pyogrio.read_dataframe。在“fiona”引擎的情况下,关键字参数被传递给 fiona.open`。有关可能的关键字的更多信息,请输入:import pyogrio; help(pyogrio.read_dataframe)

Returns:
geopandas.GeoDataFrame or pandas.DataFrame

如果 ignore_geometry=True 将返回一个 pandas.DataFrame

笔记

格式驱动程序将尝试检测您数据的编码,但可能会失败。在这种情况下,可以通过使用编码关键字参数显式指定正确的编码,例如 encoding='utf-8'

当安装了pyarrow时,使用默认的pyogrio引擎更快速地读取数据,请将 use_arrow=True 作为参数传递。有关详细信息,请参见用户指南页面 读取和写入文件

当指定一个URL时,Geopandas将检查服务器是否支持读取部分数据,如果支持,它将直接将URL传递给底层引擎,底层引擎将使用GDAL的网络文件系统处理程序从URL读取数据。否则,Geopandas将从URL下载数据,并将所有数据在内存中传递给底层引擎。如果您需要更多控制URL的读取方式,可以手动指定GDAL虚拟文件系统(例如 /vsicurl/https://...)。有关文件系统的更多详细信息,请参见GDAL文档(https://gdal.org/user/virtual_file_systems.html#vsicurl-http-https-ftp-files-random-access).

示例

>>> df = geopandas.read_file("nybb.shp")  

指定GPKG的图层:

>>> df = geopandas.read_file("file.gpkg", layer='cities')  

只读取前10行:

>>> df = geopandas.read_file("nybb.shp", rows=10)  

仅读取与 mask 相交的几何图形:

>>> df = geopandas.read_file("nybb.shp", mask=polygon)  

仅读取与 bbox 相交的几何形状:

>>> df = geopandas.read_file("nybb.shp", bbox=(0, 0, 10, 20))