0

ArcGIS 10 からインポートしたラスター データを使用して R で RSF プロットを作成しているときに、NoData/NA でいくつかの問題に直面しています。

私のラスターは次のとおりです

最終的なマップを川に限定する必要がありますが、何らかの形で周辺エリアがすべて結果のマップに含まれており、川から離れた高度なエリアも表示されています。河川の単一ラスターをプロットすると、河川の外に隠されたデータがなく、問題ないように見えます

ラスターを合計すると、どこかで間違いが発生すると思います。ラスターを合計すると、NA データのないセルのみが含まれると想定していましたが、それは私の大きな間違いかもしれません。したがって、最も簡単で効果的な方法で、川の外側の領域を除外するにはどうすればよいですか?

以下に、私が使用しているスクリプトを示します。

# Import Raster to R using the library(raster)
Raster1 <-raster("Raster1")
Raster2 <-raster("Raster2")
Raster3 <-raster("Raster3")
RasterD <-raster("RasterD")

# Create a raster stack and do raster multiplications
model_stack<-raster::stack(Raster1,Raster2, Raster3, RasterD)

# assign the beta coefficients (stemming from glmer)
mean_search<-fixef(mod) 

# multiply the rasters by the coefficients
model_stack_coef<-model_stack*mean_search

# Sum over all rasters - creates a single raster
pre_ssf <- calc(model_stack_coef, fun=sum)

# multiply by the power of exp
ssf<-calc(pre_ssf,fun=function(x){exp(x)})

# standardize between 0 and 1
ssf_p<-calc(ssf,fun=function(x){(x-min(x))/(max(x)-min(x))})
4

1 に答える 1

0

すべての NA 値について関数を確認できます。

fun=function(x){ifelse(x>quantile(x,0.995),quantile(x,0.995),x)}
fun(c(NA,NA,NA))
#Error in quantile.default(x, 0.995) : 
#  missing values and NaN's not allowed if 'na.rm' is FALSE

そしてそれを修正します:

fun=function(x){ifelse(x>quantile(x,0.995,na.rm=T),quantile(x,0.995, na.rm=T),x)}
fun(c(NA,NA,NA))
# [1] NA NA NA
于 2015-10-12T02:41:16.327 に答える