Installation
Table of Contents
2. Installation aus den Quellen
mkdir -p ~/projects && cd ~/projects
git clone git@bitbucket.org:locr/osmparser.net.git OsmParser.NET
cd OsmParser.NET
Datei OsmParser/.env.example
nach OsmParser/.env
kopieren und anpassen.
cp OsmParser/.env.example OsmParser/.env
3. OSM Daten importieren
3.1. Schritt für Schritt import
# Zugrundeliegende Daten für die Zeitangaben
# Server: 192.168.100.132
# OS Version: Ubuntu 22.04
# OSM Datenbestand: 22.01.2024 (8,892,818,730 nodes; 995,060,617 ways; 11,778,871 relations)
# Import durchgeführt: Anfang Februar 2024
cd OsmParser
dotnet run -- --import-step=PrepareImport # ca. 03:00h.
dotnet run -- --import-step=InitializeDatabase # ca. 30 Sekunden.
dotnet run -- --import-step=ImportNodes # ca. 2d. (ca. 57,000 Nodes pro Sekunde)
# DB Größe nach ImportNodes Schritt: ca. 963GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@nodes-completed
# sudo service postgresql start
dotnet run -- --import-step=ImportWays # ca. 3d 17:00h. (ca. 3,150 Ways pro Sekunde)
# DB Größe nach ImportWays Schritt: ca. 1469GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@ways-completed
# sudo service postgresql start
dotnet run -- --import-step=ImportRelations # ca. 3d 10:00h (40 Relations pro Sekunde)
# DB Größe nach ImportRelations Schritt: 1499GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@relations-completed
# sudo service postgresql start
dotnet run -- --import-step=DeleteRawData # ca. 10 Sekunden.
# DB Größe nach DeleteRawData Schritt: 290GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@deleted-raw-data-completed
# sudo service postgresql start
dotnet run -- --import-step=CreateIndexes # ca. 02:00h.
# DB Größe nach CreateIndexes Schritt: 410GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@created-indexes-completed
# sudo service postgresql start
dotnet run -- --import-step=ImportZipBoundariesByCensus # ca. 10 Sekunden
# DB Größe nach ImportZipBoundariesByCensus Schritt: 410GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@zip-boundaries-by-census-completed
# sudo service postgresql start
dotnet run -- --import-step=ImportAreasCoastline # ca. 00:02h
dotnet run -- --import-step=ImportAreasCoastlineSplitted # ca. 00:02h
# DB Größe nach ImportAreasCoastlineSplitted Schritt: 413GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@areas-coastline-completed
# sudo service postgresql start
dotnet run -- --import-step=ProcessCountryBoundingsLand # ca. 00:25h
# DB Größe nach ProcessCountryBoundingsLand Schritt: 415GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@country-boundings-land-completed
# sudo service postgresql start
dotnet run -- --import-step=ProcessStateBoundingsLand # ca. 00:20h
# DB Größe nach ProcessStateBoundingsLand Schritt: 417GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@state-boundings-land-completed
# sudo service postgresql start
dotnet run -- --import-step=SimplifyTables # ca. 02:40h
# DB Größe nach SimplifyTables Schritt: 523GB
# Optional: ZFS snapshot erstellen =>
# sudo service postgresql stop
# sudo zfs snapshot zfs_pool/dbs/postgresql@simplify-tables-completed
# sudo service postgresql start
3.2. All-in-one import
cd OsmParser.NET/OsmParser
dotnet run
dotnet run -- --start-http-server
# go to http://ip-address:2003/web_ui/ and do post-processing!
# cancel the server process!
dotnet run -- --import-step=SimplifyTables
3.3. neu importierte Datenbank exportieren und importieren
sudo -u postgres pg_dump osm_planet | gzip > /zfs_pool/data/osm/osm_planet.gz # ca. 06:00h.
# Dateigröße: 208GB
cat /zfs_pool/data/osm/osm_planet.gz | gunzip | sudo -u postgres psql osm_planet # ca.
3.4. Externe Quellen
Um neuere Postleitzahlengebiete für die USA zu bekommen, müssen die Daten von folgender Webseite bezogen werden:
https://catalog.data.gov/dataset/2019-cartographic-boundary-shapefile-2010-zip-code-tabulation-areas-for-united-states-1-500000
Der direkte Link ist/war
https://www2.census.gov/geo/tiger/GENZ2019/shp/cb_2019_us_zcta510_500k.zip.
Diese Daten wurden in QGIS importiert und dann in eine PostgreSQL-Datenbank exportiert. Dann musste noch eine Transformation der Projektion von epsg:4269 nach epsg:3857 durchgeführt werden.
4. OsmDataProvider installieren
4.1. Vorarbeiten
Wenn etwas von den Standardwerten abweichen soll, dann müssen die Umgebungsvariablen in der ~/.bashrc
hinzugefügt/angepasst werden.
export ODP_NAME=osm-data-provider # optional
export ODP_DB_HOST=127.0.0.1 # optional
export ODP_DB_NAME=osm_planet # optional
export ODP_HTTP_PORT=2003 # optional
und mit dem folgenden Kommando aktualisieren
source ~/.bashrc
Datenbankpasswort für das Installations-/Update-script hinzufügen.
pass insert scripts/pgsql-password