Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revise OGC service handling #25

Open
3 of 7 tasks
roomthily opened this issue Feb 20, 2015 · 5 comments
Open
3 of 7 tasks

Revise OGC service handling #25

roomthily opened this issue Feb 20, 2015 · 5 comments
Assignees

Comments

@roomthily
Copy link
Contributor

Merging issues into one comprehensible thing.

Decision made: fork OWSLib, add WMS 1.3.0 (at a minimum), revise parsers to for OGC to use this lib (ignore remainders in that I don't actually think there will be any). We will still need to handle the endpoint definitions! and I will put together a parser for WMS 1.1.1 and one of the WFS/WCS versions (supported and we have an example for) to start to scope that out.

Tasks:

For OWSLib reference: these are the high priority (as of the last harvest, so grain of salt):
image

@roomthily
Copy link
Contributor Author

OWSLib Version Support Notes

WMS GetCapabilities 1.3.0 & 1.0.0 💥
(that's too bad - it can't handle most of the current arcgis services - 1.3.0)
(see geopython/OWSLib#25 for feature request from 2012)
image

WMS GetCapabilities 1.1.1 👍
(just to demonstrate that it installed correctly, etc)

In [7]: wms = WebMapService('http://disc1.sci.gsfc.nasa.gov/daac-bin/wms_trmm?service=wms&version=1.1.1&request=getcapabilities', version='1.1.1')

In [8]: wms.identification.title
Out[8]: 'Tropical Rainfall Measuring Mission (TRMM) Data from NASA Goddard Earth Sciences Data and Information Services Center (GES DISC)'

@roomthily
Copy link
Contributor Author

Contributing back to owslib would mean handling any writes/posts as well as the reads we're most interested in. And they seem not to be merging pull requests for the larger needs (swe/sos implementation, etc). (they didn't merge the pull request but added sos 2.0 anyway so not sure what's going on with that.)

@roomthily
Copy link
Contributor Author

@roomthily
Copy link
Contributor Author

Handling Version Support

Let's talk about the changes related to namespacing and default paths. I need to scope this out better (apologies).

*Update: * the root element name changes are an easy patch (and that's been made, see 8f14e4e).

WMS

1.0.0:

1.1.1:

Root node identification issues here:

<!DOCTYPE WMT_MS_Capabilities SYSTEM "http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd"
 [
 <!ELEMENT VendorSpecificCapabilities EMPTY>
 ]>  <!-- end of DOCTYPE declaration -->

<WMT_MS_Capabilities version="1.1.1">

1.3.0: not using the OWS schema (retains a very similar structure to earlier versions). The format lists are, finally, well structured and not relying on element names.

WFS

1.0.0: Uses the element tag as format (or other parameter) value. Mix of "standard" values and controlled vocab-like terms.

1.1.0: Switches to the OWS structure with normalized Format (or other parameter) value lists.

WCS

1.0.0: uses the "older" standard of WxS_Capabilities as the root node.

1.1.2: Oddly, does not use WxS_Capabilities as the root node (just Capabilities) and is using the OWS namespace after root. This is an outlier across the services

CSW
SOS

Format and other Enumerated Values

(note: these are clearly not the complete XML structure)

# from the WFS 1.0.0
<GetFeature>
    <ResultFormat>
        <GML2/>
    </ResultFormat>

# from the WFS 1.1.0
<ows:Value>XMLSCHEMA</ows:Value>
<ows:Value>text/xml; subtype=gml/2.1.2</ows:Value>
<ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>

@roomthily roomthily self-assigned this Feb 23, 2015
@roomthily
Copy link
Contributor Author

OWSLib Method/Operation Handling

for wms 1.1.1
    method returns:
        .name: 
            GetCapabilities
        .methods:
            [
                {'url': 'http://disc1.sci.gsfc.nasa.gov/daac-bin/wms_trmm?', 'type': 'Get'}, 
                {'url': 'http://disc1.sci.gsfc.nasa.gov/daac-bin/wms_trmm?', 'type': 'Post'}
            ]
        .formatOptions:
            ['application/vnd.ogc.wms_xml']

for wfs 1.0.0
    method returns:
        .name: 
            GetFeature
        .methods:
            [
                {'url': 'http://mrdata.usgs.gov/cgi-bin/mapserv?map=/mnt/mrt/map-files/podchrome.map&', 'type': 'Get'}, 
                {'url': 'http://mrdata.usgs.gov/cgi-bin/mapserv?map=/mnt/mrt/map-files/podchrome.map&', 'type': 'Post'}
            ]
        .formatOptions:
            ['{http://www.opengis.net/wfs}GML2']

for wfs 1.1.0
    method returns:
        .name: 
            GetFeature
        .methods:
            [
                {'url': 'http://mrdata.usgs.gov/services/nmra?', 'type': 'Get', 'constraints': []}, 
                {'url': 'http://mrdata.usgs.gov/services/nmra?', 'type': 'Post', 'constraints': []}
            ]
        .formatOptions:
            ['text/xml']
        .parameters:
            {
                'resultType': {'values': ['results', 'hits']}, 
                'outputFormat': {'values': ['text/xml; subtype=gml/3.1.1']}
            }

for csw 2.0.2
    method returns:
        .name: 
            DescribeRecord
        .methods:
            [{'url': 'http://cwic.wgiss.ceos.org/discovery', 'type': 'Get', 'constraints': []}]
        .formatOptions:
            ['text/xml']
        .parameters:
            {
                'typeName': {'values': ['csw:Record', 'gmd:MD_Metadata']}, 
                'outputFormat': {'values': ['application/xml']}, 
                'schemaLanguage': {'values': ['XMLSCHEMA']}
            }

for wcs 1.0.0
    method returns:
        .name: 
            GetCoverage
        .methods:
            [
                {'url': 'http://www.ncddc.noaa.gov/arcgis/services/DataAtlas/CMECS_Salinity_Winter/MapServer/WCSServer?', 'type': 'Get'}, 
                {'url': 'http://www.ncddc.noaa.gov/arcgis/services/DataAtlas/CMECS_Salinity_Winter/MapServer/WCSServer?', 'type': 'Post'}
            ]
        .formatOptions:
            ((NONE))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant