Ich manipuliere und verarbeite globale Raster mit einer Auflösung von 30 m. Die Gesamtgröße der Raster beträgt normalerweise [1.440.000 560.000]. Ich habe Zugriff auf einen Supercomputer, daher habe ich Code geschrieben, mit dem ich globale Raster in überschaubare Teile aufteilen, einige Berechnungen parallel durchführen und sie recht schnell auf die Festplatte schreiben kann.
Ich bin jedoch an eine Wand gestoßen, wenn es darum geht, Ergebnisse anzuzeigen. Normalerweise baue ich ein virtuelles Raster von Kacheln, die den Globus bedecken, und ziehe es in QGIS. Aber es ist unglaublich langsam (Minuten zum Laden, wenn ja). Und wenn ich versuche zu schwenken oder zu zoomen, sind es noch viele Minuten. Mein erster Ansatz zur Lösung dieses Problems bestand darin, mit gdaladdo Übersichten zu erstellen. Es dauert jedoch ewig, bis diese erstellt sind (wie in Tagen), was der Entwicklung von Algorithmen nicht förderlich ist. Hier ist eine Liste der Dinge, die ich versucht habe und warum / wie sie fehlgeschlagen sind.
Erstellen Sie Übersichten auf dem vrt. Wie oben erwähnt, dauert dies für 8 Level 2+ Tage. Das ist für meine Zwecke nicht akzeptabel.
Erstellen Sie Übersichten auf den einzelnen Kacheln und verschmelzen Sie dann irgendwie zu einem vrt, das die Übersichten enthält. Ich kann ziemlich schnell Übersichten auf den Kacheln erstellen (Supercomputer), aber ich konnte sie nicht neu zusammenführen. Ich habe es versucht:
2a. gdal_merge auf den Kacheln mit Übersichten, aber die Übersichten wurden im Ausgabetiff nicht beibehalten (oder zumindest von QGIS nicht erkannt).
2b. gdalbuildvrt auf den Kacheln mit Übersichten, aber wie oben wurden die Übersichten nicht beibehalten. [Dies ist nicht korrekt, siehe Bearbeiten.]
2c. Ich habe auch eine Mischung aus Gebäudeübersichten für die Kacheln für die Ebenen 1-6 und Gebäudeebenen 7-8 direkt auf dem vrt ausprobiert (im Grunde Option 2b), aber nur für diese beiden Ebenen dauert es immer noch ewig. Ich habe einige Tests und sehen , dass die Fliesenübersichten sind tatsächlich vrt Übersichten zu bauen verwendet, aber es ist immer noch in der Größenordnung eines Tages die Übersichten auf der vrt abzuschließen.
Ich hoffe also, dass jemand hier einige Vorschläge hat, wohin ich als nächstes gehen soll. Hier sind einige Optionen, die ich in Betracht ziehe:
Erstellen Sie die globalen Pyramiden manuell. Ich bin vorsichtig, sie in eine .ovr-Datei zu rekombinieren, da ich davon ausgehe, dass dies schwierig sein wird.
Verwenden Sie einen Kartenserver (Geoserver). Ich weiß sehr wenig darüber und bin besorgt, dass es die Zeithürden nicht überwinden wird, während mein Prozess komplexer wird.
Teilen Sie die Domain nach Kontinenten oder einer anderen Region auf. Ich möchte diese Option wirklich vermeiden.
Sie könnten fragen: "Warum müssen Sie den gesamten Globus mit einer Auflösung von 30 m anzeigen?" Ein Beispiel: Ich nehme eine Maske aus Wasserpixeln (global) und skelettiere sie, um Flüsse zu finden und Messungen durchzuführen. Mein Skelettierungsalgorithmus erfordert ein wenig Abstimmung (zum Beschneiden von Zweigen, Entfernen von Schleifen, allgemeine Reinigung usw.), und die Ausgabe liegt notwendigerweise bei 30 m. Da Flüsse und Landschaften auf der ganzen Welt unterschiedlich sind, muss ich in der Lage sein, mich zu bewegen, um die Auswirkungen von Änderungen zu sehen, die ich implementiert habe.
Ich habe auch QGIS durchgesehen, um sicherzustellen, dass es keine Einstellungen gibt, mit denen ich spielen kann, um große Raster schneller zu rendern, aber ich habe nichts gesehen. Ohne SSD-Laufwerke zu kaufen, geht es meiner Meinung nach so schnell wie möglich. (Meine Festplatten haben eine E / A von ~ 250 MB / s).
Ich habe festgestellt, dass beim Erstellen von Übersichten auf einzelnen Kacheln und beim Erstellen eines VRT anscheinend die Übersichten beibehalten werden. Der Abschnitt "Pyramide" von QGIS in den Metadaten für die Datei ist leer, aber im Abschnitt "Dimensionen" gibt es einen Eintrag für jede Übersichtsebene (zB X 720000, Y 140; X 360000, Y 70 usw.). Also habe ich mich bei 2b geirrt.
Ich finde auch, dass wenn ich nur alle Kacheln in QGIS ziehe, es in weniger als einer Minute gerendert wird, während es> 5 Minuten dauert, wenn ich das vrt ziehe, das auf die Kacheln verweist (ich weiß nicht, wie lange genau ich das getötet habe Prozess).
Ich habe einige Tests auf einem Computer mit einer SSD durchgeführt und festgestellt, dass ich die globalen vrts (ohne Übersichten) erfolgreich und mit einer akzeptablen Geschwindigkeit laden, anzeigen und rendern kann. Ich habe eine 1-TB-PCIe-SSD bestellt, in der Hoffnung, dass ich dies auch auf meinem Computer tun kann. Wird mit den Ergebnissen aktualisiert.
I also tried a hybrid of building overviews for the tiles for levels 1-6 and building levels 7-8 directly on the vrt
was sich genauso anfühlt wie die Reihenfolge, die Sie empfehlen, und das ist natürlich die richtige. Ich selbst würde keine 2 4 8 ... Übersichten für die VRT berechnen, wenn einzelne Kacheln diese haben, um Zeit und Speicherplatz zu sparen. Ein kleiner ROI würde dann Übersichten von ein paar Kacheln finden und das sollte schnell genug sein.