Data Creation Outside of MobileMap and InventoryManager

When creating features in MobileMap (or InventoryManager) the software will populate the Unique_ID and Parent_ID fields as appropriate to ensure data integrity and the relationship between a Stand, Plots, Trees and Logs. For example, if a user heads-up digitizes a new stand in MobileMap or in InventoryManager, it will be assigned a Unique_ID value. Likewise, if the Copy tool is used to copy a stand from another layer (e.g., from a Shapefile in MobileMap or a source stands layer in InventoryManager), that incoming stand will be assigned a Unique_ID value. The same is true for Plot Layout tool in MobileMap and InventoryManager - each plot will be assigned the same Parent_ID (will match the Unique_ID of the parent stand) and a Unique_ID (unique to each plot).

If data are created outside of MobileMap and InventoryManager (e.g., in ArcMap, ArcGIS Pro, ArcGIS Online Map Viewer, etc.) the user will need to manually populate these unique ID fields. There are several ways to do this, and the best approach will depend on the application that is used. Below are some examples of suitable approaches by environment. Please note that these workflows are NOT recommended for everyday use by foresters. They should typically be used only by GIS professionals that are comfortable with GIS data management and data tasks in desktop environments.

The list of workflows for creating Stands and Plots below are ordered by their ease-of-use:

  1. Create all Stands and Plots in MobileMap/InventoryManager (preferred approach)

    1. This includes the incorporation of a Source Stands layer that may be coming from a separate Feature Service (e.g., Trimble Forestry LRM read-only stands layer as InventoryManager ‘Source Stands’ layer). In this scenario the workflow starts with copy of the stand geometry and relevant attributes from Source Stands to Stands which will include creation of the required Unique_ID values.

    2. This also includes scenarios where no Source Stands layer is present, and Stands are heads-up digitized in InventoryManager

    3. It even includes the scenario where Plots are created outside of MobileMap/InventoryManager and copied/loaded to the Plots feature layer and then the Plot Validation tool is used in InventoryManager to validate the Plots. The validation process will create the Unique_ID values on the Plots, assign the appropriate Parent_ID and Stand_ID values (from their containing Stand)

  2. Create Stands outside of MobileMap and/or InventoryManager then copy/load stands directly into the the Stands layer (rather than using the InventoryManager Copy tool)

    1. User must ensure that data are in Web Mercator or that the copy/load method handles on-the-fly reprojection to Web Mercator.

    2. User must calculate Unique_ID value for each stand

    3. In this approach, once the Stands are loaded, user proceeds with Plot creation in MobileMap/InventoryManager

  3. Create Stands and Plots outside of MobileMap/InventoryManager

    1. This approach is the most complex because it requires users to create Unique_ID values for each Stand and Plot, then copy the Stand Unique_ID value to each child plot as the Parent_ID value. If other fields are expected at the plot level (e.g., Stand_ID, region, owner, etc) they will also need to be populated on the plot.

    2. As with option 2 above, the user must project their data to Web Mercator or use a copy/load tool that performs on-the-fly projection to Web Mercator.

1. Create all Stand and Plot data in MobileMap/InventoryManager (preferred approach)

2. Create Stands outside of MobileMap and/or InventoryManager then copy/load stands directly into the the Stands layer (rather than using the InventoryManager Copy tool)

When creating stands (not source stands) outside of MobileMap/InventoryManager (and thus not using the InventoryManager Copy tool to copy from another layer) users must manually create the required fields, including the Unique_ID field which is used to ensure proper data integrity within the MobileMap/InventoryManager system.

The Unique_ID (and Parent_ID) field in MobileMap/InventoryManager store a text representation of the ISO Universally Unique ID (UUID) which is a random 36-38 character hexidecimal (0-9, A-F) value. This random value is sufficiently complex that it can be guaranteed to be unique within a dataset. MobileMap/InventoryManager followed the Esri standard of including a leading and trailing curly bracket or brace { }, but uses a standard Text field, rather than the Esri GUID data type. To generate valid GUIDs, an online tool like https://www.guidgenerator.com/ (using the 'Hyphens' and ‘Braces’ options) can be used.

The process for populating Unique_ID is different based on the application that is used. The sections below describe processes that can be used for three common environmments - ArcGIS Online/Portal, ArcGIS Pro and ArcMap.

ArcGIS Online / Portal

If heads-up digitizing a new stand in the ArcGIS Online Map Viewer (or the default Map viewer provided with ArcGIS Enterprise - AKA Portal), a popup for entering attributes will display when the stand polygon geometry is completed. In this popup, enter a valid GUID value (including curly brackets) into the Unique_ID field (see tool decribed above for easy way to create GUID values).

ArcGIS Pro

ArcMap

A more typical scenario is importing stand and plot data from an existing GIS layer. This may be legacy data coming in from a Shapefile, a File Geodatabase, or something that is being created with a plot allocation tool like EZ Plot (https://landmarkspatialsolutions.com/lmss-ez-plot/).

The process for data creation using ArcMap and ArcGIS Pro can be broken into 2 steps: Data Creation and Data Upload

Data Creation

In this scenario, the GIS user will need to project the geometries into Web Mercator (Auxiliary Sphere) to be compatible with the Feature Service projection, use the field calculator tool to calculate any required fields with the appropriate target field names and data types (e.g., Stand_ID, Plot_ID), then create the unique IDs.

3. Create Stands and Plots outside of MobileMap/InventoryManager

A typical scenario is to use a Python script to create the Unique_ID values for the stands and plots, then use the ArcGIS ‘Identity’ tool to copy the stand Unique_ID values into the Parent_ID field of their respective plots. The Identity tool is well documented in Esri documentation (ArcMap: https://desktop.arcgis.com/en/arcmap/10.7/tools/analysis-toolbox/identity.htm, ArcGIS Pro: https://pro.arcgis.com/en/pro-app/tool-reference/analysis/identity.htm). An example Python script and field calculation process for creating Unique_ID values is described in the section below.

Note that calculating Parent_IDs for legacy tree and log data requires additional steps, since the Identity tool cannot be used on these tabular-only records (Identity only works on spatial data). In this case, the records will need to joined in ArcGIS based on attributes like Stand_ID and Plot_ID, then the Field Calculator can be used to copy the plot Unique_ID values to the trees Parent_ID fields.

Using Python to calculate GUIDs for Unique_ID field in ArcMap

def CalcGUID():
  import uuid
  return '{' + str(uuid.uuid4()).upper() + '}'
CalcGUID()

Similarly, if heads-up digitizing a new plot in the ArcGIS Online Map Viewer, enter the stand’s Unique_ID as the plot’s Parent_ID, and enter a new GUID in the plot’s Unique_ID field. Because of the manual nature of this process, this would be very inefficient if many stands and plots must be manually created. It also would not take advantage of the plot layout tools in MobileMap and InventoryManager.

Data Upload / Sync

After data have been created in ArcGIS Desktop, they must be uploaded to the Feature Service. ArcMap and ArcGIS Pro use different approaches for this process:

ArcMap

ArcGIS Pro

Related Articles

MobileMap: Data Modeling Process

MobileMap: Publishing an ArcGIS Feature Service