Fréquence (Analyse)
Récapitulatif
Permet de lire une table et un ensemble de champs et de créer une nouvelle table contenant les valeurs de champ uniques ainsi que le nombre d'occurrences de chaque valeur de champ unique.
Utilisation
-
La table en sortie contient le champ Fréquence et le ou les champs de fréquence et de récapitulation spécifié(s).
-
La table en sortie contient le calcul de fréquence pour chaque combinaison de valeurs attributaires du ou des champs de fréquence spécifié(s).
-
Si un champ de récapitulation est spécifié, les valeurs attributaires uniques du calcul de fréquence sont résumées par valeur attributaire numérique de chaque champ de récapitulation.
-
Lors de l'utilisation de couches, seules les entités actuellement sélectionnées sont utilisées dans les calculs.
Syntaxe
| Paramètre | Explication | Type de données |
in_table |
Table contenant le ou les champs utilisé(s) pour le calcul des statistiques de fréquence. Il peut s'agir d'une table INFO, OLE DB, dBASE, d'un tableau VPF ou d'une table de classe d'entités. | Table View; Raster Layer |
out_table |
Table dans laquelle sont stockées les statistiques de fréquence calculées. | Table |
frequency_fields [frequency_fields,...] |
Champ(s) d'attribut utilisé(s) pour le calcul des statistiques de fréquence. | Field |
summary_fields [summary_fields,...] (Facultatif) |
Champ(s) d'attribut à additionner et à ajouter à la table en sortie. Les valeurs Null sont exclues de ce calcul. | Field |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Fréquence en mode immédiat.
import arcpy
from arcpy import env
env.workspace = "C:/data/Portland.gdb/Taxlots"
arcpy.Frequency_analysis("taxlots", "C:/output/output.gdb/tax_frequency",["YEARBUILT", "COUNTY"], ["LANDVAL", "BLDGVAL", "TOTALVAL"])
Le script autonome ci-dessous illustre l'utilisation de la fonction Fréquence.
# Name: Frequency_Example2.py # Description: Run Frequency on a table # Author: ESRI # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data/Portland.gdb/Taxlots" # Set local variables inTable = "taxlots" outTable = "C:/output/output.gdb/tax_frequency" frequencyFields = ["YEARBUILT", "COUNTY"] summaryFields = ["LANDVAL", "BLDGVAL", "TOTALVAL"] # Execute Frequency arcpy.Frequency_analysis(inTable, outTable, frequencyFields, summaryFields)
Le script autonome ci-dessous illustre l'utilisation de nombreuses fonctions de script de géotraitement, y compris la fonction Fréquence.
# Name: Frequency_Example3.py
# Description: Break all multipart features into singlepart features,
# and generate a report of which features were separated.
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
# Create variables for the input and output feature classes
inFeatureClass = "c:/gdb.mdb/vegetation"
outFeatureClass = "c:/gdb.mdb/vegetation_singlepart"
# Use error trapping in case a problem occurs when running the tools
try:
# Add a field to the input (if not already present), this will be used as a unique identifier
# Create list of all fields in inFeatureClass
fieldList = arcpy.ListFields(inFeatureClass)
# Create new empty list to hold field names from inFeatureClass
fieldNameList = []
# polulate the field name list with field names from inFeatureClass
for field in fieldList:
fieldNameList = fieldNameList.append(field.name)
# if "tmpUID" is not a field name in inFeatureClass, add it
if "tmpUID" not in fieldNameList:
arcpy.AddField(inFeatureClass, "tmpUID","double")
# Determine what the name of the Object ID is
describe = arcpy.Describe(inFeatureClass)
OidFieldName = describe.OIDFieldName
# Calculate the tmpUID to the OID since this is a Personal GDB, wrap the Field inside []
exp = "[" + OidFieldName + "]"
arcpy.CalculateField_management(inFeatureClass, "tmpUID", exp)
# Run the tool to create a new fc with only singlepart features
arcpy.MultipartToSinglepart_management(inFeatureClass,outFeatureClass)
# Check if there is a different number of features in the output than there was in the input
if (arcpy.GetCount_management(inFeatureClass) == (arcpy.GetCount_management(outFeatureClass)):
print "The number of features in the input is the same as in the output, so no multipart features were found"
else:
# If there is a difference, print out the FID of the input features which were multipart
arcpy.Frequency_analysis(outFeatureClass, outFeatureClass + "_freq", "tmpUID")
# Use a search cursor to go through the table, and print the tmpUID
print "Below is a list of the FIDs of all the multipart features from " + inFeatureClass
rows = arcpy.SearchCursor(outFeatureClass + "_freq", "[FREQUENCY] > 1")
row = rows.next()
while row:
print int(row.tmpUID)
row = rows.next()
except:
# If an error occurred, print out the error message
print "Error occurred"
print arcpy.GetMessages()