fiona.collection.
BytesCollection
(bytesbuf, **kwds)¶基类:fiona.collection.Collection
BytesCollection采用字节缓冲区并将其映射到虚拟文件,然后由fiona打开。
close
()¶删除与类关联的虚拟文件。
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的映射表示的特性。
bounds
¶返回 (minx, miny, maxx, maxy).
close
()¶在追加或写入模式下,将数据刷新到磁盘,然后结束访问。
closed
¶如果可以访问数据就显示``False``,否则就显示``True`` .
crs
¶返回Proj4字符串。
crs_wkt
¶返回WKT字符串。
driver
¶返回正确的OGR驱动程序的名称。
filter
(*args, **kwds)¶返回记录的迭代器,但通过提供的 bbox
,(minx、miny、maxx、maxy)元组或几何体 ``mask``空间交集进行过滤.
位置参数 stop
或 start, stop[, step]
允许迭代跳过项或停在特定项。
flush
()¶刷新缓冲区。
get
(item)¶guard_driver_mode
()¶items
(*args, **kwds)¶返回FID,record pairs的迭代器,可以选择通过与提供的 bbox
,(minx、miny、maxx、maxy)元组或几何体 ``mask``空间交集进行过滤.
位置参数 stop
或 start, stop[, step]
允许迭代跳过项或停在特定项。
keys
(*args, **kwds)¶返回FIDS上的迭代器,bbox
,(minx、miny、maxx、maxy)元组或几何体 ``mask``空间交集进行过滤.
位置参数 stop
或 start, stop[, step]
允许迭代跳过项或停在特定项。
meta
¶返回带有驱动程序、架构、crs和其他属性的映射。
next
()¶从迭代器返回下一条记录。
profile
¶返回带有驱动程序、架构、crs和其他属性的映射。
schema
¶返回描述数据架构的映射。
映射包含“geometry”和“properties”项。前者是一个字符串,如“point”,后者是一个按数据文件中字段顺序排列的有序映射。
validate_record
(record)¶将记录与集合的架构进行比较。
如果记录匹配就返回 True
,否则就返回``False`` .
validate_record_geometry
(record)¶将记录的几何图形与集合的架构进行比较。
如果记录匹配就返回 True
,否则就返回``False`` .
values
(*args, **kwds)¶返回记录的迭代器,但通过提供的 bbox
,(minx、miny、maxx、maxy)元组或几何体 ``mask``空间交集进行过滤.
位置参数 stop
或 start, stop[, step]
允许迭代跳过项或停在特定项。
write
(record)¶准备一个写入磁盘的记录。
writerecords
(records)¶准备多个写入磁盘的记录。
fiona.collection.
get_filetype
(bytesbuf)¶检测bytesbuf的压缩类型。
仅限ZIP.TODO: 添加其他与GDAL/OGR相关的内容。
参考坐标系和功能
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的GDAL/AWS环境
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。
没有
default_options
()¶默认配置选项
没有
dict
drivers
()¶返回已注册驱动程序的映射。
from_defaults
(session=None, **options)¶使用默认配置选项创建环境
Env
Kwargs中的项目将覆盖在默认值上。
is_credentialized
¶测试是否存在云凭据
布尔
fiona.env.
GDALVersion
(major=0, minor=0)¶基类:object
获取GDAL 版本和次版本组件以及版本之间比较的便捷类。这是高度简单化的,且假定版本的编号方案非常正常,且忽略除主要和次要组件之外的所有内容。
at_least
(other)¶major
¶minor
¶parse
(input)¶将输入的元组或字符串解析为GDALVersion。如果输入是GDALVersion实例,则返回该实例。
输入:GDALVersion的(主要,次要),字符串或实例的元组
GDALVersion 实例
runtime
()¶返回当前GDAL运行时的GDALVersion
fiona.env.
NullContextManager
¶基类:object
fiona.env.
ThreadEnv
¶基类:_thread._local
fiona.env.
defenv
(**options)¶必要时创建默认环境。
fiona.env.
delenv
()¶删除现有环境中的选项。
fiona.env.
ensure_env
(f)¶在函数调用任何GDAL C函数之前确保存在env的装饰器。
函数包装器。
如果已经存在一个环境,包装器将不做任何事情,并立即使用给定的参数调用f。
fiona.env.
ensure_env_with_credentials
(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。
使用GDAL <2.2上任何值的参数`foo`调用`some_func`时,会引发GDALVersionError。
使用参数`foo`调用`some_func`并在GDAL <2.2上调用值'bar`会引发GDALVersionError。
version: tuple, string, or GDALVersion param: string (optional, default: None)
如果不存在 values ,那么将此参数与默认值以外的值一起使用,则至少需要 GDAL version.
包装函数
fiona.env.
setenv
(**options)¶在现有环境中设置选项。
fiona.errors.
CRSError
¶基类:fiona.errors.FionaValueError
当crs映射既没有init项也没有proj项时。
fiona.errors.
DataIOError
¶基类:OSError
涉及驱动程序注册或可用性的IO错误。
fiona.errors.
DatasetDeleteError
¶基类:OSError
删除数据集失败
fiona.errors.
DriverError
¶基类:fiona.errors.FionaValueError
封装不支持的驱动程序和驱动程序模式错误。
fiona.errors.
DriverIOError
¶基类:OSError
特定于格式的驱动程序错误。
fiona.errors.
DriverSupportError
¶驱动程序不支持架构
fiona.errors.
EnvError
¶环境错误
fiona.errors.
FieldNameEncodeError
¶基类:UnicodeEncodeError
无法对字段名进行编码。
fiona.errors.
FionaDeprecationWarning
¶基类:UserWarning
关于Fiona功能降级的警告
fiona.errors.
FionaError
¶基类:Exception
Base Fiona error
fiona.errors.
FionaValueError
¶基类:ValueError
Fiona-特定值错误
fiona.errors.
GDALVersionError
¶如果GDAL的运行时版本不满足所需的GDAL版本时就会发生。
fiona.errors.
GeometryTypeValidationError
¶基类:fiona.errors.FionaValueError
试图写入架构中的未指定的几何体类型
fiona.errors.
SchemaError
¶基类:fiona.errors.FionaValueError
当模式映射没有属性或没有几何图形时。
fiona.errors.
TransactionError
¶基类:RuntimeError
与GDAL transactions有关的失败
fiona.errors.
UnsupportedGeometryTypeError
¶基类:KeyError
当Fiona不支持OGR几何类型时。
能够读写集合的类
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() 的参数相同。
记录帮助程序类。
fiona.logutils.
FieldSkipLogFilter
(name='')¶基类:logging.Filter
筛选字段跳过日志消息。
最多每个字段传递一条消息,每个循环跳过一条消息。
filter
(record)¶如果看不到就通过记录。
fiona.logutils.
LogFiltering
(logger, filter)¶基类:object
fiona.ogrext.
FeatureBuilder
¶基类:object
从OGR功能指针构建Fiona特性。
此函数未分配任何OGR对象,特性参数未被破坏。
fiona.ogrext.
ItemsIterator
¶fiona.ogrext.
Iterator
¶基类:object
提供对特征数据的迭代访问。
fiona.ogrext.
KeysIterator
¶fiona.ogrext.
MemoryFileBase
¶基类:object
由内存文件支持的类似BytesIO class 的Base。
close
()¶关闭内存文件并释放分配的内存。
exists
()¶测试内存文件是否存在。
read
()¶从内存文件读取大小字节。
seek
()¶寻找记忆文件中的位置。
tell
()¶告诉存储器文件中的当前位置。
write
()¶将数据字节写入内存文件
fiona.ogrext.
OGRFeatureBuilder
¶基类:object
从Fiona特征映射构建OGR特征.
分配一个应被调用方销毁的OGR功能.从集合中借用层定义。
fiona.ogrext.
Session
¶基类:object
get
()¶通过FID提供对特征数据的访问。
支持收藏.__contains__().
get_crs
()¶获取层的CRS
CRS
get_crs_wkt
()¶get_driver
()¶get_extent
()¶get_feature
()¶通过FID提供对特征数据的访问。
支持收藏.__contains__().
get_fileencoding
()¶get_internalencoding
()¶get_length
()¶get_schema
()¶has_feature
()¶通过FID提供对特征数据的访问。
支持收藏.__contains__().
isactive
()¶start
()¶stop
()¶fiona.ogrext.
buffer_to_virtual_file
()¶将字节缓冲区映射到虚拟文件。
ext 为空或以句点开头,最多包含一个句点。
fiona.ogrext.
featureRT
()¶fiona.ogrext.
remove_virtual_file
()¶数据集路径、标识符和文件名
fiona.path.
ParsedPath
(path, archive, scheme)¶分析数据集URI/路径的结果
archive
¶from_uri
(uri)¶is_local
¶测试路径是否为本地URI
is_remote
¶测试路径是否为远程网络URI
name
¶解析的路径的原始URI
path
¶scheme
¶fiona.path.
Path
¶基类:object
数据集路径的基类
fiona.path.
parse_path
(path)¶将数据集的标识符或路径解析为其各个部分
ParsedPath或UnparsedPath
当遇到旧的GDAL 文件名时,它们将以未分析的路径返回。
fiona.path.
vsi_path
(path)¶将解析的路径转换为GDAL VSI 路径
str
fiona.rfc3339.
FionaDateTimeType
¶基类:str
日期和时间。
fiona.rfc3339.
FionaDateType
¶基类:str
没有时间的日期。
fiona.rfc3339.
FionaTimeType
¶基类:str
没有日期的时间。
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.
normalize_field_type
()¶将自由格式字段类型规范化为字段类型的元素
各种云中sessions的抽象。
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)¶配置对存储在AWS S3中的安全资源的访问。
credentials
¶会话凭据作为dict
get_credential_options
()¶获取作为GDAL配置选项的凭据
dict
fiona.session.
DummySession
(*args, **kwargs)¶虚拟会话。
get_credential_options
()¶获取作为GDAL配置选项的凭据
dict
fiona.session.
Session
¶基类:object
配置对安全资源的访问的类的基础。
此类不打算实例化。
from_foreign_session
(session, cls=None)¶创建与外部对象匹配的会话对象 session.
Session
from_path
(path, *args, **kwargs)¶在以下位置创建适合数据的会话对象 path.
Session
get_credential_options
()¶获取作为GDAL配置选项的凭据
dict
坐标和几何扭曲和重投影
fiona.transform.
transform
(src_crs, dst_crs, xs, ys)¶将坐标从一个参考系转换为另一个参考系。
ys
参数具有相同的长度。xs
参数具有相同的长度。xp
和 yp
完全对应于 xs
和 ys
输入参数。>>> 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)¶将几何对象从一个参考系统转换为另一个参考系统。
True
要在反经线处将输出几何图形分为两个,默认值为“假”。type
而不是输入,例如,多边形输入可能导致多多边形输出。>>> transform_geom(
... 'EPSG:4326', 'EPSG:26953',
... {'type': 'Point', 'coordinates': [-105.0, 40.0]})
{'type': 'Point', 'coordinates': (957097.0952383667, 378940.8419189212)}
实现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)¶Fiona 是 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': 'Point', 'coordinates': (0.0, 0.0)}, 'properties': {'label': u'Null Island'} }
是具有点几何图形和一个属性的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
(path, vfs=None)¶返回按索引顺序排列的层名称列表。
所需的 path
参数可以是绝对或相对文件或目录路径。
可以指定虚拟文件系统。这个 vfs
参数可以是以“zip://”或“tar://”开头的apache commons vfs样式字符串。在这种情况下, path
必须是该容器中的绝对路径。
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'])
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