[ home ]
Web Services for Oceanography
SURA, SCOOP and OpenIOOS
SCOOP
DAP Web Services Specification
The purpose of this paper is to outline different web service design choices being considered by OPeNDAP, to provide a rationale for their different characteristics and to solicit comments about them.
Two classes of web services have emerged. The first type of web service system uses the REST architecture where resources are represented using URI and HTTP is used to return the current representation of that resource. These systems are based on HTTP, XML and URI. In these systems, XML is typically used to encode the representation (although for the web in general, HTML is). Such systems are also often called `network-based' because the existence of network operations is made explicit.
The second type of system follows the Remote Procedure Call model and uses the Simple Object Access Protocol (SOAP) along with other technologies such as WSDL and UDDI and builds a distributed system (where the network operations are hidden from client programs). Unlike HTTP/URI systems, using SOAP/WSDL/UDDI it is possible to build a system where clients can access machine readable interface descriptions (using WSDL records which can themselves be located using UDDI) and then use the RPCs in those descriptions to access a server.
OOSTech Mailing List
TABS SOAP Server, Part 1
Demonstration server and client programs for supplying the latest data from
a single buoy. No WSDL or XML yet.
TABS SOAP Server, Part 2
Demonstration server and client programs for supplying the latest data from
any number of buoys. No WSDL or XML yet.
OOS Data SOAP Server Demo
Dave Forrest's SOAP server intended to demonstrate SOAP web services for providing Ocean Observing System Data.
OpenIOOS.org
The home page of the OpenIOOS.org demo server.
AOOS Soap Server
SOAP::Lite
"SOAP::Lite for Perl is a collection of Perl modules which provides a
simple and lightweight interface to the Simple Object Access Protocol
(SOAP, also known as Service Oriented Access Protocol) both on client and server side."
Javascript and SOAP
Writing SOAP Web Services
Chapter 3 from "Programming Web Services with SOAP".
SOAP Version 1.2 FAQ
Call SOAP Web Services with Ajax
A Proxy Generator to WebServices for JavaScript and Ajax
JavaScript SOAP Client
Ajax and Scripting Web Services with E4X
Using WSDL in SOAP Applications
Web Services for Bioinformatics: [
Part 1 | Part 2 | Part 3 ]
Javascript and Ajax in GIS
ZK
Build AJAX-Based Web Maps Using ka-Map
MapBuilder
OpenLayers
ka-Map
National Operational Prototype Evaluation for Katrina Mapserver
Katrina ka-Map MapServer Example
msCross Webgis: MapServer Javascript AJAX Interface
Using AJAX and MapServer to Build an Interactive Web-Mapping Client
WMS Javascript Library
Mastering Ajax
UDDI
Extended UDDI Service
"To address these problems, we are designing a general purpose information system, the Fault Tolerant High Performance
Information System (FTHPIS), that we are applying initially to problems in GIS information management."
Related Software
NaradaBrokering
XML::Writer
XML::Writer is a helper module for Perl programs that write an XML document.
Related Projects
MapServer
-
OSGeo
-
MapGuide
A web-based platform that enables users to quickly develop and deploy
web mapping applications and geospatial web services. MapGuide features
an interactive viewer that includes support for feature selection,
property inspection, map tips, and operations such as buffer, select
within, and measure. MapGuide includes an XML database for managing
content, and supports most popular geospatial file formats, databases,
and standards.
-
Feature Data Objects (FDO)
An API for manipulating, defining, and analyzing geospatial information
regardless of where it is stored. FDO uses a provider-based model for
supporting a variety of geospatial data sources, where each provider
typically supports a particular data format or data store.
Google and Mapping Hacks
-
Mapping Hacks
-
Google KML
An XML grammar and file format for modeling and storing geographic
features such as points, lines, images, and polygons for display in
Google Earth, Google Maps, and Google Maps for mobile.
-
Google Earth
-
Google Maps
Marine Metadata Interoperability (MMI)
OGC Web Services, Phase-4 (OWS-4)
-
Sensor Web Enablement (SWE)
- Geo Processing Workflow (GPW)
- Geo Decision Support (GeoDSS)
- Geo-Digital Rights Management (GeoDRM)
- CAD/GIS/BIM
- OGC Location Services (OpenLS)
- Compliance Testing (CITE)
SensorML
SensorML provides standard models and an XML encoding for describing any process, including the process of measurement by sensors and instructions for deriving higher-level information from observations. Processes described in SensorML are discoverable and executable. All processes define their inputs, outputs, parameters, and method, as well as provide relevant metadata. SensorML models detectors and sensors as processes that convert real phenomena to data.
The current (4/06) candidate specifications are:
- SensorML - Information model and XML encodings for discovering, querying and controlling Web-resident sensors.
- Observations & Measurements - Information model and encodings for observations and measurements.
- Sensor Observation Service (SOS) - Service for managing deployed sensors and retrieving sensor data.
-
OGC SOS
-
OOSTech SOS Stuff
-
SOS Server HOWTO for Mapserver
-
52N SOS Wiki
-
52N SOS Working Group
"The objective of the Sensor Observation Service (SOS) is to make sensors and sensor data archives accessible via an interoperable web based interface. The SOS specification has been updated during the last OWS-3 tesbed, to which the Institute for Geoinformatics contributed. The service interface has been extended in a modular fashion. The core profile, comprising of the mandatory operations, provides the typical GetCapabilities interface that allows requests for a self description of the service and the GetObservation interface to get the pure data (from live sensors) encoded as Observation and Measurements (O&M). In addition, the SOS provides the DescribeSensor interface to access information about the sensor itself (encoded as a SensorML instance document).
Aside from these traditional SOS operations, two further profiles are
specified, the enhanced profile and the transactional SOS profile. The
enhanced profile consists of several operations which extend the information
model by providing access to the feature of interest itself and its metadata.
According to the O&M specification, the feature of interest is the object
about which the observation is made. It must be distinguished from the
observation's location. The observation location refers to the location of
the instrument at the time of observation. In a remote sensing scenario the
observation location is the position of the satellite on its orbit and the
feature of interest is the footprint of the satellite image. For in-situ
observations, the observation location and the feature of interest will
be identical. The enhanced SOS also provides the GetResult interface which
allows a client to repeatedly obtain sensor data from the same set of
sensors without having to send and receive requests and responses that
largely have the same data except for a new time stamp. The transactional
profile allows the dynamic registration of sensors and insert of
observations performed by registered sensors. All three profiles - core
profile, enhanced profile and transactional profile - constitute the entire
profile."
- Sensor Collection Service (SCS) - Service to fetch observations from a sensor or group of sensors.
- Sensor Planning Service (SPS) - Service to assist in 'collection feasibility plans' and to process collection requests for a sensor or group of sensors.
- Web Notification Service (WNS) - Service to manage dialogue between a client and Web service(s) for long duration asynchronous processes.
OGC: Sensor Web Enablement and OpenGIS SensorWeb
SensorGrid
SensorGrid architecture will utilize open GIS standards and Web Services methodologies to couple data assimilation tools with real-time data. The system will use NaradaBrokering as the messaging substrate and this will allow high performance data transfer between data sources and the client applications. The Standard GIS interfaces and encodings like GML and SensorML will allow data products to be available to the larger GIS community.
Documents
CGDI Web Services Components List
Compusult List of Services
GML (Geography Markup Language)
An XML encoding for the transport and storage of geographic information, including both
the geometry and properties of geographic features.
"GML is a large, rich, expressive language designed to have the ability to express any
geographic concept in common usage. Therefore, unless you are developing a universal,
comprehensive GML parsing application, the proper way to use GML is probably not to
learn the entire encoding specification right away, but to start with an application
schema, or profile of GML. As explained here, "Profiles live in the GML namespaces
(http://www.opengis.org/gml) and define restricted subsets of GML. Application schemas
are XML vocabularies defined using GML and which live in an application-defined target
namespace. Application schemas can be built on specific GML profiles or use the full
GML schema set." Basically, profiles and application schemas are smaller subsets of
the GML schema designed by a specific information community and tailored to a small number of uses."
NetCDF, NcML, NcML-G, NcML-GML, CSML, etc.
-
NetCDF Conventions
-
NetCDF 3
NetCDF (network Common Data Form) is an interface for array-oriented data access and a library that provides an implementation of the interface. The netCDF library also defines a machine-independent format for representing scientific data. Together, the interface, library, and format support the creation, access, and sharing of scientific data.
-
NetCDF 4
In version 4.0 the netCDF API will be extended and implemented on top of the HDF5 data format. NetCDF users will be able to create HDF5 files with benefits not available with the netCDF format, such as much larger files and multiple unlimited dimensions. Backward compatibility in accessing old netCDF files will be supported. The combined library will preserve the desirable common characteristics of netCDF and HDF5 while taking advantage of their separate strengths: the widespread use and simplicity of netCDF and the generality and performance of HDF5.
-
HDF
The HDF project involves the development and support of software and file formats for scientific data management. The HDF software includes I/O libraries and tools for analyzing, visualizing, and converting scientific data. There are two HDF formats, HDF (4.x and previous releases) and HDF5. These formats are completely different and NOT compatible.
-
NetCDF Attribute Convention for Dataset Discovery
NetCDF attributes recommended for describing a NetCDF dataset to discovery systems such as Digital Libraries. THREDDS tools will use these attributes for extracting metadata from datasets, and exporting to Dublin Core, DIF, ADN, FGDC, ISO 19115 etc. metadata formats.
- NcML
An XML dialect that allows you to create NetCDF datasets. An NcML document is an
XML document that uses NcML, and defines a NetCDF dataset. The NcML document usually
refers to another NetCDF dataset called the referenced NetCDF dataset.
-
The NetCDF Markup Language (NcML)
NcML is an XML representation of netCDF metadata, (roughly) the header information one gets
from a netCDF file with the "ncdump -h" command. NcML is similar to the netCDF CDL (network
Common data form Description Language), except, of course, it uses XML syntax.
-
NcML-2.2 Tutorial
-
Annotated Schema for NcML-2.2
-
NcML Aggregation
Multiple NetCDF files can be aggregated into a single, logical NetCDF dataset. This is
done with the aggregation NcML element.
-
NcML-G and NcML-GML
GIS extensions developed to facilitate interoperability between the earth sciences
and GIS communities. NcML-G is the extensions data model, while NcML-GML specifies
the XML encoding of the extensions.
-
Common Data Model (CDM)
The Common Data Model is a unification of the data models of OpenDAP, netCDF, and HDF5.
-
NetCDF Java Library
The NetCDF-Java Library (version 2) is a Java interface to NetCDF files. It is built
on the MultiArray (version 2) package, which is a stand-alone Java package for
multidimensional arrays of primitive types.
-
N2G Converter
Creates a ncML-GML representation of a netCDF-CF dataset.
-
GRASS NetCDF Module
-
degrib - Converts from GRIB to NetCDF, Shapefile, and other formats.
- CSML
Misc
OPeNDAP
OPeNDAP provides software which makes local data accessible to remote locations regardless of local storage format. OPeNDAP also provides tools for transforming existing applications into OPeNDAP clients (i.e., enabling them to remotely access OPeNDAP served data).
-
pydap
-
Dapper
Dapper is an OPeNDAP web server developed by the EPIC group at PMEL that provides networked access to in-situ and gridded data. With Dapper, OPeNDAP enabled clients now have remote access to millions of previously unavailable in-situ oceanographic or atmospheric observations. The Dapper server also includes DChart, an AJAX based web interface to Dapper datasets.
SEEGrid
WCS (Web Coverage Service)
A service for the exchange of raster imagery.
-
OGC Web Coverage Service Implementation Specification (PDF, 67 pp., OGC 03-065r6, Version 1.0.0)
-
OGC WCS Discussion Forum
-
MapServer WCS Server Use Cases
This document explains how to use MapServer to deliver Landsat, SPOT, DEM, and
NetCDF temporal/banded data through the MapServer WCS interface.
- THREDDS
-
GALEON Project
The GALEON IE will implement a geo-interface to netCDF datasets via the OpenGIS(R)
Web Coverage Server (WCS 1.0) protocol specification. The interface will provide
interoperability among netCDF, OPeNDAP, ADDE, and THREDDS client/server and catalog protocols.
-
ICEDS WCS Server
A demonstration service provided by University College London and ESYS plc serving
global and continental-scale, full-resolution geographic information, particularly
for Europe and Africa.
-
ITSC WCS Research
WFS (Web Feature Service)
WFS allows a client to retrieve geospatial data encoded in Geography Markup Language (GML) from multiple Web Feature Services. GML is built on the standard web language XML. WFS differs from the popular Web Map Service (WMS) specification in that WFS returns a subset of the data in valid GML format, not just a graphic image of data.
WMS (Web Map Service)
-
OGC Web Map Service Implementation Specification (PDF, OGC 04-024, Version 1.3)
-
OGC WMS Discussion Forum
-
WMS Servers with MapServer
-
WMS Clients with MapServer
-
WMS and WFS Enabled SEACOOS Observations
-
WMS and WFS Enabled SEACOOS Remotely Sensed Layers
-
Styled Layer Descriptors (SLD) with MapServer WMS
-
Seal (Symbol Editor and Library)
A tool which promotes a common symbology library used for rendering marine
features on screen-based maps. SEAL uses OGC Styled Layer Descriptor (SLD)
to specify custom styles (such as color and feature symbolization) that
a WMS will use to render a map layer.
-
MapServer as WFS Server
-
MapServer WFS Client and Service
-
WMS Cookbook
-
Guide to Distributing Your Data Products Via WMS 1.1.1 (Jan. 2004)
-
OGC Web Services section of
SEACOOS Cookbook
-
wms-dev Discussion List
-
deegree
-
Space Time Toolkit
The Space Time Toolkit (STT) is a Java-based toolkit that provides advanced capabilities for integrating spatially and temporally-disparate data within a highly interactive 3D display environment. Unlike most tools that require that data be converted to a common spatial and temporal grid before integration, the STT allows one to ingest swath, map-projected, station, event, or path data in whatever spatial and temporal domain in which it exists. The STT then allows the end-user to select the 2D or 3D display domain and then on-the-fly maps all data into that domain as needed. In addition to the user-selection of the spatial domain, the end-user has equal control over the aggregation and resolution of the temporal domain.
The current preferred mode of providing data to the STT is through OpenGeospatial Consortium (OGC) standard web interfaces, such as Web Mapping Services (WMS), Web Feature Services (WFS), and Web Coverage Services (WCS). Starting with Version 2.0, Space Time Toolkit allows one to build their own project through discovery of WMS, WFS, and WCS layers.
Tethys2 Web Services Demo
A SOAP Web Services was created to send latest mooring data.
-
Tethys
The Tethys project demonstrates semantic mediation by developing an end-to-end process for finding data in distributed and heterogeneous repositories and making that data accessible.
-
Ontology Web Services Tutorial
Interoperability is based on standards, such as Web Services (WSDL) and tools to express vocabularies such as OWL. Setting the environment to create a web service with a powerful IDE like Eclipse can be sometimes tricky. This article explains how to set up the ECLIPSE IDE and how to start creating ontological web services.
- Tethys-AXIS
A tool to allow creation of SOAP web services in a fast fashion. You do not need to know the details of web services.
This toolkit facilitates the creation of a SOAP Web Service by creating a
WAR file that can be dropped into TOMCAT. The reason is called Tethys-AXIS
is because it uses AXIS to create such service.
-
AXIS
Axis is an open-source implementation of SOAP; part of the Apache Web Services project.
It provides tools to create from your code WSDLs (Schemas used in web services).
Additionally it helps you to deploy the service in a server like Tomcat. In
about 1- 3 hours you can a simple service running.
SSDS (Shore Side Data System)
A data management system that stores both raw and processed data (and
associated metadata) for a wide variety of oceanographic platforms
and instruments.
ECHO Extended Services Testbed
ECHO
is a set of infrastructure services that allow the publication,
discovery and access to resources that support the Earth Observation
community. Those resources may include information resources (data
collections, inventories of data granules and browse images), service
resources (using Web Service technologies) and client resources.
SeaCOOS DODS Server
Earth Science Markup Language (ESML)
WSRF (Web Services Resource Framework)
OGSA-DAI
OGSA-DAI is a middleware product which supports the exposure of data resources, such as relational or XML databases, on to grids.
-
OGSA-DAI Tutorial
-
OGSA-DAI WSI
The WS-I version of OGSA-DAI is compatible with the UK OMII's
implementation of WS-I.
-
OGSA-DAI WSRF
The WSRF version of OGSA-DAI is compatible with the
Globus Toolkit's implementation of WSRF.
-
OGSA-DQP
OGSA-DQP is a service-based distributed query processor which is able to execute queries in parallel over OGSA-DAI data services and other (Web) services on the Grid, therefore combining data access with analysis.
RoadNET
Software
-
FoSSI
The Family of Simplified Solver Interfaces is designed for an easy integration and selection of parallel solvers in Fortran codes which make use of compressed sparse row matrix format (CSR). FoSSI contains rather similar interfaces to the most popular and wide spread parallel solver libraries obtainable on the web: PETSC, HYPRE, AZTEC and MUMPS.
-
escript (ACcESS)
A Python-based environment for implementing mathematical models,
in particular those based on coupled, non-linear, time-dependent partial
differential equations.
-
AGRIF (Adaptive Grid Refinement in Fortran)
-
PHAML (Parallel Hierarchical Adaptive Multilevel Project)
-
IceFem3D
An open source model for glaciers.
-
Resolute
A semi-automated finite-element ocean model mesh generation routine.
-
ELCIRC
-
SELF
An unstructured-grid model designed for the effective simulation of 3D baroclinic circulation across river-to-ocean scales.
LEAD
Flow Visualization
Python and XML
-
Writing and Reading XML with XIST
-
Using SAX for Proper XML Output - Uche Ogbuji
-
soaplib
-
TGWebServices
TGWebServices provides a super simple API for creating web services that
are available via SOAP, HTTP->XML, and HTTP->JSON. The SOAP API generates
WSDL automatically for your Python and even generates enough type
information for statically typed languages (Java and C#, for example)
to generate good client code on their end.
Python Software
-
CDAT-Lite
-
coards
This module converts between a given COARDS time specification and a Python datetime object.
-
geopy
A geocoding toolbox.
-
PETSc for Python etc.
-
plasTeX
A LaTeX document processing framework written entirely in Python.
-
pyproj
Interface to PROJ.4.
-
gmt.gmt
Wrapper for GMT.
-
PyACTS
Interface to BLACS, PBLAS, ScaLAPACK, etc. with all docs in Spanish.
-
PyDSTool
An integrated simulation, modeling and analysis package for dynamical systems.
-
escript
A Python-based environment for implementing mathematical models in particular
those based on coupled, non-linear, time-dependend patial differential equation.
-
PrimaGIS
A GIS component for Plone.
-
Python Cartographic Library
-
TileCache
Provides a Python-based WMS/TMS server, with pluggable caching mechanisms
and rendering backends.
-
ElementTree
A simple but flexible container object, designed to store hierarchical data
structures, such as simplified XML infosets, in memory.
Web Development Frameworks