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

Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 21 ноя 2008, 06:34
updates-bot
Обсуждение статьи "Нахождение расстояний до ближайших точек в Arcview GIS"

http://gis-lab.info/qa/find-nearest.html

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 22 ноя 2008, 03:17
Rapt
Ой как классно! А я даже и не подозревала что это можно автоматизировать. Вот бы годом раньше такое здесь появилось.
А можно на базе этого экстеншена сделать чтобы он считал ближайшие расстояния между точками из разных тем?

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 22 ноя 2008, 07:27
Максим Дубинин
можно
надо, чтобы считались расстояния между точками не одной темы, а двух тем? то есть, берется точка из темы1 и считается расстояние до 10 ближайших точек из темы2?

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 22 ноя 2008, 21:50
Rapt
Да, именно так и требуется.

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 22 ноя 2008, 21:59
Максим Дубинин
готово, обновление можно скачать со страницы

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 24 ноя 2008, 15:55
Rapt
Sim, спасибо огромное.
Но по ходу работы возник еще один вопрос???

При расчете дистанции между ближайшими соседями показатель рассчитывается для каждой точки. Соответственно возможно дублирование дистанций для пары точек. Например (см. рисунок), мы имеем 5 близко расположенные друг к другу точек (18, 19, 20, 33 и 14), расстояние между которыми 1, 2.5, 2 и 1.5 км. Ближайшим соседом для точки 18 будет точка 19, удаленная на 1 км, как собственно для точки 19 – точка 18. Соответственно для точки 20, ближайшим соседом будет точка 33, удаленная на 2 км, для точки 33 – 14, удаленная на 1.5 км и для точки 14 – 33. Таким образом, мы имеем 5 точек, в атрибутивную таблицу которых записаны 5 показателей (для каждой точки свой показатель расстояния до ближайшего соседа) – 1, 1, 2, 1.5 и 1.5 км, хотя по факту на местности мы имеем 3 дистанции 1, 2 и 1.5 км. В первом случае средняя в выборке будет (n=5) 1.4±0.42, во втором – (n=3) 1.5±0.5.

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

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 25 ноя 2008, 07:07
Максим Дубинин
подумал, самое простое, сделать перебором влоб, алгоритм типа такого:
1. взять первую запись
2. взять первую пару, например 0-1
3. взять вторую цифру в паре (1) и поискать в записи с этим номером по всем полям (которых 10) обратную пару, соответственно 1-0
4. если найдена - обнулить соответствующую дистанцию
5. вернуться к 2 и взять след. пару ...
и т.п.
годится результат таблица в которой дубликаты расстояний просто обнулены?

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 25 ноя 2008, 16:39
Rapt
Добрый вечер Sim!
Да такой результат годится.

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 08 дек 2008, 11:02
Lidia_
:?: Как можно сделать ту же операцию (нахождение расстояний до ближайших точек) в ArcGIS9.2?

Re: Нахождение расстояний до ближайших точек в Arcview GIS

Добавлено: 14 фев 2010, 17:42
Quércus
Создал точечную тему через "Добавить тему Событие...", когда попытался через модуль посчитать выбивает "Поле dist1 не в виртуальной таблице (vtab)" или "AVArray: Индекс 5 в не интервала 0..4" Можно что нибудь сделать??? Спасибки за любую инф. или где можно поискать....?