3

私はRプログラミングに非常に慣れていないので、ランドサット衛星データでアーカイブされたMTLファイルをどのように読み取ることができるか教えてください。

4

3 に答える 3

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)

より複雑なアプローチの場合、これは良い出発点かもしれません。

于 2013-04-07T16:15:30.110 に答える
1

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列のデータフレームが得られます。

于 2013-02-07T12:37:53.773 に答える