2016-05-25 2 views
1

ラスタのヒストグラムを作成します。私が使用してラスタ画像のヒストグラムやグラフのように、値の分布図を作成したいR

library(raster) 
library(sp) 
library(rgdal) 
DEM <- raster("NR.tif") 
hist(DEM) 
plot(DEM) 

plot()は私のデータを検証するために使用され、私にすべての緑を示し画像。おそらく3のバンド1 しかし、私は他のバンドを見ることができないのですか?明らかに、ヒストグラム内の分布は画像ファイル内の補間値を表さない。 ARCgisで作成されたヒストグラムはここにhistです。これは真の値を表していると信じています。

imageのような実際の値のヒストグラムを作成する方法に関する提案。

ベスト、 マティアス

+0

私はあなたが得たいものを理解していません:levelplot {rasterVis} (http://oscarperpinan.github.io/rastervis/)どんな助け? – Nemesi

+0

私は正しく理解していますが、 'hist(DEM)'または 'plot(density(DEM))'を試してください – maRtin

+0

編集で問題が明らかになったと思います。 – Mathias

答えて

3

あなたは試みることができる

download.file("https://www.dropbox.com/s/t279m5ojners7fl/NR.tif?dl=1", 
       tf <- tempfile(fileext = ".tif"), mode="wb") 
library(raster) 
library(tiff) 
library(ggplot2) 
library(reshape2) 
DEM <- readTIFF(tf) 
plot(as.raster(DEM)) 

enter image description here

ggplot(melt(DEM), 
     aes(value, fill=as.factor(Var3))) + 
    geom_histogram(position="dodge") 

enter image description here


それとも、あなたの更新に関して

r <- as.raster(DEM) 
tab <- as.data.frame(sort(table(r))) 
ggplot(subset(tab, !r %in% c("#F0F0F0", "#000000")), 
       aes(x=r, y=Freq, fill=I(r))) + 
     geom_bar(stat="identity") + 
    theme(axis.text.x = element_text(angle=90)) 

enter image description here

+0

ありがとう、それは改良点です。しかし、ヒストグラムは灰色の背景をカウントしており、計算された値を表していません。 (垂直水柱の硝酸塩勾配です。)ARCmapで作成されたヒストグラムは、かなり異なる分布をしています(https://www.dropbox.com/s/fcazm1pd84r8tf9/Vertical%20Nitrategradient%20Histogram.jpg?dl=0)。 – Mathias

+0

はい、これは古典的なRGBヒストグラムです。すべての画像処理ツールで見つけることができます。 Imhoは地理空間分析を求めないという質問をしました。しかし、そこから欲しい場所を得ることができるはずです(たとえば、1つの灰色のbgカラーを除外することができます)。 – lukeA

+0

ありがとうございます。私は具体的にしようとしている、私はもっと努力しなければならないと思う。素晴らしい答えをありがとう。 – Mathias

2

がHIST()関数を呼び出したりlukeAからggplotコマンドを使用し、その後、背景色にNAvalueを設定してみてくださいとして:

library(raster) 
ras <- stack("Downloads/NR.tif") 
NAvalue(ras) <- 240 
hist(ras) 

これは次のプロットになります: enter image description here

+0

まさに!ありがとう。 – Mathias

+0

参照: 'plotRGB(ras)' – RobertH

関連する問題