Как я могу читать MTL-файл в R

Я очень новичок в программировании R, любезно расскажу, как я могу прочитать файл MTL, который архивируется с помощью спутниковых данных landat.

2

3 ответы

Для стандартного файла MTL, снабженного сценами Landsat, полученных из EarthExplorer или Glovis , вы могли бы просто сделать:

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 может иметь решающее значение для применения атмосферной и радиометрической коррекции. Кстати, landsat пакет позволяет вам запускать еще несколько типичная коррекция с использованием DOS() и функций radiocorr() .

Вам также понадобятся стандартные калибровочные значения, предоставленные Chander et al. (2009) .

Для более сложных подходов это может быть хорошим началом.

2
добавлено

Файл MTL содержит только метаданные (надеюсь, вы знали это :-)) и представляет собой текстовый файл, поэтому вы можете просто прочитать его и проанализировать по своему желанию. Если вы достаточно хорошо знакомы с Matlab, вы можете перенести этот инструмент http://www.mathworks.com/ matlabcentral/fileexchange/39073 , преобразуя его в код R .

EDIT: I can't tell from your comments what you actually need. Here's an example MTL.txt file I pulled off the net: http://landsat.usgs.gov/images/squares/processing_level_of_the_Landsat_scene_I_have_downloaded1.jpg

Если вы посмотрите на него, вы увидите имена и значения элементов данных. Если это то, что вы хотите, возможно, самый простой способ получить их - запустить команду

mtl.values <- read.table('filename.txt' , sep='=')  

Который даст вам 2-столбцовый фрейм с именами в первом столбце и значениями во втором.

1
добавлено
Хорошо, если вы можете отредактировать свой вопрос, чтобы указать, какие поля (элементы данных) вы хотите извлечь из заголовка, мы, вероятно, можем написать функцию «фильтр», чтобы получить нужные вам данные.
добавлено автор Carl Witthoft, источник
Пожалуйста, разместите образец MTL-файла, который вы используете, и я поставлю код, чтобы вытащить интересующие вас предметы.
добавлено автор Carl Witthoft, источник
Отправьте полный URL-адрес. Строка «L5 ...._ MTL», которую вы дали, даже не найдена в Google.
добавлено автор Carl Witthoft, источник
Чтобы помочь журналистам, и чтобы воспроизводить воспроизводимые проблемы и решения, было бы лучше, если бы вы разместили образец файла MTL где-нибудь доступный или указали на общедоступный сайт где-то в Интернете.
добавлено автор Ben Bolker, источник
Yeap я знал, что это дорого, но я хочу прочитать его, чтобы, если мне нужно вычислить NDVI, инструмент будет читать информацию только из файла MTL и делать это сам по себе, не нужно давать группы и не нужно создавать стек в этом случае. .. если вы можете помочь в этом, потому что у меня мало знаний о Matlab, потому что я очень много нового в программировании.
добавлено автор Kanwal Nayan, источник
хорошо, как будто я хочу сначала сфотографировать изображение, и на целом изображении я должен вычислить NDBI, NDWI и некоторые другие индексы из данных, для которых, я думаю, мне нужна информация о полосах только ....
добавлено автор Kanwal Nayan, источник
Я использовал это, но вы можете взять всех, кого у вас есть, мне просто нужно, как мы можем позвонить и поблагодарить вас за ваши ответы. Вы действительно помогаете! !! L5146040_04020110305_MTL
добавлено автор Kanwal Nayan, источник
хорошо ..... это будет легко, если вы можете дать мне свой идентификатор электронной почты ... потому что здесь невозможно отправить, хотя это большие строки кода .... и в Интернете он будет доступен на USGS сайт заархивирован данными, для которых я опубликовал путь и строку в своем последнем сообщении ...
добавлено автор Kanwal Nayan, источник
Да, я получаю результат от этого кода .... спасибо !! :)
добавлено автор Kanwal Nayan, источник

для чтения файла Mtl вместе с вашими изображениями (изображение в стеке) вы можете сделать следующее:

  1. Give the directory of you Mtl file. For example

    mtlFile<- "\\LE07_L1TP_165035_20090803_20161220_01_T1_MTL.txt"
    
  2. Read metadata

      metaData <- readMeta(mtlFile)
      metaData
    
  3. Load rasters based on the metadata file

     lsat <- (stackMeta(mtlFile, quantity = "all", category = "image", 
     + allResolutions = FALSE))
     lsat
     plot(lsat)
    
0
добавлено