wiki:NERCPortals

Version 15 (modified by mkochan, 11 years ago) (diff)

--

The NERC Portals project

Since it's inception the NERC Portals project has started to be called the Data Portals Prototype Project (DPPP) across the participating institutions.

See

Conversion from CSML to KML

User manual

Since CSML currently lacks the constructs for describing the context for the CSML features, the actual mechanisms used to convert data from CSML to KML do use limited amount of CSML as a data source. The rest comes from different languages derived from GML. Hence this project became rather a demonstration of how OGC web services can be integrated into a common framework, which has a potential of working using purely CSML data, once CSML matures enough to contain all information in it.

The functionality is split into two eggs:

  • csml2kml - provides static functionality, with the output being KML stored in files (*.kml, *.kmz),
  • csml2kmlpylon - is a web server (to be run by the BADC) providing web services which brings dynamic content to the viewing experience in Google Earth via HTTP.

Installation

Usage of the csml2kml scripts

The wms2kml.py script

Run this script as:

python wms2kml.py filename.conf.xml

where filename.conf.xml is an XML config file, whose format is described in the section "Configuration".

Two main functions performed by this tandem are:

  • To interrogate a WMS web service using the GetCapabilities call, and thus acquire a <wms:Capabilities> XML document from it, which contains description of WMS layers. Then, export this into a directory structure of
  • xyz

Deployment of the csml2kmlpylon server

Configuration

Code notes

Code notes towards csml2kml

The egg's {{{csml2kml} directory contains all Python modules, and the following 4 sub-directories:

  • scripts - contains Python stand-alone scripts, runnable from command line, which both use a config file as a means of input
  • tests - contains tests, which simply print output (rather than fail/pass messages), and are runnable as python test_filename.py, but please look at the contents first to see what the test does
  • config - contains config files for the scripts, in XML format, which define locations of used Web services etc.
  • output - empty after installation, optionally usable for output of scripts and tests

The modules

There is a naming convention that wrappers of entities which normally exist as XML elements are prefixed with XML spacename. For instance, a class WMSLayer is a wrapper for an element <wms:Layer>. Wrappers for KML elements (in kml namespace), which are used for output, contain a build() method, which builds each instance into an ElementTree.Element object. On the contrary, wrappers for elements in wms and np namespaces contain parseXML() method, as they are used for input.

Code notes towards csml2kmlpylon