Skip To Content

Суммарная статистика

Краткая информация

Вычисляет суммарную статистику для полей в таблице.

Использование

  • Выходная таблица будет состоять из полей, содержащих результат статистической операции.

  • С этим инструментом доступны следующие статистические операции: Сумма, Среднее, Максимум, Минимум, Диапазон, Среднеквадратическое отклонение, Количество, Первое, Последнее, Медиана и Дисперсия.

  • Поле будет создано для каждого типа статистики с использованием следующих правил именования: SUM_<field>, MEAN_<field>, MIN_<field>, MAX_<field>, RANGE_<field>, STD_<field>, COUNT_<field>, FIRST_<field>, LAST_<field>, MEDIAN_<field>, VARIANCE_<field> (где <field> является именем входного поля, для которого вычисляется статистика). Имя поля сокращается до 10 символов, если выходная таблица является таблицей dBASE.

  • Если определено Поле комбинаций, статистика будет рассчитана отдельно для каждого уникального значения атрибута. Выходная таблица будет содержать только одну запись, если не определено Поле комбинаций. Если поле определено, для каждого значения Поля комбинаций будет одна запись.

  • Пустые значения не включаются в расчет статистики. Например, AVERAGE (среднее значение) – 10, 5, а NULL (пустое значение) – 7,5 ((10+5)/2). Инструмент COUNT возвращает количество значений, включенных в статистический расчет. В данном случае это 2.

  • В параметре Поля статистики кнопка Добавить поле используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен или если не существует его производных данных, параметр Поля статистики не может быть заполнен именами поля. Кнопка Добавить поле позволяет добавлять нужное поле или поля, и вы можете закрыть диалоговое окно Суммарная статистика и продолжить построение модели.

  • При использовании слоев только выбранные в текущий момент пространственные объекты используются для вычисления статистики.

Синтаксис

Statistics_analysis (in_table, out_table, {statistics_fields}, {case_field})
ПараметрОбъяснениеТип данных
in_table

Входная таблица, содержащая поля, для которых требуется вычислить статистику. В качестве входных данных может использоваться таблица INFO, таблица dBASE, таблица OLE DB, таблица VPF или класс пространственных объектов.

Table View; Raster Layer
out_table

Выходная таблица dBASE или таблица базы данных, которая будет содержать вычисленную статистику.

Table
statistics_fields
[[field, {statistic_type}],...]
(Дополнительный)

Числовое поле, содержащее значения атрибута, для которого будет вычислен определенный статистический показатель. Могут быть заданы различные комбинации статистических показателей и полей. Пустые значения не включаются в расчет статистики.

Текстовые поля атрибутов могут быть суммированы с помощью первой или последней статистики. Числовые поля атрибутов могут быть суммированы с помощью любой статистики.

Доступны следующие типы статистики:

  • SUM – Вычисляет суммарное значение атрибута в заданном поле.
  • MEAN – Вычисляет среднее арифметическое для указанного поля.
  • MIN – Находит наименьшее значение для всех записей заданного поля.
  • MAX – находит максимальное среди всех значений данного поля.
  • RANGE – вычисляет диапазон значений (от максимального до минимального) для конкретного поля.
  • STD – Вычисляет значение среднеквадратичного отклонения для значений данного поля.
  • COUNT – Определяет количество значений, участвующих в статистических вычислениях. Пересчитываются все значения, исключая пустые значения. Для того, чтобы определить количество пустых значений в поле, вычислите количество значений в этом поле, затем вычислите количество значений в каком-нибудь другом поле, которое не содержит пустых значений (например OID), а затем вычислите их разность.
  • FIRST – определяет первую запись входного поля и записывает это значение.
  • LAST – определяет последнюю запись входного поля и записывает это значение.
  • MEDIAN – вычисляет медиану всех записей указанного поля.
  • VARIANCE – вычисляет дисперсию по значениямй указанного поля.
Value Table
case_field
[case_field,...]
(Дополнительный)

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

Field

Пример кода

Statistics, пример (окно Python)

Пример скрипта Python для использования инструмента Statistics в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.Statistics_analysis("futrds", "C:/output/output.gdb/stats", [["Shape_Length", "SUM"]], "NM")
Statistics, пример 2 (автономный скрипт)

Пример вычисления площади полигонов растительности в пределах 150 футов от главных дорог.

# Description: Summarize the vegetation by area within 150 feet of major roads
 
# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data"
 
# Set local variables
inRoads = "majorrds.shp"
outBuffer = "C:/output/output.gdb/buffer_out"
bufferDistance = "250 feet"
inVegetation = "Habitat_Analysis.gdb/vegtype"
outClip = "C:/output/output.gdb/clip_out"
joinField = "HOLLAND95"
joinTable = "c:/data/vegtable.dbf"
joinedField = "HABITAT"
outStatsTable = "C:/output/output.gdb/stats_out"
statsFields = [["Shape_Area", "SUM"]]
 
# Execute Buffer to get a buffer of major roads
arcpy.Buffer_analysis(inRoads, outBuffer, bufferDistance, dissolve_option="ALL")
 
# Execute Clip using the buffer output to get a clipped feature class
#  of vegetation
arcpy.Clip_analysis(inVegetation, outBuffer, outClip)
 
# Execute JoinField to add the vegetation type
arcpy.JoinField_management(outClip, joinField, joinTable, joinField, joinedField)
 
# Execute Statistics to get the area of each vegetation type within
#  the clipped buffer.
arcpy.Statistics_analysis(outClip, outStatsTable, statsFields, joinedField)
Statistics, пример 3 (автономный скрипт)

Следующий автономный скрипт используется для просмотра атрибутивных полей набора данных и построения параметра statistics_fields, при этом для каждого числового поля вычисляется статистика SUM.

# Description: Script that runs the Summary Statistic tool to calculate the
#   Sum statistic for every numeric field based on a unique case field
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/f.gdb"
# Set local variables
intable = "intable"
outtable = "sumstats"
casefield = "Name"
stats = []
# Loop through all fields in the Input Table
for field in arcpy.ListFields(intable):
    # Just find the fields that have a numeric type
    if field.type in ("Double", "Integer", "Single", "SmallInteger"):
        # Add the field name and Sum statistic type
        #    to the list of fields to summarize
        stats.append([field.name, "Sum"])
# Correct formatting of stats [["Field1", "Sum"], ["Field2", "Sum"], ...]
# Run the Summary Statistics tool with the stats list
arcpy.Statistics_analysis(intable, outtable, stats, casefield)
Statistics, пример 4 (автономный скрипт)

Следующий скрипт использует pandas DataFrame для доступа и отображения результатов Statistics в виде таблицы.

import arcpy
import pandas
import os
arcpy.env.overwriteOutput = True
in_table = r"d:\data\states.shp"
out_table = r"in_memory\stats_table"
stat_fields = [['POP1990', 'SUM'], ['POP1997', 'SUM']]
stats = arcpy.Statistics_analysis(in_table, out_table, stat_fields,
                                  case_field='SUB_REGION')
# Get a list of field names to display
field_names = [i.name for i in arcpy.ListFields(out_table) if i.type != 'OID']
# Open a cursor to extract results from stats table
cursor = arcpy.da.SearchCursor(out_table, field_names)
# Create a pandas dataframe to display results
df = pandas.DataFrame(data=[row for row in cursor],
                      columns=field_names)
print(df)

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы