1

同じ次元の2つのラスター(値は小数点以下5桁の浮動小数点数)を持つ。以下のコードは、2つのラスターrとr1から1つのファイルを作成します。rが大きい場合は青、それ以外の場合は赤を入力します。

このコードはうまく機能しましたが、別の条件を追加するように求められました。このコードの仕組み:

rが0.229でr1が0.228の場合、rは大きくなります(小数点以下第3位に注意してください)。必要なのは、たとえば最初の2つの小数点を指定することです。

     r= 0.228   r1=0.224   put  yellow colour(they are rather similar)
     r= 0.238   r1=0.224   put  blue colour(r is bigger)
     r= 0.128   r1=0.224   put  red colour(r is lower)

1-最初のファイルを読み取るr

     conn <- file("C:\\corr.bin","rb")
     corr<- readBin(conn, numeric(), size=4,  n=1440*720, signed=TRUE)

2- 2番目のファイルを読み取るr1:

    conne <- file("C:\\cor06.bin","rb")
    over<-readBin(conne, numeric(), size=4,  n=1440*720, signed=TRUE)

計算:

 r <-raster(t(matrix((data=corr), ncol=720, nrow=1440)))
 r1 <- raster(t(matrix((data=over), ncol=720, nrow=1440)))
 m <- r > r1 #Compare the two rasters
 image( m , col = c("blue" , "red" ) )
4

1 に答える 1

2

ここで、一方が他方よりも大きいか、または2つの差が0.01未満であるかに基づいて、色を作成する必要があります。これは次のように簡単に行うことができます。

# Example data
r <- raster( system.file("external/test.grd", package="raster") )
r1 <- r * rnorm( ncell(r))

# Make new raster
m <- raster( r )

# 3 = Yellow , 2 = "Red" , 1 = "Blue"
values( m ) <- ifelse( abs( r[] - r1[] ) <= 0.01 , 3 , ifelse( r[] > r1[] , 1 , 2 ) )
image( m , col = c( 1 = "Blue" , 2 = "Red" , 3 = "Yellow" ) )

value = "colour"引数のスタイルを使用して、col色が適切なレベルに割り当てられていることを確認できます。 ここに画像の説明を入力してください

于 2013-03-25T16:00:27.523 に答える