Due to a change in ESRI ArcGIS Server code which was implemented during the server upgrades (we upgraded from ArcGIS 10.2.2 to 10.5.1), it is possible some edits and creations of managed data in post-upgrade Biotics have resulted in slight coordinate shifts. This is occurring due to a datum transformation problem (introduced in version 10.3) when projecting from native state projection (the NAD83 projections program data is stored in) to Web Mercator (the WGS84 projection used for display and drawing on the map). The result is up to a few meters position shift of affected data. The overall impact for your data will vary depending on: a) the data's geographic location;  and b) degree of activity creating or editing features (as described below) since the time of your recent Biotics upgrade (find date to use in query in attached spreadsheet).  


How great is the datum shift in your geographic location? Thanks to Lindsey Wise (OR) for providing this link which shows how much datum shift you can expect.

 

When does this happen?

  • Any features edited since upgrade via Modify Shape or Delineate Unsuitable Habitat Feature on the map.
  • Creating or modifying a feature by copying a feature via Additional Mapping Options > Spatial Clipboard from a non-WGS84 library layer or non-WGS84 uploaded shapefile or gdb layer.
  • Creating or modifying a feature by copying a feature via Additional Mapping Options > Map Resource from any managed layer, any non-WGS84 library layer, or any non-WGS84 uploaded shapefile or gdb layer.

In any of those cases, the geometry used will be datum-shifted incorrectly due to not having a <datum>-to-WGS84 transformation applied when brought into the Drawing tool for editing, which can result in a shift of up to a few meters from the expected location when compared to the source/original shape on the map. 


When does this NOT happen?

  • Draw/digitize manually
  • Creation/modification via Bulk Create


How do we identify which features were modified?

  • Identify Source Features which have had their spatial feature modified by running the following in the Query Builder, replacing the first date (in bold) with that of your server upgrade date). This improved query identifies only those SFs which have been modified spatially:

    select source_feature_id from source_feature where source_feature_id in (select primary_key_id from audit_log where table_name in ('SOURCE_FEATURE_PRE_PT','SOURCE_FEATURE_PRE_LINE','SOURCE_FEATURE_PRE_POLY', 'SOURCE_FEATURE_UHF') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd')
    and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'U')

  • Save the query results to a working list and open the working list within the Map.

  • Rectify by:

    • Open the working list within the Map via Feature Search

    • Modify Shape according to the most recently modified Archive feature PRIOR to your server upgrade.

    • Once the feature has been replaced with the Archived feature, modify the feature to restore the lost edits prior to saving the feature.
    • Proceed to the next Source Feature identified by the query.

  • Changes to the Source Feature will automatically propagate to the EO, so editing the EO is not necessary, nor feasible!

  • Repeat for any Managed Areas or Sites which were likewise modified according to the following queries:

select conservation_site_id from conservation_site where conservation_site_id in (select primary_key_id from audit_log where table_name in ('SITE_SHAPE') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'U')


select managed_area_id from ma where managed_area_id in (select primary_key_id from audit_log where table_name in ('MA_SHAPE') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'U')


How do we identify which new features were created by copying?

  • There is NO WAY to identify which newly created features were created via an Additional Mapping Options usage, however, the following query will determine which features were newly created and by whom so that you can ask them if they were copied features.
  • Hopefully whoever mapped the feature would have indicated in the Digitizing Comments that the data was copied from another source and named the source.
  • Replace the first date (in bold) with that of your server upgrade date):

select source_feature_id from source_feature where source_feature_id in (select primary_key_id from audit_log where table_name in ('SOURCE_FEATURE_PRE_PT','SOURCE_FEATURE_PRE_LINE','SOURCE_FEATURE_PRE_POLY', 'SOURCE_FEATURE_UHF') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'I') and source_feature_id not in (select primary_key_id from audit_log where table_name in ('SOURCE_FEATURE_PRE_PT','SOURCE_FEATURE_PRE_LINE','SOURCE_FEATURE_PRE_POLY', 'SOURCE_FEATURE_UHF') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'U')

  • Rectify new features created by copying:
    • Modify Shape and copy feature from original source, replacing the existing feature
  • Repeat for any Managed Areas or Sites which were created during this time period:

select conservation_site_id from conservation_site where conservation_site_id in (select primary_key_id from audit_log where table_name in ('SITE_SHAPE') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'I') and conservation_site_id not in (select primary_key_id from audit_log where table_name in ('SITE_SHAPE') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'U')


select managed_area_id from ma where managed_area_id in (select primary_key_id from audit_log where table_name in ('MA_SHAPE') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'I') and managed_area_id not in (select primary_key_id from audit_log where table_name in ('MA_SHAPE') and audit_date >= TO_DATE('2017/08/17', 'yyyy/mm/dd') and audit_date <= TO_DATE('2017/11/16', 'yyyy/mm/dd') and action_code = 'U')



Special thanks to the Vermont program for identifying this problem for us!