2017-10-06 62 views
0

我有一些分類的柵格圖層作爲分類土地覆蓋圖。 (可以說:"water", "Trees", "Urban","bare soil"),具有完全相同的類別的所有層,但它們是從不同的時間點(如2005年和2015年) 我使用柵格功能這樣它們加載到內存:如何訪問柵格分類地圖中的類名

comp <- raster("C:/workingDirectory4R/rasterproject/2005marsh3.rst") 
ref <- raster("C:/workingDirectory4R/rasterproject/2013marsh3.rst") 

"comp"comparison map時間t+1"ref"是從時間t開始的reference map。然後我使用crosstab函數來生成confusion table。此表格可用於探索時間間隔內類別的變化。

contingency.Matrix <- crosstab(comp, ref) 

結果是在matrix格式與"comp"類別在rowscolumn"ref"columnrow名稱標有數字1 to 4

現在我有2個問題,我真的很感謝任何幫助如何解決它們。

1-我想將類別名稱分配給 matrix的列和行以便於解釋。

2 - 現在讓我們假設我有三個raster layers 2005年,2010年和2015年 這意味着我將有兩個confusion tables一個2005 - 2010年和 另一個爲2010-2015。用戶使用最少的交互操作來自動執行此過程的最佳步驟是什麼?

我想讓用戶加載柵格圖層,然後代碼將它們保存在列表中。然後,我要求用戶提供一年的矢量圖,但問題是如何確保柵格圖層的順序和年份相同?有沒有更好的方法來做到這一點。

謝謝

回答

0

我發現我的第一個問題的部分答案。如果TerrSet(IDRISI)軟件創建的「.rst」 extention的分類地圖,然後我可以提取類別名稱這樣的:

comp <- raster("C:/rasterproject/2005subset.rst") 
attributes <- data.frame([email protected]@attributes) 
categories <- as.character(attributes[,8]) 

和我得到的類別名稱的載體。但是,如果柵格圖層使用不同的擴展名創建,那麼代碼將不起作用。例如,如果光柵是在ENVI中創建的,則代碼的第三行應改爲:

categories <- as.character(attributes[,2])