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

Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 19 ноя 2008, 12:58
Игорь
Задача:
Для выделенного в оглавлении вида полигона требуется построить сеть точек с одинаковым расстоянием между ними. Расстояние должно вводится пользователем. Как это можно сделать и каков алгоритм?

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 19 ноя 2008, 13:47
gis
Что такое "оглавление вида"?

1) поищите среди расширений на сайте ESRI, Дата+
2) посмотрите http://www.ian-ko.com/et/etdemo/edit_tools_demo.htm - может там еьтс то что подойдет
3) Пишется скрипт на авеню, в принципе не сложный. Алгоритм к примеру следующий:
- получаете экстент полигона и его крайние координаты соответственно (это прямоугольник)
- с помощью цикла создаете точки через заданный интервал в пределах экстента (т.е. крайних координат)
- вставляете в цикл проверку - если точка не попадает собственно в сам полигон, значит она не создается.

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 19 ноя 2008, 17:17
lalex
Много раз было. Ищите fishnet для AV, есть в коллекции ArcScripts. в АМ он встроенный.

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 19 ноя 2008, 22:41
Игорь
Хочу уточнить задачу.
Все обнаруженные мной способы построения сетей линейных, полигональных и точечных используют алгоритм построения по квадратам или ромбам. Задача же максимально плотно заполнить полигон от заданной точки, чтобы расстояние между точками было одинаковым. На бумаге решить ее элементарно - от точки строятся равносторонние треугольники, вертексы в которых есть равноудаленные точки, равномерно заполянющие пространство полигона с максимальной плотностью. Либо вокруг имеющейся точки строится окружность, а остальное пространство полигона заполянется такими же по площади кругами от данного круга по часовой стрелке например. Реализовано ли подобное в ArcView, а если нет, то можно ли реализовать. Сам я с Avenu не дружу, поэтому написать подобный скрипт не способен.

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 19 ноя 2008, 23:20
Максим Дубинин
fishnet не пойдет, в сетке с квадратами, прямоугольниками не выполняется условие равности расстояний между ближайшими центроидами.

Вот тут можно скачать то, что нужно, строит треугольники, гексагоны. Единственно, можно доделать чтобы строилось от точки, это не сложно. Я бы решал это в два этапа, сначала строил сетку для полигона, а потом, если нужно от точки, смещал бы сетку к нужной точке.

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 20 ноя 2008, 01:33
gis
Так ромбы и дают те самые равносторонние треугольники.

А саму задачу, для чего это нужно нельзя осветить? А то как-то непонятно, то точки нужны то окружности... Может так лучше присоветовать удастся.
Это что-от связаное с Лешем, Кристаллером и прочими?
Или это полигоны Воронного?

Авеню - не сложный язык, я думаю за неделю с нуля знаний по авеню запросто можно написать подобный скрипт :) Эх, елси бы его в ArcGIS портировали - цены не было бы ей :)

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 20 ноя 2008, 02:15
Игорь
Sim, огромнейшее тебе спасибо! Экстеншен решает эту задачу. Причем здесь даже больше полезных функций, чем я мог бы ожидать. Да здравствует Jeff Jenness!!!

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 20 ноя 2008, 18:48
Игорь
Задача экологическая. Зная параметры распределения точек в одном полигоне (будь то деревья, норы грызунов или гнезда птиц) при условии нормальности распределения экстраполировать это на соседний полигон - например территорию, на которой предполагается рубка или иное нарушение. А точка, круг или гексагон, было без разницы, т.к. для круга и гексагона можно построить центроиды и будет как раз нужная система точек.

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 20 ноя 2008, 23:56
gis
Вы на аркскрипт (на сайте ESRI) посмотрите. Там есть несколько расширений специализированных для эколого-биологического анализа. Может там есть уже комплексные инструменты подходящие Вам.

[Сообщение с мобильного устройства] Изображение

Re: Построить сеть точек с одинаковым расстоянием между ними

Добавлено: 21 ноя 2008, 10:18
gis
Для ArcGIS правда, но может Вам будут полезны эти расширения - у некоторых могут быть аналоги для тройки - надо на сайтах авторов смотреть или там же на арксрипт.

http://arcscripts.esri.com/details.asp?dbid=15339 (русский автор - вроде на русском этот вариант)
http://arcscripts.esri.com/details.asp?dbid=15481
http://arcscripts.esri.com/details.asp?dbid=15379
http://code.env.duke.edu/projects/mget
http://arcscripts.esri.com/details.asp?dbid=15216
http://www.spatialecology.com/htools/

Вот это (вроде как по описанию) что-то подобное делает
http://arcscripts.esri.com/details.asp?dbid=15309