9

R で .tif ファイルを読み込んでいると、以下に示す 4 つの警告メッセージが表示されます。4 番目のメッセージの指示に従うと、最初の 3 つの警告は残っていますが、ファイルから読み取った値はピクセルごとに大幅に変化します。.tif ファイルからデータを正しく読み取るのを手伝ってください。サンプル ファイルは次のリンクにあります

私のコード:

remove(list=ls()) 

library(tiff)

library(raster)

str_name<-'MOD16A2_ET_0.05deg_GEO_2008M01.tif' 

read_file<-readTIFF(str_name) 

警告メッセージ:

1: In readTIFF(str_name) :
  TIFFReadDirectory: Unknown field with tag 33550 (0x830e) encountered
2: In readTIFF(str_name) :
  TIFFReadDirectory: Unknown field with tag 33922 (0x8482) encountered
3: In readTIFF(str_name) :
  TIFFReadDirectory: Unknown field with tag 34735 (0x87af) encountered
4: In readTIFF(str_name) :
  tiff package currently only supports unsigned integer or float sample formats in direct mode, but the image contains signed integer format - it will be treated as unsigned (use native=TRUE or convert=TRUE to avoid this issue)

tif ファイルを正しく読み取るというこの問題を解決してください。前もって感謝します。

4

2 に答える 2

7

ピクセルを符号なしとして読み取り、符号付きに変換するだけです。

 t = readTIFF("MOD16A2_ET_0.05deg_GEO_2008M01.tif", as.is=TRUE)
 t[t >= 32738L] = -65536L + t[t >= 32738L]

画像を見ると、-32768 をNAファイルで使用しているように見えるため、次のように変換することもできます。

 t[t == -32768L] = NA

整数を [-1,1] 実数に変換したい場合は、次のようにします。

 t = t / 32768

最初の 3 つの警告は、ファイルに追加のカスタム タグがあることを示しているだけです。

于 2013-05-29T15:26:38.020 に答える