Скрипт

0 голосов
спросил 10 Янв, 08 от Shym (5,600 баллов) в категории Программные продукты Esri
Кто может помочь в написании скрипта для определения ближайшего одного населенного пункта (полигон) к очагу пожара (точечный слой)

17 Ответы

0 голосов
ответил 16 Янв, 08 от JGBoBBy (4,940 баллов)

Да можно и сюда выложить)))))

Вдруг кому еще понадобится!
0 голосов
ответил 17 Янв, 08 от 7600702 (3,780 баллов)
см. тут http://forums.esri.com/Thread.asp?c=93&f=983&t=196873

хочется думать, что этот текст Вам поможет больше чем просто код

+ см. фразу
"
In ArcGIS 9.3, the Near tool has been enhanced to support calculations between points, lines and polygons. A new tool, Generate Near Table, will also find the proximity of all features within a search radius and it also supports all simple geometry types
"

когда он там выходит?

0 голосов
ответил 22 Янв, 08 от Shym (5,600 баллов)
А кто может написать порядок действий стандартными функциями
0 голосов
ответил 23 Янв, 08 от geologic (39,860 баллов)
Попробую, хотя подзабыл уже - лучше б вы сразу спросили ;)

Сначала, разумеется, переводите полигоны в линии. Потом открываете таблицу точек пожаров и таблицу линий населенных пунктов, и делаете Spatial Join (умеете?) к таблице пожаров прикрепляются те линии, которые расположены ближе всего к соотвествующим точкам, именно по одному нас. пункту к одному очагу. Дистанция будет написана. Нас. пункт подменяется на его границу, ну это сути операции не меняет, точность определения никак не должна пострадать.

Не знаю, что еще нужно, возможно атрибуты полигонов восстановить. Но вы хоть попробуйте, потом еще спросите.
0 голосов
ответил 23 Янв, 08 от dsavitskiy (10,720 баллов)
А зачем так сложно??? Достаточно сгенерить центроиды для полигонов н.п. и в двух точечных слоях найти ближайшие между слоями точки.
0 голосов
ответил 23 Янв, 08 от Shym (5,600 баллов)
Это в Spatial Join к таблице пожаров прикрепляются линии, которые расположены ближе всего к соотвествующим точкам? Необходимо писать условие? Я пробовал - на выходе пустая таблица
0 голосов
ответил 24 Янв, 08 от geologic (39,860 баллов)
Я ведь не знаю, что именно вы нажимаете, как у вас это происходит, у меня работает... Вы вообще умеете Spatial Join делать? Наверно первый раз. СтОит выучить, это полезная штука, заменяет массу инструментов. Если опишете по шагам, что именно вы делали, то я может смогу помочь. Условие никакое не нужно писать, указываете что мол Spatial, пространственная связь и все. Там где Join - не в тулбоксе разумеется, в обычном меню.

2Denis: центроиды конечно подойдут, только будет ошибка на пол-ширины полигона в измерений расстояний, ну а по принадлежности наверно ошибки не будет, если НЕТУ близрасположенных, слитных наспунктов - это надо бы проверить заране . Вообще все операции гео-сравнения, поиска соседей и т.п. можно проводить и между центроидами, но это экспресс-методика. И "сгенерить центроиды" точно такая же по сложности операция, как и "сгенерить линии" - пара нажатий кнопок :) Другое дело, что работа с линиями МЫСЛЕННО кажется сложной, дело привычки, наверное.

Можно и еще один экспресс-способ предложить - разбивать полигоны не на линии, а на вертексы. Врать это будет намного меньше, чем с центроидами (если полигоны, конечно, детально "обточкованы") :)
    
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...