Буфер с выпрямленными углами

Ответить
Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Буфер с выпрямленными углами

Сообщение Филиппов Владислав » 24 май 2012, 09:25

Доброго дня.
Строю буфер с опцией "Выпрямить внешние углы" v.buffer -s --overwrite --verbose input=error@PERMANENT output=buffer type=area distance=100

Если без этой опции, то буфер нормальный.
А с опцией вот что:
buffer_grass.png
картинка
buffer_grass.png (90.17 КБ) 10185 просмотров
buffer_grass1.png
buffer_grass1.png (14.36 КБ) 10181 просмотр
розовые - исходные полигоны
серое - буфер

вот сами исходные данные
data.zip
исходный шейп
(150.27 КБ) 398 скачиваний

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Буфер с выпрямленными углами

Сообщение rhot » 24 май 2012, 09:41

Ошибки топологии в исходных данных есть?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Буфер с выпрямленными углами

Сообщение Филиппов Владислав » 24 май 2012, 09:55

Сначала я обработал шейп-файл в ArcTollbox инструментами Repair geometry и Integrate.

Построение топологии для векторного слоя <road_zu>...
Регистрируются примитивы...
358 примитивов зарегистрировано
12559 узлов зарегистрировано
Построение полигонов...
196 полигонов построено
184 островов создано
Назначаются острова...
Назначаются центроиды...
Количество узлов: 346
Количество примитивов: 358
Количество точек: 0
Количество линий: 0
Количество границ: 202
Количество центроидов: 156
Количество полигонов: 196
Количество островов: 184
Количество полигонов без центроидов: 40

потом добавил центроиды соответствующей командой

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Буфер с выпрямленными углами

Сообщение rhot » 24 май 2012, 10:41

Покажите вывод v.build -e

Например, у меня:

Код: Выделить всё

v.build -e map=v_tax error=e_tax --v
Building topology for vector map <v_tax@L5_20100815>...
Registering primitives...
488284 primitives registered
3176232 vertices registered
Building areas...
 100%
133790 areas built
1559 isles built
Attaching islands...
 100%
Attaching centroids...
 100%
Topology was built
Number of nodes: 225266
Number of primitives: 488284
Number of points: 0
Number of lines: 0
Number of boundaries: 357497
Number of centroids: 130787
Number of areas: 133790
Number of isles: 1559
WARNING: Number of duplicate centroids: 6
Checking for topological errors...
 100%
Intersections: 0
WARNING: Number of redundant holes: 1
Building topology for vector map <e_tax@L5_20100815>...
Registering primitives...
3016 primitives registered
26163 vertices registered
Building areas...
 100%
3009 areas built
2999 isles built
Attaching islands...
 100%
Attaching centroids...
 100%
Topology was built
Number of nodes: 3001
Number of primitives: 3016
Number of points: 0
Number of lines: 0
Number of boundaries: 3010
Number of centroids: 6
Number of areas: 3009
Number of isles: 2999
WARNING: Number of incorrect boundaries: 1
WARNING: Number of centroids outside area: 1
На рисунке - пример вектора ошибок топологии, полученного с помощью v.build
Вложения
121.png
Часть векторного слоя (чёрный - ошибки косячного вектора, жёлтый - граница работ)
121.png (26.61 КБ) 10165 просмотров
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Буфер с выпрямленными углами

Сообщение Филиппов Владислав » 24 май 2012, 11:11

я прошу прошения ибо профан я, но что за ключ такой -e? не могу я найти.
вот что написал GRASS - Извините, флаг <e> неверен
v.build у меня такой v.build --overwrite --verbose map=road_zu@PERMANENT error=error@PERMANENT

Код: Выделить всё

(Thu May 24 15:00:10 2012)                                                      
v.build --overwrite --verbose map=road_zu@PERMANENT error=error@PERMANENT       
Построение топологии для векторного слоя  <road_zu>...
Регистрируются примитивы...
358 примитивов зарегистрировано
12559 узлов зарегистрировано
Построение полигонов...
196 полигонов построено
184 островов создано
Назначаются острова...
Назначаются центроиды...
Топология построена
Количество узлов: 346
Количество примитивов: 358
Количество точек: 0
Количество линий: 0
Количество границ: 202
Количество центроидов: 156
Количество полигонов: 196
Количество островов: 184
Количество полигонов без центроидов: 40

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Буфер с выпрямленными углами

Сообщение rhot » 24 май 2012, 11:22

Упс... в версии 6.4.* такой функционал (ключ -е) не реализован.

Тем не менее, что на карте error@PERMANENT? Ошибки есть?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Буфер с выпрямленными углами

Сообщение Филиппов Владислав » 24 май 2012, 11:28

есть

Код: Выделить всё

екторный слой <error> уже существует и будет перезаписан
Построение топологии для векторного слоя  <error>...
Регистрируются примитивы...
40 примитивов зарегистрировано
473 узлов зарегистрировано
Построение полигонов...
40 полигонов построено
39 островов создано
Назначаются острова...
Назначаются центроиды...
Топология построена
Количество узлов: 39
Количество примитивов: 40
Количество точек: 0
Количество линий: 0
Количество границ: 40
Количество центроидов: 0
Количество полигонов: 40
Количество островов: 39
Количество полигонов без центроидов: 40
(Thu May 24 15:00:11 2012) Операция завершена (0 sec)    
buffer.png
buffer.png (6.52 КБ) 10153 просмотра
чёрным показан слой с ошибками

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Буфер с выпрямленными углами

Сообщение rhot » 24 май 2012, 11:31

Думаю, всё-таки из-за ошибок топологии v.buffer с ключом -s работает некорректно .
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Буфер с выпрямленными углами

Сообщение Филиппов Владислав » 24 май 2012, 12:10

чё делать-то?
:?

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Буфер с выпрямленными углами

Сообщение rhot » 24 май 2012, 12:12

Я бы попробовал исправить ошибки топологии через v.clean
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Буфер с выпрямленными углами

Сообщение Филиппов Владислав » 25 май 2012, 06:41

Проблема решена, но не полностью :)
Использовал OpenJUMP Version 1.5.1 stable rev.2721. (JTS 1.12.0)
JTS rulezz!
Углы у буфера выпрямлены.
buffer1.png
buffer1.png (54.52 КБ) 10106 просмотров

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Буфер с выпрямленными углами

Сообщение Александр Мурый » 30 май 2012, 08:14

Протестировал данные -- никаких заметных ошибок топологии там нет. Тщательно протестировал v.buffer -- с опцией "-s" точно баг. Постараюсь накатать баг-репорт.
Редактор материалов, модератор форума

Ответить

Вернуться в «GRASS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость