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

[GRASS/Советы] Пакетный импорт растров

Добавлено: 03 сен 2008, 18:10
KolesovDmitry
В каталоге ~/tmp/rastr/ хранятся растры GeoTiff, нужно экспортировать все эти растры в текущий набор GRASS.
Названия файлов содержат суфикс "_longlat.tif". Пример названия файла: "A2007091_longlat.tif", этот файл нужно импортировать под названием "A2007091"

Код: Выделить всё

GRASS> for file in ~/tmp/rastr/*tif; do r.in.gdal input=$file output=$(basename $file '_longlat.tif'); done
В результате каждый канал растра будет импортирован отдельно: например, двух-канальный растр "A2007091" даст в итоге два растра в GRASS - "A2007091.1" и "A2007091.2"

Re: [GRASS/Советы] Пакетный импорт растров

Добавлено: 01 окт 2008, 19:33
Максим Дубинин
не лишний ли пробел между $file и 'longlat' в этой части скрипта?

Код: Выделить всё

output=$(basename $file '_longlat.tif')

Re: [GRASS/Советы] Пакетный импорт растров

Добавлено: 02 окт 2008, 14:59
KolesovDmitry
sim писал(а):не лишний ли пробел между $file и 'longlat' в этой части скрипта?

Код: Выделить всё

output=$(basename $file '_longlat.tif')
С одной стороны, пробел не лишний, но, с другой стороны, эту часть скрипта можно и модифицировать под конкретные нужды.

Команда basename (стандартная unix-совская команда, входит в пакет coreutils) выводит последний компонент пути к файлу. Может применяться в двух вариантах -- с суфиксом или без.

Параметры:

Код: Выделить всё

basename NAME [SUFFIX]
Применение поясню на примерах (привожу команду и результат выполнения):

Код: Выделить всё

basename /tmp/rastr/abcd_longlat.tif
abcd_longlat.tif

Код: Выделить всё

basename /tmp/rastr/abcd_longlat.tif .tif
abcd_longlat

Код: Выделить всё

basename /tmp/rastr/abcd_longlat.tif _longlat.tif
abcd

Re: [GRASS/Советы] Пакетный импорт растров

Добавлено: 02 окт 2008, 17:26
Максим Дубинин
спасибо, понял, убирает подстроку, а без пробела наоборот, будет добавлять

хороший рецепт, подтверждаю - работает