跳转到主要内容

OWS 工具

项目描述

pyows

Build Status PyPI version Documentation Status

pyows是一个库,用于帮助构建OWS兼容的服务或客户端。它帮助构建请求并解析它们,并提供要序列化和发送作为响应的对象类型。

安装

使用包管理器pip安装pyows。

pip install pyows

用法

pyows可用于解析/编码OWS请求,也可用于解析/编码各种服务的对象。

示例:解析WCS 2.0 GetCoverage请求

>>> from ows.wcs.v20.decoders import xml_decode_get_coverage
>>>
>>> request = b"""<?xml version="1.0" encoding="UTF-8"?>
... <wcs:GetCoverage
...     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
...     xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd"
...     xmlns="http://www.opengis.net/wcs/2.0"
...     xmlns:wcs="http://www.opengis.net/wcs/2.0"
...     service="WCS"
...     version="2.0.1">
...     <wcs:CoverageId>a</wcs:CoverageId>
... </wcs:GetCoverage>
... """
>>> print(xml_decode_get_coverage(request))
GetCoverageRequest(coverage_id='a', format=None, mediatype=None, subsetting_crs=None, output_crs=None, subsets=[], scalefactor=None, scales=[], interpolation=None, axis_interpolations=[], range_subset=None)

反过来操作

>>> from ows.wcs.v20 import GetCoverageRequest, Trim, Slice
>>> request = GetCoverageRequest(
...     coverage_id='a',
...     subsets=[
...         Trim(dimension='x', low=1.2, high=2.2),
...         Trim(dimension='y', low=3),
...         Slice(dimension='time', point='2018-05-07')
...     ]
... )
>>> print(xml_encode_get_coverage(request, pretty_print=True).value.decode('utf-8'))
<wcs:GetCoverage xmlns:crs="http://www.opengis.net/wcs/crs/1.0" xmlns:eop="http://www.opengis.net/eop/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0" xmlns:int="http://www.opengis.net/wcs/interpolation/1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:om="http://www.opengis.net/om/2.0" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:rsub="http://www.opengis.net/wcs/range-subsetting/1.0" xmlns:scal="http://www.opengis.net/wcs/scaling/1.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:wcseo="http://www.opengis.net/wcs/wcseo/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" service="WCS" version="2.0.1">
  <wcs:CoverageId>a</wcs:CoverageId>
  <wcs:DimensionTrim>
    <wcs:Dimension>x</wcs:Dimension>
    <wcs:TrimLow>1.2</wcs:TrimLow>
    <wcs:TrimHigh>2.2</wcs:TrimHigh>
  </wcs:DimensionTrim>
  <wcs:DimensionTrim>
    <wcs:Dimension>y</wcs:Dimension>
    <wcs:TrimLow>3</wcs:TrimLow>
  </wcs:DimensionTrim>
  <wcs:DimensionSlice>
    <wcs:Dimension>time</wcs:Dimension>
    <wcs:SlicePoint>2018-05-07</wcs:SlicePoint>
  </wcs:DimensionSlice>
</wcs:GetCoverage>

当前支持的OWS

  • OWS通用
    • 2.0:
      • 能力相关编码
  • WCS
    • 2.0:
      • (XML/KVP)请求编码/解码
        • GetCapabilities
        • DescribeCoverage
        • GetCoverage
      • 响应编码
        • 能力
        • 覆盖描述
    • 2.1
      • 为以下内容提供响应编码
        • 覆盖描述
  • WMS
    • 1.3:
      • 请求编码/解码KVP
        • GetCapabilities
        • GetMap
        • GetFeatureInfo
      • 响应编码
        • 能力

路线图

  • 完全支持WCS 2.x,包括EO-WCS应用程序配置文件和所有扩展
  • 支持WPS 2.0请求和响应
  • 支持所有版本的WMS请求和响应

贡献

欢迎拉取请求。对于重大更改,请首先打开一个问题以讨论您想要更改的内容。

请确保根据需要更新测试。

许可

MIT

由以下机构支持