Дублирующиеся точки, как с этим бороться

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

Имеется точечный слой, в котором часть точек дублируется, т.е. лежат одна на другой. Как я понимаю Аркинфо не может провести внутрислоевую топологию в точечном слое (пытался это сделать, но безрезультатно).

Пробовал скрипт с сайта ГИС-ЛАБ, но он просто обозначает дубли, а не удаляет их. Есть ли какой-то способ борьбы с этим, и, если он вам известен, подскажите пожалуйста. 

9 Ответы

0 голосов
ответил 01 Фев, 05 от Leo_SS (6,820 баллов)
Скрипт (не знаю какой) работает вполне корректно, предоставляя Вам решать, что удалять, а что нет. Было бы хуже для Вас, если бы он удалял оба объекта, или один (скорее первый по номерам записи) "на свой взгляд". Такие скрипты то же встречаются - удаляют не предупреждая.
0 голосов
ответил 01 Фев, 05 от Гость (210,080 баллов)

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

Кстати, неужели Аркинфо действительно не может провести такую простую операцию, или я что-то не так делал?

0 голосов
ответил 01 Фев, 05 от Vasiliy2 (8,240 баллов)
Поступи по рабоче-крестьянски
1) Добавь координаты в атрибутику (хотябы addxycoo.ave из инсталяции)
2) Слей оба пля с коорд. в одно текстовое
3) Сделай "Резюме" по этому полю добавив обязательно поле Шейп и какие тебе еще надо поля
В итоге получишь новый шейп без повторов да еще с инфо - сколько было точек в каждой координате
0 голосов
ответил 01 Фев, 05 от Гость (210,080 баллов)

Василию: Я тут примерно до этого же сам допер. Тока делал совсем извращенно - через Эксель и обратно (просто с функцией "Резюме" практически не знаком). Спасибо за подмогу, Ваш способ на порядок интереснее.

P.S. И, все-таки, неужели в Аркинфе нету такого типа топологии?

0 голосов
ответил 01 Фев, 05 от Гость (210,080 баллов)
И еще. Я когда сливаю поля с координатами в одно теряю знаки после запятой. Хотя, предварительно преобразую и столбец-Х и столбец-У в символьные. И сливаю их в символьное поле. По идее Арквью должна видеть точку (разделитель десятичный) как и любой другой знак, однако она округляет координату до целого числа
0 голосов
ответил 01 Фев, 05 от PAS (2,860 баллов)
Попробуй вместо
 
str = x.AsString+y.AsString
использовать
 
str = x.SetFormat("d.ddd").AsString+y.SetFormat("d.ddd").AsString
(3 знака после запятой)
0 голосов
ответил 03 Фев, 05 от Гость (210,080 баллов)

Метод Паса отлично сработал, спасибо за помощь!

Кстати, мы тут пока возились с Экселем и Арквью заметили, что Эксель может вносить изменения в арквьюшные таблицы (дбф), да же когда те находятся в Арквью в режиме редактирования. Казалось бы, если таблица находится в режиме редактирования в одной программе - другая должна иметь к ней доступ только в режиме "для чтения", но в случае с Экселем и Арквью этого не происходит. Мы нашли это достаточно удобным, но пока не придумали где это можно применить))

0 голосов
ответил 03 Фев, 05 от Vasiliy2 (8,240 баллов)
Арквью работает с копией таблицы и только при сохранении пишет в оригинал.
Если со стороны измените количество записей или структуру то увы...
 
А вообще есть такой финт: Создаете тему Событие и наносите по координатам из таблицы точки. Сохраняете проект. Теперь в эту таблицу можно записывать результаты любых выборок из Эксел (с той же структурой) и при открытии проекта у вас всегда свежак-нанесены выбранные объекты Wink
0 голосов
ответил 03 Фев, 05 от Ilya (10,800 баллов)

Простой скрипт позволяет отстроить заново тему Событие после изменения запроса в Access. Данные меняются почти на лету. В свое время наш Геолком был в восторге. image

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