rLandsat8 パッケージを使ってみた(バージョンは0.1.0)
(参考)
ランドサット8号の日本上空からのデータを即時公開
LandBrowser
今回は、LC81110352015214LGN00.tar.bz2(2015-08-02のデータ)をダウンロードした。
(注意:ファイル名が~KUJ00.tar.bz2となっているファイル)
データ検索&ダウンロード AIST CS-W Client (デスクトップ用)
path:111-111,row:35-35で検索したデータ例えば
「LC81110352015214KUJ00.tar.bz2」 LGNではなくKUJとなっているデータは B10.TIF B11.TIF がない。
読み込めなかった。
Acquisition StationをLGNにしても No data to display !!
(rLandsat8 パッケージの使い方)
rLandsat8 - an R interface to Landsat8
インストール方法
1 2
| #library(devtools) #install_url("https://github.com/Terradue/rLandsat8/releases/download/v0.1-SNAPSHOT/rLandsat8_0.1.0.tar.gz")
|
(準備)
適当なフォルダ ここでは /home/user/landsat8/LC81110352015214LGN00 の中に解凍したデータをすべて入れる
1 2 3 4 5 6 7 8 9 10 11 12 13
| library(rLandsat8) setwd("/home/user/landsat8") product <- "LC81110352015214LGN00" l <- ReadLandsat8(product) l$metadata l$metadata$wrs_path l$metadata$wrs_row names(l$band)
|
“aerosol” “blue” “green” “red” “nir”
“swir1” “swir2” “panchromatic” “cirrus” “tirs1” “tirs2”
1 2 3 4 5 6 7 8 9 10
| #To access a band: l$band$blue l[[2]]$blue #plot #png("landsat8_001.png",width=1000,height=1000) plot(l$band$tirs1) #dev.off() #plot(l[[2]]$blue) #plot(l[[2]]$green) #plot(l[[2]]$red)
|
メタデータから必要な数値を読み込むので計算式を作る必要がない
放射輝度
1 2 3
| radiance.blue <- ToTOARadiance(landsat8=l, band="blue") radiance.green <- ToTOARadiance(landsat8=l, band="green") radiance.red <- ToTOARadiance(landsat8=l, band="red")
|
反射率
1 2 3
| reflectance.blue <- ToTOAReflectance(landsat8=l, band="blue") reflectance.blue
|
class : RasterLayer
dimensions : 7901, 7761, 61319661 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 290385, 523215, 3870285, 4107315 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=53 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : /tmp/R_raster_user/r_tmp_2015-08-16_105516_1892_04310.grd
names : LC81110352015214LGN00_B2
values : 0.06486, 0.925 (min, max)
1 2
| reflectance.green <- ToTOAReflectance(landsat8=l, band="green", is.suncorrected = TRUE)
|
スペクトル放射輝度から輝度温度へ
1 2 3 4 5
| btemp <- ToAtSatelliteBrightnessTemperature(l, band="tirs1") #png("landsat8_002.png",width=1000,height=1000) SST <- btemp - 273.15 # 絶対温度を摂氏に変換 plot(SST) #dev.off()
|
NDVI (正規化植生指数)
1 2 3 4 5
| #Normalized Difference Vegetation Index (NDVI) ndvi <- ToNDVI(l) #png("landsat8_003.png",width=1000,height=1000) plot(ndvi) #dev.off()
|
1 2
| #Land Surface Water Index (LSWI) LSWI <- ToLSWI(l)
|
動かなかったコード
1 2 3 4 5 6 7 8 9
| #using sun angle correction #reflectance.green <- ToTOAReflectance(landsat8=l, band="green", is.suncorrected = TRUE) #Modified Normalized Difference Water Index (MNDWI) #MNDWI <- ToMNDWI(l) #The Normalized Difference Vegetation Index (NDVI), #Modified Normalized Difference Water Index (MNDWI) and Land Surface Water Index (LSWI) #need to compute the TOA Reflectance #l <- ReadLandsat8(product,is.suncorrected = TRUE) #MNDWI <- ToMNDWI(l)
|
(追記)
ToMNDWI関数をみたら
ToMNDWI
function (landsat8)
{
green <- ToTOAReflectance(landsat8, “green”)
swir1 <- ToTOAReflectance(landsat8, “swir1”)
mndwi <- (greeb - swir1)/(green + swir1)
return(mndwi)
}
greenがgreeb になっていた。
直っているコードがありました。
ToMNDWI.R