geopandas.GeoDataFrame.to_file#
- GeoDataFrame.to_file(filename, driver=None, schema=None, index=None, **kwargs)[来源]#
将
GeoDataFrame写入文件。默认情况下,会写入ESRI shapefile,但可以写入任何Pyogrio或Fiona支持的OGR数据源。支持的OGR提供程序的字典可通过以下方式获取:
>>> import pyogrio >>> pyogrio.list_drivers()
- Parameters:
- filenamestring
要写入的文件路径或文件句柄。路径可以指定一个 GDAL VSI 方案。
- driverstring, default None
用于写入矢量文件的OGR格式驱动程序。 如果未指定,它会尝试从文件扩展名中推断。如果未指定扩展名,它将把ESRI Shapefile保存到一个文件夹。
- schemadict, default None
如果指定,模式字典将传递给Fiona,以更好地控制文件的写入。如果为None,GeoPandas将根据每一列的dtype来确定模式。对于“pyogrio”引擎不支持。
- indexbool, default None
如果为True,则将索引写入一个或多个列(适用于MultiIndex)。 默认None仅在索引命名、为MultiIndex或具有非整数数据类型时,将索引写入一个或多个列。如果为False,则不写入索引。
在版本 0.7 中新增:之前索引没有被写入。
- modestring, default ‘w’
写入模式,‘w’表示覆盖现有文件,‘a’表示追加。并非所有驱动程序都支持追加。支持追加的驱动程序列在fiona.supported_drivers或Toblerity/Fiona中。
- crspyproj.CRS, default None
如果指定,CRS 将传递给 Fiona,以更好地控制文件的写入方式。如果为 None,GeoPandas 将根据 crs df 属性确定 crs。该值可以是任何被
pyproj.CRS.from_user_input()接受的内容,例如权威字符串(例如“EPSG:4326”)或 WKT 字符串。该关键字不支持“pyogrio”引擎。- enginestr, “pyogrio” or “fiona”
用于写入文件的底层库。目前,支持的选项是“pyogrio”和“fiona”。如果已安装,默认使用“pyogrio”,否则尝试“fiona”。
- metadatadict[str, str], default None
可选的元数据可以存储在文件中。键和值必须是字符串。仅支持“GPKG”驱动程序。
- **kwargs
要传递给引擎的关键字参数,可以用于写入多层数据、将数据存储在档案(zip 文件)中等。在“pyogrio”引擎的情况下,关键字参数被传递给pyogrio.write_dataframe。在“fiona”引擎的情况下,关键字参数被传递给 fiona.open`。有关可能的关键字的更多信息,请输入:
import pyogrio; help(pyogrio.write_dataframe)。
另请参阅
GeoSeries.to_fileGeoDataFrame.to_postgis将GeoDataFrame写入PostGIS数据库
GeoDataFrame.to_parquet将GeoDataFrame写入parquet
GeoDataFrame.to_feather将GeoDataFrame写入feather
笔记
格式驱动程序将尝试检测您数据的编码,但可能会失败。在这种情况下,可以通过使用编码关键字参数显式指定正确的编码,例如
encoding='utf-8'。示例
>>> gdf.to_file('dataframe.shp')
>>> gdf.to_file('dataframe.gpkg', driver='GPKG', layer='name')
>>> gdf.to_file('dataframe.geojson', driver='GeoJSON')
使用选定的驱动程序,您还可以通过 mode=”a” 追加到文件中:
>>> gdf.to_file('dataframe.shp', mode="a")
使用特定于引擎的关键字参数,可以例如创建一个具有自定义图层名称的spatialite文件:
>>> gdf.to_file( ... 'dataframe.sqlite', driver='SQLite', spatialite=True, layer='test' ... )