Страница 1 из 1

Восстановление векторных данных после глюка в GRASS

Добавлено: 08 окт 2011, 16:59
eucrariano
Здравствуйте! Несколько недель работал в собранном из исходников GRASS 7.0.svn48476 (2011) (WxPython). Все работало и очень даже хорошо. На мелкие глючки можно было не обращать внимания. А вот сегодня во время оцифровки случился казус: захотел подвинуть небольшой контур на пару пикселей - подвинув, обнаружил, что сам он при сдвиге продублировался, а все оцифрованные с большим трудом горизонтали пропали. Осталось каких-то пару огрызков. За последние несколько ночей много работал, оцифровал примерно четверть от предыдущего об’ема работ (набор Permanent - предыдущий набор, мапсет squeeze_27_09_11 - текущий), в совокупности это составило 376 линий (состоящих из ~37000 точек). Поскольку исходная карта - при нормальном увеличении для оцифровки - просто россыпь пикселов, то откат на предыдущую фазу в перманент (~26000 точек), - просто приговор моим глазам. На первый взгляд признаки возможности восстановления есть. В атрибутивной таблице пока-что сохранены все 376 записей с z-координатой. Но все это не отображается ;(. Все мои манипуляции и танцы с бубном ни к чему не привели. Может кто подскажет, что можно сделать. Спасибо.

P.S. Прилагаю проект без растровой карты, поскольку сегодняшние мои 115 кбит слишком "задумчивы".

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 08 окт 2011, 17:51
Александр Мурый
Скачал, посмотрел.

У векторов в обоих наборах оказалась повреждена топология. При попытке получить информацию командой типа v.info vector_name вылезла такая ошибка:
ERROR: Topology format version 5.1 is not supported by this release. Try to rebuild topology or upgrade GRASS.
Я перестроил топологию векторов командой типа v.build vector_name, теперь данные распознаются, атрибуты читаются. Не уверен насчёт количества линий, у меня в вект. карте "kolomna" их получилось 228.

Советы, если можно:
-- делать бэкапы со сделанной работой (любым удобным методом, я обычно просто сохраняю области целиком или отдельные наборы в *.tar.gz)
-- НЕ пользоваться для оцифровки нестабильной седьмой версией + нестабильным wxPython, 6.4.* + v.digit вполне справится с обычными задачами оцифровки. Или оцифровывать в QGIS, например, а уже для обработки перебрасывать в GRASS.

Прикладываю архив назад:
Kolomna_edit.tar.gz
(3.15 МБ) 832 скачивания

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 08 окт 2011, 18:21
eucrariano
Спасибо amuriy за Вашу оперативность. К сожалению, данные с Permanent устаревшие ;(. А "подбились" данные именно в наборе squeeze_27_09_11 - карта kolomna_trunk - на дисплее только несколько "осколков" линий, хотя в таблице присутствуют все 376 записей. Вот с восстановлением именно этой карты проблемы (хотя да - при импорте в 7 грасс и назад ребилд приходится делать). Ну и основная причина работы в 7 грассе - это реально работающая 3d визуализация прямо из грасса, минуя nviz - мне важно именно быстро показать то что надо, без дополнительных манипуляций через nviz хотя, конечно, для более "навороченных" визуализаций" он функциональнее.

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 08 окт 2011, 20:48
Александр Мурый
Так, по очереди.

-- Т.к. редактировать можно вектора только из текущего набора, то в результате ошибки данные из набора PERMANENT пострадать не могли
--
На первый взгляд признаки возможности восстановления есть. В атрибутивной таблице пока-что сохранены все 376 записей с z-координатой.
Как известно, сами вектора и их атрибуты в GRASS разнесены -- геометрия хранится в спец. двоичных файлах, атрибуты либо в DBF, либо в нормальных БД. Наличие атрибутивной таблицы, даже поключённой к вектору, абсолютно не значит, что геометрия целая.

А вот размер данных настораживает -- файл, содержащий координаты вектора (squeeze_27_09_11/vector/kolomna_trunk/coor), весит (это при 3-х линиях!) аж 4.2М. Но он бинарный, и как вытащить оттуда координаты, я не знаю.
--
основная причина работы в 7 грассе - это реально работающая 3d визуализация прямо из грасса, минуя nviz - мне важно именно быстро показать то что надо, без дополнительных манипуляций через nviz хотя, конечно, для более "навороченных" визуализаций" он функциональнее.
Имеется в виду WxNviz? Так это просто попытка замены старого NVIZ в wxGUI, не более того. В окне Tcl/Tk есть кнопочка, при нажатии которой запускается NVIZ со всеми активными слоями. По-любому, визуализация в GRASS "минуя NVIZ" происходить никак не может (WxNviz просто другой интерфейс).

-- для более "навороченных" визуализаций" -- однозначно Paraview, VisIt и прочие там VTK.

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 08 окт 2011, 22:29
eucrariano
Самое печальное, что файл данных есть, а доступа нет. При экспорте и других манипуляциях эти три линии только и остаются ;(.
Жаль, много работы, много времени...
Спасибо за участие, буду переделывать, как соберусь с мыслями.

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 08 окт 2011, 22:41
Александр Мурый
Покопался ещё. Большой "coor"-файл без наличия соотв-х ему файлов "cidx" и "topo" (индексы и топология) бесполезен. А эти файлы весят слишком мало для такого "coor".
Так что, увы, сделать действ-но ничего нельзя.

P.S. для GRASS такие глюки --- это очень странное поведение, объяснимое только ошибками wxGUI.

P.P.S. а почему бы не исп-ть для векторизации EasyTrace 7.99 ? Низкое качество растра?

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 08 окт 2011, 23:57
eucrariano
Да, грешу на wxGUI. Вероятно он "виноват" и в случайном смещении целых линий по одной из координат при достаточно больших об’емах векторов (при ~более 20 тыс. точек такое наблюдаю часто) на 2-3 пикселя. Кстати такое вот безобразие и решил подправить. Что из этого вышло - вот и решаем сейчас. Бывает, глупость сделаешь и возврат не помогает. Тогда просто выходишь из режима редактирования без подтверждения сохранения - и возвращаешься таким образом в работе на пару минут назад. Так было и в этот раз: подвинул контур на пару пикселов, а тут смотрю, он то подвинулся, а дубликат остался на месте, при этом все остальные линии пропали. Нажатие кнопки возврата не помогло. Вышел без сохранения, перезагрузил Грасс - а на дисплее только пара линий. Вышел из грасса, сделал страховую копию набора, потанцевал с бубном, ну, как обычно; решил обратится за помощью. Обидно, что так вышло. Однозначно глюк wxpythona. А ведь зарекался уже ;(.

Растр действительно плох. Фрагмент во вложении. А вот в других работах использую Изитрейс, и очень даже неплохо получается иногда, смотря какой исходный растр.

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 09 окт 2011, 09:30
Александр Мурый
Картинки не видно, видимо, не присоединилась нормально. Какие-нибудь методы улучшения растра пробовались? В ET или без него (типа размытие с повышением контрастности и т.п.)

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 09 окт 2011, 10:47
eucrariano
«Не было бы счастья, да несчастье помогло…»
Поскольку проект начинался больше года назад, тогдашние пробы с Easytrace'ом были неудачными, умения не хватало. И вот теперь, после Вашего высказывания, подумал: почему бы и нет - и результат радует. Пробежавшись по-быстрому по фрагменту растра в изитрейсе, удалось "вытащить" большинство изолиний, чего достаточно для полуавтомата (что уже само по себе большой позитив), а немного поигравшись (увеличив размер растра и т.д.), думаю можно будет добиться успехов и в автовекторизации. Результат во вложении.

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 09 окт 2011, 11:09
Александр Мурый
Отлично, что ET помог. Для подобных задач, конечно, стоит освоить ET (это и самому себе я говорю, т.к. тоже не силён в нём пока, а с топокартами общаюсь постоянно).

Прикреплённые тифы опять не видны. Странно, обычно с приложенными PNG или JPEG такого не случается.

P.S. пож-та, не надо со мной на "Вы", меня это слегка смущает :roll: (нормально воспринимается только в официальной до ужаса переписке, при упоминаниях клиента в рекламе с целью повысить его безнадёжно низкое ЧСВ и фразах типа "Вы свинья, батенька" :) ) А здесь вроде все свои..

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 09 окт 2011, 11:35
eucrariano
Действительно странно получается с тифками. Причем "приготовлены" они были один в ЕТ, другой в фотошопе, а самые первые варианты в гимпе. Прикрепляю jpg.

Ну а по поводу "Вы" - ты: непривычно, конечно. Ну давайТе на "ты", так лучше будет. тем более разрыв в годах небольшой, люди одного поколения вроде-бы. Договорились?

Re: Восстановление векторных данных после глюка в GRASS

Добавлено: 09 окт 2011, 12:10
Александр Мурый
eucrariano писал(а):Ну давайТе на "ты", так лучше будет. Договорились?
Ок :)
Попробовал поприсоединять в сообщение разные тифы --- никакие не хотят показываться.. Форум их не переваривает.