-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.txt
138 lines (107 loc) · 4.98 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
OwsCapable
===============
Fork of the OWSLib project for improved GetCapabilities harmonization in
support of the B-Cube service response harvesting project.
This work is ongoing. Because of the focus on response parsing, changes
made to this fork, including but not limited to expanded version support,
may not adequately support data requests. So a WCS GetCapabilities 1.1.2
request should function but a GetCoverage request may not.
To use (roughly speaking):
```
cd OwsCapable
pip install -r requirements.txt
ipython
>>> from owscapable.wms import WebMapService
>>> # .... etc
```
###Modifications
- harmonization across WCS, WMS, WFS, SOS, CSW and OWS for GetCapabilities parsing. Note that certain attributes are included in the returned objets that may not be supported in the OGC specification.
- support for additional versions of WMS and WCS.
- harmonization included some logic to manage less than valid responses.
- support for CSW GetCapabilities parsing from in-memory XML (as string).
- support for WCS DescribeCoverage parsing from in-memory XML (as string).
- where necessary, expanded support for higher cardinality elements (parse all Bounding Box elements, for example).
Original Documentation
======================
OWSLib is a Python package for client programming with Open Geospatial
Consortium (OGC) web service (hence OWS) interface standards, and their
related content models.
Full documentation is available at http://geopython.github.io/OWSLib
OWSLib provides a common API for accessing service metadata and wrappers for
numerous OGC Web Service interfaces.
Dependencies
------------
OWSLib requires elementtree (standard in 2.5 as xml.etree) or lxml.
Usage
-----
Find out what a WMS has to offer. Service metadata::
>>> from owslib.wms import WebMapService
>>> wms = WebMapService('http://wms.jpl.nasa.gov/wms.cgi', version='1.1.1')
>>> wms.identification.type
'OGC:WMS'
>>> wms.identification.version
'1.1.1'
>>> wms.identification.title
'JPL Global Imagery Service'
>>> wms.identification.abstract
'WMS Server maintained by JPL, worldwide satellite imagery.'
Available layers::
>>> list(wms.contents)
['us_landsat_wgs84', 'modis', 'global_mosaic_base', 'huemapped_srtm',
'srtm_mag', 'daily_terra', 'us_ned', 'us_elevation', 'global_mosaic',
'daily_terra_ndvi', 'daily_aqua_ndvi', 'daily_aqua_721', 'daily_planet',
'BMNG', 'srtmplus', 'us_colordem', None, 'daily_aqua', 'worldwind_dem',
'daily_terra_721']
Details of a layer::
>>> wms['global_mosaic'].title
'WMS Global Mosaic, pan sharpened'
>>> wms['global_mosaic'].boundingBoxWGS84
(-180.0, -60.0, 180.0, 84.0)
>>> wms['global_mosaic'].crsOptions
['EPSG:4326', 'AUTO:42003']
>>> wms['global_mosaic'].styles
{'pseudo_bright': {'title': 'Pseudo-color image (Uses IR and Visual bands,
542 mapping), gamma 1.5'}, 'pseudo': {'title': '(default) Pseudo-color
image, pan sharpened (Uses IR and Visual bands, 542 mapping), gamma 1.5'},
'visual': {'title': 'Real-color image, pan sharpened (Uses the visual
bands, 321 mapping), gamma 1.5'}, 'pseudo_low': {'title': 'Pseudo-color
image, pan sharpened (Uses IR and Visual bands, 542 mapping)'},
'visual_low': {'title': 'Real-color image, pan sharpened (Uses the visual
bands, 321 mapping)'}, 'visual_bright': {'title': 'Real-color image (Uses
the visual bands, 321 mapping), gamma 1.5'}}
Available methods, their URLs, and available formats::
>>> [op.name for op in wms.operations]
['GetTileService', 'GetCapabilities', 'GetMap']
>>> wms.getOperationByName('GetMap').methods
{'Get': {'url': 'http://wms.jpl.nasa.gov/wms.cgi?'}}
>>> wms.getOperationByName('GetMap').formatOptions
['image/jpeg', 'image/png', 'image/geotiff', 'image/tiff']
That's everything needed to make a request for imagery::
>>> img = wms.getmap( layers=['global_mosaic'],
... styles=['visual_bright'],
... srs='EPSG:4326',
... bbox=(-112, 36, -106, 41),
... size=(300, 250),
... format='image/jpeg',
... transparent=True
... )
>>> out = open('jpl_mosaic_visb.jpg', 'wb')
>>> out.write(img.read())
>>> out.close()
A very similar API exists for WebFeatureService. See
tests/wfs_MapServerWFSCapabilities.txt for details.
There is also support for Web Coverage Service (WCS), Catalogue
Service for the Web (CSW), Web Processing Service (WPS), and Web
Map Tile Service (WMTS). Some of those are beta quality.
Logging
-------
OWSLib logs messages to the 'owslib' named python logger. You may
configure your application to use the log messages like so:
>>> import logging
>>> owslib_log = logging.getLogger('owslib')
>>> # Add formatting and handlers as needed
>>> owslib_log.setLevel(logging.DEBUG)
Support
-------
http://lists.osgeo.org/mailman/listinfo/owslib-users
http://lists.osgeo.org/mailman/listinfo/owslib-devel