Було: оцифрована векторна карта по растровій підкладці.
У подальшій роботі виникла потреба дооцифрувати ще один лист карти, який знаходиться нижче. Растр доточили в фотошопі/GIMPi, і розширену карту імпортували в грасс. Далі:
# Задаємо новий регіон для щойно імпортованої карти
g.region rast=назва_імпортованої_растрової_карти (Н: g.region -s rast=glyboka@PERMANENT)
(галочка s - параметр (-s) означає, що новий регіон буде встановлений по дефолту).
Включаємо відображення векторної карти і бачимо, що результати кількадібного клацання мишею (векторна карта себто) наклалися на зовсім іншу ділянку карти, ту, яку щойно доточили. Оскільки так і мало бути (ми працюємо в даному випадку в простих декартових координатах), необхідно "посунути" цілу векторну карту по вертикалі вверх на таку кількість пікселів, які додалися за рахунок добавленого листа карти. Використовуємо модуль v.transform.
Обчислення величини зсуву векторної карти: задача досить таки примітивна (таки примітивна ;)), але щоб довго не думати і уявляти, що вийде, поступимо старим дідівським способом - роби як я. Алгоритм такий: маємо "стару" карту з розмірами (X1,Y1) і розширену карту з розмірами (X2,Y2): dY=Y2-Y1 (формула справедлива для растру, який доточений знизу). Якщо растр доточується зверху, то лишніх рухів робити не потрібно.
Далі:
v.transform input=назва_поточної_векторної_карти output=назва_зміщеної_векторної_карти yshift=число_пікселів_на_які_треба_посунути_векторну_карту
Ось і все. Зсуви можуть бути і по вісі Х та Z, окрім цього можливе масштабування різного роду і повороти. Ось такий він v.transform.
А тепер про глюки.
Все прекрасно зсовує, масштабує, але при спробі векторизувати, дає набір зигзагоподібних ліній, проблема детально описана в http://gis-lab.info/forum/viewtopic.php?f=29&t=7871&p=45296#p45296.
Лікується це лише використанням v.digit, при цьому в грасі 6.4.0 необхідно переключати дефолтний інтерфейс на tcl/tk. Спроби маніпулювання векторною картою, як ото експорт, потім зворотній імпорт - нічого не дають. Таки так, це глюк інтерфейсу wxPython.
Обновлення на wheezy дозволило покласти GRASS 6.4.1. А от запрацювати без копняка воно не захотіло: GRASS 6.4.1 (gisdemo_ncspm):~ > g.list: relocation error:
/usr/lib/libgdal1.7.0.so.1: symbol __cxa_pure_virtual, version
libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time
reference
g.list: relocation error: /usr/lib/libgdal1.7.0.so.1: symbol
__cxa_pure_virtual, version libmysqlclient_16 not defined in file
libmysqlclient.so.16 with link time reference ....
і так далі. Доклав я вручну через dpkg -i xxxxx.deb отакі пакунки, як mysql-common all 5.1.57-1, libmysqlclient-dev amd64 5.1.57-1, libmysqlclient16 amd64 5.1.57-1, причому оці три зарази довелося брати з анстейбла. Втішився, а коли запустив граса, обламався, модуль векторизації пітоновський там відсутній, допилюють його. І 3d візуалізації немає. Добре, що є nviz.
І запускати v.digit можна з оболонки пітона (тим часом - meantime: Reason: No module named grass6_wxvdigit
Note that the wxGUI's vector digitizer is currently disabled
(hopefully this will be fixed soon). Please keep an eye out
for updated versions of GRASS. In the meantime you can use
"v.digit" from the Develop Vector menu. ). І головне в v.digit - відсутність явних глюків. Для полегшення роботи наводжу рядок команди, яка запускає векторизацію із растровою підкладкою (оскільки з наскоку розібратися як її відобразити - задача ще та). Тепер чекаємо на поновлення граса, бо таки в wxPython працювати зручніше.
команда в терміналі:
v.digit kolomna bgcmd="d.rast kolomna", де після вдігіт йде назва векторної карти з поточного набору, а після командии - bgcmd="d.rast kolomna" йде запит на відображення на моніторі расторової карти. В даному прикладі назви векторної і растрової карт збігаються, але це не шкодить, воно само собі знає, де вектор де растр.
Якщо вибрати оце все через меню пітона, то на вкладці optional в рядочку bgcmd набираємо d.rast імя_карти. І вуаля.
Все настільки просто, наскільки і непросто.
Колись давно, я, як користувач віндовс світу, перейшов на лінукс і необхідно було зразу оцифрувати дещо, то витратив просто купу часу, поки все це уяснив. Перечитав гору мануалів, а отакого простого пояснення як оце зараз написав, не знайшов ніде ;(. Тому користуйтеся, може це комусь допоможе.
10.08.2011.
Знайшов таки спосіб працювати з відтрансформованою векторною картою без обхідних шляхів.
1. v.out.ogr - перша вкладка: імя карти з глюками після трансформації, імя карти, що буде експортуватися (при цьому процесі скриті дані, які оті глюки викликають, відкидаються).
2. Вкладка input - відмічаємо об’єкти, що експортуватимуться.
3. Вкладка Creation - відмічаємо "проміжний" формат, куди експортуємо - це mif. Всі інші поля не заповнюємо.
4. Запускаємо модуль. Дані конвертуються. Де вони опиняються ? От і є нагода повивчати трохи Лінукс ;). Хто знає, той зразу знайде і навіть шукати не буде ;).
5. Модуль v.in.ogr - перша вкладка: огрдатасорснейм, імя карти, яке присвоюється карті, що імпортується, нагадую, що при цьому дані, які викликають глюки, відкидаються.
2. Вкладка input - відмічаємо об’єкти, що експортуватимуться.
3. Запускаємо модуль - Wir haben sсhon fertig gemacht.
Все редагується без глюків ;)