-1
我有一個raster
圖像(.tif),每個像素的連續值在0和1之間。 我想在此計算面積(也可以是多個像素) raster
它具有一組值間隔中的值:即0.1-0.2,0.3-0.4,0.7-0.8。 最終目標是看看哪個間隔佔用了更大的面積。 任何想法嘗試或如何接近它在R
?在R中計算具有特定值的柵格的面積
我有一個raster
圖像(.tif),每個像素的連續值在0和1之間。 我想在此計算面積(也可以是多個像素) raster
它具有一組值間隔中的值:即0.1-0.2,0.3-0.4,0.7-0.8。 最終目標是看看哪個間隔佔用了更大的面積。 任何想法嘗試或如何接近它在R
?在R中計算具有特定值的柵格的面積
如果ras
是光柵圖像,您可以執行以下操作:
sum(ras[] >= 0.1 & ras[] <= 0.2)
這將返回包含的範圍內0.1值的像素數 - 0.2。如果你乘以這個平方的單元格大小:
sum(ras[] >= 0.1 & ras[] <= 0.2) * res(ras)[1]^2
你得到的平方米的面積。
只需更改值以調整範圍,或編寫一個迭代超過預定義值範圍的函數/循環,甚至可以創建條形圖。
喜歡的東西:
intervals <- list(c(0.1,0.2),
c(0.2,0.3),
c(0.3,0.4))
sapply(intervals, function(x) {
sum(ras[] > x[1] & ras[] <= x[2])
})
非常感謝,這完全回答了我的問題! – MIH
你說的光柵是什麼意思?光柵包,或者只是一個矩陣,或? – mdsumner
好的,看看柵格包,你可以做直接比較,嘗試表(值(cut(r,intervals))),但是如果你還沒有使用柵格,可以探索相關的功能。使用r = raster(「file.tif」)閱讀您的文件 – mdsumner