pyows

OWS request/response encoding/decoding

https://github.com/eoxserver/pyows

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.4%) to scientific vocabulary

Keywords

ogc-services ows python xml
Last synced: 6 months ago · JSON representation

Repository

OWS request/response encoding/decoding

Basic Info
  • Host: GitHub
  • Owner: EOxServer
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 160 KB
Statistics
  • Stars: 1
  • Watchers: 3
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Topics
ogc-services ows python xml
Created over 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme

README.md

pyows

Build Status PyPI version Documentation Status

pyows is a library to help building an OWS compatible service or client. It helps building requests and parsing them and also provides object types to be serialized and sent as responses.

Installation

Use the package manager pip to install pyows.

bash pip install pyows

Usage

pyows can be used to both parse/encode OWS requests and to parse/encode objects for the various services.

Example: Parsing a WCS 2.0 GetCoverage request:

```python

from ows.wcs.v20.decoders import xmldecodeget_coverage

request = b"""<?xml version="1.0" encoding="UTF-8"?> ... ... wcs:CoverageIda/wcs:CoverageId ... /wcs:GetCoverage ... """ print(xmldecodegetcoverage(request)) GetCoverageRequest(coverageid='a', format=None, mediatype=None, subsettingcrs=None, outputcrs=None, subsets=[], scalefactor=None, scales=[], interpolation=None, axisinterpolations=[], rangesubset=None) ```

The other way around:

```python

from ows.wcs.v20 import GetCoverageRequest, Trim, Slice request = GetCoverageRequest( ... coverageid='a', ... subsets=[ ... Trim(dimension='x', low=1.2, high=2.2), ... Trim(dimension='y', low=3), ... Slice(dimension='time', point='2018-05-07') ... ] ... ) print(xmlencodegetcoverage(request, pretty_print=True).value.decode('utf-8')) wcs:CoverageIda/wcs:CoverageId wcs:DimensionTrim wcs:Dimensionx/wcs:Dimension wcs:TrimLow1.2/wcs:TrimLow wcs:TrimHigh2.2/wcs:TrimHigh /wcs:DimensionTrim wcs:DimensionTrim wcs:Dimensiony/wcs:Dimension wcs:TrimLow3/wcs:TrimLow /wcs:DimensionTrim wcs:DimensionSlice wcs:Dimensiontime/wcs:Dimension wcs:SlicePoint2018-05-07/wcs:SlicePoint /wcs:DimensionSlice /wcs:GetCoverage ```

Currently supported OWS

  • OWS common
    • 2.0:
      • Capabilities related encoding
  • WCS
    • 2.0:
      • Request encoding/decoding for (both XML/KVP)
        • GetCapabilities
        • DescribeCoverage
        • GetCoverage
      • Response encoding
        • Capabilities
        • CoverageDescriptions
    • 2.1
      • Response encoding for
        • CoverageDescriptions
  • WMS
    • 1.3:
      • Request encoding/decoding KVP
        • GetCapabilities
        • GetMap
        • GetFeatureInfo
      • Response encoding
        • Capabilities

Roadmap

  • Full support of WCS 2.x including EO-WCS application profile and all extensions
  • Support for WPS 2.0 requests and responses
  • Support for WMS request and responses for all versions

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Owner

  • Name: EOxServer
  • Login: EOxServer
  • Kind: organization
  • Email: dev@eoxserver.org
  • Location: Vienna, Austria

GitHub Events

Total
Last Year

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 93
  • Total Committers: 4
  • Avg Commits per committer: 23.25
  • Development Distribution Score (DDS): 0.108
Past Year
  • Commits: 2
  • Committers: 1
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Fabian Schindler f****s@g****m 83
Bernhard Mallinger b****r@e****t 5
baloola b****u@h****m 4
Joachim Ungar j****r@e****t 1
Committer Domains (Top 20 + Academic)
eox.at: 2

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 1
  • Total pull requests: 4
  • Average time to close issues: 19 days
  • Average time to close pull requests: 1 minute
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.5
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • totycro (1)
Pull Request Authors
  • constantinius (2)
  • ungarj (1)
  • totycro (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 21,444 last-month
  • Total dependent packages: 2
  • Total dependent repositories: 1
  • Total versions: 16
  • Total maintainers: 1
pypi.org: pyows

OWS utilities

  • Versions: 16
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Downloads: 21,444 Last month
Rankings
Dependent packages count: 2.1%
Downloads: 9.3%
Average: 17.7%
Dependent repos count: 22.1%
Forks count: 22.8%
Stargazers count: 32.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

docs/requirements.txt pypi
  • m2r *
  • sphinxcontrib-apidoc *
requirements.txt pypi
  • dataclasses *
  • iso8601 *
  • lxml *
.github/workflows/publish.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
setup.py pypi