Datenserien

Wie kommt man bequem an alle Datensätze und Dateien einer Datenserie im Open-Data-Portal Schleswig-Holstein heran? Ich erkläre es euch.

Eine Möglichkeit ist es, über die DCAT-AP.de Metadaten zu gehen. Für die Datenserie der KFÜ-Messwerte sind diese hier zu erreichen https://opendata.schleswig-holstein.de/dataset/kfue-7t.rdf Darin gibt es Einträge der Form

<dct:hasVersion rdf:resource="https://opendata.schleswig-holstein.de/dataset/5a9685b3-3979-4a40-b75c-dc4cc882ad29"/>

die auf die einzelnen Datensätze der Serie verweisen.

Eine zweite Möglichkeit ist das CKAN-API. Diese Daten sind über https://opendata.schleswig-holstein.de/api/action/package_show?id=kfue-7t zu erreichen. In dem JSON-Dokument ist eine Liste relationships_as_object enthalten. Ein Eintrag darin sieht so aus:

{
   "__extras" : {
      "object_package_id" : "d5d010b0-dce0-4a19-8f55-445612dd389c",
      "subject_package_id" : "5a9685b3-3979-4a40-b75c-dc4cc882ad29"
   },
   "comment" : "",
   "id" : "25d75cd4-d90f-4106-a064-22182047e3d3",
   "type" : "child_of"
}

Die gesuchte Kennung des Datensatzes steht im Feld subject_package_id.

Mit folgendem Kommandozeilenaufruf kann man sich eine Liste aller Datensatz-Ids erzeugen:

curl https://opendata.schleswig-holstein.de/api/action/package_show?id=kfue-7t |\
  jq .result.relationships_as_object[].__extras.subject_package_id

Oder in Python:

import json
import requests

url = 'https://opendata.schleswig-holstein.de/api/action/package_show?id=kfue-7t'
response = requests.get(url)
data = response.json()

package_ids = [item['__extras']['subject_package_id'] for item in data['result']['relationships_as_object']]

for id in package_ids:
    print(id)

An die neuste CSV-Datei aus der Serie kommt man übrigens immer über diese Adresse heran: https://opendata.schleswig-holstein.de/collection/kfue-7t/aktuell.csv