我想从LANDSAT8文件夹名称中提取日期(YYDDD格式),并在为多个图像计算的植被索引中使用它(52)。
这是我到目前为止所做的:
setwd('E:/Landsat8')
folders <- list.dirs(full.names=FALSE, recursive = FALSE)
for(scene in folders){
NIR <- raster(paste(scene,'/',scene,'_B5.TIF', sep=''))
SWIR1 <- raster(paste(scene,'/',scene,'_B6.TIF', sep=''))
LSWI <- overlay(x=NIR, y=SWIR1, fun=calcIndex) #calculates LSWI
writeRaster(LSWI, filename=paste(scene,'/',scene,'_LSWI.TIF', sep=''), format='GTiff', datatype='FLT4S', overwrite=TRUE)
}
LANDSAT8影像的文件名格式如下:LC81730382014069LGN00
我想将文件安全为2014_069_LSWI.TIF。目前它将其保存为LC81730382014069LGN00_LSWI.TIF 我找不到解决方案只从名称字符串中间提取日期。希望有人有个主意!
答案 0 :(得分:1)
如果没有记错,Landsat文件名中的年份和年份子串总是处于相同的位置。因此,应该这样做:
#Sample image name
nm <- "LC81730382014069LGN00"
#Extract year
yr <- substr(nm, start=10, stop=13)
#Extract day of year
dy <- substr(nm, start=14, stop=16)
#Make name
nm2 <- paste(yr, dy, "LSWI.TIF", sep="_")
然后您可以在writeRaster
期间传递nm2作为文件名,如下所示。请注意paste0
; - )
writeRaster(LSWI, filename=paste0(scene,'/', nm2), format='GTiff', datatype='FLT4S', overwrite=T)