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 是類似的迭代器(不是列表?。└采w以類似 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