Earth Science Markup Language (ESML) - A Tutorial
- 1. EARTH SCIENCE MARKUP LANGUAGE
(ESML)
“Define once, use anywhere”
A TUTORIAL
HDF and HDF-EOS Workshop VI
DECEMBER 4, 2002
STEVE TANNER
INFORMATION TECHNOLOGY AND SYSTEMS CENTER
UNIVERSITY OF ALABAMA IN HUNTSVILLE
- 2. Interoperability: Accessing Heterogeneous Data
The Problem
DATA
DATA
FORMAT 11
FORMAT
DATA
DATA
FORMAT 22
FORMAT
DATA
DATA
FORMAT 3
FORMAT 3
FORMAT
CONVERTER
READER 1
READER 2
APPLICATION
The Solution
DATA
DATA
DATA
DATA
DATA
DATA
FORMAT 11 FORMAT 22 FORMAT 33
FORMAT
FORMAT
FORMAT
ESML
ESML
FILE
FILE
ESML
ESML
FILE
FILE
ESML
LIBRARY
APPLICATION
ESML
ESML
FILE
FILE
• Earth science data comes in:
• Different formats, types and
structures
• Different states of processing (raw,
calibrated, derived, modeled or
interpreted)
• Enormous volumes
• One approach: Standard data formats
• Difficult to implement and enforce
• Can’t anticipate all needs
• Some data can’t be modeled or
is lost in translation
• The cost of converting legacy data
• A better approach: Interchange
technologies
• Earth Science Markup Language
- 3. Interchange Technology:
Earth Science Markup Language (ESML)
Data
Applications
Interchange Technology
Integration
• Facilitate
effective
utilization of
distributed,
heterogeneous
data products
• Enable
interchangeable
tools and
services
- 4. Background on eXtensible Markup
Language
• What is a Markup?
– Anything on a document which adds special meaning
– Rules are defined so the others can understand
• Types of Markups
– Stylistic – presentation
– Structural – document structure
– Semantic – provide meaning about the content in the
document
– Content – describe the content of the document
- 5. Difference between HTML and
XML
• HTML
– Fixed format (rules are defined)
– Used for presentation
• XML
– Allows users to create their own rules
– Can be utilized in different applications
– Allows data to be used across different platforms and
applications
– Allows non human interaction
• Generate rules in XML using:
– DTD – had limitations
– Schema – improvement over DTD
- 6. What is ESML
•
Specialized markup language for Earth Science metadata based on XML
•
ESML is NOT a new data format - it is a “Smart” README file that
both scientist and the application can understand
•
External metadata files that can be generated by either data producer or
data consumer (at collection, data set, and/or granule level)
•
Machine-readable and -interpretable representation of the structure and
content of any data file, regardless of data format
•
Beyond traditional metadata to include both structural and semantic
information needed to effect a practical runtime interpretation of a data
set
•
ESML will provide the benefits of a standard, self-describing data format
(like HDF, HDF-EOS, netCDF, geoTIFF, …) without the cost of data
conversion
- 7. Benefits of ESML
• Enables independently developed applications and services to
effectively utilize distributed, heterogeneous data products
• Allows the end-user to integrate data sets of differing structures
to aid in data fusion and analysis without having to write a
special reader for each data set
• Is simple enough that end-users can create their own ESML for
on-hand datasets (new or legacy)
•
•
•
•
Single data decoder can read heterogeneous data sets
Scientists can manipulate data decoder using ESML
Easy to use programming interface
ESML content metadata allows search capabilities
– Promotes data sharing and research
• ESML provides basic preprocessing capabilities
- 8. Example: ESML file for an Image
Mitch.esml
Hurricane Mitch
(981027)
Binary format
(32 bits/pixel)
300
512
<a:ESML>
<SyntacticMetaData>
<Binary dataSetName="mitch">
<BinaryStructure name="raster"
instances="1" geoInfo="NoGeoInfo">
<Array name="track" occurs="300"
dimName="Y">
<Array name="Crosstrack" occurs="512"
dimName="X">
<Field name="Channel 1" type="Int32">
<Data/>
</Field>
…
</SyntacticMetaData>
</a:ESML>
- 9. ESML Vision: Data Usability
DATA ARCHIVING CENTERS
SCIENTIST
WITH
ESML
DATA SET A
DATA SET B
WITHOUT
ESML
OTHER
OTHER
SOURCES
SOURCES
APPLICATIONS
ESML
Libraries
VENDORS
ESML
ESML
- 10. Components of the Interchange
Technology
DATA
FORMAT1
DATA
FORMAT2
DATA
FORMAT3
OTHER FORMATS
ESML
FILE
ESML
FILE
ESML
FILE
ESML LIBRARY
ESML
SCHEMA
ESML
EDITOR
ESML CONSISTS OF:
MARKUPS
ESML
DATA
BROWSER
ADaM DATA
MINING
SYSTEM
RULES FOR THE MARKUPS
OTHER
APPLICATIONS
MIDDLEWARE FOR
AUTOMATION
- 11. Components of the Interchange
Technology
DATA
FORMAT1
DATA
FORMAT2
DATA
FORMAT3
OTHER FORMATS
ESML
FILE
ESML
FILE
ESML
FILE
ESML
SCHEMA
ESML LIBRARY
ESML
DATA
BROWSER
ADaM DATA
MINING
SYSTEM
OTHER
APPLICATIONS
INTERCHANGE
TECHNOLOGY
ESML
EDITOR
- 12. Components of the Interchange
Technology
DATA
FORMAT1
ESML
FILE
DATA
FORMAT2
ESML
FILE
DATA
FORMAT3
ESML
FILE
OTHER
FORMATS
ESML
SCHEMA
ESML LIBRARY
ESML
DATA
BROWSER
APPLICATION
DEVELOPERS
ADaM DATA
MINING
SYSTEM
OTHER
APPLICATIONS
INTERCHANGE
TECHNOLOGY
ESML
EDITOR
DATA PRODUCERS
OR CONSUMERS
- 13. ESML Schema
• Content metadata describe the contents of a file in human-readable and
machine-readable terms. An example of this would be ECS or FGDC
metadata.
• Syntactic metadata describe the structure of the file in machinereadable and -interpretable terms. HDF-EOS and HDF provide this
mechanism for HDF-EOS files.
• Semantic metadata, describe the contents of a file in machine-readable
terms such that an application can interpret the data in an intelligent
manner. Semantic metadata is embedded in the Syntactic
- 14. ESML Content
Metadata
• Content metadata are
mainly used for human
knowledge and websearching
• Content metadata in
ESML are derived
from FGDC and ECS
metadata sets
• Tools are planned for
converting existing
ECS metadata into
ESML
- 15. Syntactic Metadata - Binary Data
ESML supports descriptions of the structures of data files
in two basic data formats, Binary and ASCII
- 16. Syntactic Metadata - ASCII Data
ESML supports descriptions of the structures of data files
in two basic data formats, Binary and ASCII
- 17. Syntactic Metadata - HDF-EOS
• Self-Describing Formats:
–Descriptions of the structures of self-describing data files
through their internal metadata
• HDF, HDF-EOS, CDF, netCDF, etc
• Additional data formats can be added as necessary
- 18. Semantic Metadata in ESML
• Goals
– Get the right data
– Navigating the data
• Figure out within the data what is latitude, longitude, time
and/or coordinate system
– Reading the data in actual scientific units, for example:
• Data stored as value to save space
• Equation is applied on processing
• Embedded in Syntactic metadata
• Provides semantic descriptions for Time, Geo (Lat/Lon)
and Data fields
• Provides capabilities to define equation for data conversion
for Time, Geo and Data fields
• e.g. Y=mx+b where m is scale and b is offset
- 19. Semantic Metadata Examples
-
<BinaryStructure geoInfo="ByProjection" occurs="1">
<Projection LowRight_X="360" LowRight_Y="-40"
UpLeft_X="0" UpLeft_Y="40">
<Geographic latOffset="-0.125" lonOffset="-0.125" />
</Projection>
<Syntac icMetaData>
t
<HdfEos>
<HdfEosSt t
ruc ure name="Day 1998335">
<Datum name="Lat_ar
ray">
<Lattude/>
i
</Datum >
<Datum name="Lon_ar
ray">
<Long t
i ude/>
</Datum >
<Datum name="50299.91 M Hz">
<Data >
/
<SyntacticMetaData>
</Datum >
<HdfEos />
</HdfEosSt
ructu
re>
</SyntacticMetaData>
</HdfEos>
</Syntact
icMetaData>
- 20. Need For Semantic Metadata: Example
TMI Data Product README File
The data values between 0 and 250 need to be scaled to
obtain meaningful geophysical data.
To scale the data, multiply by the scale factors listed below:
T: multiply by 6.0 to get
minute of day (0 – 1440)
S: multiply by 0.15 AND subtract 3 to get
SST (-3 - 34.5 C)
W: multiply by 0.15 to get
10 m winds (0 - 37.5 m/s)
V: multiply by 0.3 to get
water vapor (0 - 75 mm)
L: multiply by 0.01 to get
cloud liquid water (0 - 2.5 mm)
R: multiply by 0.1 to get
rain rate (0 - 25 mm/hr)
- 21. Semantic Metadata for TMI Products
<SyntacticMetaData>
<Binary>
<BinaryStructure geoInfo="ByProjection" instances="1">
<Projection LowRight_X="360" LowRight_Y="-40" UpLeft_X="0"
UpLeft_Y="40">
<Geographic latOffset="-0.125" lonOffset="-0.125"/>
</Projection>
<Array occurs="320">
<Array occurs="1440">
<Field name="SST" type="UInt8" order="LittleEndian" size="8">
<Data unit="C " equation="0.15 * X -3"/>
</Field>
</Array>
</Array>
...
</SyntacticMetaData>
- 22. Writing an ESML File (1)
ESML MARKUP
FOR THE DATA FILE
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
<Ascii>
<AsciiStructure geoInfo="NoGeoInfo"
instances="1">
<Field name="SizeX" format="%d">
<Attribute/>
</Field>
<Field name="SizeY" format="%d">
<Attribute/>
</Field>
<Array occurs="4">
<Array occurs="5">
<Field name="BrightnessTemp"
format="%f">
<Data unit="Degrees Kelvin"/>
</Field>
</Array>
</Array>
</AsciiStructure>
</Ascii>
</SyntacticMetaData>
</a:ESML>
- 23. Writing an ESML File (2)
ONLY THE
STRUCTURE
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
- 24. Writing an ESML File (3)
DESCRIBE THE
FORMAT
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
<Ascii>
- 25. Writing an ESML File (4)
ENTIRE FILE CONTENTS
INTO 1 LOGICAL
STRUCTURE
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
<Ascii>
<AsciiStructure geoInfo="NoGeoInfo"
instances="1">
- 26. Writing an ESML File (5)
DEFINE THE FIRST
FIELD IN THE FILE:
HEADER INFORMATION
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
<Ascii>
<AsciiStructure geoInfo="NoGeoInfo"
instances="1">
<Field name="SizeX" format="%d">
<Attribute/>
</Field>
- 27. Writing an ESML File (6)
DEFINE THE SECOND
FIELD IN THE FILE:
HEADER INFORMATION
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
<Ascii>
<AsciiStructure geoInfo="NoGeoInfo"
instances="1">
<Field name="SizeX" format="%d">
<Attribute/>
</Field>
<Field name="SizeY" format="%d">
<Attribute/>
</Field>
- 28. Writing an ESML File (7)
DEFINE THE DATA
FIELD IN THE FILE:
PROVIDE SIZE AND
FORMAT INFORMATION
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
<Ascii>
<AsciiStructure geoInfo="NoGeoInfo"
instances="1">
<Field name="SizeX" format="%d">
<Attribute/>
</Field>
<Field name="SizeY" format="%d">
<Attribute/>
</Field>
<Array occurs="4">
<Array occurs="5">
<Field name="BrightnessTemp"
format="%d">
<Data unit="Degrees Kelvin"/>
</Field>
</Array>
</Array>
- 29. Writing an ESML File (8)
CLOSE ALL THE
TAGS: ESML FILE
IS READY
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
SIMPLE ASCII
DATA FILE
<a:ESML>
<SyntacticMetaData>
<Ascii>
<AsciiStructure geoInfo="NoGeoInfo"
instances="1">
<Field name="SizeX" format="%d">
<Attribute/>
</Field>
<Field name="SizeY" format="%d">
<Attribute/>
</Field>
<Array occurs="4">
<Array occurs="5">
<Field name="BrightnessTemp"
format="%d">
<Data unit="Degrees Kelvin"/>
</Field>
</Array>
</Array>
</AsciiStructure>
</Ascii>
</SyntacticMetaData>
</a:ESML>
- 30. Demonstration of the Interchange
Technology
• Read multiple formats
– NLDN in ASCII
– GOES Binary
– AMSU-A HDF-EOS
• Single ESML file – multiple data files
• Equation to preprocess the data
• Semantic capabilities – slice and dice the data
- 31. Hands On Tutorial Outline
1. Writing an ESML file using the ESML Editor
– Simple ASCII file
– Simple Binary file
– HDF-EOS file
2. Utilizing the ESML descriptions to browse the
data files using the ESML Data Browser
3. Overview of the ESML library
– Writing a simple reader
– Writing a generic reader
- 32. ESML Editor
100% Java version prototype
Utilizes Expert System principles to
give users correct options
Hides the XML tags from the users
Future Features:
Allow text editing of the XML tags
also
Incorporate feedback from users
- 33. ESML Data Browser
Hybrid product (Java Client/C++ Library
backend/JNI Interface)
Features
Browse and view data file using a
ESML file
Browse the metadata for each
data field
Future Features:
Allow format conversion with
automatic generation of ESML
metadata file
Allow selection of multiple fields
Additional functionality such as
Subsetting
- 34. ESML Editor
• ESML Schema Window
– Displays the ESML Schema in tree structure
• ESML File Window
– Displays the user generated ESML description
• ESML Attribute Window
– Provides the means to set the attributes for the
selected ESML element
- 35. Writing an ESML File: Simple
ASCII File (1)
ASCII data file:
4
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
- 36. Writing an ESML File: Simple
ASCII File (2)
• Understand the structure of the data file to be
described by ESML file
• Open ESML editor (ready to create new ESML
file) and describe this structure using the rules
established in the ESML schema
• Add “SyntacticMetadata” as child of “ESML”
and modify its attributes if available
• Add “Ascii” as child of “SyntacticMetadata”
and modify its attributes if available
- 37. Writing an ESML File: Simple
ASCII File (3)
• Add “AsciiStructure” as child of “Ascii” and modify
its attribute
• Add “Field” element as one child of “AsciiStructure”
and modify its attributes if available. This element is
used to describe the first datum in the data file
• Add ‘semantic information’ to describe this “Field”
• Add “Field” element as one child of “AsciiStructure”
and modify its attributes if available. This element is
used to describe the second datum in the data file
• Add “Array” element as one child of “AsciiStructure”
to describe the outer dimension of the 2D array, and
modify its attributes if available
- 38. Writing an ESML File: Simple
ASCII File (4)
• Add “Array” element as child of “Array” to describe
the inner dimension of the 2D array, and modify its
attributes if available
• Add “Field” element as child of “Array” to describe the
individual element and modify its attributes if available
• Add “Array” element as child of “Array” to describe
the inner dimension of the 2D array, and modify its
attributes if available
• Add “Field” element as child of “Array” to describe the
individual element and modify its attributes if available
- 39. Writing an ESML File: Simple
Binary File (1)
• The structure and content are the same as those of
ASCII file that we just worked on, but stored in Binary
format
• Open ESML editor
• Add “SyntacticMetadata” as child of “ESML” and
modify its attributes if available
• Add “Binary” as child of “SyntacticMetadata” and
modify its attributes if available
- 40. Writing an ESML File: Simple
Binary File (2)
• Add “BinaryStructure” as child of “Binary” and modify
its attribute
• Add “Field” element as one child of “BinaryStructure”
and modify its attributes if available. This element is
used to describe the first datum in the data file
• Add “Field” element as one child of “BinaryStructure”
and modify its attributes if available. This element is
used to describe the second datum in the data file
• Add “Array” element as one child of “BinaryStructure”
to describe the outer dimension of the 2D array, and
modify its attributes if available
- 41. Writing an ESML File: Simple
Binary File (3)
• Add “Array” element as child of “Array” to describe
the inner dimension of the 2D array, and modify its
attributes if available
• Add “Field” element as child of “Array” to describe
the individual element and modify its attributes if
available
• Add “Array” element as child of “Array” to describe
the inner dimension of the 2D array, and modify its
attributes if available
• Add “Field” element as child of “Array” to describe
the individual element and modify its attributes if
available
- 42. Writing an ESML File: HDFEOS File (1)
• Since HDF-EOS is self-describing format and
metadata is contained in the data file, ESML file for
HDF-EOS data file is simple
• Here are the steps to create ESML file for HDF-EOS:
• Open ESML editor
• Add “SyntacticMetadata” as child of “ESML” and
modify its attributes if available and needed
• Add “HdfEos” as child of “SyntacticMetadata”
• You are done!!!
- 43. Writing an ESML File: HDFEOS File (2)
• HDF-EOS format has rules that Latitude and Longitude
fields have to have field names of “Latitude” and
“Longitude”, respectively
• If a HDF-EOS file does not follow this rule, ESML file
has to be more detailed
• Here are the follow-on from the ESML file before:
• Add “HdfEosStructure” as child of “HdfEos” and
modify its attributes if available and needed
- 44. Writing an ESML File: HDFEOS File (3)
• Add “Field” as child of “HdfEosStructure”
• Add ‘semantic information’ as child to describe this
“Field” element. If this field is latitude, then add a
child element “Latitude” to indicate that this field is
latitude field. If longitude field, add “Longitude” child
element to describe the “Field” element.
- 45. ESML Web Page
URL: esml.itsc.uah.edu
Post latest products, news, presentations,
papers
Schema and related documents available to all
ESML Library, ESML Editor and ESML Data
Browser available