fiona package

子模块

fiona.collection 模块

class fiona.collection.BytesCollection(bytesbuf, **kwds)

基类:fiona.collection.Collection

BytesCollection采用字节缓冲区并将其映射到虚拟文件,然后由fiona打开。

close()

删除与类关联的虚拟文件。

class fiona.collection.Collection(path, mode='r', driver=None, schema=None, crs=None, encoding=None, layer=None, vsi=None, archive=None, enabled_drivers=None, crs_wkt=None, ignore_fields=None, ignore_geometry=False, **kwargs)

基类:object

一个类似文件的矢量数据集特性接口

Python文本文件对象是文件行上的迭代器。Fiona Collections 是类似的迭代器(不是列表!)覆盖以类似 GeoJSON的映射表示的特性。

property bounds

返回 (minx, miny, maxx, maxy).

close()

在追加或写入模式下,将数据刷新到磁盘,然后结束访问。

property closed

如果可以访问数据就显示``False``,否则就显示``True`` .

property crs

返回Proj4字符串。

property crs_wkt

返回WKT字符串。

property driver

返回正确的OGR驱动程序的名称。

filter(*args, **kwds)

返回对记录的迭代器,但由与提供的 bbox, a (minx, miny, maxx, maxy) tuple or a geometry mask. An attribute filter can be set using an SQL where clause, which uses the OGR SQL dialect .

位置参数 stopstart, stop[, step] 允许迭代跳过项或停在特定项。

flush()

刷新缓冲区。

get(item)
guard_driver_mode()
items(*args, **kwds)

返回通过fid、记录对的迭代器,可以选择通过与提供的 bbox, a (minx, miny, maxx, maxy) tuple or a geometry mask. An attribute filter can be set using an SQL where clause, which uses the OGR SQL dialect .

位置参数 stopstart, stop[, step] 允许迭代跳过项或停在特定项。

keys(*args, **kwds)

返回FIDS上的迭代器,也可以通过与提供的 bbox, a (minx, miny, maxx, maxy) tuple or a geometry mask. An attribute filter can be set using an SQL where clause, which uses the OGR SQL dialect .

位置参数 stopstart, stop[, step] 允许迭代跳过项或停在特定项。

property meta

返回带有驱动程序、架构、crs和其他属性的映射。

next()

从迭代器返回下一条记录。

property profile

返回带有驱动程序、架构、crs和其他属性的映射。

property schema

返回描述数据架构的映射。

映射包含“geometry”和“properties”项。前者是一个字符串,如“point”,后者是一个按数据文件中字段顺序排列的有序映射。

validate_record(record)

将记录与集合的架构进行比较。

如果记录匹配就返回 True ,否则就返回``False`` .

validate_record_geometry(record)

将记录的几何图形与集合的架构进行比较。

如果记录匹配就返回 True ,否则就返回``False`` .

values(*args, **kwds)

返回对记录的迭代器,但由与提供的 bbox, a (minx, miny, maxx, maxy) tuple or a geometry mask. An attribute filter can be set using an SQL where clause, which uses the OGR SQL dialect .

位置参数 stopstart, stop[, step] 允许迭代跳过项或停在特定项。

write(record)

准备一个写入磁盘的记录。

注意:此方法的每次调用都将启动并提交一个与数据源唯一的事务。

writerecords(records)

准备多个写入磁盘的记录。

fiona.collection.get_filetype(bytesbuf)

检测bytesbuf的压缩类型。

仅限ZIP.TODO: 添加其他与GDAL/OGR相关的内容。

fiona.compat 模块

fiona.compat.strencode(instr, encoding='utf-8')

fiona.crs 模块

参考坐标系和功能

PROJ.4是这片土地的法律:http://proj.osgeo.org/。但是, PROJ.4坐标参考系是由参数字符串描述的,例如

+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

这里我们使用映射:

{'proj': 'longlat', 'ellps': 'WGS84', 'datum': 'WGS84', 'no_defs': True}

fiona.crs.from_epsg(code)

给定一个整数代码,返回一个类似EPSG的映射。

注意:输入代码未针对EPSG数据库进行验证。

fiona.crs.from_string(prjs)

将PROJ.4字符串转换为参数映射。

像“+no-defs”这样的裸参数的值为 True . 根据``all_proj_keys``列表检查所有密钥。

fiona.crs.to_string(crs)

将参数映射转换为更传统的PROJ.4 字符串。

映射密钥是针对``all_proj_keys``列表进行测试的。省略了 True 的值,保留了密钥{'no_defs': True} -> "+no_defs",并且省略值不是str、int或float的项。

fiona.drvsupport 模块

fiona.env 模块

Fiona的GDAL/AWS环境

class fiona.env.Env(session=None, **options)

基类:object

GDAL和AWS配置的抽象

GDAL库是有状态的:它有一个格式驱动程序注册表、一个错误堆栈和几十个配置选项。

Fiona与GDAL合作的方法是使用一个python上下文管理器来包装所有状态(参见pep 343,https://www.python.org/dev/pep s/pep-0343/)。当输入上下文时,注册GDAL驱动程序,配置错误处理程序,并设置配置选项。退出上下文后,将从注册表中删除驱动程序,并删除其他配置。

例子:

使用fiona.env(gdal_cachemax=512)作为env:

# 所有驱动程序都已注册,GDAL的栅格块缓存 # 大小设置为512MB。# 开始处理…… # 处理结束。

# 此时,配置选项被设置为其 # 先前(可能未设置)的值。

一个boto3 session或boto3 session构造函数参数 aws_access_key_id, aws_secret_access_key, aws_session_token 可以传递给Env的构造函数。在后一种情况下,将在需要时立即创建session。根据需要为GDAL配置AWS凭证。

credentialize()

获取凭据并配置GDAL

注意:如果GDAL环境已经有凭证,那么这个方法是一个no-op,除非session不是none。

没有

classmethod default_options()

默认配置选项

没有

dict

drivers()

返回已注册驱动程序的映射。

classmethod from_defaults(session=None, **options)

使用默认配置选项创建环境

session可选择的

一个Session对象.

**选项可选择的

GDAL配置选项的映射,例如, CPL_DEBUG=True, CHECK_WITH_INVERT_PROJ=False.

Env

Kwargs中的项目将覆盖在默认值上。

property is_credentialized

测试是否存在云凭据

布尔

class fiona.env.GDALVersion(major=0, minor=0)

基类:object

获取GDAL 版本和次版本组件以及版本之间比较的便捷类。这是高度简单化的,且假定版本的编号方案非常正常,且忽略除主要和次要组件之外的所有内容。

at_least(other)
major
minor
classmethod parse(input)

将输入的元组或字符串解析为GDALVersion。如果输入是GDALVersion实例,则返回该实例。

输入:GDALVersion的(主要,次要),字符串或实例的元组

GDALVersion 实例

classmethod runtime()

返回当前GDAL运行时的GDALVersion

class fiona.env.NullContextManager

基类:object

class fiona.env.ThreadEnv

基类:_thread._local

fiona.env.defenv(**options)

必要时创建默认环境。

fiona.env.delenv()

删除现有环境中的选项。

fiona.env.ensure_env(f)

在函数调用任何GDAL C函数之前确保存在env的装饰器。

f函数

函数。

函数包装器。

如果已经存在一个环境,包装器将不做任何事情,并立即使用给定的参数调用f。

fiona.env.ensure_env_with_credentials(f)

确保配置环境存在并具有证书。

f函数

函数。

函数包装器。

函数包装器检查f的第一个参数,如果第一个参数是带有方案“s3”的URI,则对环境进行认证。

如果已经存在一个环境,包装器将不做任何事情,并立即使用给定的参数调用f。

fiona.env.env_ctx_if_needed()

如果不存在,则返回Env

Env或无操作上下文管理器

fiona.env.getenv()

获取当前选项的映射。

fiona.env.hascreds()
fiona.env.hasenv()
fiona.env.require_gdal_version(version, param=None, values=None, is_max_version=False, reason='')

确保被调用函数或参数受运行时版本GDAL支持的装饰器。如果不满足条件,则发生GDALVersionError。

实例:

@require_gdal_version('2.2') def some_func():

使用小于2.2的运行时版本的GDAL调用`some_func`时,会引发GDALVersionErorr。

γ

@require_gdal_version('2.2', param='foo') def some_func(foo='bar'):

使用GDAL <2.2上任何值的参数`foo`调用`some_func`时,会引发GDALVersionError。

γ

@require_gdal_version('2.2', param='foo', values=('bar',)) def some_func(foo=None):

使用参数`foo`调用`some_func`并在GDAL <2.2上调用值'bar`会引发GDALVersionError。

version: tuple, string, or GDALVersion param: string (optional, default: None)

如果不存在 values ,那么将此参数与默认值以外的值一起使用,则至少需要 GDAL version.

values: tuple, list, or set (optional, default: None)

包含至少需要GDAL version`的值. `param 需要 values.

is_max_version: bool (optional, default: False)

如果 True 是表示提供的版本是允许的最大版本,而不是至少需要该版本。

reason: string (optional: default: '')

除了有关GDAL version的消息外,还向用户显示自定义错误消息。使用此选项可以解释在必要时对用户上下文所做的更改。

包装函数

fiona.env.setenv(**options)

在现有环境中设置选项。

fiona.errors 模块

exception fiona.errors.AttributeFilterError

基类:fiona.errors.FionaValueError

使用数据集处理SQL WHERE子句时出错。

exception fiona.errors.CRSError

基类:fiona.errors.FionaValueError

当crs映射既没有init项也没有proj项时。

exception fiona.errors.DataIOError

基类:OSError

涉及驱动程序注册或可用性的IO错误。

exception fiona.errors.DatasetDeleteError

基类:OSError

删除数据集失败

exception fiona.errors.DriverError

基类:fiona.errors.FionaValueError

封装不支持的驱动程序和驱动程序模式错误。

exception fiona.errors.DriverIOError

基类:OSError

特定于格式的驱动程序错误。

exception fiona.errors.DriverSupportError

基类:fiona.errors.DriverIOError

驱动程序不支持架构

exception fiona.errors.EnvError

基类:fiona.errors.FionaError

环境错误

exception fiona.errors.FieldNameEncodeError

基类:UnicodeEncodeError

无法对字段名进行编码。

exception fiona.errors.FionaDeprecationWarning

基类:UserWarning

关于Fiona功能降级的警告

exception fiona.errors.FionaError

基类:Exception

Base Fiona error

exception fiona.errors.FionaValueError

基类:ValueError

Fiona-特定值错误

exception fiona.errors.GDALVersionError

基类:fiona.errors.FionaError

如果GDAL的运行时版本不满足所需的GDAL版本时就会发生。

exception fiona.errors.GeometryTypeValidationError

基类:fiona.errors.FionaValueError

试图写入架构中的未指定的几何体类型

exception fiona.errors.SchemaError

基类:fiona.errors.FionaValueError

当模式映射没有属性或没有几何图形时。

exception fiona.errors.TransactionError

基类:RuntimeError

与GDAL transactions有关的失败

exception fiona.errors.UnsupportedGeometryTypeError

基类:KeyError

当Fiona不支持OGR几何类型时。

fiona.inspector 模块

fiona.inspector.main(srcfile)

fiona.io 模块

能够读写集合的类

class fiona.io.MemoryFile(file_or_bytes=None, filename=None, ext='')

基类:fiona.ogrext.MemoryFileBase

一个由内存文件支持的类似字节的对象。

在没有I/O的情况下允许进行读写格式化文件。

用初始字节创建的内存文件变为不可变的。不使用初始字节创建的内存文件可以使用类似文件的接口或数据集接口写入。

open(driver=None, schema=None, crs=None, encoding=None, layer=None, vfs=None, enabled_drivers=None, crs_wkt=None, **kwargs)

打开文件并返回Fiona collection集合对象。

如果数据已被写入,文件将以“r”模式打开。否则,文件将以“w”模式打开。

注意,没有 path 参数: MemoryFile 包含单个数据集,不需要指定路径。

其他参数是可选的且语义与 fiona.open() 的参数相同。

class fiona.io.ZipMemoryFile(file_or_bytes=None)

基类:fiona.io.MemoryFile

由内存中的zip文件支持的类似于字节的只读对象。

允许在不使用I/O的情况下读取包含格式化文件的zip文件。

open(path=None, driver=None, encoding=None, layer=None, enabled_drivers=None, **kwargs)

在压缩流中打开数据集。

路径str

一个zip文件中数据集是相对于存档根目录的路径。

Fiona collection对象

fiona.logutils 模块

记录帮助程序类。

class fiona.logutils.FieldSkipLogFilter(name='')

基类:logging.Filter

筛选字段跳过日志消息。

最多每个字段传递一条消息,每个循环跳过一条消息。

filter(record)

如果看不到就通过记录。

class fiona.logutils.LogFiltering(logger, filter)

基类:object

fiona.ogext 模块

class fiona.ogrext.FeatureBuilder

基类:object

从OGR功能指针构建Fiona特性。

此函数未分配任何OGR对象,特性参数未被破坏。

class fiona.ogrext.ItemsIterator

基类:fiona.ogrext.Iterator

class fiona.ogrext.Iterator

基类:object

提供对特征数据的迭代访问。

class fiona.ogrext.KeysIterator

基类:fiona.ogrext.Iterator

class fiona.ogrext.MemoryFileBase

基类:object

由内存文件支持的类似BytesIO class 的Base。

close()

关闭内存文件并释放分配的内存。

exists()

测试内存文件是否存在。

布尔

如果内存文件存在,则为true。

read()

从内存文件读取大小字节。

seek()

寻找记忆文件中的位置。

tell()

告诉存储器文件中的当前位置。

write()

将数据字节写入内存文件

class fiona.ogrext.OGRFeatureBuilder

基类:object

从Fiona特征映射构建OGR特征.

分配一个应被调用方销毁的OGR功能.从集合中借用层定义。

class fiona.ogrext.Session

基类:object

get()

通过FID提供对特征数据的访问。

支持收藏.__contains__().

get_crs()

获取层的CRS

CRS

get_crs_wkt()
get_driver()
get_extent()
get_feature()

通过FID提供对特征数据的访问。

支持收藏.__contains__().

get_fileencoding()

DEPRECATED

get_length()
get_schema()
has_feature()

通过FID提供对特征数据的访问。

支持收藏.__contains__().

isactive()
start()
stop()
class fiona.ogrext.WritingSession

基类:fiona.ogrext.Session

start()
sync()

将OGR同步到磁盘。

writerecs()

将缓冲记录写入OGR。

fiona.ogrext.buffer_to_virtual_file()

将字节缓冲区映射到虚拟文件。

ext 为空或以句点开头,最多包含一个句点。

fiona.ogrext.featureRT()
fiona.ogrext.remove_virtual_file()

fiona.ogext 模块

class fiona.ogrext.FeatureBuilder

基类:object

从OGR功能指针构建Fiona特性。

此函数未分配任何OGR对象,特性参数未被破坏。

class fiona.ogrext.ItemsIterator

基类:fiona.ogrext.Iterator

class fiona.ogrext.Iterator

基类:object

提供对特征数据的迭代访问。

class fiona.ogrext.KeysIterator

基类:fiona.ogrext.Iterator

class fiona.ogrext.MemoryFileBase

基类:object

由内存文件支持的类似BytesIO class 的Base。

close()

关闭内存文件并释放分配的内存。

exists()

测试内存文件是否存在。

布尔

如果内存文件存在,则为true。

read()

从内存文件读取大小字节。

seek()

寻找记忆文件中的位置。

tell()

告诉存储器文件中的当前位置。

write()

将数据字节写入内存文件

class fiona.ogrext.OGRFeatureBuilder

基类:object

从Fiona特征映射构建OGR特征.

分配一个应被调用方销毁的OGR功能.从集合中借用层定义。

class fiona.ogrext.Session

基类:object

get()

通过FID提供对特征数据的访问。

支持收藏.__contains__().

get_crs()

获取层的CRS

CRS

get_crs_wkt()
get_driver()
get_extent()
get_feature()

通过FID提供对特征数据的访问。

支持收藏.__contains__().

get_fileencoding()

DEPRECATED

get_length()
get_schema()
has_feature()

通过FID提供对特征数据的访问。

支持收藏.__contains__().

isactive()
start()
stop()
class fiona.ogrext.WritingSession

基类:fiona.ogrext.Session

start()
sync()

将OGR同步到磁盘。

writerecs()

将缓冲记录写入OGR。

fiona.ogrext.buffer_to_virtual_file()

将字节缓冲区映射到虚拟文件。

ext 为空或以句点开头,最多包含一个句点。

fiona.ogrext.featureRT()
fiona.ogrext.remove_virtual_file()

fiona.path 模块

数据集路径、标识符和文件名

class fiona.path.ParsedPath(path, archive, scheme)

基类:fiona.path.Path

分析数据集URI/路径的结果

路径str

解析路径。在URI的情况下包括主机名和查询字符串。

档案文件str

解析的存档路径。

方案str

“https”或“zip+s3”等URI方案。

archive
classmethod from_uri(uri)
property is_local

测试路径是否为本地URI

property is_remote

测试路径是否为远程网络URI

property name

解析的路径的原始URI

path
scheme
class fiona.path.Path

基类:object

数据集路径的基类

class fiona.path.UnparsedPath(path)

基类:fiona.path.Path

封装旧的GDAL 文件名

路径str

旧的GDAL 文件名。

property name

未分析路径的原始路径

path
fiona.path.parse_path(path)

将数据集的标识符或路径解析为其各个部分

路径str或类似路径的对象

要分析的路径。

ParsedPath或UnparsedPath

当遇到旧的GDAL 文件名时,它们将以未分析的路径返回。

fiona.path.vsi_path(path)

将解析的路径转换为GDAL VSI 路径

路径路径

ParsedPath或UnparsedPath对象。

str

fiona.rfc3339 模块

class fiona.rfc3339.FionaDateTimeType

基类:str

日期和时间。

class fiona.rfc3339.FionaDateType

基类:str

没有时间的日期。

class fiona.rfc3339.FionaTimeType

基类:str

没有日期的时间。

class fiona.rfc3339.group_accessor(m)

基类:object

group(i)
fiona.rfc3339.parse_date(text)

给定一个RFC3339日期,返回一个tz-naive datetime元组

fiona.rfc3339.parse_datetime(text)

给定rfc 3339 datetime,返回tz-naive datetime元组

fiona.rfc3339.parse_time(text)

给定一个RFC3339时间,返回一个tz-naive datetime元组

fiona.schema 模块

fiona.schema.normalize_field_type()

将自由格式字段类型规范化为字段类型的元素

文件类型str

类型:宽度格式,如“int:9”或“str:255”

str

FIELD_TYPES中的元素

fiona.schema 模块

fiona.schema.normalize_field_type()

将自由格式字段类型规范化为字段类型的元素

文件类型str

类型:宽度格式,如“int:9”或“str:255”

str

FIELD_TYPES中的元素

fiona.session 模块

各种云中sessions的抽象。

class fiona.session.AWSSession(session=None, aws_unsigned=False, aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None, region_name=None, profile_name=None, requester_pays=False)

基类:fiona.session.Session

配置对存储在AWS S3中的安全资源的访问。

property credentials

会话凭据作为dict

get_credential_options()

获取作为GDAL配置选项的凭据

dict

class fiona.session.DummySession(*args, **kwargs)

基类:fiona.session.Session

虚拟会话。

资格证书dict

会话凭据。

get_credential_options()

获取作为GDAL配置选项的凭据

dict

class fiona.session.GSSession(google_application_credentials=None)

基类:fiona.session.Session

配置对存储在Google云存储中的安全资源的访问

property credentials

会话凭据作为dict

get_credential_options()

获取作为GDAL配置选项的凭据

dict

classmethod hascreds(config)

确定给定配置是否具有正确的凭据

cls

一节课。

配置dict

GDAL配置为dict。

布尔

class fiona.session.Session

基类:object

配置对安全资源的访问的类的基础。

资格证书dict

会话凭据的密钥和值。

此类不打算实例化。

static from_foreign_session(session, cls=None)

创建与外部对象匹配的会话对象 session.

sessionobj

外部会话对象。

cls会话类,可选

要返回的类。

Session

static from_path(path, *args, **kwargs)

在以下位置创建适合数据的会话对象 path.

路径str

数据集路径或标识符。

args序列

外部会话构造函数的位置参数。

关键字参数dict

外部会话构造函数的关键字参数。

Session

get_credential_options()

获取作为GDAL配置选项的凭据

dict

fiona.transform 模块

坐标和几何扭曲和重投影

fiona.transform.transform(src_crs, dst_crs, xs, ys)

将坐标从一个参考系转换为另一个参考系。

src_crs:str或dict

“epsg:4326”这样的字符串或proj4参数的dict,如{'proj': 'lcc', 'lat_0': 18.0, 'lat_1': 18.0, 'lon_0': -77.0} 表示转换 "source"或 "from"的坐标参考系。

dst_crs:str或dict

在转换的“目的地”或“到”端代表参考系坐标的字符串或dict。

xs: sequence of float

一个x坐标值的列表或元组。必须与 ys 参数具有相同的长度。

ys: sequence of float

Y坐标值的列表或元组。必须与 xs 参数具有相同的长度。

xp,yp:浮点数列表

一对变换后的坐标序列。元素 xpyp 完全对应于 xsys 输入参数。

>>> transform('EPSG:4326', 'EPSG:26953', [-105.0], [40.0])
([957097.0952383667], [378940.8419189212])
fiona.transform.transform_geom(src_crs, dst_crs, geom, antimeridian_cutting=False, antimeridian_offset=10.0, precision=- 1)

将几何对象从一个参考系统转换为另一个参考系统。

src_crs:str或dict

“epsg:4326”这样的字符串或proj4参数的dict,如{'proj': 'lcc', 'lat_0': 18.0, 'lat_1': 18.0, 'lon_0': -77.0} 表示转换 "source"或 "from"的坐标参考系。

dst_crs:str或dict

在转换的“目的地”或“到”端代表参考系坐标的字符串或dict。

geom: obj

具有“type”和“coordinates”成员的类似geojson的几何对象。

antimeridian_cutting: bool, optional

True 要在反经线处将输出几何图形分为两个,默认值为“假”。

antimeridian_offset: float, optional

以十进制度数表示的与反子午线的距离,在反子午线外几何图形不会被切割。

precision: int, optional

输出坐标的可选舍入精度,以小数位数表示。

obj

一种新的具有转换坐标的类似geojson的几何体。注意,如果输出在反子午线,它可能被切割,并且具有不同的几何结构。 type 而不是输入,例如,多边形输入可能导致多多边形输出。

>>> transform_geom(
...     'EPSG:4326', 'EPSG:26953',
...     {'type': 'Point', 'coordinates': [-105.0, 40.0]})
{'type': 'Point', 'coordinates': (957097.0952383667, 378940.8419189212)}

fiona.vfs 模块

实现ApacheVFS方案和URL。

fiona.vfs.is_remote(scheme)
fiona.vfs.parse_paths(uri, vfs=None)

将uri或apache vfs url解析为其部分

返回:元组

(路径、方案、存档)

fiona.vfs.valid_vsi(vsi)

确保VSI路径的所有部分都是有效的方案。

fiona.vfs.vsi_path(path, vsi=None, archive=None)

模块内容

菲奥娜是OGR整洁、敏捷的API。

Fiona为开放源码地理信息系统社区最受信任的地理数据访问库提供了一个最小、简单的python接口,并与pyproj、rtree和shapely等其他python地理信息系统包轻松集成。

多小?Fiona可以从shapefiles或其他GIS矢量格式中读取特征作为映射,并使用相同的格式将特征作为映射写入文件。这就是全部。没有任何要素或几何类。特征及其几何图形只是数据。

Fiona 特性是一个受geojson格式启发的Python映射。它有 id, 'geometry`, 以及 properties 密钥。 id 的值是功能的父集合中唯一的字符串标识符。 geometry 是另一个带有`type` 和 coordinates 密钥的映射 。一个特性的`properties` 是对应于它的属性表的另一个映射。例如:

{'id': '1',

'geometry':{'type':'点','coordinates':(0.0,0.0)},'属性':{'label':'空岛'}}

是具有点几何图形和一个属性的FIONA功能。

使用返回的对象读取和写入功能 collection 功能。这些 Collection 对象很像python file 物体。一 Collection 在读取模式下打开可以作为功能的迭代器。以写入模式打开的一个提供 write 方法。

使用

下面是一个例子,从一个形状文件中读取一些选定的多边形特征,并为每个特征提取多边形外环的第一个顶点, 并将其用作写入 "points.shp" 文件的新特征的点几何图形。

>>> import fiona
>>> with fiona.open('docs/data/test_uk.shp', 'r') as inp:
...     output_schema = inp.schema.copy()
...     output_schema['geometry'] = 'Point'
...     with collection(
...             "points.shp", "w",
...             crs=inp.crs,
...             driver="ESRI Shapefile",
...             schema=output_schema
...             ) as out:
...         for f in inp.filter(
...                 bbox=(-5.0, 55.0, 0.0, 60.0)
...                 ):
...             value = f['geometry']['coordinates'][0][0]
...             f['geometry'] = {
...                 'type': 'Point', 'coordinates': value}
...             out.write(f)

因为fiona集合是上下文管理器,所以当它们的 with 块结束。

fiona.bounds(ob)

返回(minx、miny、maxx、maxy)边界框。

这个 ob 可能是特征记录或几何图形。

fiona.listlayers(fp, vfs=None)

按索引顺序列出图层名

fpURI (str或pathlib.path)或类似文件的对象

数据集资源标识符或文件对象。

vfsstr

此参数已弃用。应改用“zip://”之类的URI方案。

列表

图层名称字符串的列表。

fiona.open(fp, mode='r', driver=None, schema=None, crs=None, encoding=None, layer=None, vfs=None, enabled_drivers=None, crs_wkt=None, **kwargs)

打开集合进行读取、追加或写入

在写模式下,驱动程序名,如“esri shapefile”或“gpx”(参见ogr docs或 ogr2ogr --help 在命令行)和模式映射,例如:

{'geometry': 'Point',
'properties': [('class', 'int'), ('label', 'str'),

('value', 'float')]}

必须提供。如果需要在书面文件中对属性进行特定排序(“GIS术语中的字段”),则需要上面的(键、值)对列表或按顺序的dict。如果不需要排序,标准的dict就足够了。

在写入模式下,集合的坐标参考系可以由 crs 参数。它采用proj4样式的映射,比如

{'proj': 'longlat', 'ellps': 'WGS84', 'datum': 'WGS84',

'no_defs': True}

像速记字符串

EPSG:4326

或参考坐标系的WKT表示。

Fiona使用的驱动程序将尝试检测数据文件的编码。如果失败了,你可以提供适当的 encoding 例如用于自然地球数据集的“windows-1252”.

当提供的路径指向包含多个已命名数据层的文件时,可以通过 layer .

用于打开数据集的驱动程序可能仅限于 enabled_drivers 参数。这个和 driver 参数提供了对打开文件的很大控制。

#当打开阅读时只尝试GeoJSON驱动程序,以下内容将引发 DataIOError: fiona.open('example.shp', driver='GeoJSON')

#首先尝试GeoJSON驱动程序,然后尝试Shapefile驱动程序, #以下操作成功:fiona.open(

'example.shp',enabled_drivers=['geojson','esri shapefile'])

fpURI (str或pathlib.path)或类似文件的对象

数据集资源标识符或文件对象。

模式str

“r”中的一个读(默认);“a”中的一个附加;或“w”中的一个写。

驱动str

在“w”模式下,格式驱动程序名称是必需的。在“r”或“a”模式下,此参数无效。

模式dict

在“w”模式下是必需的,在“r”或“a”模式下无效。

crsstr 或 dict

在“w”模式下是必需的,在“r”或“a”模式下无效。

编码str

用于对数据集进行编码或解码的编码的名称。

图层整型或者字符型

多层数据集中某一层的整数索引或名称。

vfsstr

此参数已弃用。应改用“zip://”之类的URI方案。

enabled_drivers列表

打开集合时要使用的驱动程序名称的可选列表。

crs_wktstr

坐标参考系的可选WKT表示法。

关键字参数映射

其他特定于驱动程序的参数,将由OGR库解释为图层创建或打开选项。

Collection

fiona.prop_type(text)

返回架构属性的正确python类型。

例子:

>>> prop_type('int')
<class 'int'>
>>> prop_type('str:25')
<class 'str'>
fiona.prop_width(val)

返回str类型属性的宽度。

未定义非str属性。如:

>>> prop_width('str:25')
25
>>> prop_width('str')
80