[ home ]
Web Services for Oceanography
SURA, SCOOP and OpenIOOS
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.
The home page of the OpenIOOS.org demo server.
AOOS Soap Server
"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."
Grid middleware that allows scientific programs to be deployed as RESTful web services.
Writing SOAP Web Services
Chapter 3 from "Programming Web Services with SOAP".
SOAP Version 1.2 FAQ
Call SOAP Web Services with Ajax
Ajax and Scripting Web Services with E4X
Using WSDL in SOAP Applications
Web Services for Bioinformatics: [
Part 1 | Part 2 | Part 3 ]
Build AJAX-Based Web Maps Using ka-Map
National Operational Prototype Evaluation for Katrina Mapserver
Katrina ka-Map MapServer Example
Using AJAX and MapServer to Build an Interactive Web-Mapping Client
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."
XML::Writer is a helper module for Perl programs that write an XML document.
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,
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
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.
Marine Metadata Interoperability (MMI)
OGC Interoperability Program
Sensor Web Enablement (SWE)
Interoperability interfaces and metadata encodings that enable real-time
integration of heterogeneous sensor webs into the information infrastructure.
- Observations & Measurements (O&M)
Defines an abstract model and an XML schema encoding for observations, and provides
support for common sampling strategies.
- Sensor Model Language (SensorML)
Specifies models and XML encodings that provide a framework within which the geometric,
dynamic, and observational characteristics of sensors and sensor systems can be defined.
The candidate specifications are:
- Transducer Model Language (TransducerML or TML)
An application and presentation layer communication protocol for exchanging
live streaming or archived data to and/or sensor data from any sensor system.
- Sensor Observation Service (SOS)
An API for managing deployed sensors and retrieving sensor data, specifically observation data.
- Sensor Planning Service (SPS)
Defines interfaces for queries that provide information about the capabilities of a sensor and
how to task the sensor.
- Sensor Alert Service (SAS)
A standard web service interface for publishing and subscribing to alerts from sensors.
- Web Notification Services (WNS)
A service by which a client may conduct asynchronous dialgues with one or more other
NASA EO-1 Testbed
Sensor Web Alliance
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.
Compusult List of Services
GeoRSS (Geographically Encoded Objects for RSS Feeds)
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.
Project to transfer DEWS project technology into THREDDS and GeoServer, i.e.
to allow them to serve CF-compliant NetCDF files through WCS and WM
A WMS for geospatial data stored in CF-compliant NetCDF files.
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.
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.
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.
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.
Annotated Schema for NcML-2.2
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.
Creates a ncML-GML representation of a netCDF-CF dataset.
GRASS NetCDF Module
degrib - Converts from GRIB to NetCDF, Shapefile, and other formats.
ESIP Available Services
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).
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.
WPS (Web Processing Service)
A service for the exchange of raster imagery.
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
MIT Lincoln Lab WCS Implementation
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.
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
Guide to Distributing Your Data Products Via WMS 1.1.1 (Jan. 2004)
OGC Web Services section of
wms-dev Discussion List
GeoServer - A Java implementation of the OGC WFS, WMS and WCS specifications.
OWSLib - Python package for programming with OGC web services
SimpleMapServer - a Java OGC WMS server
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.
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.
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 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
ECHO Extended Services Testbed
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 is a middleware product which supports the exposure of data resources, such as relational or XML databases, on to grids.
The WS-I version of OGSA-DAI is compatible with the UK OMII's
implementation of WS-I.
The WSRF version of OGSA-DAI is compatible with the
Globus Toolkit's implementation of WSRF.
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.
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.
A Python-based environment for implementing mathematical models,
in particular those based on coupled, non-linear, time-dependent partial
AGRIF (Adaptive Grid Refinement in Fortran)
PHAML (Parallel Hierarchical Adaptive Multilevel Project)
An open source model for glaciers.
A semi-automated finite-element ocean model mesh generation routine.
An unstructured-grid model designed for the effective simulation of 3D baroclinic circulation across river-to-ocean scales.
Python and XML
Writing and Reading XML with XIST
Using SAX for Proper XML Output - Uche Ogbuji
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.
Web Development Frameworks
This module converts between a given COARDS time specification and a Python datetime object.
A geocoding toolbox.
PETSc for Python etc.
A LaTeX document processing framework written entirely in Python.
Interface to PROJ.4.
Wrapper for GMT.
Interface to BLACS, PBLAS, ScaLAPACK, etc. with all docs in Spanish.
An integrated simulation, modeling and analysis package for dynamical systems.
A Python-based environment for implementing mathematical models in particular
those based on coupled, non-linear, time-dependend patial differential equation.
A GIS component for Plone.
Python Cartographic Library
Provides a Python-based WMS/TMS server, with pluggable caching mechanisms
and rendering backends.
A simple but flexible container object, designed to store hierarchical data
structures, such as simplified XML infosets, in memory.