微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将类名添加到 terra SpatRaster 中的数字栅格值?

如何解决如何将类名添加到 terra SpatRaster 中的数字栅格值?

我正在处理极地北极植被地图。存储为带有 terra 的 SpatRaster,栅格有 21 个土地覆盖类。

> str(lc_2003)
Formal class 'SpatRaster' [package "terra"] with 1 slot
  ..@ ptr:Reference class 'Rcpp_SpatRaster' [package "terra"] with 17 fields
  .. ..$ depth    : num 0
  .. ..$ extent   :Reference class 'Rcpp_SpatExtent' [package "terra"] with 2 fields
  .. .. ..$ valid : logi TRUE
  .. .. ..$ vector: num [1:4] 3946387 7965081 2200504 5681579
  .. .. ..and 27 methods,of which 13 are  possibly relevant:
  .. .. ..  align,as.points,ceil,compare,finalize,floor,initialize,intersect,round,sample,.. .. ..  sampleRandom,sampleRegular,union
  .. ..$ filenames: chr ""
  .. ..$ hasRange : logi TRUE
  .. ..$ hasTime  : logi FALSE
  .. ..$ hasValues: logi TRUE
  .. ..$ inMemory : logi TRUE
  .. ..$ messages :Reference class 'Rcpp_SpatMessages' [package "terra"] with 2 fields
  .. .. ..$ has_error  : logi FALSE
  .. .. ..$ has_warning: logi FALSE
  .. .. ..and 18 methods,of which 4 are  possibly relevant:
  .. .. ..  finalize,getError,getWarnings,initialize
  .. ..$ names    : chr "PHYSIOG"
  .. ..$ origin   : num [1:2] 102.7 91.3
  .. ..$ range_max: num 21
  .. ..$ range_min: num 1
  .. ..$ res      : num [1:2] 5172 3881
  .. ..$ rgb      : logi FALSE
  .. ..$ time     : num 0
  .. ..$ timestep : chr "seconds"
  .. ..$ units    : chr ""

但是,我想将层 PHYSIOG 中的每个值与其实际的土地覆盖类名称相关联。这对我在 ArcGis 中查看文件以及评估某些调查地块属于哪种栖息地类型非常有用。

landcover_classes <- data.frame(lc_code = 1:21,lc_class = c(
                                  "Cryptogam,herb barren","rush/grass,forb,cryptogam tundra","Cryptogam barren complex (bedrock)","Prostrate dwarf-shrub,herb tundra","Graminoid,prostrate dwarf-shrub,forb tundra","Prostrate/Hemiprostrate dwarf-shrub tundra","Nontussock sedge,dwarf-shrub,moss tundra","Tussock-sedge,"Erect dwarf-shrub tundra","Low-shrub tundra","Missing (Cryprogram dwarf-shrub?)","Sedge/grass,moss wetland","Sedge,moss,dwarf-shrub wetland",low-shrub wetland","Noncarbonate mountain complex","Carbonate mountain complex","Nunatak complex","Glaciers","Water","Lagoon","Non-Arctic areas"))

如何将这些数据添加到 SpatRaster?

(我不确定如何制作可重现的 SpatRaster 示例。我将在一个单独的问题中提出这个问题)

解决方法

你应该可以做到

levels(lc_2003) <- landcover_classes

并查看结果

plot(lc_2003)

请参阅 ?terra::levels 中的示例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?