私はRプログラミングに非常に慣れていないので、ランドサット衛星データでアーカイブされたMTLファイルをどのように読み取ることができるか教えてください。
3 に答える
EarthExplorerまたはGlovisサービスから取得した Landsat シーンで提供される標準 MTL ファイルの場合、次のように簡単に実行できます。
mtl <- read.delim('L71181068_06820100518_MTL.txt', sep = '=', stringsAsFactors = F)
したがって、次のように開始する場合:
GROUP = L1_METADATA_FILE GROUP = METADATA_FILE_INFO...
これを使用できます:
> mtl[grep("LMAX",mtl$GROUP),]
GROUP L1_METADATA_FILE
64 LMAX_BAND1 293.700
66 LMAX_BAND2 300.900
68 LMAX_BAND3 234.400
70 LMAX_BAND4 241.100
72 LMAX_BAND5 47.570
74 LMAX_BAND61 17.040
76 LMAX_BAND62 12.650
78 LMAX_BAND7 16.540
80 LMAX_BAND8 243.100
84 QCALMAX_BAND1 255.0
86 QCALMAX_BAND2 255.0
88 QCALMAX_BAND3 255.0
90 QCALMAX_BAND4 255.0
92 QCALMAX_BAND5 255.0
94 QCALMAX_BAND61 255.0
96 QCALMAX_BAND62 255.0
98 QCALMAX_BAND7 255.0
100 QCALMAX_BAND8 255.0
MTL からの情報は、大気および放射量補正を適用するために重要な場合があります。ところで、landsatDOS()
パッケージを使用すると、 および関数を使用してより一般的な補正を実行できますradiocorr()
。
また、 Chander らによって提供された標準キャリブレーション値も必要になります。(2009)。
より複雑なアプローチの場合、これは良い出発点かもしれません。
MTLファイルにはメタデータのみが含まれており(:-))、プレーンテキストファイルであるため、必要に応じて読み取り、解析することができます。Matlabにかなり精通している場合は、このツールを http://www.mathworks.com/matlabcentral/fileexchange/39073に移植して、コード に変換できR
ます。
編集:私はあなたのコメントからあなたが実際に何を必要としているのかわかりません。これが私がネットから取り出したMTL.txtファイルの例です:http: //landsat.usgs.gov/images/squares/processing_level_of_the_Landsat_scene_I_have_downloaded1.jpg
それを見ると、データ項目の名前と値がわかります。それらが必要な場合、おそらくそれらを取得する最も簡単な方法は、コマンドを実行することです。
mtl.values <- read.table('filename.txt' , sep='=')
これにより、最初の列に名前があり、2番目の列に値がある2列のデータフレームが得られます。