earth science markup language tutorial on how to write an esml description file (for esml schema...
TRANSCRIPT
EARTH SCIENCE MARKUP LANGUAGE
Tutorial on how to write an ESML Description File (for ESML Schema v3.0)
“Define Once Use Anywhere”
INFORMATION TECHNOLOGY AND SYSTEMS CENTERUNIVERSITY OF ALABAMA IN HUNTSVILLE
ESML Schema • ESML schema defines Syntactic metadata that describe the structure of the file in machine-
readable and -interpretable terms• Divide data formats into free form (ASCII, Binary) and structured (HDF-EOS, netCDF, etc)
Two Sections
• Part I– Writing ESML Description for free form formats in
ASCII, Binary– Examples
• Part II– Writing ESML Description Files for structured formats
• HDF-EOS• netCDF
Part I
• Goal:– To write an ESML Description File for a simple ASCII
data file– Show similar example for Binary data file– Show other capabilities
Writing an ESML File (1)
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
4 5 1 2 3 4 5 6 7 8 9 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCIIDATA FILE
ESML MARKUPFOR THE DATA FILE
The next slides will set describe how to write an ESML file for a simple ASCII file described below
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
Writing an ESML File (2)
DESCRIBING ONLY THESTRUCTURE
4 5 1 2 3 4 5 6 7 8 9 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCIIDATA FILE
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
Writing an ESML File (3)
DESCRIBE THEFORMAT
4 5 1 2 3 4 5 6 7 8 9 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCII DATA FILE
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
Writing an ESML File (4)
ENTIRE FILE CONTENTSINTO 1 LOGICAL
STRUCTURE
4 5 1 2 3 4 5 6 7 8 9 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCII DATA FILE
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
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 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCII DATA FILE
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
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 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCII DATA FILE
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
Writing an ESML File (7)
DEFINE THE DATA FIELD IN THE FILE:PROVIDE SIZE AND
FORMAT INFORMATION
SIMPLE ASCII DATA FILE
4 5 1 2 3 4 5 6 7 8 9 1011 12 13 14 1516 17 18 19 20
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" /> <Header name="SizeY" format="%d" /> <Array occurs=“4"> <Array occurs=“5"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
Writing an ESML File (8)
CLOSE ALL THETAGS: ESML FILE
IS READY
4 5 1 2 3 4 5 6 7 8 9 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCII DATA FILE
REMEMBER TO VALIDATE YOUR FILE AGAINST THE SCHEMA!
<a:ESML > <SyntacticMetaData> <Ascii> <Structure instances="1"> <Header name="SizeX" format="%d" symbol=“true" /> <Header name="SizeY" format="%d“ symbol=“true" /> <Array occurs=“$SizeX"> <Array occurs=“$SizeY"> <Field name="BrightnessTemp" format="%d"/> </Array> </Array> </Structure> </Ascii> </SyntacticMetaData></a:ESML>
Another Possible ESML Description (9)
USE HEADER INFORMATION
4 5 1 2 3 4 5 6 7 8 9 1011 12 13 14 1516 17 18 19 20
SIMPLE ASCII DATA FILE
ESML Description for a similar file in Binary format
<a:ESML xsi:schemaLocation="ESML ../../Schema/ESML.xsd"> <SyntacticMetaData> <Binary> <Structure name="Bin" instances="1"> <Header type="Int32" name="sizeX"/> <Header type="Int32" name="sizeY"/> <Array occurs="5"> <Array occurs="5"> <Field name="BrightnessTemp" type="Int32" order="LittleEndian"/> </Array> </Array> </Structure> </Binary> </SyntacticMetaData></a:ESML>
ESML Description File using wild card ‘*’ to read till the end of file
<a:ESML xsi:schemaLocation="ESML ../../Schema/ESML.xsd"> <SyntacticMetaData> <Binary> <Structure name="Bin" instances="1"> <Header type="Int32" name="sizeX"/> <Header type="Int32" name="sizeY"/> <Array occurs=“*"> <Array occurs="5"> <Field name="BrightnessTemp" type="Int32" order="LittleEndian"/> </Array> </Array> </Structure> </Binary> </SyntacticMetaData></a:ESML>
Part II
• Goal:– Show some example ESML Description Files for
structured data formats supported by the ESML Schema
• HDF-EOS• netCDF• HDF5• Grib• WSR88DLII
<a:ESML > <SyntacticMetaData> </HdfEos> </SyntacticMetaData> </a:ESML>
ESML Descriptions for a Structured Format (HDF-EOS)
<a:ESML > <SyntacticMetaData> <HdfEos> <Structure name="CERES_ES8_12891" instances="1"> <Field name="Colatitude of CERES FOV at TOA“/> <Field name="Longitude of CERES FOV at TOA“/> <Field name="Time of observation“/> </Structure> </HdfEos> </SyntacticMetaData></a:ESML>
Both ESML Descriptions are correct and valid
<a:ESML > <SyntacticMetaData> </netCDF> </SyntacticMetaData> </a:ESML>
ESML Descriptions for a Structured Format (netCDF)
<a:ESML > <SyntacticMetaData> <netCDF>
<netCDFField name="U"></netCDFField>
</netCDF> </SyntacticMetaData></a:ESML>
Both ESML Descriptions are correct and valid
REMEMBER TO CHECK THE ESML REGISTRY FOR ALREADY EXISTING ESML DESCRIPTION FILE!!