2017-03-01 16 views
0

私はいくつかのラスタ計算をしていますが、結果を新しいtiffに書きたいと思います。しかし、RのwriteRasterからの出力.tifは、一般的に使用されているイメージ化ソフトウェアのいずれでも開かない。それを修正するために私のコードに追加すべきことについて何か提案してください。事前に おかげで、writeRasterのtiffが開かない

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

あなたが '' tiff'からwriteTiff'試みることができますパッケージ。 – G5W

+0

@ G5W提案していただきありがとうございます。私は 'tiff'パッケージから' writeTIFF'を試しました。 writeTIFF(calib.band530、 "cTTC001270001.tif")にエラーが発生しました。imageは、生の数値または実数の行列または配列でなければなりません。私は 'rtiff'パッケージから' writeTiff'を試しました。 writeTiff(calib.band530、 "cTTC001270001.tif")のエラー:writeTiffには、pixmapRGBまたはmatrixがあり、RasterLayerがあります。それで、ラスタレイヤーを 'writeTIFF'や' writeTiff' expectという形式に変換する方法を知りません。 – rafaexx

+0

不正なイメージ値に対してcalib.band530をチェックしましたか?書き込みの前に出力に境界を置くことを試みるかもしれません。 –

答えて

2

あなたのコードでは、ArcGISでうまく開かれ、完全に使用可能な地理TIFFになります。あなたは、通常の画像ビューアで出力を表示したい場合は

、あなたは、通常のラスタに変換することができます。これは、地理空間情報を排除する

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

視認可能なジオティフを作成するには、人が見ることができるようにするにはデータを再スケーリングしてから、もう1つのパラメータを色空間に追加する必要があります。これは私の作品:

ただ、色空間パラメータは画像ビューアで開くようになりますが、おそらく、黒になります追加
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) 

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

これは正解です。 Geotiffは通常、写真ビューアには表示されません。 – SeldomSeenSlim