Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The WSG approach to documenting requirements is to use a spreadsheet format in which the layers, fields and allowed values are captured in two tabs of an Excel spreadsheet - data model and domains. The requirements gathering process starts typically starts with one or more templates that WSG can provide based on data models used for previous implementations, as well field protocols (cruise specs) and any existing field forms or data collection software user interface examples.

Data Model CSV format:

Layer

LayerType

FieldName

Alias

DataType

MaxLength

Precision

AllowNullValues

DefaultValue

DomainName

Stands

Polygon

Stand_ID

Stand ID

LONG

No

Stands

Polygon

State

State

TEXT

50

Yes

States

Stands

Polygon

Region

Region

TEXT

50

Yes

Regions

…

…

…

…

…

…

…

…

…

…

Notes:

  • Layer

    • Layer name, no spaces

    • Recommended syntax

      • Use of plural nouns (e.g. Stands, Streams, Roads)

      • Where multiple words needed, use title case with underscores (e.g., Treatment_Areas)

      • For cruise use Stands, Plots, Trees, Logs

  • Layer Type

    • Polygon, Line, Point, Table

  • FieldName

    • Where multiple words needed, use title case with underscores (e.g., Plot_Type)

    • Keep it human readable by avoiding abbreviations, acroymns, slang (e.g. use Cruise_Type instead of CRZTYP)

  • DataType

    • TEXT, LONG, SINGLE, DOUBLE

  • MaxLength

    • Only for TEXT fields

    • Maximum number of characters that can be entered

  • Precision

    • Only for SINGLE and DOUBLE fields

  • AllowNullValues

    • Yes = field is not required, No = field is required

  • Default Value

    • Enter the default value to be stored for the field when a new feature is created. If the field uses a Coded Value Domain, enter the code (not the description) here.

  • Domain Name

    • Must match the domain name in the domains CSV file

Domains CSV format:

DomainName

FieldType

DomainType

Code

Description

Min

Max

DBH

Short

Range

0

100

Regions

Text

NW

Northwest

Regions

Text

NC

North central

Regions

Text

NE

Northeast

…

…

…

…

…

…

…

General Data Model Requirements

...

The table below lists recommended field names with their data types and intended uses. While these fields are not all required and some may be substituted with custom or alternative names, these standards should be used unless there is a compelling reason to use an alternative name, and the alternative may need configuration and testing.

Field Name

Table

Data Type

Description

Plot_Size

Stands and/or Plots

Text (10 characters)

Stores the plot size (BAF or fixed area plot size) for use in limiting distance calculation and downstream use by compilers and 3rd party systems (TCruise, FVS, etc.). Requires domain that stores values using MobileMap-specific codes (e.g., BAF20 for BAF of 20, FIX10 for fixed area 1/10th acre plot). May have more than 1 field (e.g., Plot_Size AND Nested_Plot_Size). Alternative names: BAF, Nested_Plot_Size, Saw_Plot_Size, Pulp_Plot_Size, etc..

Status

Any spatial layer but especially for Stands and Plots

Text (10 characters)

Stores measurement status. Typically used to determine symbology. Often used for other logic like map filters, hosted feature layer views definition queries, export filters, compilation rules, etc. Common status values: Planned, Active, Cruised, Checked, Archived.

Latitude

All point layers

Double

Stores Y coordinate of point

Longitude

All point layers

Double

Stores X coordinate of point

Elevation

All point layers

Double

Stores elevation in preferred units

GPS_Point_Count

Point layers where collection may occur via averaged GPS

Integer (short)

Stores the number of individual GPS locations that were averaged to get the final coordinates

Photos

Any table where photos will be captured

Text, large number of characters (e.g., 1000 to support capture of multiple photos)

Stores the filenames of all photos captured via MobileMap for that feature.

Created

Any table

Date

MobileMap can store the date that a feature was created (this may be different than the created_date which is created when the feature is created in the service)

This field name should be included in MobileMap Settings > Data Model > Custom Created Date Fields

Edited

Any table

Date

MobileMap can store the date that a feature was last edited (this may be different than the last_edited_date which is updated when the feature is updated in the service)

This field name should be included in MobileMap Settings > Data Model > Custom Edited Date Fields or Custom Edited Date (No Overwrite) Fields.

Using the field name Cruise_Date and storing MobileMap Settings > Data Model > Custom Edited Date Fields or Custom Edited Date (No Overwrite) Fields

Created_Source

Any table

Text (50 characters)

MobileMap and InventoryManager can store the application and version in this field for tracking the tool that was used to last edit a given feature

Edited_Source

Any table

Text (50 characters)

MobileMap and InventoryManager can store the application and version in this field for tracking the tool that was used to last edit a given feature

Unique_ID

Stand, Plot, Tree and Log tables when used for timber inventory (cruising)

Text (38 characters)

Stores text representation of a GUID

Parent_ID

Plot, Tree and Log tables when used for timber inventory (cruising)

Text (38 characters)

Stores text representation of a GUID

Archived

Any table

Text (3 characters)

Stores ‘Yes’ or ‘No’ based on whether the feature should be treated as an archived record (may be ignored, e.g., hidden) in some applications.

Plot_X

Plots

Double

When desired this can be used to store the Longitude value from the GPS at the time that the plot is saved. This can help with data QA. This can be set as a hidden field in MobileMap settings so that cruisers do not see this.

Plot_Y

Plots

Double

When desired this can be used to store the Latitude value from the GPS at the time that the plot is saved. This can help with data QA. This can be set as a hidden field in MobileMap settings so that cruisers do not see this.

Distance_To_Plot

Plots

Integer (long)

When this field is included in the Plots data model, MobileMap will calculate the distance between the Plot point coordinates and the Plot_X/Plot_Y coordinates (see two fields above) in feet. Can be used to assess if plot data was entered when the user was farther than expected from the true location of the plot. This can be set as a hidden field in MobileMap settings so that cruisers do not see this.

Time_On_Plot

Plots

Integer (long)

When this field is included in the Plots data model, MobileMap will calculate a running tally of accumulated seconds that the tree list has been open in MobileMap and store it (in total seconds) in this field. Can be used to determine average time per plot and assess outliers (especially plots measured faster than expected). This can be set as a hidden field in MobileMap settings so that cruisers do not see this.

Notes

Any

Text (500+ characters)

(Optional) Also called ‘Comments’, ‘Note’.

Notes_Check

Stands/Plots

Text (500+ characters)

(Optional) Similar to Notes but can be included in list of check cruise fields to hide when not in check cruise mode. Allows separate notes to be recorded by cruiser and check cruiser on the same plot. Not needed on Trees/Logs as these will include a new record for each check Tree/Log; standard Notes field can be used, if relevant, when collecting check cruise data on Trees/Logs.

Check_Score

Plots

Short Integer

(Optional) receives calculated numeric check cruise score for checked plots when check cruise scoring is enabled within InventoryManager and check cruise rules have been defined. Note that standard calculation is: 100 minus plot-level deductions minus the sum of all tree-level deductions within that plot, where tree level deductions are typically assigned integer values. If tree-level deductions are assigned floating point values (e.g., 1.5), use a floating point data type for Check_Score too.

Check_Details

Plots

Text (1000 characters)

(Optional) receives text description of errors that lead to the calculated numeric check cruise score (above)

Check_Score_Date

Plots

Date

(Optional) receives the date at which the check score was LAST calculated/updated.

Sample_Type

Stands

Text (4 characters)

(Optional) Used for double sampling. This field should use a Coded Value Domain that lists all double sampling methods that are supported, and an option for 'None'.  The list of accepted values are: 

  • BB = Big BAF

  • STR = Sample Tree Ratio

  • FTN = First Tree North,

  • PCMC = Point Count or Measure

  • None = no sampling

Sample_Type

Plots

Text (4 characters)

(Optional) Used for double sampling. Same as above except that if Point Count or Measure approach is used, the Plots version of this field should use a Coded Value Domain that lists the following options: 

  • BB = Big BAF

  • STR = Sample Tree Ratio

  • FTN = First Tree North,

  • PCMC = Count Plot

  • PCMM = Measure Plot

  • None = no sampling

Big_BAF

Stands, Plots

Text (10 characters)

(Optional) Used for double sampling. If the Big BAF method is supported, this field should use a Coded Value Domain that lists all of the BAF values that are appropriate for Big BAF.  Allowed values should follow the same convention as the Plot_Size field

PCM_Ratio

Stands, Plots

Text (10 characters)

(Optional) Used for double sampling. If Point Count Measure method is supported, this field should use a Coded Value Domain that lists all of the allowed ratios in the format of '1:2', '1:3', '1:4', etc.

Sample_Tree_Ratios

Stands, Plots

Text (200+ characters)

(Optional) Used for double sampling. If Sample Tree Ratios are supported, this field will store a comma separated list of ratios (e.g., 'DF:S:5,DF:P:10,GF:XX:2,XX:XX:3'). Both MobileMap and InventoryManager contain tools for authoring sample tree ratios by selecting the species, product and ratio for each sample group.

Tally_Measure

Trees

Text (1 character)

(Optional) Used for double sampling. This field should use a Coded Value Domain with the values 'M' for measure and 'T' for tally. MobileMap will update this field automatically when it can determine if a tree should be measured or tallied. Automatic determination of T or M will be possible for PCM, FTN and STR, but not for Big BAF.

BAF_Type

Trees

Text (1 character)

(Optional) Used for double sampling. If Big BAF is supported, this field should be present in the Trees table and use a Coded Value Domain with the values ‘B' for big and 'S’ for small.

Esri Reserved Field Names

...

For a complete list of reserved words see the list at the bottom of this page, or consult the Esri documents where these are listed. Note that the ArcGIS Online and ArcGIS Enterprise is exhaustive - it includes all keywords that apply to File Geodatabases:

https://supportpro.esriarcgis.com/en-us/knowledge-base/faq-arcgis-online-and-portal-database-reserved-keywords-000030807/pro-app/latest/help/data/geodatabases/overview/defining-fields-in-tables.htm

https://support.esri.com/en-us/knowledge-base/faq-what-are-the-reserved-words-for-esris-file-geodatab-000010906

...

https://support.esri.com/en-us/knowledge-base/faq-arcgis-online-and-portal-database-reserved-keywords-000030807

File Geodatabase

ArcGIS Online/Portal

ABSOLUTE

X

ACCESS

X

ACTION

X

ADD

X

X

ALL

X

ALLOCATE

X

ALPHANUMERIC

X

ALTER

X

X

And

X

X

ANY

X

ARE

X

AS

X

ASC

X

ASSERTION

X

AT

X

AUTHORIZATION

X

AUTOINCREMENT

X

AVG

X

BEGIN

X

Between

X

X

BINARY

X

BIT

X

BIT_LENGTH

X

BOOLEAN

X

BOTH

X

BY

X

X

BYTE

X

CASCADE

X

CASCADED

X

CASE

X

CAST

X

CATALOG

X

CHAR

X

CHAR_LENGTH

X

CHARACTER

X

CHARACTER_LENGTH

X

CHECK

X

CLOSE

X

COALESCE

X

COLLATE

X

COLLATION

X

COLUMN

X

X

COMMENT

X

COMMIT

X

CONNECT

X

CONNECTION

X

CONSTRAINT

X

CONSTRAINTS

X

CONTINUE

X

CONVERT

X

CORRESPONDING

X

COUNT

X

COUNTER

X

CREATE

X

X

CROSS

X

CURRENCY

X

CURRENT

X

CURRENT_DATE

X

CURRENT_TIME

X

CURRENT_TIMESTAMP

X

CURRENT_USER

X

CURSOR

X

DATABASE

X

DATE

X

DATETIME

X

DAY

X

DEALLOCATE

X

DEC

X

DECIMAL

X

DECLARE

X

DEFAULT

X

DEFERRABLE

X

DEFERRED

X

DELETE

X

X

DESC

X

DESCRIBE

X

DESCRIPTOR

X

DIAGNOSTICS

X

DISCONNECT

X

DISALLOW

X

DISTINCT

X

DISTINCTROW

X

DOMAIN

X

DOUBLE

X

DROP

X

X

EQV

X

ELSE

X

END

X

END-EXEC

X

ESCAPE

X

EXCEPT

X

EXCEPTION

X

EXEC

X

EXECUTE

X

EXISTS

X

X

EXTERNAL

X

EXTRACT

X

FALSE

X

FETCH

X

FIRST

X

FLOAT

X

FLOAT4

X

FLOAT8

X

FOR

X

X

FOREIGN

X

FOUND

X

FROM

X

X

FULL

X

GENERAL

X

GET

X

GLOBAL

X

GO

X

GOTO

X

GRANT

X

GROUP

X

GUID

X

HAVING

X

HOUR

X

IDENTITY

X

IEEEDOUBLE

X

IEEESINGLE

X

IGNORE

X

IMMEDIATE

X

IMAGE

X

IN

X

X

IMP

X

INDEX

X

INDICATOR

X

INITIALLY

X

INNER

X

INPUT

X

INSENSITIVE

X

INSERT

X

X

INT

X

INTEGER

X

INTEGER4

X

INTEGER1

X

INTEGER2

X

INTERSECT

X

INTERVAL

X

INTO

X

X

IS

X

X

ISOLATION

X

JOIN

X

KEY

X

LANGUAGE

X

LAST

X

LEADING

X

LEFT

X

LEVEL

X

LIKE

X

X

LOCAL

X

LOCK

X

LOGICAL

X

LOGICAL1

X

LONG

X

LONGBINARY

X

LONGTEXT

X

LOWER

X

MATCH

X

MAX

X

MEMO

X

MIN

X

MINUTE

X

MODULE

X

MONTH

X

MOD

X

MONEY

X

NAMES

X

NATIONAL

X

NATURAL

X

NCHAR

X

NEXT

X

NO

X

NOT

X

X

NULL

X

X

NULLIF

X

NUMBER

X

NUMERIC

X

OCTET_LENGTH

X

OF

X

OFF

X

OLEOBJECT

X

ON

X

ONLY

X

OPEN

X

OPTION

X

OR

X

X

ORDER

X

X

OUTER

X

OUTPUT

X

OWNERACCESS

X

OVERLAPS

X

PAD

X

PARTIAL

X

PARAMETERS

X

PERCENT

X

PIVOT

X

POSITION

X

PRECISION

X

PREPARE

X

PRESERVE

X

PRIMARY

X

PRIOR

X

PRIVILEGES

X

PROCEDURE

X

PUBLIC

X

READ

X

REAL

X

REFERENCES

X

RELATIVE

X

RESTRICT

X

REVOKE

X

RIGHT

X

ROLLBACK

X

ROWID

X

ROWS

X

SCHEMA

X

SCROLL

X

SECOND

X

SECTION

X

SELECT

X

X

SESSION

X

SESSION_USER

X

SET

X

X

SHORT

X

SINGLE

X

SIZE

X

SMALLINT

X

SOME

X

SPACE

X

SQL

X

SQLCODE

X

SQLERROR

X

SQLSTATE

X

STDev

X

STDEVP

X

STRING

X

SUBTYPE

X

SUBSTRING

X

SUM

X

SYSTEM_USER

X

TABLE

X

X

TABLEID

X

TEMPORARY

X

TEXT

X

THEN

X

TIME

X

TIMESTAMP

X

TIMEZONE_HOUR

X

TIMEZONE_MINUTE

X

TO

X

TOP

X

TRAILING

X

TRANSACTION

X

TRANSFORM

X

TRANSLATE

X

TRANSLATION

X

TRIM

X

TRUE

X

TYPE

X

UNION

X

UNIQUE

X

UNKNOWN

X

UPDATE

X

X

UPPER

X

USAGE

X

USER

X

USING

X

VALUE

X

VALUES

X

X

VAR

X

VARCHAR

X

VARBINARY

X

VARP

X

VARYING

X

VIEW

X

WHEN

X

WHENEVER

X

WHERE

X

X

WITH

X

WORK

X

WRITE

X

XOR

X

YEAR

X

YESNO

X

ZONE

X