2017-06-21 1 views
0

Ich bearbeite Hunderte von 4-Band-Bildern in R und brauche Hilfe bei einer wahrscheinlich sehr einfachen Aufgabe. Als Teil der Verarbeitung muss ich ein Einzelband-RGB-Composite exportieren, das die räumlichen Informationen des ursprünglichen GeoTiffs beibehält. In anderer Software habe ich eine .jgw-Datei exportiert, aber ich muss das in R machen können. Diese Bilder werden als Grundkarten verwendet und in eine andere Mapping-Oberfläche eingefügt. Ich habe gesucht und gesucht und kann nur finden, wie man plotRGB() und wie manRaster() schreibt. PlotRGB verliert die räumliche Information und writeRaster() erzeugt ein Multiband-Bild.Komposit-RGB-Bild mit räumlichen Informationen exportieren, R

Irgendwelche Ideen? Es gibt ein eingebautes Raster in R, das verwendet werden kann.

library(raster) 
library(rgdal) 
r <- raster(system.file("external/test.grd", package="raster")) 
x <- RGB(r) 
plotRGB(x) #Is there a way to output this where it will maintain spatial information? 
writeRaster(x, filename="file.tif") #This produces a 3-band tiff, not a composite 

Antwort

0

Die writeRaster Funktion ein options Argument kann Optionen auf die zugrunde liegende GDAL Bibliothek passieren (beispielsweise sind GeoTIFF- Optionen here dokumentiert). Die Option TFW=YES schreibt eine .tfw World-Datei aus, die wie eine .jgw Datei zu sein scheint.

Nun, "Composite RGB" ist nicht Standard-Terminologie in der TIFF-Welt; Es scheint spezifisch für "ArcMap" und Freunde zu sein, also ist es schwer zu sagen, was damit gemeint ist, aber Sie können das erzeugen, was man normalerweise als "Standard" RGB-TIFF-Format bezeichnen würde, indem Sie den Datentyp für die Farbkomponenten angeben 1-Byte-Integer ohne Vorzeichen (datatype="INT1U"), so kann folgendes tun, was Sie wollen:

writeRaster(RGB(r), filename="file2.tif", datatype="INT1U", 
    options="TFW=YES", format="GTiff") 

Soweit ich das beurteilen kann, nicht erkannte oder falsch geschriebene options Werte erzeugen keine Fehlermeldungen, so müssen Sie Sei vorsichtig, sie sind alle richtig geschrieben.

+0

Vielen Dank für Ihre Antwort. Ich erkannte, dass ich Argumente von GDAL weitergeben könnte, aber ich wusste nicht wie. Das Skript, das Sie zur Verfügung gestellt haben, hat die TFW erzeugt, was vollkommen akzeptabel ist, aber das TIFF ist immer noch drei Bänder statt eins. Ich würde gerne ein Single-Band-Composite erstellen. Wenn Sie mit QGIS oder ArcMap vertraut sind, ähnelt dies dem Exportieren eines Rasters mit dem Renderer. –

+0

Ich bin nicht vertraut mit QGIS oder ArcMap. Und leider scheint der Begriff "Composite RGB" eher für diese Software/Feld zu sein, als für die Standard-Terminologie in der TIFF-Welt, so dass es schwer ist, zu sagen, was sie unter einem technischen Gesichtspunkt bedeuten. Es sieht jedoch so aus Das Spezifizieren von 'datatype =" INT1U "' erzeugt ein typischeres RGB-TIFF, was möglicherweise mit "Composite RGB" gemeint ist, also habe ich meine Antwort entsprechend modifiziert. –

+0

Vielen Dank für das erneute Besuchen. Ich habe die von Ihnen vorgenommene Änderung ausprobiert, aber trotzdem wurde ein 3-Band-Bild erstellt. Ich habe auch die Ausgabe gehört, die ich als "merge channels" oder "merge bands" suche. Dieser Link könnte besser erklären, wonach ich suche: http://gisgeography.com/arcgis-composite-bands/ Um klarzustellen, der einzige Unterschied in einem Tiff in der Grafikwelt und einem GeoTiff in der Kartierungswelt ist die Einbeziehung von ein räumlicher Bezug. In der Grafikwelt würde ich versuchen, Kanäle zu kombinieren (statt eines Bildes mit blau-grün-roten Kanälen würde der Ausgang einen Kanal haben). –

Verwandte Themen