Web-Friendly Geo formats

The recent workshop on Open Data on the Web sparked some reflection on the geospatial field's ability (or lack thereof) to deliver options for "ultra-lightweight" data publishing formats. The observation that stood out most was that most people still want to publish tables -- tabular data! XML and RDF will never appeal to a large cross-section of the IT world. On this page are gathered some specifications and proposals for ultra-lightweight geospatial data standard formats.

Open GeoCSV

Proposal

Simple. Use Well-Known-Text (WKT) in CSV.

By default, WKT uses the WGS 84 coordinate reference system. Coordinates in WKT are in x,y order, and one can also add a third, "z" value to create a 3D coordinate. Current practice is to have one column for x values and one for y, but that strategy only allows for point data. WKT allows for lines and polygons as well.

Example

id, name, geo
1, Boston, POINT(-71.05977,42.35843)
2, Sao Paulo, POINT(-46.63611,-23.5475)
3, Mumbai, POINT(72.88261,19.07283)

Geo JSON

Proposal

Use GeoJSON

RSS/Atom

Proposal

Use GeoRSS

SensorML

Proposal

Use Sensor Model Language (SensorML)

Example

<?xml version="1.0" encoding="UTF-8"?>
<swe:DataStream id="EXAMPLE_01" 
   xmlns:swe="http://www.opengis.net/swe/2.0"
   xmlns:gml="http://www.opengis.net/gml/3.2"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xsi:schemaLocation="http://www.opengis.net/swe/2.0 http://schemas.opengis.net/sweCommon/2.0/swe.xsd">
      <swe:elementCount>
      <swe:Count>
         <swe:value>5</swe:value>
      </swe:Count>
   </swe:elementCount>
      <swe:elementType name="weather_data">
      <swe:DataRecord>
                  <swe:field name="time">
            <swe:Time definition="http://www.opengis.net/def/property/OGC/0/SamplingTime">
               <swe:label>Sampling Time</swe:label>
               <swe:uom xlink:href="http://www.opengis.net/def/uom/ISO-8601/0/Gregorian"/>
            </swe:Time>
         </swe:field>
                  <swe:field name="temperature">
            <swe:Quantity definition="http://mmisw.org/ont/cf/parameter/air_temperature">
               <swe:label>Air Temperature</swe:label>
               <swe:uom xlink:href="Cel"/>
            </swe:Quantity>
         </swe:field>
                  <swe:field name="pressure">
            <swe:Quantity definition="http://mmisw.org/ont/cf/parameter/air_pressure">
               <swe:label>Atmospheric Pressure</swe:label>
               <swe:quality>
                  <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/sciUncertainty.owl#Accuracy">
                     <swe:uom code="%"/>
                     <swe:value>10</swe:value>
                  </swe:Quantity>
               </swe:quality>
               <swe:uom code="mbar"/>
            </swe:Quantity>
         </swe:field>
                  <swe:field name="windSpeed">
            <swe:Quantity definition="http://mmisw.org/ont/cf/parameter/wind_speed">
               <swe:uom code="km/h"/>
            </swe:Quantity>
         </swe:field>
                  <swe:field name="windDirection">
            <swe:Quantity definition="http://mmisw.org/ont/cf/parameter/wind_to_direction">
               <swe:uom code="deg"/>
            </swe:Quantity>
         </swe:field>
               </swe:DataRecord>
   </swe:elementType>
      <swe:encoding>
      <swe:TextEncoding tokenSeparator="," blockSeparator="&#32;" decimalSeparator="."/>
   </swe:encoding>
      <swe:values>
      2009-01-01T10:00:25Z,25.3,1098,5,56
      2009-01-01T10:00:35Z,25.4,1098,15,59
      2009-01-01T10:00:45Z,25.4,1098,12,42
      2009-01-01T10:00:55Z,25.4,1098,5,40
      2009-01-01T10:01:05Z,25.3,1098,5,66
   </swe:values>
</swe:DataStream>