[英]How to access class names in a raster categorical map
我有一些分類的柵格圖層作為分類的土地覆蓋圖。 所有層具有完全相同的類別(讓我們說: "water", "Trees", "Urban","bare soil"
),但是它們來自不同的時間點(例如2005和2015),我使用柵格將它們加載到內存中像這樣的功能:
comp <- raster("C:/workingDirectory4R/rasterproject/2005marsh3.rst")
ref <- raster("C:/workingDirectory4R/rasterproject/2013marsh3.rst")
"comp"
是時間t+1
的comparison map
, "ref"
是時間t
的reference map
。 然后,我使用了crosstab
函數來生成confusion table
。 該表可用於瀏覽時間間隔內類別的變化。
contingency.Matrix <- crosstab(comp, ref)
結果為matrix
格式,在column
具有"comp"
類別, rows
中具有"ref"
。 column
和row
名標有數字1 to 4
。
現在,我有2個問題,我非常感謝您提供有關如何解決這些問題的幫助。
1-我想將類別名稱分配給matrix
的列和行,以方便其解釋。
2-現在讓我們說我有raster layers
和2015的三個raster layers
。這意味着我將有兩個confusion tables
一個用於2005-2010,另一個用於2010-2015。 用最少的用戶交互來自動執行此過程的最佳過程是什么。
我想讓用戶加載柵格圖層,然后代碼將它們保存在列表中。 然后,我要求用戶提供年份的向量,但是問題是如何確保柵格圖層的順序和年份相同? 並有一種更優雅的方式來執行此操作。
謝謝
我找到了第一個問題的部分答案。 如果在TerrSet(IDRISI)軟件中以“ .rst”擴展名創建了分類映射,那么我可以像這樣提取類別名稱:
comp <- raster("C:/rasterproject/2005subset.rst")
attributes <- data.frame(comp@data@attributes)
categories <- as.character(attributes[,8])
我得到一個帶有類別名稱的向量。 但是,如果使用不同的擴展名創建柵格圖層,則代碼將無法工作。 例如,如果柵格是在ENVI中創建的,則代碼的第三行應更改為:
categories <- as.character(attributes[,2])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.