We have currently agreed that XML would be the format of choice.
Three existing schemas have been suggested:
Seems if we want to go with TransducerML, then we should replace our entire CSV scheme with that. I have a difficult time locating good examples, and ones that are a minimal set for both TransducerML and SensorML (better examples for SensorXML exist). Both TransducerML and SensorML seem heavy-weight, NcML is light-weight.
Chris currently proposes using the netCDF NcML schema with some slight modifications.
Based on this CSV string:
GARMIN_GPS,2008-09-12T153204,41.482,-105.7331,5800.2 |
Pure NcML example:
* <?xml version="1.0" encoding="UTF-8"?> <netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" format="classic" > <attribute name="ProjectName" type="String" value="MILAGRO" /> <attribute name="Platform" type="String" value="N130AR" /> <variable name="IDENTIFIER" shape="Time" type="String"> <attribute name="long_name" type="String" value="Keyword identifying this packet" /> <attribute name="units" type="String" value="GARMIN_GPS" /> </variable> <variable name="Time" shape="Time" type="String"> <attribute name="long_name" type="String" value="time of measurement" /> <attribute name="units" type="String" value="iso-8601" /> </variable> <variable name="GGLAT" shape="Time" type="float"> <attribute name="units" type="String" value="degree_N" /> <attribute name="long_name" type="String" value="GPS Latitude" /> </variable> <variable name="GGLON" shape="Time" type="float"> <attribute name="units" type="String" value="degree_E" /> <attribute name="long_name" type="String" value="GPS Longitude" /> </variable> <variable name="GGALT" shape="Time" type="float"> <attribute name="units" type="String" value="m" /> <attribute name="long_name" type="String" value="GPS Altitude" /> </variable> </netcdf> |
<?xml version="1.0" encoding="UTF-8"?> <csv> <variable name="IDENTIFIER" shape="Time" type="String"> <attribute name="long_name" type="String" value="Keyword identifying this packet" /> <attribute name="units" type="String" value="GARMIN_GPS" /> </variable> <variable name="Time" shape="Time" type="String"> <attribute name="long_name" type="String" value="time of measurement" /> <attribute name="units" type="String" value="iso-8601" /> </variable> <variable name="GGLAT" shape="Time" type="float"> <attribute name="units" type="String" value="degree_N" /> <attribute name="long_name" type="String" value="GPS Latitude" /> </variable> <variable name="GGLON" shape="Time" type="float"> <attribute name="units" type="String" value="degree_E" /> <attribute name="long_name" type="String" value="GPS Longitude" /> </variable> <variable name="GGALT" shape="Time" type="float"> <attribute name="units" type="String" value="m" /> <attribute name="long_name" type="String" value="GPS Altitude" /> </variable> </csv> |
A post-flight header might look like:
* <?xml version="1.0" encoding="UTF-8"?> <csv> <dimension name="Time" length="16269" isUnlimited="true" /> <dimension name="sps1" length="1" /> <dimension name="Vector64" length="64" /> <dimension name="Vector31" length="31" /> <attribute name="Source" type="String" value="NCAR Research Aviation Facility" /> <attribute name="Address" type="String" value="P.O. Box 3000, Boulder, CO 80307-3000" /> <attribute name="Phone" type="String" value="(303) 497-1030" /> <attribute name="Conventions" type="String" value="NCAR-RAF/nimbus" /> <attribute name="ConventionsURL" type="String" value="http://www.eol.ucar.edu/raf/Software/netCDF. html" /> <attribute name="Version" type="String" value="1.3" /> <attribute name="ProcessorRevision" type="String" value="3213" /> <attribute name="ProcessorURL" type="String" value="http://svn/svn/raf/trunk/nimbus" /> <attribute name="WARNING" type="String" value="This file contains PRELIMINARY DATA that are NOT to be used for critical analysis." /> <attribute name="DateProcessed" type="String" value="2006-02-22 12:57:06 \-0700" /> <attribute name="ProjectName" type="String" value="MILAGRO" /> <attribute name="Aircraft" type="String" value="N130AR" /> <attribute name="ProjectNumber" type="String" value="145" /> <attribute name="FlightNumber" type="String" value="tf02" /> <attribute name="FlightDate" type="String" value="02/21/2006" /> <attribute name="coordinates" type="String" value="LONC LATC GGALT Time" /> <attribute name="landmarks" type="String" value="19.4383 \-98.9242 MEX,19.1544 \-95.81 VER,22.3053 - 96.123 TAM,19.1636 \-97.6253 PUE,19.735 \-98.981 LUC,19.6847 \-97.0475 T1" /> <variable name="Time" shape="Time" type="int"> <attribute name="long_name" type="String" value="time of measurement" /> <attribute name="standard_name" type="String" value="time" /> <attribute name="units" type="String" value="seconds since 2006-02-21T18:43:35 \+0000" /> </variable> <variable name="ACINS" shape="Time" type="float"> <attribute name="_FillValue" type="float" value="-32767.0" /> <attribute name="units" type="String" value="m/s2" /> <attribute name="long_name" type="String" value="Aircraft Vertical Acceleration" /> <attribute name="Category" type="String" value="Aircraft State" /> <attribute name="SampledRate" type="int" value="25" /> <attribute name="TimeLag" type="int" value="10" /> <attribute name="TimeLagUnits" type="String" value="milliseconds" /> <attribute name="DataQuality" type="String" value="Preliminary" /> <attribute name="PITCH_BIAS_1" type="float" value="0.0" /> <attribute name="HEADING_BIAS_1" type="float" value="0.4" /> </variable> <variable name="ALT" shape="Time" type="float"> <attribute name="_FillValue" type="float" value="-32767.0" /> <attribute name="units" type="String" value="m" /> <attribute name="long_name" type="String" value="IRS Baro-Inertial Altitude" /> <attribute name="Category" type="String" value="Position" /> <attribute name="standard_name" type="String" value="altitude" /> <attribute name="SampledRate" type="int" value="25" /> <attribute name="DespikeSlope" type="float" value="" /> <attribute name="DataQuality" type="String" value="Preliminary" /> </variable> </csv> |