Возник в очередной раз вопрос - как а аркгис оформить набор растровых данных в виде мозаики.
Т.е. есть файлы вида "name_x_y.tiff" где х - номер файла по оси х, у- по оси у.
Известны размеры файлов, скажем 1000*1000 пикс.
Файлы не привязаны.
Файлов очень много.
Как их скормить в аркигис, чтобы они выстроились в нужно порядке и в идеале их можно было бы привязать всех одним разом и работать как с одним файлом.
(редактирование растра не подразумевается только привязка и отображение)
может файл "описаний" сгенерить какой можно ???
привязать разом много растров и создать мозаику
-
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 07 авг 2008, 20:30
- Репутация: 0
-
- Завсегдатай
- Сообщения: 386
- Зарегистрирован: 07 фев 2004, 14:31
- Репутация: 7
- Откуда: Лозанна
- Контактная информация:
Re: привязать разом много растров(мозайка)
возможно сработает следующий метод:
1) для каждого файла создать .tfw файл (name_x_y.tfw)
2) наполнение файла сделать следующим:
где x' - это размер по оси x в пикслях * x (порядковый номер из названия файла по оси х). Например, для файла с именем name_1_1.tiff и размером в 1000 пикселей: x' = 1*1000 = 1000
y' - это размер по оси x в пикслях * y (порядковый номер из названия файла по оси y). Например, для файла с именем name_1_2.tiff и размером в 1000 пикселей: x' = 2*1000 = 2000
такой метод позволит создать всем файлам относительную привязку и расположить из в пространстве относительно друг друга рядами
3) загрузить все файлы в arcgis
4) сделать из них единую мозаику командой mosaic
5) загрузить мозаику и привязывать уже ее
сгенерить tfw можно автоматом из названий файлов.
а вот и статья про TFW - >>>>>>>
1) для каждого файла создать .tfw файл (name_x_y.tfw)
2) наполнение файла сделать следующим:
Код: Выделить всё
1
0
0
-1
x'
y'
y' - это размер по оси x в пикслях * y (порядковый номер из названия файла по оси y). Например, для файла с именем name_1_2.tiff и размером в 1000 пикселей: x' = 2*1000 = 2000
такой метод позволит создать всем файлам относительную привязку и расположить из в пространстве относительно друг друга рядами
3) загрузить все файлы в arcgis
4) сделать из них единую мозаику командой mosaic
5) загрузить мозаику и привязывать уже ее
сгенерить tfw можно автоматом из названий файлов.
а вот и статья про TFW - >>>>>>>
-
- Интересующийся
- Сообщения: 36
- Зарегистрирован: 07 авг 2008, 20:30
- Репутация: 0
Re: привязать разом много растров(мозайка)
Самым простым оказалась создать для каждого файла с графикой, world-файл. На это ушло минут 15.
Дальше начались трудности.
arcgis и arcotalog, в частности с трудом понимает большое количество файлов. Т.е. если у вас файлов несколько десятков или пусть даже сотен - то все более менее нормально, но когда счет идет на тысячи - начинаются затыки.
Потому было решено использовать открытую библиотеку gdal и ее функцию gdal_merge скачать можно тут
Первоначально огреб проблемы со свежей версией библиотеки, потому в последствии использовал более старую версию 2.4.6.
Кроме того, пришлось переделать world файлы.
Почему-то у меня корректно удалось склеить, только когда значения по координате y` вычислялось по формуле y`=max(y)*1000-y*1000
В ряде случаев возникали проблемы с lzw архивированием у файлов, потому я использовал пакетник из IrfanView, который позволяет изменять параметры/переименовывать сразу неограниченное количество файлов.
И еще, если у вас исходные файлы в tif с 256 цветной палитрой, то убедитесь что у всех файлов одинаковая палитра, иначе на выходе вы получите файл странной расцветки(т.к. палитра будет браться из первого файла). Самый простой способ это обойти - поменять цветность с 8бит на 24бита, однако размеры файлов значительно увеличится и увеличится нагрузка на процессор при сливании файлов.
В конечном итоге использовались архивированные lzw tifы с 24битным цветом.
Вот сама команда для объединения файлов:
gdal_merge.py -o с:\res2.img -of HFA -co COMPRESSED=YES c:\temp\name_*.tif , где
-o с:\res2.img - итоговый файл
-of HFA - это формат данных итогового файла, в данном случае -формат Erdas Imagine (.img) , поскольку он не имеет ограничений. вот тут описания поддерживаемых файлов.
-co COMPRESSED=YES - параметры исходного файла. Для разных типов файлов поддерживаются разные параметры, которые можно поглядеть там же где и описания типов файлов.
c:\temp\name_*.tif - файлы которые будут объеденные, можно списком, а можно и указывать и маску как в примере.
На выходе, после многочасового ожидания (больше суток), получаем многигобайтный img файл, который свободно читается arccatalog`ом и его можно конвертировать в интересующий вас формат, например в tif включить/отключить компрессию и изменить цветность.
Кстати конвертировать можно и gdal`ом:)
з.ы. Огромное спасибо загадочной девушке Анне, которая помогла в решении проблемы.
Дальше начались трудности.
arcgis и arcotalog, в частности с трудом понимает большое количество файлов. Т.е. если у вас файлов несколько десятков или пусть даже сотен - то все более менее нормально, но когда счет идет на тысячи - начинаются затыки.
Потому было решено использовать открытую библиотеку gdal и ее функцию gdal_merge скачать можно тут
Первоначально огреб проблемы со свежей версией библиотеки, потому в последствии использовал более старую версию 2.4.6.
Кроме того, пришлось переделать world файлы.
Почему-то у меня корректно удалось склеить, только когда значения по координате y` вычислялось по формуле y`=max(y)*1000-y*1000
В ряде случаев возникали проблемы с lzw архивированием у файлов, потому я использовал пакетник из IrfanView, который позволяет изменять параметры/переименовывать сразу неограниченное количество файлов.
И еще, если у вас исходные файлы в tif с 256 цветной палитрой, то убедитесь что у всех файлов одинаковая палитра, иначе на выходе вы получите файл странной расцветки(т.к. палитра будет браться из первого файла). Самый простой способ это обойти - поменять цветность с 8бит на 24бита, однако размеры файлов значительно увеличится и увеличится нагрузка на процессор при сливании файлов.
В конечном итоге использовались архивированные lzw tifы с 24битным цветом.
Вот сама команда для объединения файлов:
gdal_merge.py -o с:\res2.img -of HFA -co COMPRESSED=YES c:\temp\name_*.tif , где
-o с:\res2.img - итоговый файл
-of HFA - это формат данных итогового файла, в данном случае -формат Erdas Imagine (.img) , поскольку он не имеет ограничений. вот тут описания поддерживаемых файлов.
-co COMPRESSED=YES - параметры исходного файла. Для разных типов файлов поддерживаются разные параметры, которые можно поглядеть там же где и описания типов файлов.
c:\temp\name_*.tif - файлы которые будут объеденные, можно списком, а можно и указывать и маску как в примере.
На выходе, после многочасового ожидания (больше суток), получаем многигобайтный img файл, который свободно читается arccatalog`ом и его можно конвертировать в интересующий вас формат, например в tif включить/отключить компрессию и изменить цветность.
Кстати конвертировать можно и gdal`ом:)
з.ы. Огромное спасибо загадочной девушке Анне, которая помогла в решении проблемы.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей