-
Notifications
You must be signed in to change notification settings - Fork 3
Dateiformat für JSON Daten
Es handelt sich um Daten, die entweder nur von einer Ortsinformation oder von Orts- und Zeitinformationen abhängen. Bei beiden werden alle Knoten geographisch angeordnet, letztere Art von Knoten trägt zusätzlich einen Timestamp.
Die Knoten erhalten je nach Datentyp eine Metrik, um sie nach Wichtigkeit zu bewerten, was später im Level-of-Detail-System verwendet wird. Das kann beispielsweise die Größe einer Stadt oder die Länge eines Fluges sein. Aus der Metrik soll eine ganzzahlige Priorität zwischen 0 und 7 folgen, wobei 0 die höchste Priorität darstellt. Dies wird in der Datei dadurch repräsentiert, dass ein Knoten der Wichtigkeit n
demjenigen Knoten der Wichtigkeit n - 1
untergeordnet wird, der ihm geographisch am nächsten ist.
Nicht-zeitabhängige Daten bestehen aus einem einfachen Baum in JSON-Notation, der beispielsweise folgendermaßen aussehen kann:
{
"meta": {
"dataType": "cities",
"temporal": false
},
"root": {
"children": [
{
"name": "Dubai",
"longitude": 55.304718,
"latitude": 25.258171,
"children": []
},
{
"name": "Los Angeles",
"longitude": -118.242775,
"latitude": 34.052223,
"children": [
{
"name": "San Francisco",
"longitude": -122.418335,
"latitude": 37.775,
"children": [
{
"name": "Burlingame",
"longitude": -122.365,
"latitude": 37.584167,
"children": []
}
]
}
]
}
]
}
}
Zeitabhängige Daten enthalten zusätzlich einen UNIX-Timestamp, werden aber dennoch primär geographisch angeordnet. Zudem enthält jede Datei das Attribut timeResolution
, das die Länge eines Zeitschritts in Sekunden angibt.
{
"meta": {
"dataType": "tweets",
"temporal": true,
"timeResolution": 60
},
"root": {
"children": [
{
"author": "BarackObama",
"content": "Progress #president",
"timestamp": 1439297110,
"longitude": 55.304718,
"latitude": 25.258171,
"children": []
},
{
"author": "elonmusk",
"content": "Is this working?",
"timestamp": 1439280065,
"longitude": -118.242775,
"latitude": 34.052223,
"children": [
{
"author": "nytimes",
"content": "This volcano looks like it is erupting #lava #dangerous",
"timestamp": 1439288745,
"longitude": -122.418335,
"latitude": 37.775,
"children": []
}
]
}
]
}
}
Lässt man das children
-Attribut für die Baumstruktur aus, so enthalten die Knoten jeder Art von Datentyp einen Payload, der die eigentlichen Informationen beschreibt.
Zudem hat jeder dieser Datentypen einen Meta-Header. Payload und Header werden in diesem Abschnitt spezifiziert.
Header:
"meta": {
"dataType": "cities",
"temporal": false
}
Payload:
"name": "Dubai",
"longitude": 55.304718,
"latitude": 25.258171
Header:
"meta": {
"dataType": "flights",
"temporal": false
}
Payload:
"startPosition": {
"airportCode": "DXB",
"longitude": 55.304718,
"latitude": 25.258171
},
"endPosition": {
"airportCode": "LAX",
"longitude": -118.242775,
"latitude": 34.052223
},
"airline": "Lufthansa"
Header:
"meta": {
"dataType": "tweets",
"temporal": true,
"timeResolution": 60
}
Payload:
"author": "nytimes",
"content": "This volcano looks like it is erupting #lava #dangerous",
"timestamp": 1439288745,
"longitude": -122.418335,
"latitude": 37.775
Header:
"meta": {
"dataType": "precipitation",
"temporal": true,
"timeResolution": 60
}
Payload:
"precipitationRate": 24, // Millimetres per hour
"precipitationType": "snow", // Could be 'rain', 'snow', 'sleet', 'hail' or 'NoData'
"timestamp": 1439288745,
"longitude": -122.418335,
"latitude": 37.775
Header:
"meta": {
"dataType": "temperature",
"temporal": true,
"timeResolution": 60
}
Payload:
"temperature": 21, // Degrees Celsius
"timestamp": 1439288745,
"longitude": -122.418335,
"latitude": 37.775
Header:
"meta": {
"dataType": "wind",
"temporal": true,
"timeResolution": 60
}
Payload:
"speed": 0.4, // Metres per second
"direction": 120, // Degrees, with 0 being true North, progressing clock-wise
"timestamp": 1439288745,
"longitude": -122.418335,
"latitude": 37.775
Header:
"meta": {
"dataType": "cloudCover",
"temporal": true,
"timeResolution": 60
}
Payload:
"cloudCover": 0.4, // Cloud coverage (value in interval [0, 1])
"timestamp": 1439288745,
"longitude": -122.418335,
"latitude": 37.775