Suche Script um alle Tiles mit Mapnik zu rendern

Hallo,

ich habe bereits einen OSM-Server mit dem Carto Design installiert. Alles läuft auch soweit gut.

Gerendert wird mit Mapnik.

nun meine Frage:

Im Augenblick rendert mapnik nur wenn im Browser ein bestimmter Bereich aufgerufen wird also OnDemand.

Gibt es ein Script um alle Tiles komplett mit allen Zoomstufen zu rendern?

Vielen Dank im voraus! :slight_smile:

Wenn Du “renderd” einsetzt, gibt es ein Skript namens “render_list”, mit dem Du einen angegebenen Bereich auf angegebenen Zoomstufen rendern kannst. Aber Achtung, “alle Tiles komplett mit allen Zoomstufen” sind ungefähr 150 TB an Daten und wird mehrere Monate oder, bei einem langsamen Server, sogar länger als ein Jahr dauern, also ist es besser, Du schränkst Dich etwas ein :wink:

“render_list” hat einen kleinen Nachteil, denn es akzeptiert keinen geografischen Bereich. Hier hilft das Perl-Skript von https://github.com/alx77/render_list_geo.pl weiter.

Wenn Du statt “renderd” den “tirex” im Einsatz hast, schau Dir “tirex_batch” an, das kann das auch alles.

Bye
Frederik

Danke für deine Antwort.

ich nutze die zoomstufen 2-14. Kann man das berechnen wieviel Speicher dafür benötigt wird?

Karsten:)

Jain.

U.A deswegen schwierig, da du uns noch nicht gesagt hast, welchen Bereich des Planeten du eigentlich rendern willst. Zudem hängt die reale Größe der Tiles auch von deren Komplexität ab. 70% der Erde sind Wasserfläche - und das sind natürlich datenärmere Bereiche, die besser komprimieren und somit auch kleinere Tiles (auf der Platte) erzeugen.

Steht alles hier http://wiki.openstreetmap.org/wiki/Tiles und in dort verlinkten Texten.

Gruss
walter

Diese Seite hier

http://tools.geofabrik.de/calc/#type=geofabrik_standard&bbox=-163.563501,-70.280799,185.878883,83.975115

macht eine Größenabschätzung anhand tatsächlich auf dem Tileserver vorhandener Tiles. Die ist auch nicht perfekt, aber berücksichtigt zumindest ein bisschen das “manche-Tiles-sind-kleiner”-Problem. Für “Welt auf Zoom 0-14” kommt sie auf ca. 200 GB Speicherplatz.

Bye
Frederik

Danke, mit 200GB kann ich leben. :slight_smile:

perl scheint bei nicht installiert zu sein.

wie installiere ich perl auf debian?
ich hab ebereits im internet gesucht, bin mir nicht sicher welches das richtige ist und welche module ich dafür benötige.

wo kopiere ich das https://github.com/alx77/render_list_geo.pl script später hin?
wie lautet dann der pfad in der ersten zeile des https://github.com/alx77/render_list_geo.pl scripts

Vielen Dank

apt install perl

Bleibt dir überlassen. Wenn du’s ohne Pfadangabe starten willst, sollte es in einem Verzeichnis landen, das in deiner $PATH steht. Abzuraten ist nur, es in die Systemverzeichnisse (/bin/, /usr/bin/) zu tun. Ich packe mir derlei Kleinkram unter ~/.local/bin/ und habe das Verzeichnis in meiner PATH, aber das ist, wie gesagt, Geschmackssache.

Der passt so, wie er dort steht.

ich habe mir das script render_list_geo.pl noch einmal angeschaut. Ich möchte die ganze welt von der ZoomStufe 2-12 rendern.

Für das script gelten dann welche Optionen?

./render_list_geo.pl -z 2 -Z 12 alle tiles der zoomstufen 2-12 sollen erstellt werden. Meine Optionen scheinen nicht zu funktionieren. Ist es zwingend notwendig die Koordinaten anzugeben?

vielen dank

Dann nimmst Du einfach das originale render_list - das Perl-Skript ist nur dazu da, einen kleineren geographischen Bereich als die ganze Welt zu erzeugen, denn das kann render_list nicht. Aber für die ganze Welt:

render_list -z 2 -Z 12

ggf. noch “-m meinstyle” anfügen, falls Dein Style nicht “default” heisst.

Bye
Frederik

Das habe ich mir schon fast gedacht. :slight_smile:

Danke Frederik

hallo,

es sind nun schon einige tiles mit render_list -z 2 -Z 12 erstellt worden. leider dauert das länger als 24h und nach der Zwangstrennung vom Internet Provider wird nicht weiter gerendert.

nohup habe ich probiert doch mit einer Fehlermeldung “Festplatte voll” /root/nohup.out mit 822 GB

Nun meine Frage:
Gibt es eine Möglichkeit render_list -z 2 -Z 12 auszuführen und nach Zwangstrennung da weiter zu machen wo das Rendern unterbrochen wurde? Oder überspringe vorhandene Tiles also das Gegenteil von -f, --force render tiles even if they seem current ?

Oder wird sowieso standardmässig übersprungen?

Danke

Hallo Karsten,

Wenn die SSH-Sitzung abgebrochen wird, dann werden die daraus gestarteten Prozesse auch beendet. Deshalb verwendet man für solche Zwecke screen.

Viele Grüße

Michael

Oder die etwas modernere Variante tmux. Wobei auch nohup kein Problem ist. Das verbraucht selbst keine Ressourcen. Einfach stdout und stderr nach /dev/null umleiten.

ganz fieser Trick: mit cron starten :wink:

screen funktioniert. das nehme ich :slight_smile:

danke michael