osmberlin / osm-parking-processing

Processing pipeline to generate data on public parking from OpenStreetMap-Data.
https://parkraum.osm-verkehrswende.org/project-vector-tiles/
GNU Affero General Public License v3.0
19 stars 2 forks source link

Erstelle JSON zur Konfiguration von Regionen #76

Open gislars opened 1 year ago

gislars commented 1 year ago

Das Setup unterstützt die Verarbeitung von verschiedenen Regionen. Für jede Region werden Statistiken und Exporte erstellt. Für Anwendungen die auf die produzierten Ergebnisse zugreifen wollen, wird eine Konfigurationsdatei benötigt.

Ziel davon ist es:

Mein erster Versuch:

{
  "regions": {
    "region": [
      {
        "id": "1",
        "name": "berlin",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "id": "1",
            "name": "parking_lanes",
            "lastUpdate": "20.03.2023"
          },
          {
            "id": "2",
            "name": "parking_spaces",
            "lastUpdate": "20.03.2023"
          },
          {
            "id": "3",
            "name": "parking_segments",
            "lastUpdate": "20.03.2023"
          }
        ]
      },
      {
        "id": "2",
        "name": "bremen",
        "lastUpdate": "20.03.2023"
      },
      {
        "id": "3",
        "name": "kiel",
        "lastUpdate": "20.03.2023"
      }
    ]
  },
  "statistik_url_prefix": "https://server/stats/region/",
  "datasets_url_prefix": "https://server/export/region/",
  "lizenz": "foobar"
}
tordans commented 1 year ago

Für die Website reicht mir schon https://github.com/osmberlin/osm-parking-processing/blob/main/extracts/extracts.json.

Ich brauche da nur eine Liste der aktuell verwendeten Regionen. Alles weitere kann ich in der Website machen.

Das Format-Beispiel oben finde ich gut, aber sieht auch etwa zu komplex aus für den UseCase, den wir gerade haben.

Eine hilfreiche Erweiterung von https://github.com/osmberlin/osm-parking-processing/blob/main/extracts/extracts.json wäre noch ein "lesbarer Name", also "Berlin", "Linkoepings Kommun", dann muss ich mir den nicht aus dem Filename bauen.

gislars commented 1 year ago

Das extracts.json file wird für die Erstellung der Extrakte benutzt. Das wird sich wahrscheinlich in Zukunft ändern und auf mehrere Dateien verteilt werden. Da weiß ich noch nicht wie die Synchronisation zu den Exporten dann aussehen wird.

Auf Basis des extracts.json habe ich ein exports.json erstellt. Erstmal von Hand, Ziel ist aber das automatisiert bei jedem Update zu erstellen.

Das sieht aktuell so aus:

{
  "regions": {
    "region": [
      {
        "name": "berlin",
        "label": "Berlin",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "name": "parking_lanes",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_spaces",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_segments",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "region",
            "file_type": "geojson",
            "lastUpdate": "20.03.2023"
          }
        ]
      },
      {
        "name": "bremen",
        "label": "Bremen",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "name": "parking_lanes",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_spaces",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_segments",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "region",
            "file_type": "geojson",
            "lastUpdate": "20.03.2023"
          }
        ]
      },
      {
        "name": "dortmund",
        "label": "Dortmund",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "name": "parking_lanes",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_spaces",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_segments",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "region",
            "file_type": "geojson",
            "lastUpdate": "20.03.2023"
          }
        ]
      },
      {
        "name": "hannover",
        "label": "Hannover",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "name": "parking_lanes",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_spaces",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_segments",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "region",
            "file_type": "geojson",
            "lastUpdate": "20.03.2023"
          }
        ]
      },
      {
        "name": "hamburg",
        "label": "Hamburg",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "name": "parking_lanes",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_spaces",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_segments",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "region",
            "file_type": "geojson",
            "lastUpdate": "20.03.2023"
          }
        ]
      },
      {
        "name": "bamberg",
        "label": "Bamberg",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "name": "parking_lanes",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_spaces",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_segments",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "region",
            "file_type": "geojson",
            "lastUpdate": "20.03.2023"
          }
        ]
      },
      {
        "name": "kiel",
        "label": "Kiel",
        "lastUpdate": "20.03.2023",
        "datasets": [
          {
            "name": "parking_lanes",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_spaces",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "parking_segments",
            "file_type": "gpkg",
            "lastUpdate": "20.03.2023"
          },
          {
            "name": "region",
            "file_type": "geojson",
            "lastUpdate": "20.03.2023"
          }
        ]
      }
    ]
  },
  "dataset_url_prefix": "https://vts.mapwebbing.eu/export/",
  "license": "These data sets are made available under the Open Database License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in individual contents of the database are licensed under the Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/"
}

Auf dem Server ist auch verfügbar unter https://vts.mapwebbing.eu/export/exports.json

Die URLs setzen sich dann wie folgt zusammen:

dataset_url_prefix/region[name]/datasets[name]_region[name].datasets[file_type]

https://vts.mapwebbing.eu/export/berlin/parking_segments_berlin.gpkg

Ich bin noch unsicher ob immer der Name der Region auch in jedem Dateinamen auftauchen soll.

tordans commented 1 year ago

Super!

Vorschläge:

joshinils commented 1 year ago

hust iso8601 hust