Get Involved

Become a

Mailing Lists
View CVS
Bug Database

Source Code

ESML Registry


nasa logo
Goddard Space
Flight Center
Earth Science
Technology Office

itsc logo
Information Technology and Systems Center
University of Alabama
in Huntsville
S339 Technology Hall,
Huntsville, AL 35899
(256) 824-6868
uah logo

Problems with
this website:

About ESML
Earth science data is archived and distributed in many different formats varying from character format, packed binary, "standard" scientific formats to self-describing formats. This heterogeneity results in data-application interoperability problems for scientific tools. The Earth Science Markup Language (ESML) is an elegant solution to this problem. ESML is an interchange technology that enables data (both structural and semantic) interoperability with applications without enforcing a standard format within the Earth science community. Users can write external files using ESML schema to describe the structure of the data file. Applications can utilize the ESML Library to parse this description file and decode the data format. As a result, software developers can now build data format independent scientific applications utilizing the ESML technology. Furthermore, semantic tags can be added to the ESML files by linking different domain ontologies to provide a complete machine understandable data description. This ESML description file allows the development of intelligent applications that can now understand and "use" the data.

Products Available

Major Changes in Version 3.0
  • ESML Schema
  • ESML Library (C++ version for Windows and LINUX)
  • Python modules for Windoes and Linux
  • ESML Editor compatible with the new schema
  • IDL Plugin
  • Windows Installer for PyESML
  • Windows installer for ESML_IDL

The new version of the schema does not contain explicitly defined semantics such as the Latitude, Longitude, Data tags, etc.
  • A new tag <Header> has been defined that is identical to <Field> but semantically describes comments and other header information including symbols.
  • The new version allows embedding external semantics in the structural definitions.


  • The refactored library design follows the layered cake design approach where:
  • The lowest level provides the basic functionality of reading the structural metadata from the ESML file and returning data for the user.
  • Additional software layers can be added to provide other functionalities such as using semantics from an ontology to "use" the data intelligently
  • A separate effort for the UNITE project is building a generic subsetting toolkit as one such additional layer.
  • The new library utilizes plug-in modules for each individual formats, thus allowing easier packaging of the ESML library.
  • The new library provides an API for the addition of new formats as plug in modules.
  • The user API for the new library design is analogous to file access in a directory structure.
  • The library source code in now available via source forge repository