5.3 Tabular Data & Attribute Operations

Key Takeaways

  • ArcGIS Pro supports specific field data types including Short/Long Integer, Float, Double, Text, Date, DateOnly, TimeOnly, GUID, and GlobalID.
  • Field properties such as Field Alias, Nullability, and Length define attribute display labels, value requirements, and storage capacities.
  • Field Calculator leverages Python 3 and Arcade expression engines to perform batch attribute transformations and geometry calculations.
  • The Summarize tool calculates summary statistics (Sum, Mean, Min, Max, Count) across numeric fields grouped by case fields.
  • Joins dynamically append table columns based on a common key field (1:1 or M:1), whereas Relates establish dynamic associations (1:M or M:N) without altering schema.
Last updated: August 2026

5.3 Tabular Data & Attribute Operations

Attribute tables represent the tabular engine of a GIS, storing non-spatial descriptive properties linked directly to geographic features. In ArcGIS Pro 3.x, efficient data administration requires mastery of field data types, schema properties, field calculation engines, statistical summarization, and table relationships. This section details attribute table management, Field Calculator workflows, and relational Join and Relate operations.

The Attribute Table Interface & Field Data Types

The Attribute Table interface in ArcGIS Pro displays feature attributes in a tabular grid composed of rows (records representing individual spatial features or table entries) and columns (fields representing specific attribute variables). Every table contains system-maintained key fields—such as OBJECTID (or FID in shapefiles) and Shape (storing geometry data in feature classes)—alongside user-defined attribute fields.

Selecting an appropriate Field Data Type during schema design ensures storage efficiency, data integrity, and analytical accuracy:

  • Short Integer: 16-bit signed integer storing whole numbers from -32,768 to 32,767. Ideal for small coded categories, counts, or subtype fields.
  • Long Integer: 32-bit signed integer storing whole numbers from -2,147,483,648 to 2,147,483,647. Used for larger feature IDs, population counts, or parcel numbers. (Note: 64-bit Big Integer support is also available in modern geodatabases).
  • Float: Single-precision 32-bit floating-point numeric type. Stores real numbers with fractional decimal values where high mathematical precision beyond ~6 decimal places is not required.
  • Double: Double-precision 64-bit floating-point numeric type. Stores real numbers requiring high fractional precision (~15 decimal places), essential for survey measurements, latitude/longitude coordinates, and area calculations.
  • Text: String of alphanumeric characters. The user sets a maximum Length property, which ArcGIS Pro defaults to 255 characters for a new field; a file geodatabase accepts far longer values, while a shapefile's dBASE table caps text at 254 characters.
  • Date: Stores combined date and time stamps (MM/DD/YYYY hh:mm:ss AM/PM).
  • DateOnly & TimeOnly: Modern field types introduced in ArcGIS Pro 3.x. DateOnly stores calendar dates without time values; TimeOnly stores clock times without date stamps, optimizing storage for specific temporal analysis.
  • GlobalID & GUID: 128-bit Globally Unique Identifiers formatted as hexadecimal strings in curly braces (e.g., {B62E48A2-0298-4B52-870D-9610FA635678}). GlobalID fields are system-maintained, unique across space and time, and required for web-GIS sync, offline replication, and branch versioning. GUID fields are user-maintained fields used as foreign keys to store matching GlobalID values in relational joins.

Field Properties and Schema Modification

Field behavior is governed by essential structural properties configured during field creation:

  • Field Alias: A human-friendly display title for a field (e.g., field name pop_2020_est can have the alias "2020 Estimated Population"). Aliases can contain spaces and special characters and are displayed in attribute tables, pop-ups, and legends without altering the underlying database column name.
  • Allow NULL Values (Nullability): A boolean property specifying whether a field permits NULL (unknown or absent) values. Setting this to False forces data entry for every record.
  • Length: Restricts the maximum number of characters permitted in a Text field.

Adding and Deleting Fields

Fields can be added or removed using the Fields View tab in ArcGIS Pro or via Geoprocessing tools (Add Field and Delete Field). Modifying field schema requires an exclusive schema lock on the dataset; fields cannot be deleted if they participate in active joins, domains, subtypes, or topology rules.

Field Calculator & Expression Engines

The Field Calculator allows analysts to perform batch updates across all records or a highlighted selection set. ArcGIS Pro supports two primary expression engines:

  1. Python 3 Engine: The standard desktop scripting engine for complex text parsing, mathematical calculations, and multi-line logic blocks. Users can write script code blocks using standard Python functions, string methods (.upper(), .replace()), and datetime modules.
  2. Arcade Engine: Esri’s lightweight, portable expression language designed for cross-platform execution across ArcGIS Pro, ArcGIS Online, and mobile applications. Arcade is ideal for field calculations intended for deployment in web maps and pop-up expressions.

Field Calculator also enables dynamic spatial geometry calculations without opening separate tools, using Python geometry objects (e.g., !shape.area!, !shape.length!, !shape.extent.XMax!).

Summarize Statistics

The Summarize operation generates an output standalone table containing aggregate statistical summaries grouped by one or more Case Fields. Analysts select numeric attribute fields and specify summary statistic types: Sum, Mean, Min, Max, Count, Standard Deviation, or Variance.

Example: Summarizing a parcel feature class using ZoningCategory as the Case Field and ParcelArea with the Sum and Mean statistics produces a summary table listing the total combined area and average parcel size for every zoning district.

Relational Joins vs. Relates

Combining attribute data across multiple tables or feature classes is a core tabular workflow. ArcGIS Pro distinguishes between Joins and Relates:

Joins (1:1 and M:1 Cardinality)

A Join appends the fields of a source table (join table) directly into the attribute table of a target layer based on a matching Common Key Field (primary key to foreign key).

  • Supported Cardinality: Joins strictly support One-to-One (1:1) or Many-to-One (M:1) relationships (e.g., joining county demographic data to state boundary polygons). If a One-to-Many (1:M) join is attempted, only the first matching record in the join table is appended, dropping remaining matches.
  • Virtual vs. Physical Joins: A standard Join in ArcGIS Pro is a Virtual Join—it creates a dynamic link in memory without altering the target layer's underlying database schema on disk. To create a Physical Join, the analyst must export the joined layer to a new feature class or use the Calculate Field tool to transfer values permanently into native fields.

Relates (1:M and M:N Cardinality)

A Relate establishes a dynamic association between two tables based on a common key field without appending columns to the target attribute table.

  • Supported Cardinality: Relates support One-to-Many (1:M) and Many-to-Many (M:N) relationships (e.g., one land parcel polygon linked to multiple tax assessment records over time).
  • Interaction: When a user selects a feature in the primary layer's attribute table, related records in the associated table can be highlighted interactively using the Related Tables menu.
Test Your Knowledge

Which field data type introduced in ArcGIS Pro 3.x stores calendar dates without an associated time stamp?

A
B
C
D
Test Your Knowledge

An analyst needs to perform a field calculation using Python string methods that will update selected attributes in a feature class. Which tool should be used?

A
B
C
D
Test Your Knowledge

What happens if an analyst attempts to perform a standard attribute Join on a One-to-Many (1:M) relationship between a target feature class and a join table?

A
B
C
D