osm-parking-processing icon indicating copy to clipboard operation
osm-parking-processing copied to clipboard

Erstelle JSON zur Konfiguration von Regionen

Open gislars opened this issue 2 years ago • 4 comments

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:

  • welche Regionen (Name) sind auf dem Server Verfügbar
  • wann wurde eine Region zuletzt aktualisiert
  • gab es Fehler bei der Berechnung
  • welche Exporte wurden erstellt und unter welcher URL sind sie abrufbar
  • zusätzliche Metainformationen wie z.B. Beschreibungstext, Lizenz?, ...

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"
}

gislars avatar Mar 21 '23 18:03 gislars

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.

tordans avatar Mar 21 '23 19:03 tordans

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.

gislars avatar Mar 22 '23 08:03 gislars

Super!

Vorschläge:

  • datasets => exports, weil um die geht es hier, richtig? Die Vector Tiles wären ja auch Datasets…
  • gerne auch hier die bbox/bounds der Region und ein "Zentrum" auf das ich von der Website verlinken. Ich mache das gerade so… https://github.com/osmberlin/parkraum.osm-verkehrswende.org/blob/main/src/components/regions/utils/fetchRegions.ts#L65-L68 (also turf.centerOfMass)
  • borderUrl für den Link zum GeoJSON in dem die Region als Polygon vorliegt

tordans avatar Mar 22 '23 09:03 tordans

hust iso8601 hust

joshinils avatar Mar 22 '23 17:03 joshinils