Страница 1 из 1

скрипт по переименованию снимков Landsat 8

Добавлено: 28 июл 2013, 20:56
xen87
При закачке снимков Landsat 8 столкнулся с проблемой, если раньше (Landsat 5,7) в названии файлов указывалось число и месяц съемки (типа l5173018_01820090904 - 4 сентября 2009), то теперь (Landsat 8 ) указывается только порядковый номер дня съемки (lc81720202013139lgn01 - 139 день).
Все бы ничего, но при различных исследованиях (скажем лесопатологических) важно знать сезон (месяц) съемки, а каждый раз вычислять его в уме (или на калькуляторе) по порядковому номеру дня съемки - дело не благодарное.
Решил написать небольшой скрипт на Python, позволяющий переименовывать файлы (именно файлы, а не папки) из вида LO81740192013153LGN00_B4.tif (153 день 2013) в вид LO817401902062013LGN00_B4.tif (2 июня 2013).
Скрипт просит указать каталог в котором находятся папки со снимками (напр. C:\Arhiv_snimkov\2014 - т.е. в папке 2014 лежат куча папок с Landsat 8, внутри которых скрипт и будет вести переименование файлов).

P.s. за код не ругайте, я только учусь ...

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 28 июл 2013, 21:39
Александр Мурый
Позволю себе несколько замечаний:
— Файл скрипта в кодировке Windows-1251, а в начале указано "# -*- coding: utf-8 -*-"
— В исходном виде у меня (на линуксе) скрипт не работает, выдаёт следующее с аргументом в виде каталога или без него:
: Нет такого файла или каталога

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 28 июл 2013, 21:49
rhot
у меня тоже не работает

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 28 июл 2013, 22:26
xen87
— Файл скрипта в кодировке Windows-1251, а в начале указано "# -*- coding: utf-8 -*-"
- грешен, исправил.
— В исходном виде у меня (на линуксе) скрипт не работает, выдаёт следующее с аргументом в виде каталога или без него:
: Нет такого файла или каталога
- так по русски и пишет?

Гм, а как выглядит путь к каталогу в котором хранятся папки со снимками?
Дело в том, что скрипту необходимо указывать путь где лежат разархивированные папки, а внутри папок файлы-снимки, которые скрипт переименовывает.
Скажем папки со снимками хранятся тут:
C:\Arhiv_snimkov\2013\тут лежит куча разархивированных папок(LC81720202013139LGN01, LC81760202013103LGN01, LO81740192013153LGN00 ...), а в них снимки
В скрипте указываем путь:
C:\Arhiv_snimkov\2013

Скрипт пробежится по папкам и изменить названия лежащих в них файлов.
"Левых" файлов в этих папках лучше не держать, ибо скрипт переименует и их.

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 29 июл 2013, 12:22
nadiopt
Илья, а я просто делю день съемки на 30, не так уж и сложно

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 29 июл 2013, 14:30
alexandr cherepanov
Не понятно зачем вообще исходники переименовывать, все равно их собирать вот собранный и называть как хочется. Day of month или Day of year это всего лишь вопрос привычки. А так наверное лучше сразу в статью оформлять или заметку.

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 29 июл 2013, 14:49
Hatt
Вопрос немного в сторону. Никто ещё не задумывался о скрипте не по переименованию Ландсат 8, а по переформированию его файла метаданных под "старый" формат, чтобы, например, в допятых ENVI работать с ним напрямую? Правда, мои задумывания о нём из-за "плановых" работ (ну и почти забытых навыков, если уж откровенно) пока крайне фрагментарны... Или, может, вообще отговорите от такой затеи, ведь сверяться с файлом, если очень понадобится, не так сложно:)
Или (вдруг!) он уже существует и активно распространяется операторами спутника и производителями ПО:)?

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 29 июл 2013, 16:42
xen87
nadiopt писал(а):Илья, а я просто делю день съемки на 30, не так уж и сложно
Да я же не спорю :D Ну захотелось попробовать автоматизировать данный процесс ...
alexandr cherepanov писал(а): Не понятно зачем вообще исходники переименовывать, все равно их собирать вот собранный и называть как хочется.
Да можно не только исходники переименовывать. Я делаю так:
1. качаю снимки (имеющиеся за 2013 год)
2. разархивирую их каждый в свою папку сохраняя название папок по умолчанию (важно, чтобы названия папок не изменялись, ибо из них скрипт и берет информацию для наименования файлов)
3. синтезирую многоканальный композит (Layer stack) и сохраняю его по старому адресу с именем, близки к оригинальному
4. удаляю в папках лишние файлы (т.е. одноканальные изображения, если они более не нужны - но это не обязательно)
5. запускаю скрипт на переименование, который переименовывает оставшиеся в папках файлы
alexandr cherepanov писал(а):
Day of month или Day of year это всего лишь вопрос привычки.
- да, Вы правы, но иногда и потребности.
Hatt писал(а):
Вопрос немного в сторону. Никто ещё не задумывался о скрипте не по переименованию Ландсат 8, а по переформированию его файла метаданных под "старый" формат, чтобы, например, в допятых ENVI работать с ним напрямую? Правда, мои задумывания о нём из-за "плановых" работ (ну и почти забытых навыков, если уж откровенно) пока крайне фрагментарны... Или, может, вообще отговорите от такой затеи, ведь сверяться с файлом, если очень понадобится, не так сложно:)
Или (вдруг!) он уже существует и активно распространяется операторами спутника и производителями ПО:)?
- простите, я с ENVI не работал, поэтому комментировать не могу.

Re: скрипт по переименованию снимков Landsat 8

Добавлено: 29 июл 2013, 21:31
alexandr cherepanov
Раз уж отошли от темы.
Hatt писал(а):Вопрос немного в сторону. Никто ещё не задумывался о скрипте не по переименованию Ландсат 8, а по переформированию его файла метаданных под "старый" формат, чтобы, например, в допятых ENVI работать с ним напрямую? Правда, мои задумывания о нём из-за "плановых" работ (ну и почти забытых навыков, если уж откровенно) пока крайне фрагментарны... Или, может, вообще отговорите от такой затеи, ведь сверяться с файлом, если очень понадобится, не так сложно:)
C 8 простое переструктурирование метаданных не прокатит, если писать поддержку для старых версиях, то придется с нуля. Я уже поднимал данный вопрос, но особой заинтересованности не увидел. Новые данные - новая версия :) . А вот для 5,7 после смены метаданных, это вполне рабочий вариант, но опять же скорее всего придется переименовывать и некоторые файлы, но это надо пробовать. Но какое-то это не благодарное занятие :roll: ETMMetadataUpdates
Hatt писал(а):Или (вдруг!) он уже существует и активно распространяется операторами спутника и производителями ПО:)?
А зачем им это? Поддержки в старой версии точно не будет, да и в новой непонятно насколько хорошо она сейчас реализована. Sp3 даже не глядел, особенно учитывая отзывы, что в классике нет поддержки.