2016-10-29 30 views
0

LANDSAT8のフォルダ名から日付(YYDDD形式)を抽出し、複数の画像(52)に対して計算された植生指数で使用したいと思います。ここでLANDSAT8からの日付の抽出R

は、私がこれまで持っているものです。

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として保存しています 名前の文字列の中央からのみ日付を抽出する解決策が見つかりません。うまくいけば、誰かがアイデアを持っています!

答えて

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) 
+0

@ Jobbo90の使用をご確認ください。これで仕事は終わりましたか?はいの場合は、答えの下の投票ボタンのすぐ下のチェックマークをクリックして回答を受け入れてください。 – shekeine

+0

ありがとう、非常に役に立つ! – Jobbo90

関連する問題