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

подсчитать площади в arcmap по группам

Добавлено: 01 авг 2014, 06:06
кингстон
работаю в arcmap 10.1 в таблице атрибутов выставлено содержание элемента на оцифрованные полигоны ,их порядка 2500. Задаю параметры по которым группирую их через свойства слоя -символы-количество-градуированные цвета. программа красит их погруппам слева выдает параметры по которым сгруппировала.в статистике выдает сумму минимум и максимум. может быть есть функция с помощью которой можно подсчитать площадь каждой группы
Если знаете как это можно сделать подскажите пожалуйста.

Re: подсчитать площади в arcmap по группам

Добавлено: 01 авг 2014, 15:26
Pavel
Вам эту площадь отобразить нужно или для себя?

Re: подсчитать площади в arcmap по группам

Добавлено: 04 авг 2014, 05:23
кингстон
эту площадь мне надо для того, чтобы сделать заключение о том сколько каких групп обеспеченности есть в районе.
мне дали скрипт, с помощью которого эти площади высчитываются и отображаются по группам в таблице содержания но у меня его программа не берет. Выдает ошибку.Еще нашла функцию в самой программе но почему-то она пишет что на эту функцию нет лицензии.

Re: подсчитать площади в arcmap по группам

Добавлено: 04 авг 2014, 10:09
Pavel
Ну, если это не требуется для отображения, то можно попробовать через выборку задать условие. Типа первая группа значение от 1 до 10 (условно), а затем посмотреть статистику по выбранным объектам. Потом вторая группа и так далее.

Re: подсчитать площади в arcmap по группам

Добавлено: 04 авг 2014, 11:34
кингстон
такой вариант я рассматривала ,но у меня в таблице атрибутов 10 элементов ,которые разбиты на 6 классов,причем для каждого класса группировка своя, поэтому выбирать каждый класс и считать будет долго,а с помощью скрипта это выбирается быстро. Только у меня этот скрипт не запускается, я не программист, и нет сейчас связи с тем программистом, который этот скрипт написал

Код: Выделить всё

Function FindLabel ( F_ID], [AREA] )
   m = Array(Array([F_ID]))
   n = Array(Array([AREA]))
   iMxLblSz = 0
   FT = "<UND>"
   LT = "</UND>"
   C_LT = "<CLR red='255' green='255' blue='255'>"
   C_RT = "</CLR>"
   For i = 0 To UBound(m)
      j = m(i)
   lf (Len(j(0)) > iMxLblSz) Then
      iMxLblSz = Len(j(0))
   End If
   Next

   For i = 0 To UBound(n)
      g = n(i)
   lf (Len(g(0)) > iMxLblSz) Then
      iMxLblSz = Len(g(0))
   End lf
   Next

   For i = 0 To UBound(m)
      j = m(i)
      g = n(i)
      k = iMxLblSz - Len(j(0))
      lf (g(0)=9999) Then   
         FindLabel = FindLabel+ j(0)
      Else
         FindLabel = FindLabel+ FT + j(0) + C_LT + String(k, "_") + C_RT + LT + vbNewLine + FormatNumber(g(0), 0, -1, 0, 0)   
      End lf
rem 9999 - код неизмерения, пустое поле
   Next
End Function
программа выдает -выражение содержит ошибку Error 2 on line 4
предполагается наличие "Funktion"
я не программист и нет связи с тем программистом который этот скрипт написал
Может Вы поймете в чем ошибка?
ну если не получится буду считать через "выборку"

Re: подсчитать площади в arcmap по группам

Добавлено: 04 авг 2014, 13:03
tishsh
Есть обходной путь. ArcToolBox/Data Management Tools/Generalization команда Dissolve. В окне Dissolve_Fields выбираются поля для группировки. Ниже в окне Field можно выбрать атрибут с площадью каждого объекта (Shape_Area и тд) и поставить тип статистики sum. В итоге будет новый класс объектов, где каждая группа станет одним объектом и для нее будет посчитана общая площадь.

Re: подсчитать площади в arcmap по группам

Добавлено: 05 авг 2014, 05:37
кингстон
спасибо!!! Подсчитала через ArcToolBox, все получилось. Пока буду пользоваться этим вариантом.