MobileMap: Data Collection Optimization
Observer ID
MobileMap provides users with the option to automatically add their initials or name to all features that are collected. While this functionality saves time and can help improve data quality, this field is only filled in when it is currently blank. When a new feature is created, it will be populated when the data entry form is opened. If an existing feature is edited in MobileMap and this field has not yet been filled in, it will be populated when the data entry form is opened. If an existing feature is edited in MobileMap and this field has already been populated with a value, MobileMap will not overwrite the existing value. MobileMap does not assume that if a user simply views or saves a feature that this field should be updated.
To utilize the Observer ID functionality, users need to set or verify two settings, ‘Observer Field’ and ‘Observer Initials or Name’. To access these settings, hit the gear icon in the upper right, and scroll down to the ‘Data Model Settings’. Â
‘Observer Field’ – this is the field that will be automatically populated in each feature class that contains it (upon feature creation). The default for this field is Observer.
‘Observer Initials or Name’ – this is what will be populated in the ‘Observer Field’. This is typically filled in with a Surveyor name or initials.
Note that it is critical that the underlying data model contains the field that is entered in the 'Observer Field' setting, that it is of Text data type and that it is sufficiently long to support whatever users may insert as their 'Observer Initials or Name'. Users should be instructed on what values to enter here, and some allowance should be made in the data model to account for slightly longer entries. So, if users will use a 3-letter initial for this, we recommend using a text field with at least 5 characters.
Â
Unique ID
If this field name is found and is Text data type, a unique ID will be generated when any of the listed components change. Example: 'fieldname:{field1}{yyyy}{observer}{000}' will generate a unique ID based on the field1 code plus the 4-digit year, plus the observer ID, plus 3-digit auto-incrementing number starting at 1, separated by a hyphen. The number will reset to 1 when any field changes. Component fields must be coded value domains.
Configurable Defaults
Â
MobileMap provides an interface for users to specify default values that they’d like to use for fields which will mostly have the same value across a site, day, or project area. These values will automatically be applied to any new features that are collected, though the user will have the option of overriding these values before each individual feature is saved.
Setting Configurable Defaults
Select the Main Menu, then select ‘Edit Configurable Defaults’.
This opens the configurable defaults menu. This lists every field that uses a select list (rather than free text) by layer. For any fields for which you’d like to use configurable defaults, simply select the value from the select list and verify that the ‘Enabled’ box is checked. Select ‘Done’ and start collecting data with your configurable defaults.Â
Calculated Fields
Calculated fields enable faster data collection by enabling automated the population of specified fields using equations that that are defined in MobileMap settings (Settings > Data Model > Calculated Fields). One situation where calculated fields are useful is for generating unique IDs during data collection, where you want the ID to include meaningful information like the current date and time and the current user. Another situation is where you want to run a calculation that would otherwise require the use of a calculator (e.g. Field X / 123) followed by manual data entry of the result.
The equations can include the following components:
Current date/time in one of the following formats: YYYY, MMDDYYYY, DDMMYYYY, YYYYMMDD, YYYYDDMM, YYYY-MM-DD, YYYY-DD-MM, YYYY-MM-DD-HH-MM-SS, YYYY-DD-MM-HH-MM-SSÂ
Universally Unique ID 'UUID'
Observer name or initials (stored in settings (above) 'Observer',
Field values -Â If an input field is included in an equation and that field utilizes a coded value domain (dropdown list), the calculated field can be recalculated when dropdown selection is changed
Mathmatical operators: +, -, *, /
There are 2 different formats for writing equations (Settings > Data Model > Calculated Feilds Equation Format). Version 1 uses a comma separated list of calculated fields and associated calculations. Version 2 (available in MobileMap 4.3.11 and later) uses a semicolon separated list and Arcade style syntax (e.g., $Feature.fieldname for field value). Both formats support multiple calculated fields.
V1 syntax:Â Target_Field:{Equation}{Components}:Overwrite_Flag
Equation components are all surrounded by curly brackets { }, no space between components
Overwrite flag is Y or N. Y means overwrite the current value onÂ
Example: 'Field2:{YYYY}{Observer}{000}:N' (without quotes)Â
Result if feature created in 2019 by user John Doe (Observer ID 'JD'): 2019JD001
Result on next feature (same year, same user):2019JD002
V2 example:Target_Field:Equation + Components:Overwrite_Flag
Equation components are separated by spaces and operators
Components include functions in the format of FunctionName(parameters)
Overwrite flag is Y or N. Y means overwrite the current value onÂ
Example: 'Field1:Date('YYYY') +Â Observer():N' (without quotes).Â
Result if feature created in 2019 by user John Doe (Observer ID 'JD'): 2019JD
Â
The table below includes the various equations components that are currently supported, along with examples using versions 1 and 2 of the equation format. New equations should be written using version 2, unless unsupported functionality is required (e.g., auto-incrementing integers). It is not possible to mix equation versions - a single version must be selected (Settings > Data Model > Calculated Feilds Equation Format).
Equation Component | Version 1 Syntax | Version 2 Syntax | Version 2 Example |
---|---|---|---|
Dates: | Â | Â | Â |
YYYY | {YYYY} | Date('YYYY') | Field1:Date('YYYY') |
MMDDYYYY | {MMDDYYYY} | Date('MMDDYYYY') | Field1:Date('MMDDYYYY') |
DDMMYYYY | {DDMMYYYY} | Date('DDMMYYYY') | Field1:Date('DDMMYYYY') |
YYYYMMDD | {YYYYMMDD} | Date('YYYYMMDD') | Field1:Date('YYYYMMDD') |
YYYYDDMM | {YYYYDDMM} | Date('YYYYDDMM') | Field1:Date('YYYYDDMM') |
YYYY-MM-DD | {YYYY-MM-DD} | Date('YYYY-MM-DD') | Field1:Date('YYYY-MM-DD') |
YYYY-DD-MM | {YYYY-DD-MM} | Date('YYYY-DD-MM') | Field1:Date('YYYY-DD-MM') |
YYYY-MM-DD-HH-MM-SS | {YYYY-MM-DD-HH-MM-SS} | Date('YYYY-MM-DD-HH-MM-SS') | Field1:Date('YYYY-MM-DD-HH-MM-SS') |
YYYY-DD-MM-HH-MM-SS | {YYYY-DD-MM-HH-MM-SS} | Date('YYYY-DD-MM-HH-MM-SS') | Field1:Date('YYYY-DD-MM-HH-MM-SS') |
Universally Unique ID | {UUID} | UUID() | Field1:UUID() |
Observer name or initials | {Observer} | Observer() | Field1:Observer() |
Field value | {fieldname} | $Feature.fieldname | Field1:$Feature.Field2 |
Auto-incrementing integer (number of zeros indicates the number of digits) | {0000} | NA | Â |
Constants | NA | 123 | Area:3.14159 * $Feature.radius* $Feature.radius |
Mathmatical Operators | Â | Â | Â |
Addition (can be used for concatenation of non-numeric components | NA | + | Field1:Date('YYYY') +Â Observer() |
Subtraction (all components in equation must be numeric) | NA |
| Field1:$Feature.Field3 - $Feature.Field2 |
Multiplication (all components in equation must be numeric) | NA |
| Field1:$Feature.Field3 * $Feature.Field2 |
Division (all components in equation must be numeric) | NA | / | Field1:$Feature.Field3 / $Feature.Field2 |
String Operators | Â | Â | Â |
Mid(start_index, end_index - optional) | NA | Mid(start_index, end_index) | Field1:Mid($Feature.Field2,3) |
Â