API文档

顶级代码文档。按照每个部分中的链接获取模块/类成员信息。

API

Pygeapi的根级代码,解析Web框架提供的内容。从插件返回内容并设置响应。

class pygeoapi.api.API(config)[源代码]

API对象

__init__(config)[源代码]

构造函数

参数:

config -- 配置字典

返回:

pygeoapi.API 实例

__weakref__

对象的弱引用列表(如果已定义)

static _create_crs_transform_spec(config: dict, query_crs_uri: str | None = None) None | CrsTransformSpec[源代码]

创建 CrsTransformSpec 实例基于提供程序配置和 crs 查询参数。

参数:
  • config (dict) -- 提供程序配置词典。

  • query_crs_uri (str, optional) -- 查询参数中指定的坐标参考系(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 来自功能类型提供程序的响应中的标头。

参数:
  • headers (dict) -- 响应头词典。

  • config (dict) -- 提供程序配置词典。

  • query_crs_uri (str, optional) -- 在查询参数中指定的坐标参考系的统一资源标识符(如果已指定)。

get_exception(status, headers, format_, code, description) Tuple[dict, int, str][源代码]

异常处理程序

参数:
  • status -- HTTP状态代码

  • headers -- HTTP响应头的字典

  • format -- 格式字符串

  • code -- OGC API异常代码

  • description -- OGC API异常代码

返回:

标头、状态和消息的元组

get_format_exception(request) Tuple[dict, int, str][源代码]

返回格式异常。

参数:

request -- 一个APIRequest实例。

返回:

(标头、状态、消息)的元组

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 -- 支持的区域设置实例的列表或集合。

__init__(request, 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

property data: bytes

返回与请求一起发送的附加数据(字节)

property format: str | None

从请求查询参数或标头返回内容类型格式。

返回:

格式名称或无

get_linkrel(format_: str) str[源代码]

返回给定API格式字符串的超链接关系(REL)属性值。

将该字符串与请求格式进行比较,如果匹配,则返回值‘self’。否则,返回‘Alternate’。但是,如果 format_ 是‘json’并且 no 找到请求格式,也返回关系‘self’(默认为JSON)。

参数:

format -- 要将请求格式与之进行比较的格式。

返回:

字符串‘self’或‘Alternate’。

get_request_headers(headers) dict[源代码]

获取并返回带有请求对象标头的词典。

此方法添加原始请求的标头,并使其可用于API对象。

返回:

标题词典

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 -- 可选的内容编码标头重写。

返回:

标题词典

property headers: dict

从请求中返回标头的词典。

返回:

请求标头词典

is_valid(additional_formats=None) bool[源代码]
如果满足以下条件,则返回True:
  • 未设置格式(无)

  • 支持请求的格式

  • 如果存在其他格式,则列表中存在请求的格式

备注

格式名称以不区分大小写的方式匹配。

参数:

additional_formats -- 可选的其他支持格式列表

返回:

布尔尔

property locale: Locale

从请求对象返回用户定义的区域设置。如果未定义区域设置或区域设置无效,则返回默认的服务器区域设置。

备注

这里的区域设置决定了pygeapi应该以何种语言返回其响应。这可能不是用户请求的语言。例如,它也可能不是集合提供程序支持的语言。因此,您应该将 raw_locale 属性设置为 l10n.get_plugin_locale() 函数,以便可以确定提供程序的最佳匹配。

返回:

babel.core.Locale

property params: dict

返回请求查询参数dict

property path_info: str

返回Web服务器请求路径信息部分

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 listfloat

pygeoapi.api.validate_datetime(resource_def, datetime_=None) str[源代码]

用于验证时间参数的Helper函数

参数:
  • resource_def -- dict 配置资源定义的

  • datetime -- str 日期时间参数的

返回:

str DateTime输入的值(如果有效

pygeoapi.api.validate_subset(value: str) dict[源代码]

验证子集参数的帮助器函数

参数:

value -- subset 参数

返回:

轴/值的字典

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.conformance()[源代码]

OGC API一致性端点

返回:

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_jobs(job_id=None)[源代码]

OGC API-处理作业端点

参数:

job_id -- 作业识别符

返回:

HTTP响应

pygeoapi.flask_app.get_processes(process_id=None)[源代码]

OGC API-流程描述端点

参数:

process_id -- 进程识别符

返回:

HTTP响应

pygeoapi.flask_app.get_response(result: tuple)[源代码]

创建一个烧瓶响应对象并更新匹配的标头。

参数:

result -- API调用的结果。这应该是(Header、Status、Content)的元组。

返回:

响应实例。

pygeoapi.flask_app.landing_page()[源代码]

OGC API登录页终结点

返回:

HTTP响应

pygeoapi.flask_app.openapi()[源代码]

OpenAPI终结点

返回:

HTTP响应

pygeoapi.flask_app.stac_catalog_path(path)[源代码]

堆叠路径端点

参数:

path -- 路径

返回:

HTTP响应

pygeoapi.flask_app.stac_catalog_root()[源代码]

堆叠根端点

返回:

HTTP响应

登录中

测井系统

pygeoapi.log.setup_logger(logging_config)[源代码]

设置配置

参数:

logging_config -- 记录特定配置

返回:

Void(创建日志记录实例)

开放应用程序接口

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.openapi.get_oas(cfg, version='3.0')[源代码]

用于生成OpenAPI文档的存根

参数:
  • cfg -- 配置对象

  • version -- OpenAPI的版本(默认为3.0)

返回:

OpenAPI定义YAML词典

pygeoapi.openapi.get_oas_30(cfg)[源代码]

生成OpenAPI 3.0文档

参数:

cfg -- 配置对象

返回:

OpenAPI定义YAML词典

pygeoapi.openapi.validate_openapi_document(instance_dict)[源代码]

根据OpenAPI架构验证OpenAPI文档

参数:

instance_dict -- OpenAPI实例的字典

返回:

bool 验证的

插件

插件加载器

exception pygeoapi.plugin.InvalidPluginError[源代码]

基类:Exception

插件无效

__weakref__

对象的弱引用列表(如果已定义)

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使用的提供程序插件,可用的格式化程序和进程

pygeoapi.plugin.load_plugin(plugin_type: str, plugin_def: dict) Any[源代码]

按名称加载插件

参数:
  • plugin_type -- 插件类型(提供程序、格式化程序)

  • plugin_def -- 插件定义

返回:

插件对象

乌迪斯

代码中使用的通用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
__init__(source_crs_uri: str, source_crs_wkt: str, target_crs_uri: str, target_crs_wkt: str) 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个重定向。

__init__()[源代码]
__weakref__

对象的弱引用列表(如果已定义)

get_headers(url: str, **kwargs) CaseInsensitiveDict[源代码]

向给定URL发出HTTP Head请求。返回所有标头的不区分大小写的字典。如果请求超时(默认为1秒,除非 timeout 关键字参数已设置),或者响应具有错误状态代码,则返回空词典。

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 方法返回的对象 getquery ‘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_base_url(config: dict) str[源代码]

返回完整的pyGeoapi基本URL。

pygeoapi.util.get_breadcrumbs(urlpath: str) list[源代码]

从URL路径生成面包屑的帮助器函数

参数:

urlpath -- URL路径

返回:

listdict 标签和链接的对象

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.read_data(path: Path | str) bytes | str[源代码]

读取数据(文件或网络)的Helper函数

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个坐标的列表

pygeoapi.util.url_join(*parts: str) str[源代码]

Helper函数,用于连接来自多个部分/片段的URL。之所以实现,是因为urllib.parse.urlJoin会从主机URL中剥离子路径(如果指定了子路径

每个https://github.com/geopython/pygeoapi/issues/695

参数:

parts -- 要连接的零件列表

返回:

结果URL的字符串

pygeoapi.util.yaml_load(fh: IO) dict[源代码]

将YAML文件序列化为Pyyaml对象

参数:

fh -- 文件句柄

返回:

dict YAML的表示法

格式化程序包

输出格式化程序包

基类

class pygeoapi.formatter.base.BaseFormatter(formatter_def: dict)[源代码]

基类:object

通用格式化程序ABC

__init__(formatter_def: dict)[源代码]

初始化对象

参数:

formatter_def -- 格式化程序定义

返回:

pygeoapi.formatter.base.BaseFormatter

__repr__()[源代码]

返回epr(Self)。

__weakref__

对象的弱引用列表(如果已定义)

write(options: dict = {}, data: dict = None) str[源代码]

生成指定格式的数据

参数:
  • options -- CSV格式选项

  • data -- GeoJSON对象的DICT表示

返回:

格式的字符串表示形式

exception pygeoapi.formatter.base.FormatterGenericError[源代码]

基类:Exception

格式化程序一般错误

__weakref__

对象的弱引用列表(如果已定义)

exception pygeoapi.formatter.base.FormatterSerializationError[源代码]

基类:FormatterGenericError

格式化程序序列化错误

csv

class pygeoapi.formatter.csv_.CSVFormatter(formatter_def: dict)[源代码]

基类:BaseFormatter

CSV格式化程序

__init__(formatter_def: dict)[源代码]

初始化对象

参数:

formatter_def -- 格式化程序定义

返回:

pygeoapi.formatter.csv_.CSVFormatter

__repr__()[源代码]

返回epr(Self)。

write(options: dict = {}, data: dict = None) str[源代码]

生成CSV格式的数据

参数:
  • options -- CSV格式选项

  • data -- GeoJSON数据字典

返回:

格式的字符串表示形式

工艺包

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

__repr__()[源代码]

返回epr(Self)。

__weakref__

对象的弱引用列表(如果已定义)

execute(data: dict) Tuple[str, Any][源代码]

执行该流程

参数:

data -- 使用流程执行所需的输入数据进行判定

返回:

MIME类型和进程响应的元组

exception pygeoapi.process.base.JobError[源代码]

基类:Exception

__weakref__

对象的弱引用列表(如果已定义)

exception pygeoapi.process.base.JobNotFoundError[源代码]

基类:JobError

exception pygeoapi.process.base.JobResultNotFoundError[源代码]

基类:JobError

exception pygeoapi.process.base.ProcessError[源代码]

基类:Exception

__weakref__

对象的弱引用列表(如果已定义)

exception pygeoapi.process.base.ProcessorExecuteError[源代码]

基类:ProcessorGenericError

查询/后端错误

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)[源代码]

基类:BaseProcessor

Hello World处理器示例

__init__(processor_def)[源代码]

初始化对象

参数:

processor_def -- 提供程序定义

返回:

pygeoapi.process.hello_world.HelloWorldProcessor

__repr__()[源代码]

返回epr(Self)。

execute(data)[源代码]

执行该流程

参数:

data -- 使用流程执行所需的输入数据进行判定

返回:

MIME类型和进程响应的元组

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

__repr__()[源代码]

返回epr(Self)。

__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 物品识别符和物品数据/有效负载的

create(item)[源代码]

创建新项目

参数:

item -- dict 新项目的数量

返回:

已创建项目的标识符

delete(identifier)[源代码]

删除现有项目

参数:

identifier -- 项目ID

返回:

bool 删除结果的

get(identifier, **kwargs)[源代码]

按ID查询提供程序

参数:

identifier -- 功能ID

返回:

单个GeoJSON要素的字典

get_coverage_domainset()[源代码]

提供覆盖域集

返回:

域集元数据的CIS JSON对象

get_coverage_rangetype()[源代码]

提供覆盖范围类型

返回:

远程类型元数据的CIS JSON对象

get_data_path(baseurl, urlpath, dirpath)[源代码]

获取目录列表或文件说明或原始文件转储

参数:
  • baseurl -- 终结点的基本URL

  • urlpath -- URL的基本路径

  • dirpath -- 目录基路径(相当于URL)

返回:

dict 文件列表或 dict GeoJSON项目或原始文件的

get_fields()[源代码]

获取提供程序字段信息(名称、类型)

示例返回:{‘field1’:‘字符串’,‘field2’:‘number’}}

返回:

字段名及其关联的JSON架构类型的字典

get_metadata()[源代码]

提供数据/文件元数据

返回:

dict 元数据结构(格式由提供商/标准确定)

get_schema(schema_type: SchemaType = SchemaType.item)[源代码]

获取提供程序架构模型

参数:

schema_type -- SchemaType 架构的(默认为‘Item’)

返回:

元组对 str 媒体类型和 dict 架构(即JSON架构)

query()[源代码]

查询提供程序

返回:

0.n个GeoJSON要素或Coverage数据的字典

update(identifier, item)[源代码]

更新现有项目

参数:
  • identifier -- 功能ID

  • item -- dict 指部分或全部项目

返回:

bool 更新结果的

exception pygeoapi.provider.base.ProviderConnectionError[源代码]

基类:ProviderGenericError

提供程序连接错误

exception pygeoapi.provider.base.ProviderGenericError[源代码]

基类:Exception

提供程序一般错误

__weakref__

对象的弱引用列表(如果已定义)

exception pygeoapi.provider.base.ProviderInvalidDataError[源代码]

基类:ProviderGenericError

提供程序数据无效错误

exception pygeoapi.provider.base.ProviderInvalidQueryError[源代码]

基类:ProviderGenericError

提供程序无效查询错误

exception pygeoapi.provider.base.ProviderItemNotFoundError[源代码]

基类:ProviderGenericError

未找到提供程序项查询错误

exception pygeoapi.provider.base.ProviderNoDataError[源代码]

基类:ProviderGenericError

提供程序无数据错误

exception pygeoapi.provider.base.ProviderNotFoundError[源代码]

基类:ProviderGenericError

找不到提供程序错误

exception pygeoapi.provider.base.ProviderQueryError[源代码]

基类:ProviderGenericError

提供程序查询错误

exception pygeoapi.provider.base.ProviderRequestEntityTooLargeError[源代码]

基类:ProviderGenericError

提供程序请求实体太大错误

exception pygeoapi.provider.base.ProviderTypeError[源代码]

基类:ProviderGenericError

提供程序类型错误

exception pygeoapi.provider.base.ProviderVersionError[源代码]

基类:ProviderGenericError

提供程序版本错误

class pygeoapi.provider.base.SchemaType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[源代码]

基类:Enum

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词典

get(identifier, **kwargs)[源代码]

查询CSV ID

参数:

identifier -- 功能ID

返回:

单个GeoJSON要素的字典

get_fields()[源代码]

获取提供程序字段信息(名称、类型)

返回:

字段词典

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)[源代码]

基类:ElasticsearchProvider

ElasticSearch提供者

get_fields()[源代码]

获取提供程序字段信息(名称、类型)

返回:

字段词典

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提供者

create(item)[源代码]

创建新项目

参数:

item -- dict 新项目的数量

返回:

已创建项目的标识符

delete(identifier)[源代码]

删除现有项目

参数:

identifier -- 项目ID

返回:

bool 删除结果的

esdoc2geojson(doc)[源代码]

生成GeoJSON dict 来自ES文档

参数:

doc -- dict Of ES文档

返回:

GeoJSON dict

get(identifier, **kwargs)[源代码]

按ID获取ES文档

参数:

identifier -- 功能ID

返回:

单个GeoJSON要素的字典

get_fields()[源代码]

获取提供程序字段信息(名称、类型)

返回:

字段词典

mask_prop(property_name)[源代码]

基于ES后端设置生成属性名称

参数:

property_name -- 属性名称

返回:

掩码属性名称

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要素的词典

update(identifier, item)[源代码]

更新现有项目

参数:
  • identifier -- 功能ID

  • item -- dict 指部分或全部项目

返回:

bool 更新结果的

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文件

是的,每次请求都会从磁盘加载、反序列化和验证。这不是很有效率。

create(new_feature)[源代码]

创建新要素

参数:

new_feature -- 新的GeoJSON要素字典

delete(identifier)[源代码]

删除现有要素

参数:

identifier -- 功能ID

get(identifier, **kwargs)[源代码]

按ID查询提供程序

参数:

identifier -- 功能ID

返回:

单个GeoJSON要素的字典

get_fields()[源代码]

获取提供程序字段信息(名称、类型)

返回:

字段词典

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字典

update(identifier, new_feature)[源代码]

使用new_Feature更新现有要素ID

参数:
  • identifier -- 功能ID

  • new_feature -- 新的GeoJSON要素字典

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

disable_paging()[源代码]

禁用对数据集的分页访问(特定于OGR驱动程序)

enable_paging(offset=-1, limit=-1)[源代码]

使用OGR SQL https://gdal.org/user/ogr_sql_dialect.html启用对数据集的分页访问(特定于OGR驱动程序),例如SELECT*FROM POLIST LIMIT 10 OFFSET 30

get_layer()[源代码]

从打开的OGR数据集中获取OGR层。当OFFSET定义为1或更大时,将调用OGR SQL SELECT WITH LIMIT和OFFSET,并从DataSet上的ExecuteSQL返回AS Layer作为ResultSet。:RETURN:OGR层对象

class pygeoapi.provider.ogr.ESRIJSONHelper(provider)[源代码]

基类:CommonSourceHelper

disable_paging()[源代码]

禁用对数据集的分页访问(特定于OGR驱动程序)

enable_paging(offset=-1, limit=-1)[源代码]

启用对数据集的分页访问(特定于OGR驱动程序)

get_layer()[源代码]

从打开的OGR数据集中获取OGR层。当OFFSET定义为1或更大时,将调用OGR SQL SELECT WITH LIMIT和OFFSET,并从DataSet上的ExecuteSQL返回AS Layer作为ResultSet。:RETURN:OGR层对象

exception pygeoapi.provider.ogr.InvalidHelperError[源代码]

基类:Exception

无效帮助器

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。

_load_source_helper(source_type)[源代码]

按名称加载源辅助对象。

参数:

type (Source) -- 源类型名称

返回:

源辅助对象

_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 实例,可选

返回:

要素集合

get_fields()[源代码]

获取提供程序字段信息(名称、类型)

返回:

字段词典

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类。

close()[源代码]

特定于OGR驱动程序的关闭数据集处理。默认情况下没有具体的处理。

disable_paging()[源代码]

禁用对数据集的分页访问(特定于OGR驱动程序)

enable_paging(offset=-1, limit=-1)[源代码]

启用对数据集的分页访问(特定于OGR驱动程序)

get_layer()[源代码]

从打开的OGR驱动程序获取层对象的默认操作。:返回:

class pygeoapi.provider.ogr.WFSHelper(provider)[源代码]

基类:SourceHelper

disable_paging()[源代码]

禁用对数据集的分页访问(特定于OGR驱动程序)

enable_paging(offset=-1, limit=-1)[源代码]

启用对数据集的分页访问(特定于OGR驱动程序)

pygeoapi.provider.ogr._ignore_gdal_error(inst, fn, *args, **kwargs) Any[源代码]

使用对象实例计算函数。

参数:
  • inst -- 对象实例

  • fn -- 字符串函数名

  • args -- 位置参数列表

  • kwargs -- 关键字参数

返回:

任何函数求值结果

pygeoapi.provider.ogr._silent_gdal_error(f)[源代码]

GDAL的装饰器功能

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)[源代码]

从数据库架构自动映射类和关系并修复潜在命名冲突时使用的函数。

_reflect_table_model(engine)[源代码]

反映数据库元数据以创建与目标表对应的SQL炼金术模型。这需要数据库查询,并且执行成本很高。

get(identifier, crs_transform_spec=None, **kwargs)[源代码]

向提供程序查询特定的功能ID,例如:/collections/hotosm_bdi_waterways/items/13990765

参数:
  • identifier -- 功能ID

  • crs_transform_spec -- CrsTransformSpec 实例,可选

返回:

GeoJSON要素集合

get_fields()[源代码]

从PostgreSQL表返回字段(列)

返回:

字段词典

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要素的字典

get_fields()[源代码]

从SQLITE表中获取字段(列为字段)

返回:

字段词典

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要素集合