MobileMap: Tree and Log Data Collection

When MobileMap Cruise functionality is enabled in settings and a cruiser is editing a plot
feature, a tree icon will be displayed in the upper right of the attribute editor. To record trees, tap the tree icon to open the tree list.

Tree List Design

The tree list has been designed as a digital tally card, and displays like a spreadsheet would in Excel.  Each row in the tree list represents a single tree, and each column represents an attribute field from the data model.  Enter data into appropriate cells using the software keyboard or popup mode (see link at bottom of this page). The tree list does not use dropdowns for selecting values.  Below are some details about data entry fields in the tree list:

  • Data can be entered one row at a time, entering all values for a tree before moving to the next tree.  Or, data can be entered one column at a time.  For example, some cruisers choose to 'spin' a plot, and record all 'in' trees by entering in just the species information for each tree.  After all trees have just their species recorded, the cruiser then goes to each tree and records additional information such as DBH, height, etc.

  • As with all data collection interfaces in MobileMap, the list of available attribute fields is dictated by the feature layer in the data model (e.g., data type, nullable status, domains, etc.). 

  • Some fields in the data model are typically hidden from the tree list.  Hidden fields are defined in MobileMap settings which are typically loaded from the feature service when importing settings.

  • Some fields may have default values are populated by a) default values in the data model, b) values inheritance from their parent plot, or c) values that have been applied by configurable defaults.

  • Some fields may be required based on the data model (non-nullable) or business rules. Typically the species field is required. It is common to also require DBH. Less common is requiring fields like total height, merch height, etc.

  • Business rules can be used to enforce conditional constraints to ensure data are entered when required. An example is a business rule that requires a total height measurement when the tree has been classified as being a ‘broken top’ tree. Similar logic can be used to enforce data collection on measure trees when using double sampling (see https://woodlandsg.atlassian.net/wiki/spaces/MD/pages/3145817 ).

  • Some fields may have a limited set of discrete allowed values (e.g., fields that use a Coded Value Domain in the ArcGIS data model).  The species field commonly uses a pre-defined list of species 2-letter species codes.  To see the list of allowed values tap on any cell in that field (column) to select it, then tap the question mark “?” button to see the list of allowed values.

  • Some fields may support continuous values, but may be limited to values within a specified range (e.g., fields that use a Range Domain in the ArcGIS data model). The DBH field commonly uses a range domain to ensure that values are greater than 0 (or some other number) and below the maximum anticipated tree diameter for all trees.  If a value entered is outside of the defined range, an error message will be displayed when the tree records are saved. Note that it may be preferable to enter these constraints via business rules (https://woodlandsg.atlassian.net/wiki/spaces/MD/pages/33122 ), which allow for hard and soft (warning only) errors.

  • Some fields may have business rules https://woodlandsg.atlassian.net/wiki/spaces/MD/pages/33122 applied to them using the 'Rules' table in the MobileMap data model.  Business rules support complex rules (more complex than Coded Value Domains and Range Domains) such as if/then statements.  One common business rule is "if a tree is a site index tree, then a tree height measurement is required"

  • The column labels displayed in the tree list come from the alias assigned to the attribute field in the Esri data model for the Trees table.  If a long alias is used, it may be truncated or wrap in the column header.  We recommend that tree field aliases be limited to between 2 and 4 characters, with shorter aliases used when a greater number of attribute fields will be displayed in the Tree List.  Common abbreviations include ‘Sp’ for Species, ‘DBH’ for diameter, ‘Ht’ for total height, etc. 

  • The default layout of the tree list is to display all editable fields using the same (equal) column width.  If customization of field widths is required (e.g., to accommodate additional digits for DBH when there are a large number of displayed fields), the tree table field widths can be modified in MobileMap Settings (Settings > MobileMap Cruise > Trees > Tree and Log Field Column Width Weights). 

    • The default weight is 1 for all columns.  Using larger or smaller values increases or decreases the column width, respectively, for a particular column.

    • The weights are proportional, so a weight of 1.5 will draw that column with 150% of the width of the other fields. 

    • If a column needs to be wider (e.g., to support a value like 12.3 for DBH) then a larger weight can be assigned to that column.

    • If a column should be smaller to free up space for other fields, use a value less than 1 (e.g., 0.5). 

    • To enter in appropriate weights, use a comma separated list of fields and their associated column width weights.  The format for this setting is 'fieldname:weight,fieldname:weight' (e.g., 'DBH:2,Height:1.5' - without quotes). 

    • Given the complexity of the field weight syntax, when this setting is needed it is typically loaded from the feature service when importing settings.

Log Data Collection

If log data is supported, select the edit button (pencil icon) in the 'Logs' column to open the Logs List (similar to the trees list).  Logs are entered in the same way as trees, but must be entered sequentially from the first (butt) log up.  Logs are commonly used only for recording defect.  For this to work correctly, all logs below the highest log with defect must be entered.  For example, if the third log up the tree has 20% defect, logs 1 and 2 must be entered, along with their length and defect, even if they have no defect (defect = 0).

Row and Cell Highlighting

  • The currently selected tree/log row will be shown in yellow. When inserting or deleting tree/log rows, it is important to note which tree/log row is selected (in yellow). 

  • The currently selected cell will be shown in light blue (cyan).

  • Individual cells that are highlighted red indicate cells with validation errors which must be fixed prior to saving that tree/log and closing the tree/log table. If a user attempts to save or close the table when validation errors are present, they will see a popup message describing the errors as shown below.

    • Red cells are only caused by invalid values where Coded Value Domains are used

    • Other errors (e.g., Range Domains and business rules) do not highlight cells red. These errors are not displayed until the user selects the save (disk) icon or the close (back arrow) icon.

    • See for more details on defining business rules

    • See for more details on defining Coded Value Domains, Range Domains, required fields and other data model-level business logic

Inserting, Copying, and Deleting Trees and Logs

  • Inserting a tree/log row (“+” icon) will insert an empty tree/log record ABOVE the currently selected (yellow highlight) row.  This will renumber the subsequent tree/log records.

  • To copy a tree record:

    • Tap on the source tree (the tree you want to copy)

    • Tap on the copy tool

    • MobileMap will make a copy of the selected tree and add it to the bottom of the tree list.

  • Deleting a tree/log row (Trash Can icon) will delete the currently selected (yellow highlight) row.  You will be asked to confirm any tree delete operations. This will renumber the subsequent trees/logs.

    • It is important to use the Deleting button (Trash Can icon), and not try to use the backspace key to delete just the visible data. If the Delete button is not used, the record will not be correctly deleted.

Number of Trees to Display

Under some inventory scenarios, a large number of trees may be recorded on a single plot (e.g., a single 'plot' used to record a 100% tally on a stand).  When too many trees are displayed at once, it can affect the performance of the tree list.  To ensure maximum performance when collecting a large number of trees per plot, the Tree List can be set to only show a maximum number of trees (Settings > MobileMap Cruise > Trees > Maximum Number of Tree Rows).  The default value for this setting is 20, but it can be set between 4 and unlimited.

Limiting Distance Calculation

MobileMap supports the calculation of limiting distance to a tree once the plot size (BAF or fixed area size) and tree diameter (for BAF plots) is known. The limiting distance tool can be configured to calculate the distance to the face or center of the tree. It can also apply a slope correction to determine the slope corrected limiting distance. In order to use the limiting distance, the following are required:

  • The plot feature layer must have a field for basal area factor and the field name must be set in settings (MobileMap Cruise > Stands > Basal Area Factor (BAF) Field).

  • The BAF field must store BAF data in the correct format, using a three-letter prefix for BAF or FIX (for fixed area plots) followed by the BAF value (e.g., BAF10 for BAF of 10) or the portion of an acre (e.g., FIX50 for 1/50th acre fixed area).  This field should use a coded value domain to avoid typos.  Typically this field is applied at the Stand and Plot level and used with field inheritance to allow a user to set at the Stand level, inherit to all plots, then use in the tree list.

  • Support for Limiting Distance calculation must be enabled in MobileMap Settings (MobileMap Cruise > Trees > Enable Display of Limiting Distance).

  • A tree record must be selected (yellow highlight).

  • The DBH field for the selected tree must already be entered.

  • Limiting distance calculation can be set to report distances to either the center of the tree (default) or the face of the tree by adjusting the settings (MobileMap Cruise > Trees > Calculate Limiting Distance to Face of Tree).

Check Cruise

MobileMap supports check cruising by using the Tree List in a special Check Cruise mode.  When check cruising, the check cruiser updates the existing stand and plot features (to add details, change status, etc.) and collects duplicate tree records (one check cruise tree for every standard tree).  See for more information on check cruising.

Saving Data and Closing the Trees/Logs List

To save tree/log data, select the save button (disc icon).  Saving triggers a validation process which checks all tree/log rows for a range of validation rules including allowed values (coded value domains), allowed data ranges (range domains), required (non-nullable) fields and business rules (e.g., if/then rules).  If any errors are found, a popup will display the errors by indicating which tree/log and field(s) contain errors.  Only the first 5 errors will be displayed in the error popup.  Select OK to close the error window, fix the data errors, then select save to re-validate your data.  If there are no validation errors, a small temporary popup will be displayed at the bottom of the screen indicating that all tree/log records were successfully saved.

To save the tree data and close the tree list at the same time, select the back button (left arrow icon).  This will trigger the save process described above, but if there are no validation errors it will immediately close the tree list and return to the parent plot after it finishes saving the tree data.

It is important to note that there is currently no ‘cancel’ button, or other option to close the Tree List (or Log List) without saving all trees. This means that simply opening the Tree List to review trees will trigger a save of all tree records upon closing. When the user uploads there data, these trees will be uploaded as updates, even if there are no actual data changes to the trees (or logs). This is by design, and helps prevent accidental closing of the tree list without saving all tree records. It can lead to some confusion, however, as it can result in cases where a user sees more trees listed in the upload report. It can also cause unexpected updates to the Cruiser ID on a Plot if MobileMap is configured to always update the Cruiser ID (Settings > MobileMap Cruise > Plots > Cruiser ID Update Logic).

Auto-Save of Tree Data

MobileMap supports auto-saving of data at specified data intervals.  The default behavior is to auto-save all new and modified data every time the tree/log lists are closed.  This behavior can be changed in settings (MobileMap Cruise > General > Database Backup Interval) to increase the frequency of auto-saving.  One scenario is when a large number of trees will be collected on a set of plots (e.g., a 100% tally on a psuedo-plot).  For example, auto-save frequency can be set to backup every 5, 10, or 20 trees to prevent data loss if a device fails while in the middle of collecting a plot.  Data backups will, however, require a pause in data collection and thus should be used carefully to ensure they don't impact data entry efficiency.  

Next topic: Tree and Log Popup Mode