PYWPS API文档

过程

class pywps.Process(handler, identifier, title, abstract='', keywords=[], profile=[], metadata=[], inputs=[], outputs=[], version='None', store_supported=False, status_supported=False, grass_location=None, translations=None)[源代码]
参数
  • handler -- 为每个传入请求调用的可调用的。它应该接受一个 pywps.app.WPSRequest 参数并返回 pywps.app.WPSResponse 对象。

  • identifier (string) -- 此进程的名称。

  • title (string) -- 过程的可读标题。

  • abstract (string) -- 简要叙述过程。

  • keywords (list) -- 描述过程的关键字。

  • inputs -- 此过程接受的输入列表。他们应该是 LiteralInputComplexInputBoundingBoxInput 物体。

  • outputs -- 此进程返回的输出列表。他们应该是 LiteralOutputComplexOutputBoundingBoxOutput 物体。

  • metadata -- 此进程播发的元数据列表。他们应该是 pywps.app.Common.Metadata 物体。

  • translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}

可以在流程实现中引发异常以显示用户友好的错误消息。

class pywps.app.exceptions.ProcessError(msg=None, min_length=3, max_length=300, allowed_chars=None)[源代码]

pywps.app.exceptions.ProcessError 是一个 Exception 您可以故意在进程中引发以提供用户友好的错误消息。错误消息被格式化(3<=消息长度<=300),并且只允许字母数字字符和一些特殊字符。

输入和输出

class pywps.validator.mode.MODE[源代码]

验证模式枚举

NONE = 0
SIMPLE = 1
STRICT = 2
VERYSTRICT = 3

大多数输入和输出都来自 IOHandler

class pywps.inout.basic.IOHandler(workdir=None, mode=0)[源代码]

按专用版本子类划分的基本IO处理类:filehandler、urlhandler、datahandler等。

如果在创建对象时不知道专用处理类,请使用iohandler实例化该对象。第一次 fileurldata 属性设置后,将自动注册关联的子类。一旦设置,就不能切换专门的子类。

参数
  • workdir -- 工作目录,用于保存临时文件对象。

  • mode -- MODE 验证模式。

fileSTR

本地磁盘上的文件名。

urlSTR

链接到联机资源。

stream菲利奥

可读的对象。

data对象

本机python对象(integer、string、float等)

base64STR

数据的基64编码。

>>> # setting up
>>> import os
>>> from io import RawIOBase
>>> from io import FileIO
>>>
>>> ioh_file = IOHandler(workdir=tmp)
>>> assert isinstance(ioh_file, IOHandler)
>>>
>>> # Create test file input
>>> fileobj = open(os.path.join(tmp, 'myfile.txt'), 'w')
>>> fileobj.write('ASDF ASFADSF ASF ASF ASDF ASFASF')
>>> fileobj.close()
>>>
>>> # testing file object on input
>>> ioh_file.file = fileobj.name
>>> assert isinstance(ioh_file, FileHandler
>>> assert ioh_file.file == fileobj.name
>>> assert isinstance(ioh_file.stream, RawIOBase)
>>> # skipped assert isinstance(ioh_file.memory_object, POSH)
>>>
>>> # testing stream object on input
>>> ioh_stream = IOHandler(workdir=tmp)
>>> assert ioh_stream.workdir == tmp
>>> ioh_stream.stream = FileIO(fileobj.name,'r')
>>> assert isinstance(ioh_stream, StreamHandler)
>>> assert open(ioh_stream.file).read() == ioh_file.stream.read()
>>> assert isinstance(ioh_stream.stream, RawIOBase)

LiteralData

class pywps.LiteralInput(identifier, title=None, data_type=None, workdir=None, abstract='', keywords=[], metadata=[], uoms=None, min_occurs=1, max_occurs=1, mode=1, allowed_values=None, default=None, default_type=3, translations=None)[源代码]
参数
  • identifier (str) -- 此输入的名称。

  • title (str) -- 输入的标题

  • data_type (pywps.inout.literaltypes.LITERAL_DATA_TYPES) -- 数据类型

  • workdir (str) -- 工作目录,用于保存临时文件对象。

  • abstract (str) -- 输入摘要

  • keywords (list) -- 描述此输入的关键字。

  • metadata (list) -- TODO

  • uoms (str) -- 单位

  • min_occurs (int) -- 最小发生次数

  • max_occurs (int) -- 最大发生次数

  • mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)

  • allowed_values (pywps.inout.literaltypes.AnyValue) -- 或 pywps.inout.literaltypes.AllowedValue 对象

  • metadata -- 此进程播发的元数据列表。他们应该是 pywps.app.Common.Metadata 物体。

  • translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}

class pywps.LiteralOutput(identifier, title, data_type='string', abstract='', keywords=[], metadata=[], uoms=None, mode=1, translations=None)[源代码]
参数
  • identifier -- 此输出的名称。

  • title (str) -- 输入的标题

  • data_type (pywps.inout.literaltypes.LITERAL_DATA_TYPES) -- 数据类型

  • abstract (str) -- 输入摘要

  • uoms (str) -- 单位

  • mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)

  • metadata -- 此进程播发的元数据列表。他们应该是 pywps.app.Common.Metadata 物体。

  • translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}

class pywps.inout.literaltypes.AnyValue[源代码]

指定此数量允许任何值。

class pywps.inout.literaltypes.AllowedValue(allowed_type=None, value=None, minval=None, maxval=None, spacing=None, range_closure='closed')[源代码]

此数量的所有有效值和/或值范围的列表。值在文本验证器函数中求值

参数
  • allowed_type (pywps.validator.allowed_value.ALLOWEDVALUETYPE) -- 值或范围

  • value -- single value

  • minval -- 范围最小值

  • maxval -- 范围最大值

  • spacing -- 范围内的间距

  • range_closure (pywps.input.literaltypes.RANGECLOSURETYPE) --

class pywps.inout.literaltypes.ValuesReference(reference=None, values_form=None)[源代码]

参考此数量的所有有效值和/或值范围的列表。注意:不执行值验证。

Param

reference:可以从中检索这组范围和值的URL

Param

values_form:引用用于这组值和范围的mimetype、编码和架构的描述。

pywps.inout.literaltypes.LITERAL_DATA_TYPES = ('float', 'boolean', 'integer', 'string', 'positiveInteger', 'anyURI', 'time', 'date', 'dateTime', 'scale', 'angle', 'nonNegativeInteger')

内置不可变序列。

如果未给定参数,则构造函数返回空元组。如果指定了iterable,则从iterable的项初始化元组。

如果参数是元组,则返回值是相同的对象。

ComplexData

class pywps.ComplexInput(identifier, title, supported_formats, data_format=None, abstract='', keywords=[], workdir=None, metadata=[], min_occurs=1, max_occurs=1, mode=0, default=None, default_type=3, translations=None)[源代码]

复杂数据输入

参数
  • identifier (str) -- 此输入的名称。

  • title (str) -- 输入的标题

  • supported_formats (pywps.inout.formats.Format) -- 支持格式列表

  • data_format (pywps.inout.formats.Format) -- 默认数据格式

  • abstract (str) -- 输入摘要

  • keywords (list) -- 描述此输入的关键字。

  • workdir (str) -- 工作目录,用于保存临时文件对象。

  • metadata (list) -- TODO

  • min_occurs (int) -- 最小发生次数

  • max_occurs (int) -- 最大发生次数

  • mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)

  • translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}

class pywps.ComplexOutput(identifier, title, supported_formats=None, data_format=None, abstract='', keywords=[], workdir=None, metadata=None, as_reference=False, mode=0, translations=None)[源代码]
参数
  • identifier -- 此输出的名称。

  • title -- 输出名称的可读形式。

  • supported_formats ((pywps.inout.formats.Format, )) -- 支持格式的列表。列表中的第一个格式将用作默认格式。

  • abstract (str) -- 输出说明

  • mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)

  • metadata -- 此进程播发的元数据列表。他们应该是 pywps.app.Common.Metadata 物体。

  • translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}

class pywps.Format(mime_type, schema=None, encoding=None, validate=None, extension=None)[源代码]

输入输出格式规范

预定义格式存储在 pywps.inout.formats.FORMATS

参数
  • mime_type (str) -- mimetype定义

  • schema (str) -- XML架构定义

  • encoding (str) -- 是否为Base64

  • validate (function) -- 函数,它将执行验证。例如

  • mode (number) -- 验证模式

  • extension (str) -- 文件扩展名

pywps.inout.formats.FORMATS

格式(GEOJSON、JSON、SHP、GML、GPX、METALINK、META4、KML、KMZ、GEOTIFF、WCS、WCS100、WCS110、WCS20、WFS、WFS100、WFS110、WFS20、WMS、WMS130、WMS110、WMS100、TEXT、DODS、NETCDF、LAZ、LAS、ZIP、XML)

开箱即用支持格式的列表。用户可以向数组添加自定义格式。

pywps.validator.complexvalidator.validategml(data_input, mode)[源代码]

GML验证功能

参数

此函数根据给定的验证模式验证GML输入。如果发生以下情况 mode 参数如下:

MODE.NONE

它总会回来的 True

MODE.SIMPLE

将检查mimetype

MODE.STRICT

GDAL/OGR 用于获取正确的格式。

MODE.VERYSTRICT

这个 lxml.etree 与给定的输入一起使用 schema GML文件根据给定的模式进行了正确的验证。

BoundingBoxData

class pywps.BoundingBoxInput(identifier, title, crss=None, abstract='', keywords=[], dimensions=2, workdir=None, metadata=[], min_occurs=1, max_occurs=1, mode=0, default=None, default_type=3, translations=None)[源代码]
参数
  • identifier (string) -- 此输入的名称。

  • title (string) -- 可读标题

  • abstract (string) -- 较长的文本描述

  • crss -- 支持的坐标参考系列表(例如 [EPSG:4326] )

  • keywords (list) -- 描述此输入的关键字。

  • dimensions (int) -- 2或3

  • workdir (str) -- 工作目录,用于保存临时文件对象。

  • metadata (list) -- TODO

  • min_occurs (int) -- 此输入发生多少次

  • max_occurs (int) -- 此输入发生多少次

  • metadata -- 此进程播发的元数据列表。他们应该是 pywps.app.Common.Metadata 物体。

  • translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}

class pywps.BoundingBoxOutput(identifier, title, crss, abstract='', keywords=[], dimensions=2, metadata=[], min_occurs='1', max_occurs='1', as_reference=False, mode=0, translations=None)[源代码]
参数
  • identifier -- 此输入的名称。

  • title (str) -- 输入的标题

  • abstract (str) -- 输入摘要

  • crss -- 支持的坐标参考系列表(例如 [EPSG:4326] )

  • dimensions (int) -- 尺寸数量(2或3)

  • min_occurs (int) -- 最小发生次数

  • max_occurs (int) -- 最大发生次数

  • mode (pywps.validator.mode.MODE) -- 验证模式(无到严格)

  • metadata -- 此进程播发的元数据列表。他们应该是 pywps.app.Common.Metadata 物体。

  • translations (dict[str,dict[str,str]]) -- 第一个键是RFC4646语言代码,嵌套映射包含字符串属性可访问的翻译字符串。e、 g.{“fr-CA”:{“title”:“Mon titre”,“abstract”:“Une description”}}

请求和响应对象

pywps.response.status.WPS_STATUS

WPSStatus(未知、已接受、已启动、已暂停、成功、失败)

进程状态信息

class pywps.app.WPSRequest(http_request=None)[源代码]
operation

客户端请求的操作类型。可以是 getcapabilitiesdescribeprocessexecute .

http_request

原始的werkzeug httprequest对象。

inputs

包含客户端发送的输入值的multidict对象。

check_accepted_versions(acceptedversions)[源代码]
参数

acceptedversions -- 一串

check_and_set_language(language)[源代码]

设置此.language

check_and_set_version(version)[源代码]

设置此.version

property json

返回请求的json编码表示

class pywps.response.WPSResponse(wps_request, uuid=None, version='1.0.0')[源代码]
status

有关当前运行进程状态的信息 pywps.response.status.STATUS

处理

pywps.processing.Process(process, wps_request, wps_response)[源代码]

工厂方法(看起来像一个类)返回配置的处理类。

返回

实例 pywps.processing.Processing

class pywps.processing.Processing(process, wps_request, wps_response)[源代码]

Processing 是运行作业的接口。

class pywps.processing.Job(process, wps_request, wps_response)[源代码]

Job 表示处理作业。

classmethod from_json(value)[源代码]

再次从json初始化这个请求

参数

value -- json(不是字符串)表示

property json

返回请求的json编码表示

参考 例外情况 他们的描述。