Страница 1 из 1
Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 05 ноя 2008, 20:36
Lynx
Здесь была затронута проблема привязки карт в QGIS. Но в этой теме было найдено решение о выполнении привязки с помощью скрипта с использованием gdal. Так же
здесь пришли к выводу, что алгоритм преобразования Гельмерта реализован из рук вон плохо. Поэтому я бы хотел попробовать исправить его, и для этого было бы неплохо посмотреть на данные, которые точно не преобразовываются этим плагином. Если у кого они есть, выложите, пожалуйста, их здесь

Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 05 ноя 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 (хороший)
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 07 ноя 2008, 04:14
Lynx
у меня получилось переделать плагин так, чтобы вычисления проводились в gdal (но это пока бэта, бэта версия

).
Чтобы собрать из них модуль, в каталоге с исходниками qgis, где находятся исходники плагина georeferencer (qgis/src/plugins/georeferencer) скопируйте эти файлы и CMakeList.txt. Затем в этой директории выполните:
и если все пройдет нормально, скопируйте полученный модуль libgeorefplugin.so в /usr/local/lib/qgis (или в директорию где у вас плагины qgis)
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 07 ноя 2008, 04:39
Максим Дубинин
Отличная новость! Пошел обновлять Ubuntu.
Какой именно алгоритм реализован полином 1 порядка, 2 порядка?
Изменялись ли окна QT-шные или только код?
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 07 ноя 2008, 10:26
Lynx
Реализован алгоритм, в котором полином 1 порядка, но это не проблема добавить полиномы 2-го и 3-го порядок (для их реализации нужно соответственно минимум 6 и 10 точек). Я сделаю это позже, так как нужно будет немного подправить гуи.
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 12 ноя 2008, 09:00
Максим Дубинин
Ubuntu 8.10
QGIS 1.0.0-preview2, установлен из бинарников
делаю svn checkout нового модуля, потом ccmake ..
выдает ошибку, содержание в прицепе, еще, правильно ли я понимаю что CMakeLists.txt должен лежать на уровень выше той директории, куда был сделан checkout?
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 12 ноя 2008, 20:52
Lynx
И так, рассказываю как установить дополненный плагин:
Код: Выделить всё
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
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 14 ноя 2008, 03:31
Максим Дубинин
Все установил. Переименовал старый 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
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 14 ноя 2008, 20:31
Lynx
Это сообщение вылетает потому, что в динамической библиотеки плагина нет связи с какой-то из функций qgis или других приложений и библиотек. И связано с тем, что плагин был неверно собран. (Но предупреждаю это мое предположение). Поэтому для тестирования плагина лучше всего собрать qgis самостоятельно из исходников с svn по
этой инструкции.
После сборки я предполагаю, что вы находитесь в директории 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
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 16 ноя 2008, 08:35
Максим Дубинин
все установилось и работает, в целом - отлично! просто отлично, нет слов. Попробовал на тестовом файле, все работает как надо. За исключением бага с 6 точками для второго полинома, который мы сами пока решить не можем.
Пара предложений:
1. расширение World-file хорошо бы автоматически менять
по этой схеме и сделать неизменяемым, смысла хранить его с другим именем чем у растрового файла - нет, по идее, все поле World-file можно заменить на чек-бокс, включить или выключить или например заблокировать возможность изменить сам текст для world-file и убрать кнопку ...
2. в gdalwarp, результат можно создавать с TFW=YES
3. хорошо бы добавить опцию -tps (thin-plate splines)
про интерфейс
- хорошо бы сделать окна Georeferencer и Reference points сворачиваемым (минимизируемыми)
Re: Привязка в QGIS (Исправление плагина Georeferencer)
Добавлено: 17 ноя 2008, 21:56
Lynx
Спасибо, я старался

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