从 R 中的 LANDSAT 8 图像名称(扩展名)中提取日期
Extract date from LANDSAT8 image name (extention) in R
我想从 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
我找不到只从名称字符串中间提取日期的解决方案。希望有人有想法!
如果没记错的话,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)
我想从 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 我找不到只从名称字符串中间提取日期的解决方案。希望有人有想法!
如果没记错的话,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)