In February 2026, I had the opportunity to attend the Esri FedGIS conference in Washington, D.C. as a student assistant. For the first time, student assistants were invited to present a student Tech Talk on projects they were working on using GIS technology. I was one of those speakers where I shared a project I developed for my university's campus tree inventory as an intern with the University of Maryland's Facilities Management GIS team.
In this blog, I will explain the tree inventory system we used and the steps I took to enforce data integrity using a tool called Contingent Values in ArcGIS Pro.
Above: My presentation in the Conference EXPO theater. Photo credit: Rosemary Boone
The University of Maryland (UMD) campus is an accredited arboretum and botanical garden, and the GIS team maintains the official tree inventory in ArcGIS. The inventory consists of a single point layer that stores each tree’s:
University of Maryland Tree Inventory Point Layer (Image Credit: E. Serra)
To properly classify each tree, we maintain ten naming fields that include scientific and common names at multiple taxonomic levels. Ten fields for naming a tree seems like a lot, but it’s important to store the components of a tree’s name separately for data analysis purposes.
Field Name | Information |
common_family_name | Common Name for Family |
cname1 | Common Name for Genus |
cname2 | Common Name for Species |
cname3 | Common Name for Cultivar |
common_full_name | Full Common Name |
s_family | Scientific Family |
s_genus | Scientific Genus |
s_species | Scientific Species |
s_cultivar | Scientific Cultivar |
s_full name | Full Scientific Name |
Trees are scientifically classified by family, genus, and species. Some trees also include a cultivar, which identifies a cultivated variety produced through selective breeding. A full botanical name consists of: Genus + species + cultivar.
Each scientific component has a corresponding common name field with a 1:1 relationship. The full common name is composed of the common cultivar + common genus + common species.
Tree naming works as a decision tree. Once you choose a family field, there are only certain genuses that fall under that family. The genus you chose will only have certain species. Cultivars can be associated with multiple species, but not all.
The issue is that users were able to select a combination of the naming fields that didn’t fall into the valid scientific decision tree. The user could select a genus, but then select a species that didn't fall into that genus.
Above: Incorrect selection of a tree’s genus, based on the other selected fields
To resolve this issue, I implemented contingent values in ArcGIS Pro. The Contingent Values tool allows you to enforce hierarchical rules across multiple fields. It filters available domain options based on selections made in higher-level fields, enforcing a scientific decision tree.
The chart above shows that a user could choose a full name and be able to derive the family, genus, species, and cultivar because the full name is the most specific field and is associated with only 1 option in each of the other fields. Because the scientific and common names for each field have a 1:1 match, knowing the scientific field names means you will also know all of the common names and vice versa. My hope was to create a system where 9 fields could auto generate if the user just knows the scientific or common full name.
Step 1:
First, I created domains. This is a list of valid options for the user to select from when imputing data into a field. Essentially the contingent values tool will filter your domains based on what you’re already selected.
Above: View of existing domains in an arcGIS Pro project. On the left: list of fields that have domains. On the right: list of values within that domain.
Step 2:
I created a field group, adding all of the 10 naming fields to it.
Step 3:
I ran the “generate contingent values” tool. This creates a list of all of the existing combinations of the 10 fields that already existed in the data. It also created that rule that any new data point would need to have one of these valid combinations. If not, it would prompt the user to change their selections.
Using the Generate Contingent Values Tool
List of contingent values in my data
To have ArcGIS autofill 9 fields based on the most specific one, there was one setting to change in the attribute table:
Finally, my system was set up. If I add a new point in ArcGIS pro, I can select either the common full name or the scientific full name. When a new species is planted on campus, we can individually add the combination of fields as a new contingent value.
With this system in place:
While this project focused on a campus tree inventory, the approach can be applied to any dataset that relies on hierarchical or categorized information such as asset management, facilities inventories, environmental monitoring, or infrastructure classification.
If you are a student or recent graduate in the GIS field, I would highly recommend checking out Esri’s student assistant program. The conference provided me with valuable exposure to the latest GIS technologies and career paths. Presenting my project strengthened my skills in technical communication.
Check out the University of Maryland Arboretum Explorer to see the variety of plants we have on campus and how we store it all using GIS!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.