"Щели" в шейп-файлах

0 голосов
спросил 30 Авг, 03 от Гость (210,080 баллов) в категории Программные продукты Esri

Ситуация такова: при получении шейп-файла из формата DXF в первом появляются мелчайшие 0,000000... м. щели внутри полигонов. Операция "интеграция" в данном случае не помогает, а даже наоборот создаёт новые "щели". При перегоне шейп-файла в покрытие щели, конечно, пропадают, но при обратной конвертации (покрытие в шейп-файл) "щели" появляются вновь. 

Проблема в том, что для работы наших скриптов под ArcMap-ArcGis 8.3 нужны именно нормальные шейп-файлы без "щелей", иначе появляется ошибка, вызванная неправильной геометрией шейп-файла. Заранее спасибо!

7 Ответы

0 голосов
ответил 11 Сен, 03 от Гость (210,080 баллов)
Возможен такой выход. Попробуйте создать просто полигональный шейп-файл, а затем выполните с помощью мастера геообработки операцию "CLIP" или "Intersect" над проблемным файлом. В результате вы получите новый полигональный шейп-файл, но с атрибутами и формой проблемного, а поскольку щели очень мелкие, то ВОЗМОЖНО (у меня самого никогда подобных проблем не было) в новом шейп-файле их не будет.
0 голосов
ответил 11 Сен, 03 от Grigoriy (127,020 баллов)
Вышлите Ваш проблемный файл на почтовый адрес - попробуем разобраться.
0 голосов
ответил 11 Сен, 03 от geologic (39,860 баллов)

Возможно, дело в том, что шейп-файл "понимает" координаты до четвертого знака, хотя сам ArcView может больше. Я с такой проблемой сталкивался при создании координатной полигональной сетки - положение углов зависит от того, каким путем они нарисованы. Если они сделаны через графику, то одно, через файл dbf - другое, через ввод координат в шейп - третье.  (возможно, при вводе через Автокад - четвертое, через Excel - пятое). Попробуйте, находясь в автокаде, округлить координаты до четвертого знака.

Странно, что при изготовлении шейп-файла из покрытия этот эффект возвращается. Это возможно только в том случае, если вы не делали топологично корректного покрытия, ведь при строительстве топологии именно такие ошибки должны быть устранены. Возможно, вам стоит почистить и как следует проверить топологию (ну хотя бы посчитать количество линий в покрытии, чтоб не было двойным. Это второй вариант.

0 голосов
ответил 12 Сен, 03 от Гость (210,080 баллов)

Попробуйте создать просто полигональный шейп-файл, а затем выполните с помощью мастера геообработки операцию "CLIP" или "Intersect" над проблемным файлом. QUOTE]

Мы попробовали этот вариант. Спасибо за него! Правда он срабатывает не во всех случаях, хотя часть файлов нам таким образом удалось исправить.

0 голосов
ответил 12 Сен, 03 от Гость (210,080 баллов)

----Возможно, дело в том, что шейп-файл "понимает" координаты до четвертого знака, хотя сам ArcView может больше. ----

Это было первой мыслью, которая пришла мне в голову, хотя по-моему подобное ограничение касается не только шейпа, но и всего формата с плавающей точкой. Пока что мы пользуемся построение эдакой квазитопологии - извлекаем из шейпа узлы и пути между ними и храним в таком виде информацию о полигонах на время их обработки. Тут все зависит от качества исходного материала - если в шейп-файле уже есть ошибки, то методы коклассов ArcObjects выбрасывают ошибки и мы возвращаемя к тому с чего начали.

---Странно, что при изготовлении шейп-файла из покрытия этот эффект возвращается. Это возможно только в том случае, если вы не делали топологично корректного покрытия, ведь при строительстве топологии именно такие ошибки должны быть устранены. ---

Ага. Но, во-первых, ошибка при построениии покрытия - "невозможно произвести операцию Clean". А, во-вторых, операция Clean не приносит желаемого результата.

---Возможно, вам стоит почистить и как следует проверить топологию (ну хотя бы посчитать количество линий в покрытии, чтоб не было двойным. Это второй вариант.---

С идентификацие "щелей " проблем нет. Нам нужно ликвидировать источник их появления. Оптимально - иметь инструмент, который при своем выполнении гарантированно производит интеграцию, а в худшем нам придется отслеживать свою квазитопологию от начала процесса обработки и до конца

 

 

 

0 голосов
ответил 16 Сен, 03 от Grigoriy (127,020 баллов)

Вышлите файл на адрес grigory@dataplus.dol.ru

0 голосов
ответил 08 Окт, 03 от geologic (39,860 баллов)

2Yura:

Понял, что вы глубоко в это въехали. Такая же ситуация у нас сейчас с файлами из MapInfo. Изначально топологичные (если это применимо к MI) полигоны в ArcView приходят с щелями. Однако, после полной перестройки (полигоны-линии-чистка-полигоны) эта проблема Исчезает (вместе с некоторыми полигонами image). Чистку и сборку полигонов мы делаем в ArcView, поэтому проблемы с clean в ArcMap не могу прокомментировать.

Вообще глюков при перегонке из других программ хватает, и вряд ли тут виноват ESRI. Обычно тут только детективные методы помогают. Например, только сегодня пришлось расследовать сногсшибательное поведение некоторых полигонов (MI-origined). При некотором положении рамки вида некоторые полигоны инвертируются, т.е. забывают где у них нутрь, а где наружа. И при печати выходит где поле там лес и наоборот. О так от. После перестройки в Arс... все заработало как надо.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...