GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


Привязка в QGIS (Исправление плагина Georeferencer)

Вопросы по QGIS

Привязка в QGIS (Исправление плагина Georeferencer)

Postby Lynx » 05 Nov 2008, 20:36

Здесь была затронута проблема привязки карт в QGIS. Но в этой теме было найдено решение о выполнении привязки с помощью скрипта с использованием gdal. Так же здесь пришли к выводу, что алгоритм преобразования Гельмерта реализован из рук вон плохо. Поэтому я бы хотел попробовать исправить его, и для этого было бы неплохо посмотреть на данные, которые точно не преобразовываются этим плагином. Если у кого они есть, выложите, пожалуйста, их здесь :)
Lynx
Интересующийся
 
Posts: 29
Joined: 04 Nov 2008

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Максим Дубинин » 05 Nov 2008, 22:19

было бы здорово, если привязка в 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 (хороший)
Attachments
test.tif
привязываемый файл - отдельно
test.tif (6.54 MiB) Viewed 2226 times
User avatar
Максим Дубинин
Site Admin
 
Posts: 3535
Joined: 06 Oct 2003

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Lynx » 07 Nov 2008, 04:14

у меня получилось переделать плагин так, чтобы вычисления проводились в gdal (но это пока бэта, бэта версия :) ).

Чтобы собрать из них модуль, в каталоге с исходниками qgis, где находятся исходники плагина georeferencer (qgis/src/plugins/georeferencer) скопируйте эти файлы и CMakeList.txt. Затем в этой директории выполните:
Code: Select all
mkdir build && cd build && cmake ..

и если все пройдет нормально, скопируйте полученный модуль libgeorefplugin.so в /usr/local/lib/qgis (или в директорию где у вас плагины qgis)
Attachments
georeferencer.tar.gz
(722.07 KiB) Downloaded 352 times
CMakeLists.txt
(1.6 KiB) Downloaded 291 times
Last edited by Максим Дубинин on 07 Nov 2008, 04:34, edited 2 times in total.
Reason: объединил в одно сообщение, а то глаза разбегались
Lynx
Интересующийся
 
Posts: 29
Joined: 04 Nov 2008

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Максим Дубинин » 07 Nov 2008, 04:39

Отличная новость! Пошел обновлять Ubuntu.

Какой именно алгоритм реализован полином 1 порядка, 2 порядка?
Изменялись ли окна QT-шные или только код?
User avatar
Максим Дубинин
Site Admin
 
Posts: 3535
Joined: 06 Oct 2003

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Lynx » 07 Nov 2008, 10:26

Реализован алгоритм, в котором полином 1 порядка, но это не проблема добавить полиномы 2-го и 3-го порядок (для их реализации нужно соответственно минимум 6 и 10 точек). Я сделаю это позже, так как нужно будет немного подправить гуи.
Lynx
Интересующийся
 
Posts: 29
Joined: 04 Nov 2008

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Максим Дубинин » 12 Nov 2008, 09:00

Ubuntu 8.10
QGIS 1.0.0-preview2, установлен из бинарников

делаю svn checkout нового модуля, потом ccmake ..
выдает ошибку, содержание в прицепе, еще, правильно ли я понимаю что CMakeLists.txt должен лежать на уровень выше той директории, куда был сделан checkout?
Attachments
cmake.txt
(1.3 KiB) Downloaded 292 times
User avatar
Максим Дубинин
Site Admin
 
Posts: 3535
Joined: 06 Oct 2003

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Lynx » 12 Nov 2008, 20:52

И так, рассказываю как установить дополненный плагин:
Code: Select all
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

дальше при запуске qgis добавляем его, он называется Georeferencer GDAL.
В Slackware 12.1 плагины QGIS лежат здесь (при установки через пакетный менеджер): /usr/lib/qgis
Lynx
Интересующийся
 
Posts: 29
Joined: 04 Nov 2008

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Максим Дубинин » 14 Nov 2008, 03:31

Все установил. Переименовал старый georeferencer, чтоб не мешался. Запускаю qgis, открываю новое расширение, загружаю растр, qgis вылетает с таким сообщением:

Code: Select all
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
User avatar
Максим Дубинин
Site Admin
 
Posts: 3535
Joined: 06 Oct 2003

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Lynx » 14 Nov 2008, 20:31

Это сообщение вылетает потому, что в динамической библиотеки плагина нет связи с какой-то из функций qgis или других приложений и библиотек. И связано с тем, что плагин был неверно собран. (Но предупреждаю это мое предположение). Поэтому для тестирования плагина лучше всего собрать qgis самостоятельно из исходников с svn по этой инструкции.
После сборки я предполагаю, что вы находитесь в директории qgis_0_11_0/build. И выполните от сюда эти команды:
Code: Select all
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, потом
Code: Select all
mv georefinstall.cpp georefinstall.sh
chmod 755 georefinstall.sh
sudo ./georefinstall.sh
Attachments
georefinstall.cpp
(249 Bytes) Downloaded 287 times
Lynx
Интересующийся
 
Posts: 29
Joined: 04 Nov 2008

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Максим Дубинин » 16 Nov 2008, 08:35

все установилось и работает, в целом - отлично! просто отлично, нет слов. Попробовал на тестовом файле, все работает как надо. За исключением бага с 6 точками для второго полинома, который мы сами пока решить не можем.

Пара предложений:

1. расширение World-file хорошо бы автоматически менять по этой схеме и сделать неизменяемым, смысла хранить его с другим именем чем у растрового файла - нет, по идее, все поле World-file можно заменить на чек-бокс, включить или выключить или например заблокировать возможность изменить сам текст для world-file и убрать кнопку ...
2. в gdalwarp, результат можно создавать с TFW=YES
3. хорошо бы добавить опцию -tps (thin-plate splines)

про интерфейс

- хорошо бы сделать окна Georeferencer и Reference points сворачиваемым (минимизируемыми)
User avatar
Максим Дубинин
Site Admin
 
Posts: 3535
Joined: 06 Oct 2003

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Lynx » 17 Nov 2008, 21:56

Спасибо, я старался :). По предложениям:
1. Сделал так, чтобы расширение world - файла по умолчанию было не wld, а как в указанной схеме.
2. Добавил возможность привязки на основе контрольных точек и Thin-plate splines.
3. Добавил минимизацию в окна.
Есть еще предложения по улучшению?
Lynx
Интересующийся
 
Posts: 29
Joined: 04 Nov 2008

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Максим Дубинин » 18 Nov 2008, 07:16

хорошо!
Дальше - не очень понимаю, зачем первоначальные авторы окно привязки разделили на два, сложно ли будет упаковать два окна привязки в одно? Т.е. добавить строку "source raster" из маленького окошка в главное окно и динамически менять его содержимое при подгрузке растра. Кнопку arrange windows можно нафиг снести. А кнопку About вынести в меню.
User avatar
Максим Дубинин
Site Admin
 
Posts: 3535
Joined: 06 Oct 2003

Re: Привязка в QGIS (Исправление плагина Georeferencer)

Postby Максим Дубинин » 28 Nov 2008, 10:10

в окне About нужно:
- изменить название расширения на Georeferencer GDAL
- приписать Based on original Georeferencer Plugin
- Tim'a можно убрать
- ссылку на сам qgis - тоже
- ссылку на гислаб оставить как есть, но отправлять вот на такую:
http://gis-lab.info/qa/qgis-georef-new-eng.html
User avatar
Максим Дубинин
Site Admin
 
Posts: 3535
Joined: 06 Oct 2003


Return to QGIS

Who is online

Users browsing this forum: No registered users and 0 guests

cron


(Геокруг)

© GIS-Lab и авторы, 2002-2010. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна.