
Привязка в QGIS (Исправление плагина Georeferencer)
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Привязка в QGIS (Исправление плагина Georeferencer)
Здесь была затронута проблема привязки карт в QGIS. Но в этой теме было найдено решение о выполнении привязки с помощью скрипта с использованием gdal. Так же здесь пришли к выводу, что алгоритм преобразования Гельмерта реализован из рук вон плохо. Поэтому я бы хотел попробовать исправить его, и для этого было бы неплохо посмотреть на данные, которые точно не преобразовываются этим плагином. Если у кого они есть, выложите, пожалуйста, их здесь 

- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Привязка в QGIS (Исправление плагина Georeferencer)
было бы здорово, если привязка в QGIS делалась с помощью GDAL.
Вот мой пример: http://gis-lab.info/other/qgis-gdal-georef.zip
В нем:
test.tif - исходный растр
test.tif.points - точки привязки собранные с пом. QGIS Georeferencer
test-helmert.tif - результат привязки по этим точкам с пом. QGIS Georeferencer (плохой)
gdal.txt - преобразованные точки (локальная СК в GDAL - другой отсчет оси Y, надо Y*-1)
test-gdal.tif - результат привязки по этим точкам с пом. gdalwarp (хороший)
Вот мой пример: http://gis-lab.info/other/qgis-gdal-georef.zip
В нем:
test.tif - исходный растр
test.tif.points - точки привязки собранные с пом. QGIS Georeferencer
test-helmert.tif - результат привязки по этим точкам с пом. QGIS Georeferencer (плохой)
gdal.txt - преобразованные точки (локальная СК в GDAL - другой отсчет оси Y, надо Y*-1)
test-gdal.tif - результат привязки по этим точкам с пом. gdalwarp (хороший)
- Вложения
-
- привязываемый файл - отдельно
- test.tif (6.54 МБ) 21928 просмотров
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Re: Привязка в QGIS (Исправление плагина Georeferencer)
у меня получилось переделать плагин так, чтобы вычисления проводились в gdal (но это пока бэта, бэта версия
).
Чтобы собрать из них модуль, в каталоге с исходниками qgis, где находятся исходники плагина georeferencer (qgis/src/plugins/georeferencer) скопируйте эти файлы и CMakeList.txt. Затем в этой директории выполните:
и если все пройдет нормально, скопируйте полученный модуль libgeorefplugin.so в /usr/local/lib/qgis (или в директорию где у вас плагины qgis)

Чтобы собрать из них модуль, в каталоге с исходниками qgis, где находятся исходники плагина georeferencer (qgis/src/plugins/georeferencer) скопируйте эти файлы и CMakeList.txt. Затем в этой директории выполните:
Код: Выделить всё
mkdir build && cd build && cmake ..
- Вложения
-
georeferencer.tar.gz
- (722.07 КБ) 2388 скачиваний
-
CMakeLists.txt
- (1.6 КБ) 2347 скачиваний
Последний раз редактировалось Максим Дубинин 07 ноя 2008, 04:34, всего редактировалось 2 раза.
Причина: объединил в одно сообщение, а то глаза разбегались
Причина: объединил в одно сообщение, а то глаза разбегались
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Отличная новость! Пошел обновлять Ubuntu.
Какой именно алгоритм реализован полином 1 порядка, 2 порядка?
Изменялись ли окна QT-шные или только код?
Какой именно алгоритм реализован полином 1 порядка, 2 порядка?
Изменялись ли окна QT-шные или только код?
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Реализован алгоритм, в котором полином 1 порядка, но это не проблема добавить полиномы 2-го и 3-го порядок (для их реализации нужно соответственно минимум 6 и 10 точек). Я сделаю это позже, так как нужно будет немного подправить гуи.
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Ubuntu 8.10
QGIS 1.0.0-preview2, установлен из бинарников
делаю svn checkout нового модуля, потом ccmake ..
выдает ошибку, содержание в прицепе, еще, правильно ли я понимаю что CMakeLists.txt должен лежать на уровень выше той директории, куда был сделан checkout?
QGIS 1.0.0-preview2, установлен из бинарников
делаю svn checkout нового модуля, потом ccmake ..
выдает ошибку, содержание в прицепе, еще, правильно ли я понимаю что CMakeLists.txt должен лежать на уровень выше той директории, куда был сделан checkout?
- Вложения
-
cmake.txt
- (1.3 КБ) 2564 скачивания
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Re: Привязка в QGIS (Исправление плагина Georeferencer)
И так, рассказываю как установить дополненный плагин:
дальше при запуске qgis добавляем его, он называется Georeferencer GDAL.
В Slackware 12.1 плагины QGIS лежат здесь (при установки через пакетный менеджер): /usr/lib/qgis
Код: Выделить всё
cd $HOME
svn co https://svn.osgeo.org/qgis/tags/Release-1_0_0-preview2
cd QGIS_Release-1_0_0-preview2/src/plugins/
svn co http://svn.gis-lab.info/qgis-gdal-georef georefext
cd georefext
mkdir build
cd build
cmake ..
make
cp libgeorefplugin.so ${Путь к плагинам QGIS}/libgeorefpluginext.so
В Slackware 12.1 плагины QGIS лежат здесь (при установки через пакетный менеджер): /usr/lib/qgis
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Все установил. Переименовал старый georeferencer, чтоб не мешался. Запускаю qgis, открываю новое расширение, загружаю растр, qgis вылетает с таким сообщением:
Код: Выделить всё
Critical: QgsCoordinateReferenceSystem::createFromWkt -- theWkt is uninitialised, operation failed
Critical: QgsCoordinateReferenceSystem::createFromWkt -- theWkt is uninitialised, operation failed
/usr/bin/qgis.bin: symbol lookup error: /usr/lib/qgis/libgeorefpluginext.so: undefined symbol: _ZN12QgsMapCanvas9setExtentERK7QgsRect
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Это сообщение вылетает потому, что в динамической библиотеки плагина нет связи с какой-то из функций qgis или других приложений и библиотек. И связано с тем, что плагин был неверно собран. (Но предупреждаю это мое предположение). Поэтому для тестирования плагина лучше всего собрать qgis самостоятельно из исходников с svn по этой инструкции.
После сборки я предполагаю, что вы находитесь в директории qgis_0_11_0/build. И выполните от сюда эти команды:
можно сделать из них простой скрипт:
созраните его в директории qgis_0_11_0/build, потом
После сборки я предполагаю, что вы находитесь в директории qgis_0_11_0/build. И выполните от сюда эти команды:
Код: Выделить всё
rm -rfv src/plugins/georeferencer
cd ../src/plugins/
rm -rvf georeferencer
svn co http://svn.gis-lab.info/qgis-gdal-georef/ georeferencer
cd -
make georefplugin
rm ~/apps/lib/qgis/libgeorefplugin.so
cp -v src/plugins/georeferencer/libgeorefplugin.so $HOME/apps/lib/qgis/
созраните его в директории qgis_0_11_0/build, потом
Код: Выделить всё
mv georefinstall.cpp georefinstall.sh
chmod 755 georefinstall.sh
sudo ./georefinstall.sh
- Вложения
-
georefinstall.cpp
- (249 байт) 2298 скачиваний
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Привязка в QGIS (Исправление плагина Georeferencer)
все установилось и работает, в целом - отлично! просто отлично, нет слов. Попробовал на тестовом файле, все работает как надо. За исключением бага с 6 точками для второго полинома, который мы сами пока решить не можем.
Пара предложений:
1. расширение World-file хорошо бы автоматически менять по этой схеме и сделать неизменяемым, смысла хранить его с другим именем чем у растрового файла - нет, по идее, все поле World-file можно заменить на чек-бокс, включить или выключить или например заблокировать возможность изменить сам текст для world-file и убрать кнопку ...
2. в gdalwarp, результат можно создавать с TFW=YES
3. хорошо бы добавить опцию -tps (thin-plate splines)
про интерфейс
- хорошо бы сделать окна Georeferencer и Reference points сворачиваемым (минимизируемыми)
Пара предложений:
1. расширение World-file хорошо бы автоматически менять по этой схеме и сделать неизменяемым, смысла хранить его с другим именем чем у растрового файла - нет, по идее, все поле World-file можно заменить на чек-бокс, включить или выключить или например заблокировать возможность изменить сам текст для world-file и убрать кнопку ...
2. в gdalwarp, результат можно создавать с TFW=YES
3. хорошо бы добавить опцию -tps (thin-plate splines)
про интерфейс
- хорошо бы сделать окна Georeferencer и Reference points сворачиваемым (минимизируемыми)
пристегивайтесь, турбулентность прямо по курсу
-
- Интересующийся
- Сообщения: 29
- Зарегистрирован: 04 ноя 2008, 00:40
- Репутация: 0
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Спасибо, я старался
. По предложениям:
1. Сделал так, чтобы расширение world - файла по умолчанию было не wld, а как в указанной схеме.
2. Добавил возможность привязки на основе контрольных точек и Thin-plate splines.
3. Добавил минимизацию в окна.
Есть еще предложения по улучшению?

1. Сделал так, чтобы расширение world - файла по умолчанию было не wld, а как в указанной схеме.
2. Добавил возможность привязки на основе контрольных точек и Thin-plate splines.
3. Добавил минимизацию в окна.
Есть еще предложения по улучшению?
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Привязка в QGIS (Исправление плагина Georeferencer)
хорошо!
Дальше - не очень понимаю, зачем первоначальные авторы окно привязки разделили на два, сложно ли будет упаковать два окна привязки в одно? Т.е. добавить строку "source raster" из маленького окошка в главное окно и динамически менять его содержимое при подгрузке растра. Кнопку arrange windows можно нафиг снести. А кнопку About вынести в меню.
Дальше - не очень понимаю, зачем первоначальные авторы окно привязки разделили на два, сложно ли будет упаковать два окна привязки в одно? Т.е. добавить строку "source raster" из маленького окошка в главное окно и динамически менять его содержимое при подгрузке растра. Кнопку arrange windows можно нафиг снести. А кнопку About вынести в меню.
пристегивайтесь, турбулентность прямо по курсу
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Привязка в QGIS (Исправление плагина Georeferencer)
в окне About нужно:
- изменить название расширения на Georeferencer GDAL
- приписать Based on original Georeferencer Plugin
- Tim'a можно убрать
- ссылку на сам qgis - тоже
- ссылку на гислаб оставить как есть, но отправлять вот на такую:
http://gis-lab.info/qa/qgis-georef-new-eng.html
- изменить название расширения на Georeferencer GDAL
- приписать Based on original Georeferencer Plugin
- Tim'a можно убрать
- ссылку на сам qgis - тоже
- ссылку на гислаб оставить как есть, но отправлять вот на такую:
http://gis-lab.info/qa/qgis-georef-new-eng.html
пристегивайтесь, турбулентность прямо по курсу
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя