Наложить сетку на GeoTiff

Ответить
wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Наложить сетку на GeoTiff

Сообщение wowka1319 » 24 фев 2014, 10:36

Есть геотиф. При помощи GDAL я его загрузил, перепроецировал и в итоге получил нужное мне изображение. Теперь, имея этот GDALDataset, необходимо нанести на него сетку с заданным шагом Ш/Д. Есть ли в GDAL/OGR такой API?

gamm
Гуру
Сообщения: 4069
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1064
Ваше звание: программист
Откуда: Казань

Re: Наложить сетку на GeoTiff

Сообщение gamm » 24 фев 2014, 12:25

wowka1319 писал(а):Есть геотиф. При помощи GDAL я его загрузил, перепроецировал и в итоге получил нужное мне изображение. Теперь, имея этот GDALDataset, необходимо нанести на него сетку с заданным шагом Ш/Д. Есть ли в GDAL/OGR такой API?
а зачем вам API, алгоритм Бразенхайма уже отменили? соорудить в памяти линии с большим числом точек, трансформировать в проекцию и нарисовать поверх снимка займет не намного больше времени (а то и меньше), чем ковырять все эти апи, ну вы же уже убедились :mrgreen:

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Наложить сетку на GeoTiff

Сообщение Boris » 24 фев 2014, 13:13

а не проще создать векторную сетку необходимой подробности, перевести ее в ч/б растр и прибавить через gdal_calc ?
Или ГИС какую-нибудь использовать по прямому назначению?

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Наложить сетку на GeoTiff

Сообщение Дмитрий Барышников » 24 фев 2014, 16:09

ogr memory driver - http://gdal.org/ogr/drv_memory.html.
Правда выводить это (в случае qt) в чем-то типа QgsMapCanvas - это вариант Бориса.
Еще можно посмотреть в сторону http://gdal.org/gdal_rasterize.html (https://svn.osgeo.org/gdal/trunk/gdal/a ... terize.cpp) - там также можно использовать ogr memory driver

wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Re: Наложить сетку на GeoTiff

Сообщение wowka1319 » 25 фев 2014, 14:22

Boris писал(а):а не проще создать векторную сетку необходимой подробности, перевести ее в ч/б растр и прибавить через gdal_calc ?
Или ГИС какую-нибудь использовать по прямому назначению?
Вот я это и спрашиваю "как проще", ибо реализовывать сплайны еще полбеды, так еще нужно с растеризацией/сглаживанием помучиться. Здравый смысл подсказывает, что GDAL/ORG располагает таким апи.
И причем тут гис - не понимаю, мне нужен этот функционал в АПИ С++.
Опишу как вижу это я (чтоб понятней было, что я хочу):
Вот есть у меня GDALDataset уже в нужной мне проекции. Теперь мне нужно нанести на него сетку, а лучше создать отдельный GDALDataset с альфа каналом, чтобы потом уже в Qt можно было мне этими слоями оперировать как хочется.
И вот вижу я это так: в некую функцию передается adfGeoTransform[6], нужная проекция, nXSize и nYSize выходного изображения (берется из исходного GDALDataset), частота сетки (в градусах) по Ш и Д (отдельно), толщина линий и желательно их цвет, а на выходе получаю GDALDataset размером с исходным но только с сеткой.
Или такой вариант: в некую функцию передается частота сетки (в градусах/минутах) по Ш и Д (отдельно), толщина линий и желательно их цвет и GDALDataset, в который будет эта сетка писаться. Насчет толщины сетки я правда не знаю в чем ее задавать, но не буду заморачиваться - пока рано.
Вопрос остался.

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Наложить сетку на GeoTiff

Сообщение Boris » 26 фев 2014, 19:47

есть gdal_calc.py, он умеет выполнять математические-логические операции с растрами. я думаю, что ваш случай 100% подмножество этого скрипта. есть gdal_merge.py - в нем реализовано добавление каналов, если есть мысль получить альфа-канал. Что то требуется ЗА пределами этого кода?
Я бы без программирования, только тем что уже есть в утилитах сделал так:
1. создал набор векторных данных с сеткой. MIF или CSV+WKT - требуют минимум кода.
2. растеризовал его (gdal_rasterize)
3. сложил (gdal_calc) или добавил новым слоем (gdal_merge)
Код первой утилиты (п.2) можно найти, коды утилит п.3 есть в любом пакете, перевод с питона на си не должен создать много проблем.

wowka1319
Участник
Сообщения: 93
Зарегистрирован: 04 дек 2013, 02:14
Репутация: 1

Re: Наложить сетку на GeoTiff

Сообщение wowka1319 » 01 мар 2014, 13:55

Извините, но не понятно, тем более я не знаю пайтон. Можно пример кода C/C++, или даже на пайтоне, но именно пример?

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость