2017-03-01 3 views
0

ich einige Raster Berechnungen tun, und dann würde Ich mag die Ergebnisse in eine neue TIFF zu schreiben. Die Ausgabe .tif von writeRaster in R öffnet sich jedoch in keiner der üblicherweise verwendeten Bildvisualisierungs-Software. Irgendwelche Vorschläge, was ich meinem Code hinzufügen sollte, um das zu korrigieren? Vielen Dank im Voraus,tiff von writeRaster öffnet nicht

setwd() 

library(sp) 
library(raster) 
library(rgdal) 

band530.2 <- raster("TTC001270001.tif", band=2) 
band530.3 <- raster("TTC001270001.tif", band=3) 
band530 <- 4 * band530.2 + (band530.2 - band530.3) 

lf<- function(x,a,b) { 
    v <- getValues(x) 
    v <- a * v + b 
    x <- setValues(x, v) 
    return(x) 
} 

calib.band530 <- lf(band530, 0.0009842088, -0.04702277) 

writeRaster(calib.band530, filename="cTTC001270001.tif", format="GTiff", overwrite=TRUE) 
+0

Sie könnten versuchen, 'writeTiff' aus der' tiff' Paket. – G5W

+0

@ G5W Vielen Dank für den Vorschlag. Ich habe 'writeTIFF' aus dem' tiff' Paket versucht. Es gibt Fehler in writeTIFF (calib.band530 „cTTC001270001.tif“): Bild eine Matrix oder ein Array von rohen oder reellen Zahlen sein muß. Ich habe auch 'writeTiff' aus dem 'rtiff'-Paket ausprobiert. Fehler bei writeTiff (calib.band530 "cTTC001270001.tif"): writeTiff eine pixmapRGB oder Matrix erwartet, bekam Rasterebene. Dann weiß ich nicht, wie ich konnte meine Rasterebene zu jenem Format konvertieren 'writeTIFF' oder' writeTiff' erwarten, ohne auf den Pixeln Informationen fehlen. – rafaexx

+0

Haben Sie calib.band530 auf ungültige Bildwerte überprüft? Vielleicht versuchen Sie, die Ausgabe vor dem Schreiben zu begrenzen. –

Antwort

2

Ihr Code macht einen perfekt nutzbaren geo-tiff, die gerade fein in ArcGIS geöffnet.

Wenn Sie die Ausgabe in einem normalen Bildbetrachter anzeigen möchten, können Sie es zu einem regelmäßigen Raster konvertieren:

tiff("test.tif",dim(calib.band530)[2],dim(calib.band530)[1]) 
grid.raster(as.raster(calib.band530),interpolate=FALSE) 
dev.off() 

Dies wird die Geoinformationen zu beseitigen.

Um einen sichtbaren Geo-TIFF zu erstellen, müssen Sie die Daten neu zu skalieren, wenn Sie sie wollen von den Menschen sichtbar sein, dann einen weiteren Parameter für den Farbraum hinzuzufügen. Dies funktioniert für mich:

calib.band_rezero <- calib.band530 - cellStats(calib.band530,min) 
calib.band_stretch <- calib.band_rezero/cellStats(calib.band_rezero,max) *254 
writeRaster(calib.band_stretch, filename="cTTC001270001_viewable.tif", format="GTiff",datatype='INT1U', overwrite=TRUE) 

gerade hinzufügen, die Farbraumparameter in einem Bildbetrachter geöffnet machen, aber wahrscheinlich schwarz aussehen:

writeRaster(calib.band530, filename="cTTC001270001.tif", format="GTiff",datatype='INT1U', overwrite=TRUE) 
+0

Dies ist die richtige Antwort. Geotiff wird normalerweise nicht im Foto-Viewer angezeigt. – SeldomSeenSlim