gdal_retile не строится пирамида
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
gdal_retile не строится пирамида
Здравствуйте, уважаемые форумчани, у меня такой вопрос.
Нужно с помощью gdal_retile построить пирамиду изображений. Проблема состоит в том что у меня при помощи данной утилиты получается только разрезать на куски изображения, а задача стоит, получить на выходе несколько, целых изображений разного разрешения.
Нужно с помощью gdal_retile построить пирамиду изображений. Проблема состоит в том что у меня при помощи данной утилиты получается только разрезать на куски изображения, а задача стоит, получить на выходе несколько, целых изображений разного разрешения.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: gdal_retile не строится пирамида
Спасибо бьольшое за ответ. У меня получилось, но на выходе создается только один фаил. А нельзя ли сделать чтоб на выходе создовалось сразу несколько. И сразу хотелось бы уточнить, возможно ли работать с hdf файлами при помощи данной утилиты?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: gdal_retile не строится пирамида
Вот поддерживаемые форматы: http://gdal.org/formats_list.html
Список конкретных форматов можно посмотреть командой gdalinfo --formats ну или gdaladdo --formats
Как через утилиты получить пирамиды в разных файлах я не нашел. Через API есть такая возможность, но это надо программировать.
Список конкретных форматов можно посмотреть командой gdalinfo --formats ну или gdaladdo --formats
Как через утилиты получить пирамиды в разных файлах я не нашел. Через API есть такая возможность, но это надо программировать.
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: gdal_retile не строится пирамида
И снова спаибо за то что откликнулись, но боюсь что я наверное не правильно поставил вопрос, я имел ввиду, к примеру у меня есть изображение 1024x1204, и нужно чтоб посредством вызова gdaladdo у меня на выходе получилось несколько изображений, разрешением 512х512, 256х256, 128х128..... и т.д.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: gdal_retile не строится пирамида
Тогда воспользуйтесь gdal_translate http://gdal.org/gdal_translate.html и укажите выходной размер: опция outsize
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: gdal_retile не строится пирамида
Но ведь на выходе получится одно изображение, а мне надо чтоб несколько, разных масштабов
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: gdal_retile не строится пирамида
Ну так воспользуйтесь утилитой несколько раз, если растров много - напишите скрипт.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
Spatial is now, more than ever, just another column- The Geometry Column.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: gdal_retile не строится пирамида
Самый простой способ - командный файл примерно такого содержания:
gdal_translate -outsize 50%% 50%% %1 %2_50.tif
gdal_translate -outsize 25%% 25%% %1 %2_25.tif
Для командного файла передаются 2 параметра:
%1 - это путь до исходного растра
%2 - это постоянная часть имени выходного
Пример вызова может быть таким:
ovr_separate.bat c:/temp/input_raster.tif c:/temp/output_raster
Первая ссылка в поиске про командные файлы: http://ab57.ru/cmd.html
gdal_translate -outsize 50%% 50%% %1 %2_50.tif
gdal_translate -outsize 25%% 25%% %1 %2_25.tif
Для командного файла передаются 2 параметра:
%1 - это путь до исходного растра
%2 - это постоянная часть имени выходного
Пример вызова может быть таким:
ovr_separate.bat c:/temp/input_raster.tif c:/temp/output_raster
Первая ссылка в поиске про командные файлы: http://ab57.ru/cmd.html
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: gdal_retile не строится пирамида
Спасибо большое, всем кто откликнулся, действительно очень полезные советы, и я тоже подумывал над скриптом, но дело в том, что преподователь поставил задачу это выполнить в одной строке, а на счет скрипта он мне сказал примерно следующее, "можно, но зачем такие сложности если возможно только одной строкой", попадя в такую ситуацию, я хотел бы спросить это вообще реально, сохронять отдельный слой в отдельный фаил?
Последний раз редактировалось Максим Дубинин 13 янв 2013, 10:10, всего редактировалось 1 раз.
Причина: см. правила форума, п.2.2.1 http://gis-lab.info/qa/forum-rules.html
Причина: см. правила форума, п.2.2.1 http://gis-lab.info/qa/forum-rules.html
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: gdal_retile не строится пирамида
А преподаватель конкретно про GDAL говорил или про иные программы? Может какой ни будь ImageMagic такое может.NIckolay писал(а):дело в том, что преподователь поставил задачу это выполнить в одной строке, а на счет скрипта он мне сказал примерно следующее, "можно, но зачем такие сложности если возможно только одной строкой", попадя в такую ситуацию, я хотел бы спросить это вообще реально, сохронять отдельный слой в отдельный фаил?
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: gdal_retile не строится пирамида
Нет, конкретно GDAL, и даже сказал что нужно почитать про gdal_retile и gdaladdo. Да и хотелось бы у точнить, отдельный слой пирамиды это один из масштабов?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: gdal_retile не строится пирамида
Вот с этого и надо было начинать.NIckolay писал(а):Да и хотелось бы у точнить, отдельный слой пирамиды это один из масштабов?
Пирамидные слои - это уменьшенные копии изображения в кратное количество раз. Обычно 2,4,8 раз и далее до достижения размера выходного пирамидного изображения определенного порога - например, 20 х 20 пикселей. Пирамидные слои служат ускоренной отрисовки всего изображения при определенном масштабе. Если бы их не было то компьютер бы вынужден был разрежать исходное изображение, что бы уместить его на экран.
Например есть снимок с КА Ikonos. Размер сцены 8 х 8 км, разрешение 0.8 м. Размер изображения 10 000 х 10 000 пикселов. При выводе на экран с разрешением 1024 х 768 (а с учетом меню, статусной строки и т.п. и вообще 800 х 600) нужно было бы разредить изображения порядка 10-11 раз. Этот процесс потребовал бы обсчет 10 000 * 10 000 = 100 000 000 писелей. А так берется пирамидный слой нужного уровня и выводится на экран 1 в один или с меньшим количеством расчетов. В данной случае для исключения потери детальности - 8-го уровня. Т.к. 16 (следующий после

В принципе при помощи GDAL можно генерировать и другие уровни - не обязательно кратные 2-м.
Есть еще такое понятие, как тайлы - когда изображение режется на кусочки. Например, наш снимок 10 000 х 10 000 можно разделить на 4 части по 5 000 х 5 000 пикселей. Это будут тайлы. И если выводиться какой-то участок снимка, то можно грузить только один тайл. Но при этом, необходимость пирамид остается.
Возможно, преподаватель хотел, что бы одной командой были сгенерированы пирамиды для нескольких тайлов - тогда это делается через gdal_retile (http://www.gdal.org/gdal_retile.html) - опции levels и pyramidOnly.
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: gdal_retile не строится пирамида
Не совсем, преподователь ясно сказал, что каждый слой пирамиды, должен сохраниться отдельным изображением. Возможно ли сделать это одной или несколькими командами но без сложных конструкций(каких либо скриптовых файлов и т.д.)?
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: gdal_retile не строится пирамида
Как сделать одной командой я не знаю. Одна команда - один файл. Вы можете последовательно вызвать что-то типа:
gdal_translate -outsize 50% 50% input_raster.tif output_raster_50.tif
gdal_translate -outsize 25% 25% input_raster.tif output_raster_25.tif
...
gdal_translate -outsize 5% 5% input_raster.tif output_raster_5.tif
Интересно узнать, чего же хотел преподаватель.
gdal_translate -outsize 50% 50% input_raster.tif output_raster_50.tif
gdal_translate -outsize 25% 25% input_raster.tif output_raster_25.tif
...
gdal_translate -outsize 5% 5% input_raster.tif output_raster_5.tif
Интересно узнать, чего же хотел преподаватель.
Кто сейчас на конференции
Сейчас этот форум просматривают: Ahrefs [Bot] и 2 гостя