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
orpandas.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))