API文档
顶级代码文档。按照每个部分中的链接获取模块/类成员信息。
API
Pygeapi的根级代码,解析Web框架提供的内容。从插件返回内容并设置响应。
- class pygeoapi.api.API(config)[源代码]
API对象
- __weakref__
对象的弱引用列表(如果已定义)
- static _create_crs_transform_spec(config: dict, query_crs_uri: str | None = None) None | CrsTransformSpec [源代码]
创建 CrsTransformSpec 实例基于提供程序配置和 crs 查询参数。
- 参数:
- 抛出:
ValueError -- 如果Query参数中指定的CRS不在提供程序的受支持CRS列表中,则引发错误。
CRSError -- 如果从查询中找不到任何CRS,则引发错误 crs 参数(URI)。
- 返回:
CrsTransformSpec 如果查询参数中指定的CRS与存储CRS不同,则为 None 。
- 返回类型:
Union[None, CrsTransformSpec]
- static _set_content_crs_header(headers: dict, config: dict, query_crs_uri: str | None = None)[源代码]
设置 Content-Crs 来自功能类型提供程序的响应中的标头。
- class pygeoapi.api.APIRequest(request, supported_locales)[源代码]
将传入的特定于服务器的请求转换为具有某些通用帮助器方法和属性的对象。
备注
通常,此实例由
pre_process()
装饰师。 Every 已路由到REST终结点的API方法应由pre_process()
功能。所以呢, all 路由的API方法至少应该有一个参数来保存(转换后的)请求。以下示例API方法将:
转变传入的长颈瓶/Starlette/Django Request 变成了一个 APIRequest 使用
pre_process()
装饰师;打电话
is_valid()
检查传入请求是否有效,即用户是否请求了有效的输出格式或根本没有格式(这意味着默认格式);打电话
API.get_format_exception()
如果请求的格式无效;创建一个 dict 具有适当的 Content-Type 请求的格式的标头和一个 Content-Language 如果请求任何特定语言,则返回标头。
@pre_process def example_method(self, request: Union[APIRequest, Any], custom_arg): if not request.is_valid(): return self.get_format_exception(request) headers = request.get_response_headers() # generate response_body here return headers, HTTPStatus.OK, response_body
下面的示例API方法与上面的方法类似,但也允许用户请求非标准格式(例如
f=xml
)。如果 xml 请求时,我们设置 Content-Type 我们自己。对于标准格式, APIRequest 对象将 Content-Type 。@pre_process def example_method(self, request: Union[APIRequest, Any], custom_arg): if not request.is_valid(['xml']): return self.get_format_exception(request) content_type = 'application/xml' if request.format == 'xml' else None headers = request.get_response_headers(content_type) # generate response_body here return headers, HTTPStatus.OK, response_body
请注意,您不需要 have 拨打电话
is_valid()
,但您也可以通过查看format
财产。其他查询参数可通过params
属性作为 dict 。请求正文通过data
财产。备注
如果请求数据(正文)很重要, always 创建新的 APIRequest 实例使用
with_data()
工厂方法。这个pre_process()
装饰者会自动使用它。- 参数:
request -- Web平台特定的请求实例。
supported_locales -- 支持的区域设置实例的列表或集合。
- __weakref__
对象的弱引用列表(如果已定义)
- _get_format(headers) str | None [源代码]
到达 Request 根据查询参数或标题设置类型的格式。
- 参数:
headers -- 请求头的字典
- 返回:
格式值;如果未找到/指定,则为无
- _get_locale(headers, supported_locales)[源代码]
从“lang=<language>”参数检测区域设置或 Accept-Language 标题。如果在参数或标头中找到,则返回(RAW,Locale)的元组。如果未找到,则返回(原始默认、默认区域设置)的元组。
- 参数:
headers -- 带有请求标头的词典
supported_locales -- 支持的区域设置实例的列表或集合
- 返回:
(字符串,区域设置)的元组
- static _get_params(request)[源代码]
中提取查询参数。 Request 对象。
- 参数:
request -- 烧瓶或Starlette请求实例
- 返回:
ImmutableMultiDict or empty dict
- get_linkrel(format_: str) str [源代码]
返回给定API格式字符串的超链接关系(REL)属性值。
将该字符串与请求格式进行比较,如果匹配,则返回值‘self’。否则,返回‘Alternate’。但是,如果 format_ 是‘json’并且 no 找到请求格式,也返回关系‘self’(默认为JSON)。
- 参数:
format -- 要将请求格式与之进行比较的格式。
- 返回:
字符串‘self’或‘Alternate’。
- get_response_headers(force_lang: Locale = None, force_type: str = None, force_encoding: str = None, **custom_headers) dict [源代码]
准备并返回带有响应对象标头的词典。
此方法始终添加‘Content-Language’头,其中的值由请求中的‘lang’查询参数或‘Accept-Language’头确定。如果未请求任何语言,则使用默认的pygeapi语言,除非 force_lang 已指定覆盖(请参阅下面的注释)。
“Content-Type”标头也总是添加到响应中。如果用户未指定 force_type ,则标头基于 format APIRequest属性。如果无效,则默认的MIME类型 application/json 使用的是。
- ..注意::如果 force_lang 应用覆盖时,该语言
始终设置为‘Content-Language’,而不考虑‘lang’查询参数或‘Accept-Language’标头。如果API响应需要始终使用相同的语言,则应将‘FORCE_LANG’设置为该语言。
- 参数:
force_lang -- 可选的内容语言标题重写。
force_type -- 可选的Content-Type标头覆盖。
force_encoding -- 可选的内容编码标头重写。
- 返回:
标题词典
- is_valid(additional_formats=None) bool [源代码]
- 如果满足以下条件,则返回True:
未设置格式(无)
支持请求的格式
如果存在其他格式,则列表中存在请求的格式
备注
格式名称以不区分大小写的方式匹配。
- 参数:
additional_formats -- 可选的其他支持格式列表
- 返回:
布尔尔
- property locale: Locale
从请求对象返回用户定义的区域设置。如果未定义区域设置或区域设置无效,则返回默认的服务器区域设置。
备注
这里的区域设置决定了pygeapi应该以何种语言返回其响应。这可能不是用户请求的语言。例如,它也可能不是集合提供程序支持的语言。因此,您应该将 raw_locale 属性设置为
l10n.get_plugin_locale()
函数,以便可以确定提供程序的最佳匹配。- 返回:
babel.core.Locale
- property raw_locale: str | None
方法返回原始区域设置字符串。 Request 对象。如果没有“lang”查询参数或 Accept-Language 已找到标头, None 是返回的。将此值传递给
l10n.get_plugin_locale()
函数让提供程序确定区域设置的最佳匹配,该区域设置可能不同于由pygeapi的UI使用的区域设置。- 返回:
区域设置字符串或无
- classmethod with_data(request, supported_locales) APIRequest [源代码]
工厂类方法来创建 APIRequest 包含数据的实例。
如果请求正文是必需的,则引发 APIRequest should always be instantiated using this class method. The reason for this is, that the Starlette request body needs to be awaited (async), which cannot be achieved in the
_ 的_init__`方法 `APIRequest()
. However, APIRequest can still be initialized using_ _init__()
,但随后data
属性值将始终为空。- 参数:
request -- Web平台特定的请求实例。
supported_locales -- 支持的区域设置实例的列表或集合。
- 返回:
一个 APIRequest 包含数据的实例。
- pygeoapi.api.FORMAT_TYPES = {'html': 'text/html', 'json': 'application/json', 'jsonld': 'application/ld+json', 'mvt': 'application/vnd.mapbox-vector-tile', 'png': 'image/png'}
?f=请求允许的格式(复杂MIME类型的顺序问题)
- pygeoapi.api.HEADERS = {'Content-Type': 'application/json', 'X-Powered-By': 'pygeoapi 0.16.dev0'}
请求的返回头(例如:X-Powered-By)
- pygeoapi.api.SYSTEM_LOCALE = Locale('en', territory='US')
用于系统响应的区域设置(例如异常)
- pygeoapi.api.gzip(func)[源代码]
如果Content-Ending响应头设置为gzip,则压缩传出API结果实例的内容的修饰符。
- 参数:
func -- 装饰功能
- 返回:
func
- pygeoapi.api.pre_process(func)[源代码]
修饰器,它将特定于Web框架的传入请求实例(例如,Flask.Starlette或Django)转换为泛型
APIRequest
举个例子。- 参数:
func -- 装饰功能
- 返回:
func
- pygeoapi.api.validate_bbox(value=None) list [源代码]
用于验证BBox参数的Helper函数
- 参数:
value -- list Minx,Miny,Maxx,Maxy
- 返回:
BBox AS list 的 float 值
flask_app
提供到API的路由路径的烧瓶模块
- pygeoapi.flask_app.collection_coverage(collection_id)[源代码]
OGC API-Coverages覆盖端点
- 参数:
collection_id -- 集合标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.collection_coverage_domainset(collection_id)[源代码]
OGC API-Coverages覆盖域集终结点
- 参数:
collection_id -- 集合标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.collection_coverage_rangetype(collection_id)[源代码]
OGC API-Coverages覆盖范围类型终结点
- 参数:
collection_id -- 集合标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.collection_items(collection_id, item_id=None)[源代码]
OGC API集合项目终结点
- 参数:
collection_id -- 集合标识符
item_id -- 物品识别符
- 返回:
HTTP响应
- pygeoapi.flask_app.collection_map(collection_id, style_id=None)[源代码]
OGC API-地图地图渲染端点
- 参数:
collection_id -- 集合标识符
style_id -- 样式标识
- 返回:
HTTP响应
- pygeoapi.flask_app.collection_queryables(collection_id=None)[源代码]
OGC API集合可查询端点
- 参数:
collection_id -- 集合标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.collections(collection_id=None)[源代码]
OGC API集合终结点
- 参数:
collection_id -- 集合标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.execute_process_jobs(process_id)[源代码]
OGC API-流程执行端点
- 参数:
process_id -- 进程识别符
- 返回:
HTTP响应
- pygeoapi.flask_app.get_collection_edr_query(collection_id, instance_id=None)[源代码]
OGC EDR API端点
- 参数:
collection_id -- 集合标识符
instance_id -- 实例标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.get_collection_tiles(collection_id=None)[源代码]
OGC开放API集合切片访问点
- 参数:
collection_id -- 集合标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.get_collection_tiles_data(collection_id=None, tileMatrixSetId=None, tileMatrix=None, tileRow=None, tileCol=None)[源代码]
OGC开放API收集切片服务数据
- 参数:
collection_id -- 集合标识符
tileMatrixSetId -- 平铺矩阵集合的标识符
tileMatrix -- {z}矩阵索引的标识符
tileRow -- {y}矩阵索引的标识符
tileCol -- {x}矩阵索引的标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.get_collection_tiles_metadata(collection_id=None, tileMatrixSetId=None)[源代码]
OGC Open API集合切片服务元数据
- 参数:
collection_id -- 集合标识符
tileMatrixSetId -- 平铺矩阵集合的标识符
- 返回:
HTTP响应
- pygeoapi.flask_app.get_job_result(job_id=None)[源代码]
OGC API-处理作业结果端点
- 参数:
job_id -- 作业识别符
- 返回:
HTTP响应
- pygeoapi.flask_app.get_job_result_resource(job_id, resource)[源代码]
OGC API-处理作业结果资源终结点
- 参数:
job_id -- 作业识别符
resource -- 作业资源
- 返回:
HTTP响应
- pygeoapi.flask_app.get_processes(process_id=None)[源代码]
OGC API-流程描述端点
- 参数:
process_id -- 进程识别符
- 返回:
HTTP响应
登录中
测井系统
开放应用程序接口
- pygeoapi.openapi.gen_media_type_object(media_type, api_type, path)[源代码]
生成OpenAPI媒体类型对象
- 参数:
media_type -- MIME类型
api_type -- OGC API类型
path -- OGC API参数或模式定义的本地路径
- 返回:
dict 媒体类型对象的
- pygeoapi.openapi.gen_response_object(description, media_type, api_type, path)[源代码]
生成OpenAPI响应对象
- 参数:
description -- 回复的文本说明
media_type -- MIME类型
api_type -- OGC API类型
- 返回:
dict 响应对象的
- pygeoapi.openapi.generate_openapi_document(cfg_file: Path | TextIOWrapper, output_format: OAPIFormat)[源代码]
从配置文件生成OpenAPI文档
- 参数:
cfg_file -- 配置路径实例
output_format -- OpenAPI文档的输出格式
- 返回:
所请求的输出格式的OpenAPI文档的内容
插件
插件加载器
- pygeoapi.plugin.PLUGINS = {'formatter': {'CSV': 'pygeoapi.formatter.csv_.CSVFormatter'}, 'process': {'HelloWorld': 'pygeoapi.process.hello_world.HelloWorldProcessor'}, 'process_manager': {'Dummy': 'pygeoapi.process.manager.dummy.DummyManager', 'MongoDB': 'pygeoapi.process.manager.mongodb_.MongoDBManager', 'TinyDB': 'pygeoapi.process.manager.tinydb_.TinyDBManager'}, 'provider': {'AzureBlobStorage': 'pygeoapi.provider.azure_.AzureBlobStorageProvider', 'CSV': 'pygeoapi.provider.csv_.CSVProvider', 'ERDDAPTabledap': 'pygeoapi.provider.erddap.TabledapProvider', 'ESRI': 'pygeoapi.provider.esri.ESRIServiceProvider', 'Elasticsearch': 'pygeoapi.provider.elasticsearch_.ElasticsearchProvider', 'ElasticsearchCatalogue': 'pygeoapi.provider.elasticsearch_.ElasticsearchCatalogueProvider', 'FileSystem': 'pygeoapi.provider.filesystem.FileSystemProvider', 'GeoJSON': 'pygeoapi.provider.geojson.GeoJSONProvider', 'Hateoas': 'pygeoapi.provider.hateoas.HateoasProvider', 'MVT': 'pygeoapi.provider.mvt.MVTProvider', 'MapScript': 'pygeoapi.provider.mapscript_.MapScriptProvider', 'MongoDB': 'pygeoapi.provider.mongo.MongoProvider', 'OGR': 'pygeoapi.provider.ogr.OGRProvider', 'OracleDB': 'pygeoapi.provider.oracle.OracleProvider', 'PostgreSQL': 'pygeoapi.provider.postgresql.PostgreSQLProvider', 'SQLiteGPKG': 'pygeoapi.provider.sqlite.SQLiteGPKGProvider', 'SensorThings': 'pygeoapi.provider.sensorthings.SensorThingsProvider', 'Socrata': 'pygeoapi.provider.socrata.SODAServiceProvider', 'TinyDBCatalogue': 'pygeoapi.provider.tinydb_.TinyDBCatalogueProvider', 'WMSFacade': 'pygeoapi.provider.wms_facade.WMSFacadeProvider', 'rasterio': 'pygeoapi.provider.rasterio_.RasterioProvider', 'xarray': 'pygeoapi.provider.xarray_.XarrayProvider', 'xarray-edr': 'pygeoapi.provider.xarray_edr.XarrayEDRProvider'}}
加载要由pygeapi使用的提供程序插件,可用的格式化程序和进程
乌迪斯
代码中使用的通用util函数
- class pygeoapi.util.CrsTransformSpec(source_crs_uri: str, source_crs_wkt: str, target_crs_uri: str, target_crs_wkt: str)[源代码]
基类:
object
- __eq__(other)
返回self==值。
- __hash__ = None
- __repr__()
返回epr(Self)。
- __weakref__
对象的弱引用列表(如果已定义)
- class pygeoapi.util.JobStatus(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[源代码]
基类:
Enum
WPS 2.0规范中指定的作业状态选项的枚举
- class pygeoapi.util.ProcessExecutionMode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[源代码]
基类:
Enum
- class pygeoapi.util.RequestedProcessExecutionMode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[源代码]
基类:
Enum
- class pygeoapi.util.UrlPrefetcher[源代码]
基类:
object
获取特定URL的HTTP头的预取器。默认情况下最多允许1个重定向。
- __weakref__
对象的弱引用列表(如果已定义)
- pygeoapi.util.crs_transform(func)[源代码]
转换要素/要素集合的几何图形/几何图形坐标的修饰符。
此函数可用于修饰返回要素或要素集合(类似GeoJSON)的另一个函数 dict )。对于FeatureCollection,要素存储在返回的‘Feature’键的‘List’中 dict 。对于每个特征,几何体都可以在‘Geometry键’上找到。修饰后的函数可以接受“CRS_Transform_Spec”参数,该参数接受 CrsTransformSpec 实例作为值。如果 CrsTransformSpec 实例表示两个不同CRS之间的坐标转换,则在返回Feature/FeatureCollection之前将转换Feature的/FeatureCollection的几何体/几何体的坐标。如果未给出‘CRS_Transform_Spec’参数,则传递 None 或传递给 CrsTransformSpec 实例不表示坐标转换,则返回的Feature/FeatureCollection不变。例如,该修饰器可用于帮助支持要素/要素集合的坐标变换 dict 方法返回的对象 get 和 query ‘Feature’类型的(新的或不支持转换的)提供程序的方法。
- 参数:
func (callable) -- 用于装饰的功能。
- 返回:
装饰功能。
- 返回类型:
callable
- pygeoapi.util.crs_transform_feature(feature, transform_func)[源代码]
变换要素的坐标。
- 参数:
feature (dict) -- 要素(类似GeoJSON dict )转型。
transform_func (callable) -- 函数,用于转换 GeomObject 举个例子。
- 返回:
无
- pygeoapi.util.dategetter(date_property: str, collection: dict) str [源代码]
尝试从集合中获取日期值。
- 参数:
date_property -- 表示日期的属性
collection -- 要在其中查找的词典
- 返回:
str (ISO8601)表示日期(允许使用空值的开放间隔)
- pygeoapi.util.file_modified_iso8601(filepath: Path) str [源代码]
在ISO8601中提供文件的ctime
- 参数:
filepath -- 文件的路径
- 返回:
ISO8601的字符串
- pygeoapi.util.filter_dict_by_key_value(dict_: dict, key: str, value: str) dict [源代码]
按DICT键过滤DICT的助手函数
- 参数:
dict --
dict
key -- Dict键
value -- DICT密钥值
- 返回:
滤过
dict
- pygeoapi.util.filter_providers_by_type(providers: list, type: str) dict [源代码]
按类型过滤提供程序列表的Helper函数
- 参数:
providers --
list
type -- 应力
- 返回:
滤过
dict
提供者
- pygeoapi.util.format_datetime(value: str, format_: str = '%Y-%m-%dT%H:%M:%S.%fZ') str [源代码]
将DateTime解析为ISO 8601字符串;以特定格式重新呈现它,以便在HTML中显示
- 参数:
value -- str ISO日期时间的
format -- str Strftime的日期时间格式
- 返回:
细绳
- pygeoapi.util.format_duration(start: str, end: str = None) str [源代码]
将开始日期时间和(可选)结束日期时间解析为ISO 8601字符串,计算差异,并将持续时间作为字符串返回。
- 参数:
start -- str ISO日期时间的
end -- str 的ISO DateTime,默认为 start 持续时间为0
- 返回:
细绳
- pygeoapi.util.get_api_rules(config: dict) APIRules [源代码]
从给定配置中提取默认API设计规则。
- 参数:
config -- 当前的pygeapi配置(词典)。
- 返回:
一个APIRules实例。
- pygeoapi.util.get_breadcrumbs(urlpath: str) list [源代码]
从URL路径生成面包屑的帮助器函数
- 参数:
urlpath -- URL路径
- 返回:
list 的 dict 标签和链接的对象
- pygeoapi.util.get_crs_from_uri(uri: str) CRS [源代码]
vt.得到一个. pyproj.CRS 实例从CRS URI返回。作者:@MTachon
- 参数:
uri (str) -- 坐标参考系的统一资源标识符。
- 抛出:
CRSError -- 如果无法从URI中识别任何CRS,则引发错误。
- 返回:
pyproj.CRS 与输入URI匹配的实例。
- 返回类型:
pyproj.CRS
- pygeoapi.util.get_envelope(coords_list: List[List[float]]) list [源代码]
Helper函数通过Shapely API获取给定坐标列表的信封。
- 参数:
coords_list -- 坐标列表
- 返回:
信封的坐标列表
- pygeoapi.util.get_mimetype(filename: str) str [源代码]
用于返回给定文件的MIME类型的Helper函数
- 参数:
filename -- 文件名(带扩展名)
- 返回:
给定文件名的MIME类型
- pygeoapi.util.get_path_basename(urlpath: str) str [源代码]
派生文件基名的帮助器函数
- 参数:
urlpath -- URL路径
- 返回:
URL路径的基本名称字符串
- pygeoapi.util.get_provider_by_type(providers: list, provider_type: str) dict [源代码]
按提供程序类型加载提供程序的帮助器函数
- 参数:
providers --
list
提供商的provider_type -- 提供程序类型(例如功能)
- 返回:
基于类型的提供程序
- pygeoapi.util.get_provider_default(providers: list) dict [源代码]
用于获取资源的默认提供程序的帮助器函数
- 参数:
providers --
list
提供商的- 返回:
滤过
dict
- pygeoapi.util.get_supported_crs_list(config: dict, default_crs_list: list) list [源代码]
Helper函数,用于从(提供商)配置字典中获取受支持CRSS的完整列表。根据OAPIF第2部分OGC标准,结果应始终包括默认CRS。如果配置中没有CRS列表,或者在配置中(部分)缺少CRS列表时添加CRS列表,这将是默认设置。
作者:@JUSTB4
- 参数:
config -- 带有或不带有CRSS列表的词典
default_crs_list -- 默认CRS备选方案,首先是默认
- 返回:
支持的CRSS列表
- pygeoapi.util.get_transform_from_crs(crs_in: CRS, crs_out: CRS, always_xy: bool = False) Callable[[GeometryCollection | LinearRing | LineString | MultiLineString | MultiPoint | MultiPolygon | Point | Polygon], GeometryCollection | LinearRing | LineString | MultiLineString | MultiPoint | MultiPolygon | Point | Polygon] [源代码]
从两个变量中获取变换函数 pyproj.CRS 实例。
Get函数用于将形状良好的几何对象的坐标从一个坐标参考系转换到另一个坐标系。
- 参数:
crs_in (pyproj.CRS) -- 输入几何对象的坐标系。
crs_out (pyproj.CRS) -- 输出几何对象的坐标系。
always_xy (bool) -- 是否将轴顺序强制为x,y(经度,经度),即使CRS声明y,x(经度,经度)
- 返回:
函数来转换 GeomObject 。
- 返回类型:
callable
- pygeoapi.util.get_typed_value(value: str) float | int | str [源代码]
从数据值派生True类型
- 参数:
value -- 价值
- 返回:
值作为本机Python数据类型
- pygeoapi.util.human_size(nbytes: int) str [源代码]
提供人类可读的文件大小
消息来源:https://stackoverflow.com/a/14996816
- 参数:
nbytes -- 文件大小的INT(字节)
units -- 单位缩写列表
- 返回:
人类可读文件大小的字符串
- pygeoapi.util.is_url(urlstring: str) bool [源代码]
确定候选URL是否应被视为URI的验证函数。不获取远程资源;这不会检查是否存在任何远程资源。
- 参数:
urlstring -- str 作为候选URL进行评估。
- 返回:
bool 该URL是否看起来像一个URL。
- pygeoapi.util.json_serial(obj: Any) str [源代码]
转换为JSON非默认类型的帮助器函数(来源:https://stackoverflow.com/a/22238613)
- 参数:
obj -- object 待评估
- 返回:
JSON非默认类型为 str
- pygeoapi.util.render_j2_template(config: dict, template: Path, data: dict, locale_: str = None) str [源代码]
渲染JJIA2模板
- 参数:
config -- 配置词典
template -- 模板(相对路径)
data -- 数据字典
locale -- 请求的输出区域设置
- 返回:
呈现模板的字符串
- pygeoapi.util.str2bool(value: bool | str) bool [源代码]
返回Python布尔类型的帮助器函数(来源:https://stackoverflow.com/a/715468)
- 参数:
value -- 待评估的价值
- 返回:
bool 该值是否为布尔值
- pygeoapi.util.to_json(dict_: dict, pretty: bool = False) str [源代码]
将dict序列化为JSON
- 参数:
dict -- dict JSON表示的
pretty -- bool 是否美化JSON(默认为 False )
- 返回:
JSON字符串表示
- pygeoapi.util.transform_bbox(bbox: list, from_crs: str, to_crs: str) list [源代码]
Helper函数,用于将边界框(BBox)从源CRS转换为目标CRS。URI字符串格式的CRSS。使用pyproj Transformer。
- 参数:
bbox -- “From_CRS”投影中的坐标列表
from_crs -- 要转换的CRS URI
to_crs -- 要转换为的CRS URI
- 抛出:
CRSError -- 如果无法从URI中识别任何CRS,则引发错误。
- 返回:
4个或6个坐标的列表
格式化程序包
输出格式化程序包
基类
- class pygeoapi.formatter.base.BaseFormatter(formatter_def: dict)[源代码]
基类:
object
通用格式化程序ABC
- __init__(formatter_def: dict)[源代码]
初始化对象
- 参数:
formatter_def -- 格式化程序定义
- 返回:
pygeoapi.formatter.base.BaseFormatter
- __weakref__
对象的弱引用列表(如果已定义)
- exception pygeoapi.formatter.base.FormatterGenericError[源代码]
基类:
Exception
格式化程序一般错误
- __weakref__
对象的弱引用列表(如果已定义)
csv
工艺包
OGC进程包,每个进程都是一个独立的模块
基类
- class pygeoapi.process.base.BaseProcessor(processor_def: dict, process_metadata: dict)[源代码]
基类:
object
通用处理器ABC。进程继承自此类
- __init__(processor_def: dict, process_metadata: dict)[源代码]
初始化对象
- 参数:
processor_def -- 处理器定义
process_metadata -- 过程元数据 dict
- 返回:
pygeoapi.processor.base.BaseProvider
- __weakref__
对象的弱引用列表(如果已定义)
- exception pygeoapi.process.base.ProcessorGenericError[源代码]
基类:
Exception
处理器一般错误
- __weakref__
对象的弱引用列表(如果已定义)
- exception pygeoapi.process.base.UnknownProcessError[源代码]
基类:
ProcessError
hello_world
Hello world示例流程
- class pygeoapi.process.hello_world.HelloWorldProcessor(processor_def)[源代码]
-
Hello World处理器示例
- pygeoapi.process.hello_world.PROCESS_METADATA = {'description': {'en': 'An example process that takes a name as input, and echoes it back as output. Intended to demonstrate a simple process with a single literal input.', 'fr': 'Un exemple de processus qui prend un nom en entrée et le renvoie en sortie. Destiné à démontrer un processus simple avec une seule entrée littérale.'}, 'example': {'inputs': {'message': 'An optional message.', 'name': 'World'}}, 'id': 'hello-world', 'inputs': {'message': {'description': 'An optional message to echo as well', 'keywords': ['message'], 'maxOccurs': 1, 'metadata': None, 'minOccurs': 0, 'schema': {'type': 'string'}, 'title': 'Message'}, 'name': {'description': 'The name of the person or entity that you wish tobe echoed back as an output', 'keywords': ['full name', 'personal'], 'maxOccurs': 1, 'metadata': None, 'minOccurs': 1, 'schema': {'type': 'string'}, 'title': 'Name'}}, 'jobControlOptions': ['sync-execute', 'async-execute'], 'keywords': ['hello world', 'example', 'echo'], 'links': [{'type': 'text/html', 'rel': 'about', 'title': 'information', 'href': 'https://example.org/process', 'hreflang': 'en-US'}], 'outputs': {'echo': {'description': 'A "hello world" echo with the name and (optional) message submitted for processing', 'schema': {'contentMediaType': 'application/json', 'type': 'object'}, 'title': 'Hello, world'}}, 'title': {'en': 'Hello World', 'fr': 'Bonjour le Monde'}, 'version': '0.2.0'}
过程元数据和描述
供应商
包含包装数据源的插件的提供程序模块
基类
- class pygeoapi.provider.base.BaseProvider(provider_def)[源代码]
基类:
object
通用提供商ABC
- __init__(provider_def)[源代码]
初始化对象
- 参数:
provider_def -- 提供程序定义
- 返回:
pygeoapi.provider.base.BaseProvider
- __weakref__
对象的弱引用列表(如果已定义)
- _load_and_prepare_item(item, identifier=None, accept_missing_identifier=False, raise_if_exists=True)[源代码]
用于加载记录、检测其标识符并准备记录项的Helper函数
- 参数:
item -- str 传入项目数据的
identifier -- str 项目标识符个数(可选)
accept_missing_identifier -- bool Item中缺少的标识符是否有效(通常用于create()方法)
raise_if_exists -- bool 是否检查记录是否已存在
- 返回:
tuple 物品识别符和物品数据/有效负载的
- get_data_path(baseurl, urlpath, dirpath)[源代码]
获取目录列表或文件说明或原始文件转储
- 参数:
baseurl -- 终结点的基本URL
urlpath -- URL的基本路径
dirpath -- 目录基路径(相当于URL)
- 返回:
dict 文件列表或 dict GeoJSON项目或原始文件的
- get_fields()[源代码]
获取提供程序字段信息(名称、类型)
示例返回:{‘field1’:‘字符串’,‘field2’:‘number’}}
- 返回:
字段名及其关联的JSON架构类型的字典
- get_schema(schema_type: SchemaType = SchemaType.item)[源代码]
获取提供程序架构模型
- 参数:
schema_type -- SchemaType 架构的(默认为‘Item’)
- 返回:
元组对 str 媒体类型和 dict 架构(即JSON架构)
- exception pygeoapi.provider.base.ProviderGenericError[源代码]
基类:
Exception
提供程序一般错误
- __weakref__
对象的弱引用列表(如果已定义)
CSV提供程序
- class pygeoapi.provider.csv_.CSVProvider(provider_def)[源代码]
基类:
BaseProvider
CSV提供程序
- _load(offset=0, limit=10, resulttype='results', identifier=None, bbox=[], datetime_=None, properties=[], select_properties=[], skip_geometry=False, q=None)[源代码]
加载CSV数据
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
datetime -- 时间(日期戳或范围)
resulttype -- 返回结果或命中限制(默认结果)
properties -- 元组列表(名称、值)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
- 返回:
GeoJSON FeatureCollection词典
- query(offset=0, limit=10, resulttype='results', bbox=[], datetime_=None, properties=[], sortby=[], select_properties=[], skip_geometry=False, q=None, **kwargs)[源代码]
CSV查询
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
resulttype -- 返回结果或命中限制(默认结果)
bbox -- 包围盒 [minx,miny,maxx,maxy]
datetime -- 时间(日期戳或范围)
properties -- 元组列表(名称、值)
sortby -- DICT列表(属性、顺序)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
- 返回:
GeoJSON FeatureCollection词典
Elasticsearch提供程序
- class pygeoapi.provider.elasticsearch_.ElasticsearchCatalogueProvider(provider_def)[源代码]
-
ElasticSearch提供者
- query(offset=0, limit=10, resulttype='results', bbox=[], datetime_=None, properties=[], sortby=[], select_properties=[], skip_geometry=False, q=None, filterq=None, **kwargs)[源代码]
查询Elasticearch索引
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
resulttype -- 返回结果或命中限制(默认结果)
bbox -- 包围盒 [minx,miny,maxx,maxy]
datetime -- 时间(日期戳或范围)
properties -- 元组列表(名称、值)
sortby -- DICT列表(属性、顺序)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
filterq -- 滤镜对象
- 返回:
0.N个GeoJSON要素的词典
- class pygeoapi.provider.elasticsearch_.ElasticsearchProvider(provider_def)[源代码]
基类:
BaseProvider
ElasticSearch提供者
- query(offset=0, limit=10, resulttype='results', bbox=[], datetime_=None, properties=[], sortby=[], select_properties=[], skip_geometry=False, q=None, filterq=None, **kwargs)[源代码]
查询Elasticearch索引
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
resulttype -- 返回结果或命中限制(默认结果)
bbox -- 包围盒 [minx,miny,maxx,maxy]
datetime -- 时间(日期戳或范围)
properties -- 元组列表(名称、值)
sortby -- DICT列表(属性、顺序)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
filterq -- 滤镜对象
- 返回:
0.N个GeoJSON要素的词典
GeoJSON
- class pygeoapi.provider.geojson.GeoJSONProvider(provider_def)[源代码]
基类:
BaseProvider
由本地GeoJSON文件支持的提供程序类
这意味着很简单(没有外部服务、没有依赖项、没有模式)
以牺牲性能为代价(无索引,每个请求的完整序列化往返)
不是线程安全的,因此假定为单服务器进程
此实现大量使用功能‘id’,并将覆盖原始数据中提供的任何‘id’。该功能的‘属性’将被保留。
待办事项: * query method should take bbox * 我们应该在视图中生成要素并进行聚合,而不是方法返回FeatureCollection * there are strict id semantics; all features in the input GeoJSON file must be present and be unique strings. Otherwise it will break. * 如何在提供程序实现中引发错误,从而*将引发相应的HTTP响应
- _load(skip_geometry=None, properties=[], select_properties=[])[源代码]
加载并验证self.data上的源GeoJSON文件
是的,每次请求都会从磁盘加载、反序列化和验证。这不是很有效率。
- query(offset=0, limit=10, resulttype='results', bbox=[], datetime_=None, properties=[], sortby=[], select_properties=[], skip_geometry=False, q=None, **kwargs)[源代码]
查询提供程序
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
resulttype -- 返回结果或命中限制(默认结果)
bbox -- 包围盒 [minx,miny,maxx,maxy]
datetime -- 时间(日期戳或范围)
properties -- 元组列表(名称、值)
sortby -- DICT列表(属性、顺序)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
- 返回:
0.n个GeoJSON要素的FeatureCollection字典
OGR
- class pygeoapi.provider.ogr.CommonSourceHelper(provider)[源代码]
基类:
SourceHelper
最常见的OGR源类型的SourceHelper:shapefile、GeoPackage、SQLite、GeoJSON等。
- close()[源代码]
特定于OGR驱动程序的关闭数据集处理。如果已(成功)调用ExecuteSQL,则必须显式关闭ResultSet。Https://gis.stackexchange.com/questions/114112/explicitly-close-a-ogr-result-object-from-a-call-to-executesql
- enable_paging(offset=-1, limit=-1)[源代码]
使用OGR SQL https://gdal.org/user/ogr_sql_dialect.html启用对数据集的分页访问(特定于OGR驱动程序),例如SELECT*FROM POLIST LIMIT 10 OFFSET 30
- class pygeoapi.provider.ogr.OGRProvider(provider_def)[源代码]
基类:
BaseProvider
OGR提供商。使用GDAL/OGR Python绑定访问OGR向量源。参考:https://pcjericks.github.io/py-gdalogr-cookbook/https://gdal.org/ogr_formats.html(每个驱动程序的具体信息)。
理论上,任何OGR源代码类型(驱动程序)都可以使用,尽管有些源代码类型是特定于驱动程序的处理。这是在每个源类型实例化的源帮助器类中处理的。
以下源代码类型已经过测试:GeoPackage(GPKG)、SQLite、GeoJSON、ESRI shapefile、WFS v2。
- _response_feature_collection(layer, limit, skip_geometry=False, crs_transform_spec=None)[源代码]
将来自图层查询的输出合并为GeoJSON FeatureCollection结构。
- 返回:
GeoJSON要素集合
- _response_feature_hits(layer)[源代码]
根据OGR要素计数组合GeoJSON点击数,例如:http://localhost:5000/collections/Hotosm_bdi_water ways/Items?ResultType=Hits
- 返回:
GeoJSON要素集合
- get(identifier, crs_transform_spec=None, **kwargs)[源代码]
按ID获取要素
- 参数:
identifier -- 功能ID
crs_transform_spec -- CrsTransformSpec 实例,可选
- 返回:
要素集合
- query(offset=0, limit=10, resulttype='results', bbox=[], datetime_=None, properties=[], sortby=[], select_properties=[], skip_geometry=False, q=None, crs_transform_spec=None, **kwargs)[源代码]
查询OGR源
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
resulttype -- 返回结果或命中限制(默认结果)
bbox -- 包围盒 [minx,miny,maxx,maxy]
datetime -- 时间(日期戳或范围)
properties -- 元组列表(名称、值)
sortby -- DICT列表(属性、顺序)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
crs_transform_spec -- CrsTransformSpec 实例,可选
- 返回:
0.N个GeoJSON要素的词典
- class pygeoapi.provider.ogr.SourceHelper(provider)[源代码]
基类:
object
特定于OGR的源类型(驱动程序)的助手类。对于某些操作,需要特定于驱动程序的设置或处理。这被委托给OGR SourceHelper类。
- class pygeoapi.provider.ogr.WFSHelper(provider)[源代码]
基类:
SourceHelper
postgresql
- class pygeoapi.provider.postgresql.PostgreSQLProvider(provider_def)[源代码]
基类:
BaseProvider
使用同步方法和服务器端游标(使用支持类DatabaseCursor)、基于opecpg2的PostgreSQL通用提供程序
- _get_engine_and_table_model()[源代码]
为数据库创建一个SQL AlChemy引擎并映射表模型。使用存储中的现有版本(如果可用),以允许重复使用引擎连接池,并节省昂贵的表反射。
- static _name_for_scalar_relationship(base, local_cls, referred_cls, constraint)[源代码]
从数据库架构自动映射类和关系并修复潜在命名冲突时使用的函数。
- get(identifier, crs_transform_spec=None, **kwargs)[源代码]
向提供程序查询特定的功能ID,例如:/collections/hotosm_bdi_waterways/items/13990765
- 参数:
identifier -- 功能ID
crs_transform_spec -- CrsTransformSpec 实例,可选
- 返回:
GeoJSON要素集合
- query(offset=0, limit=10, resulttype='results', bbox=[], datetime_=None, properties=[], sortby=[], select_properties=[], skip_geometry=False, q=None, filterq=None, crs_transform_spec=None, **kwargs)[源代码]
向Postgis查询所有内容。E,g:http://localhost:5000/collections/hotosm_bdi_waterways/items?限制=1&ResultType=结果
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
resulttype -- 返回结果或命中限制(默认结果)
bbox -- 包围盒 [minx,miny,maxx,maxy]
datetime -- 时间(日期戳或范围)
properties -- 元组列表(名称、值)
sortby -- DICT列表(属性、顺序)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
filterq -- 文本字符串形式的CQL查询
crs_transform_spec -- CrsTransformSpec 实例,可选
- 返回:
GeoJSON要素集合
sqlite/geopackage
- class pygeoapi.provider.sqlite.SQLiteGPKGProvider(provider_def)[源代码]
基类:
BaseProvider
使用SQLITE模块的SQLITE和GPKG通用提供程序。此模块需要安装libsqlite3-mod-spatialite TODO:删除、更新、创建
- __get_where_clauses(properties=[], bbox=[])
概括要在查询中实现的WHERE条件。私有方法主要与查询方法关联。
方法返回部分SQL查询,以及要在SQLite查询方法中使用的元组
- 参数:
properties -- 元组列表(名称、值)
bbox -- 包围盒 [minx,miny,maxx,maxy]
- 返回:
字符串、元组
- __load()
私有方法加载SPILALITE,获取表结构和转储几何图形
- 返回:
sqlite3.Cursor
- __response_feature(row_data, skip_geometry=False)
汇编来自数据库查询的GeoJSON输出
- 参数:
row_data -- 数据库行结果
skip_geometry -- 是否跳过几何体(默认为FALSE)
- 返回:
dict GeoJSON功能的
- __response_feature_hits(hits)
组合GeoJSON/要素编号
- 返回:
GeoJSON要素集合
- get(identifier, **kwargs)[源代码]
向提供者查询特定功能id,例如:/Collection/Country/Items/1
- 参数:
identifier -- 功能ID
- 返回:
单个GeoJSON要素的字典
- query(offset=0, limit=10, resulttype='results', bbox=[], datetime_=None, properties=[], sortby=[], select_properties=[], skip_geometry=False, q=None, **kwargs)[源代码]
查询SQLite/GPKG以获取所有内容。E,g:http://localhost:5000/collections/countries/items?Limit=5&offset=2&resulttype=results&continent=Europe&admin=Albania&bbox=29.3373,-3.4099,29.3761,-3.3924 http://localhost:5000/collections/countries/items?continent=Africa&bbox=29.3373,-3.4099,29.3761,-3.3924
- 参数:
offset -- 开始记录返回(默认为0)
limit -- 要返回的记录数(默认为10)
resulttype -- 返回结果或命中限制(默认结果)
bbox -- 包围盒 [minx,miny,maxx,maxy]
datetime -- 时间(日期戳或范围)
properties -- 元组列表(名称、值)
sortby -- DICT列表(属性、顺序)
select_properties -- 属性名称列表
skip_geometry -- 是否跳过几何体的布尔值(默认为FALSE)
q -- 全文搜索词(S)
- 返回:
GeoJSON要素集合