【问题标题】:Accessing full layer name raster stack R访问全层名称栅格堆栈 R
【发布时间】:2018-07-08 10:32:21
【问题描述】:

我有一个用于气候数据的栅格堆栈,其中每一层代表每日降水量。每一层的名称都很长,包括每一层代表的月、年和日。

prcpSmall
class       : RasterStack 
dimensions  : 790, 812, 641480, 6  (nrow, ncol, ncell, nlayers)
resolution  : 1000, 1000  (x, y)
extent      : 1590250, 2402250, 149500, 939500  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lat_1=25 +lat_2=60 +lat_0=42.5 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs 
names       : FIA_DAYME//03.2015.10, FIA_DAYME//03.2015.11, FIA_DAYME//03.2015.12, FIA_DAYME//03.2015.13, FIA_DAYME//03.2015.14, FIA_DAYME//03.2015.15

例如,第一层的数据是在 2015 年 3 月 10 日收集的。但是,当我使用 names() 时,时间戳就消失了。

names(prcpSmall)
[1] "FIA_DAYMET_prcp_2003.2015.10" "FIA_DAYMET_prcp_2003.2015.11"
[3] "FIA_DAYMET_prcp_2003.2015.12" "FIA_DAYMET_prcp_2003.2015.13"
[5] "FIA_DAYMET_prcp_2003.2015.14" "FIA_DAYMET_prcp_2003.2015.15" 

完整的数据集包括 4000 多个图层。有没有一种方法可以访问包含每个图层的时间戳信息的完整图层名称?

谢谢!

【问题讨论】:

  • 欢迎来到 SO!您能否通过dput(prcpSmall)发布您的示例数据。

标签: r raster names


【解决方案1】:

您只显示一个月的几天,但从您提供的示例来看,您似乎可以这样做:

# n <- names(prcpSmall)
n <- c("FIA_DAYMET_prcp_2003.2015.10", "FIA_DAYMET_prcp_2003.2015.11", "FIA_DAYMET_prcp_2003.2015.12", "FIA_DAYMET_prcp_2003.2015.13", "FIA_DAYMET_prcp_2003.2015.14", "FIA_DAYMET_prcp_2003.2015.15")

d <- gsub("FIA_DAYMET_prcp_20", "", n)

as.Date(d, "%m.%Y.%d")
# [1] "2015-03-10" "2015-03-11" "2015-03-12" "2015-03-13" "2015-03-14" "2015-03-15"

【讨论】:

  • 这段代码效果很好。感谢分享 gsub 功能,之前没见过。
猜你喜欢
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 2020-06-10
  • 2015-02-13
  • 2013-05-07
  • 1970-01-01
相关资源
最近更新 更多