Наложить сетку на GeoTiff
-
- Участник
- Сообщения: 93
- Зарегистрирован: 04 дек 2013, 02:14
- Репутация: 1
Наложить сетку на GeoTiff
Есть геотиф. При помощи GDAL я его загрузил, перепроецировал и в итоге получил нужное мне изображение. Теперь, имея этот GDALDataset, необходимо нанести на него сетку с заданным шагом Ш/Д. Есть ли в GDAL/OGR такой API?
-
- Гуру
- Сообщения: 4069
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1064
- Ваше звание: программист
- Откуда: Казань
Re: Наложить сетку на GeoTiff
а зачем вам API, алгоритм Бразенхайма уже отменили? соорудить в памяти линии с большим числом точек, трансформировать в проекцию и нарисовать поверх снимка займет не намного больше времени (а то и меньше), чем ковырять все эти апи, ну вы же уже убедилисьwowka1319 писал(а):Есть геотиф. При помощи GDAL я его загрузил, перепроецировал и в итоге получил нужное мне изображение. Теперь, имея этот GDALDataset, необходимо нанести на него сетку с заданным шагом Ш/Д. Есть ли в GDAL/OGR такой API?
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Наложить сетку на GeoTiff
а не проще создать векторную сетку необходимой подробности, перевести ее в ч/б растр и прибавить через gdal_calc ?
Или ГИС какую-нибудь использовать по прямому назначению?
Или ГИС какую-нибудь использовать по прямому назначению?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Наложить сетку на GeoTiff
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
Правда выводить это (в случае qt) в чем-то типа QgsMapCanvas - это вариант Бориса.
Еще можно посмотреть в сторону http://gdal.org/gdal_rasterize.html (https://svn.osgeo.org/gdal/trunk/gdal/a ... terize.cpp) - там также можно использовать ogr memory driver
-
- Участник
- Сообщения: 93
- Зарегистрирован: 04 дек 2013, 02:14
- Репутация: 1
Re: Наложить сетку на GeoTiff
Вот я это и спрашиваю "как проще", ибо реализовывать сплайны еще полбеды, так еще нужно с растеризацией/сглаживанием помучиться. Здравый смысл подсказывает, что GDAL/ORG располагает таким апи.Boris писал(а):а не проще создать векторную сетку необходимой подробности, перевести ее в ч/б растр и прибавить через gdal_calc ?
Или ГИС какую-нибудь использовать по прямому назначению?
И причем тут гис - не понимаю, мне нужен этот функционал в АПИ С++.
Опишу как вижу это я (чтоб понятней было, что я хочу):
Вот есть у меня GDALDataset уже в нужной мне проекции. Теперь мне нужно нанести на него сетку, а лучше создать отдельный GDALDataset с альфа каналом, чтобы потом уже в Qt можно было мне этими слоями оперировать как хочется.
И вот вижу я это так: в некую функцию передается adfGeoTransform[6], нужная проекция, nXSize и nYSize выходного изображения (берется из исходного GDALDataset), частота сетки (в градусах) по Ш и Д (отдельно), толщина линий и желательно их цвет, а на выходе получаю GDALDataset размером с исходным но только с сеткой.
Или такой вариант: в некую функцию передается частота сетки (в градусах/минутах) по Ш и Д (отдельно), толщина линий и желательно их цвет и GDALDataset, в который будет эта сетка писаться. Насчет толщины сетки я правда не знаю в чем ее задавать, но не буду заморачиваться - пока рано.
Вопрос остался.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Наложить сетку на GeoTiff
есть gdal_calc.py, он умеет выполнять математические-логические операции с растрами. я думаю, что ваш случай 100% подмножество этого скрипта. есть gdal_merge.py - в нем реализовано добавление каналов, если есть мысль получить альфа-канал. Что то требуется ЗА пределами этого кода?
Я бы без программирования, только тем что уже есть в утилитах сделал так:
1. создал набор векторных данных с сеткой. MIF или CSV+WKT - требуют минимум кода.
2. растеризовал его (gdal_rasterize)
3. сложил (gdal_calc) или добавил новым слоем (gdal_merge)
Код первой утилиты (п.2) можно найти, коды утилит п.3 есть в любом пакете, перевод с питона на си не должен создать много проблем.
Я бы без программирования, только тем что уже есть в утилитах сделал так:
1. создал набор векторных данных с сеткой. MIF или CSV+WKT - требуют минимум кода.
2. растеризовал его (gdal_rasterize)
3. сложил (gdal_calc) или добавил новым слоем (gdal_merge)
Код первой утилиты (п.2) можно найти, коды утилит п.3 есть в любом пакете, перевод с питона на си не должен создать много проблем.
-
- Участник
- Сообщения: 93
- Зарегистрирован: 04 дек 2013, 02:14
- Репутация: 1
Re: Наложить сетку на GeoTiff
Извините, но не понятно, тем более я не знаю пайтон. Можно пример кода C/C++, или даже на пайтоне, но именно пример?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость