Wie erstelle ich mit GDAL ein 4096x4096-PNG aus einem 1440x720-Datensatz?

8

Ich habe eine Zeit lang versucht, etwas zu tun, das ziemlich einfach zu sein scheint. Ich versuche, eine netcdf-Datei von ftp://eclipse.ncdc.noaa.gov/pub/OI-daily-v2/NetCDF/2011/AVHRR-AMSR/ zu nehmen und sie in eine 4096x4096-PNG umzuwandeln, damit ich sie kacheln kann es für die Verwendung mit Google Maps. Ich habe die folgenden Befehle verwendet, aber es scheint immer leere Bereiche an der Ost- und Westgrenze zu erstellen:

/usr/local/bin/gdal_translate -a_srs EPSG:4326 -outsize 4096 4096 -a_ullr 0 90 360 -90 NETCDF:"input.nc":sst -of netCDF output.nc
/usr/local/bin/gdaldem color-relief output.nc -b 1 -alpha colorscale.txt -of PNG output.png
/usr/bin/convert output.png -transparent #FFFFFF output.png

Nähere ich mich dem nur falsch? Benutze ich die falschen Werkzeuge?

FWIW - gdal_translate ist v1.8.0

Danke im Voraus.

UPDATE: "Antwort" unten von Dija - meiner Kollegin - ist eigentlich eine Antwort auf die Kommentare zur Frage selbst.

UPDATE Es wurde versehentlich eine Antwort anstelle eines Kommentars hinzugefügt. Verschiebe es hierher.

Ich dachte, ich würde hier wiegen. Ich arbeite jetzt schon eine Weile an diesem Thema. Ich habe viele Iterationen des Prozesses ausprobiert. Ich habe diese Bilder auf 4096 x 4096 skaliert, da sie tatsächlich ein besseres Bild erzeugen als wenn nicht. Das heißt, wenn ich das Bild in seiner nativen Größe belasse (1440 x 720), erhalte ich eine größere Lücke am Nullmeridian (für diesen Datensatz) und am 180. Meridian für andere Datensätze. Ich habe das Ausgabebild auf ein Vielfaches von 256 skaliert (um besser zu Google zu passen) und verschiedene Ergebnisse erhalten.

Wenn ich es auf 1536x768 skaliere, wird die Lücke rechts vom 0-Meridian angezeigt. Wenn ich auf 1280x640 skaliere, ist es links. Wenn ich es in Ruhe lasse, spaltet es es ziemlich auf.

Ich habe das Basisbild, das gdaldem ausspuckt, aufgenommen, halbiert und die Kanten aufeinander abgestimmt ... sie sind perfekt ausgerichtet. Dies lässt mich denken, dass mit gdal2tiles.py etwas Seltsames los ist

Ich habe meinen eigenen Fliesenleger geschrieben, dass ich mich darauf vorbereite, unsere Bilder loszuwerden, um zu sehen, ob die Lücke bestehen bleibt.

Ich werde einige Screenshots zusammenstellen, um zu zeigen, wovon ich spreche, wie die Lücke ist, und um zu berichten, was mein Fliesenleger tut.

Vielen Dank für jede Eingabe, die Sie haben könnten. Es wird geschätzt.

UPDATE 2 Ich habe den Maptiler, den ich geschrieben habe, gegen das ursprüngliche Raster ausgeführt und er funktioniert ohne Lücke. gdal2tiles.py scheint das Problem zu sein. Die letzte Kachel, die den 180. Meridian berührt, wird mit einer transparenten Kante versehen.

Malonso
quelle
Wenn Sie ein Bild mit einem Seitenverhältnis von 1: 2 in ein Bild mit einem Seitenverhältnis von 1: 1 konvertieren, müssen Sie etwas geben: Entweder wird abgeschnitten, Sie erhalten leere Ränder, um den leeren Raum zu füllen, oder Sie benötigen eine 2: 1-Strecke.
whuber
Ich habe die gleichen Prozesse für eine der Dateien von der von Ihnen bereitgestellten FTP-Site ausgeführt, und ich habe ein Bild, das genau an seine Grenzen passt. Können Sie einen Screenshot des Effekts erstellen, den Sie erzielen? Tritt der Effekt nach dem gdaldem-Schritt oder dem Konvertierungsschritt auf?
MerseyViking
Ach ja, wie whuber sagt, ist Ihr Seitenverhältnis falsch, wenn Sie die im Text angegebenen Parameter verwenden, aber die von mir verwendeten Befehlszeilenparameter haben das richtige Seitenverhältnis.
MerseyViking
Trotzdem habe ich gerade versucht, es als 4096 x 4096 zu erstellen, und QGIS lädt es ohne Probleme. Wenn Sie beide Versionen in GIMP laden, wird außerdem eine Karte angezeigt, die bis zum linken und rechten Rand reicht.
MerseyViking
@whuper - Absolut, ich stimme vollkommen zu. Mir ist klar, dass Sie beim Versuch, aus einem 1: 2-Datensatz ein 1: 1-Bild zu machen, die Daten fast ungültig machen. Trotzdem erwartete ich, dass die Ausgabe im Wesentlichen 2: 1 und nicht der leere Raum ist. Ich bin den vor mir gestellten geschäftlichen Anforderungen ausgeliefert :( Oh, die Dinge, die wir für ein hübsches Bild tun werden. @MerseyViking - Interessant, lassen Sie mich darauf zurückkommen. Ich bin nicht der Hauptverantwortliche dafür und so muss ich ihre Eingabe bekommen. Danke für das Feedback.
Malonso

Antworten:

2

gdal_grid verfügt über Parameter, mit denen Sie die Ausdehnungskoordinaten Ihres Ausgabe-Rasters festlegen können.

gdal_grid -txe [xcoord1] [xcoord2] -tye [ycoord1] [ycoord2]

wo die untere linke Koordinate wäre (xcoord1, ycoord1) und die obere rechte wäre (xcoord2, ycoord2)

GDAL interpoliert Ihre Daten entsprechend Ihren Ausgabebereichen

WxMacMan
quelle