PyWPS Quickstart¶
PYWPS是一个写入的OGC WPS(Web处理服务1.0.0)服务器实现 Python .
默认情况下,pywps 4.0.0库安装在osgeo live上。这是一个核心库,不打算直接执行,而是用于WPS服务的开发。安 example service 基于 Flask 可在Github获得,以便与PYWPS进行第一次联系。
此快速入门介绍了如何:
- 安装和配置PYWPS Flask示例服务
- 表演
GetCapabilities
,DescribeProcess
和Execute
请求 - 开发自己的WPS流程
安装PYWPS烧瓶¶
由于示例服务依赖于flask,请确保它安装在您的osgeo live上:
sudo apt install python-flask
然后从Github克隆存储库:
git clone https://github.com/geopython/pywps-flask.git
现在,移动到存储库文件夹并编辑配置文件。这可以通过类似 nano:
nano pywps.cfg
唯一需要验证的关键是日志数据库的位置。 Pywps-flask 提供可用于此目的的示例sqlite数据库。确定 database 设置如下:
database=sqlite:////home/user/pywps-flask/logs/pywps-logs.sqlite3
保存配置文件并退出 nano 现在可以运行服务:
python demo.py
如果一切顺利,您将收到如下信息:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
测试可用流程¶
打开web浏览器并将其指向示例服务正在侦听的地址: http://127.0.0.1:5000/ 您将看到以下页面:
使用绿色按钮探索服务。发行A GetCapabilities 请求对服务进行概述;发布 DescribeProcess 请求了解特定项目的详细信息。请注意浏览器地址中的请求URL。
现在是测试 Execute 请求。你可以试试 say_hello 流程,相当简单。将Web浏览器指向以下地址:
http://localhost:5000/wps?service=WPS&version=1.0.0&request=Execute&identifier=say_hello&dataInputs=name=OSGeo-Live
这个过程只是用一条“hello osgeo”消息回复,该消息编码在一个标准的WPS响应文档中。您的浏览器应该显示如下内容:
开发WPS流程¶
要开发新的流程,您所需要做的就是在 processes 文件夹。使用现有的过程作为模板来帮助您构造代码。仔细看一下 say_hello 流程显示了PYWPS流程的主要功能:
1。导入必要的资产并创建从PYWPS继承的类 Process 班级。在构造函数中,为输入和输出创建必要的对象:
from pywps import Process, LiteralInput, LiteralOutput, UOM
class SayHello(Process):
def __init__(self):
inputs = [LiteralInput('name', 'Input name', data_type='string')]
outputs = [LiteralOutput('response',
'Output response', data_type='string')]
- 调用父构造函数,传递进程的元数据:
super(SayHello, self).__init__(
self._handler,
identifier='say_hello',
title='Process Say Hello',
abstract='Returns a literal string output\
with Hello plus the inputed name',
version='1.3.3.7',
inputs=inputs,
outputs=outputs,
store_supported=True,
status_supported=True
)
三。创建 handler 方法,该方法将被调用以处理 Execute 请求。使用 request 和 response 对象来检索输入和设置输出。
def _handler(self, request, response):
response.outputs['response'].data = 'Hello ' + \
request.inputs['name'][0].data
response.outputs['response'].uom = UOM('unity')
return response
下一步是什么¶
PYWPS为您提供了编写自己的Python进程并相应地公开它们的自由和灵活性。
- 官方文档-有关PyWPS配置和API的更多信息,请参阅 documentation 在PYWPS网站上。
- 教程-尝试 workshop 在研讨会中使用的一个教程,用于向新用户介绍PYWPS 4。
- 部署到生产 pywps-flask service is just an example and not designed for production. One possible alternative is a Django based service, pywps-django . 文档提供了有关如何 set up a production service 具有 Apache 或 nginx 和 Gunicorn .