Visualising geology beneath the surface when on site is a tough gig. Where does that rock go once it’s swallowed up by the earth? What if the site has no rocks exposed at surface: how are you meant to visualise what the geology is like without having to go back to the office and check your 3D geological model? How are you meant to explain easily to stakeholders visiting on site that there is a sandstone aquifer in the middle of your site, but that building to the west of it wouldn’t compromise ground water quality? Without bringing them back into the office to view your 3D geological model, it’s very difficult.

As a geologist in her previous profession, Rachael came across this problem whilst leading groups (stakeholders, engineering geologists) on field work for site investigations. She’d bring paper print outs of 2D maps and the associated 3D geological models: but the 2D paper representation of a 3D model is difficult to grasp for a non-geo. This could be frustrating for attendees, who’d often comment they wish they had X-ray vision to see through the ground surface to picture geological relationships.

If only there was an app that would allow a geologist to view their desk-based 3D geological model live in the field via their mobile phone: one that would allow them to see a particular geological unit; any particular boreholes drilled and even the option to understand how deep beneath their feet a particular layer we thought we’d try!

What it does

Using augmented reality, this mobile app for Android allows pre-existing georeferenced 3D geological surfaces to be visualised in a 3D space beneath the ground in real time. It has the option to view specific geological layers, and to view boreholes which have intersected them. Depth perception is enhanced to allow user greater understanding of geological geometries at depth with relation to their position. A particular geological unit can be measured from the user to get an estimate for how deep that unit is beneath their location.

How we built it

ArcGISPro: set up feature classes for each geological layer and share to ArcGISOnline.

Java Runtime: make geological surfaces as TINS from points. Save as feature layers to ArcGISOnline to be accessed as a service in mobile.

Android Runtime: Access geological surfaces via service feature tables and display them via a scene view using ARCore, Esri Augmented Reality API.

Challenges we ran into

addFeatureLayerAsync and applyEditsAsync resulted in massive duplication of data on ArcGISOnline.

San Diego appearing vertically in AR on Android (this seems a bug with Beta version of Esri AR API with ARCore version 1.6.0 as it works with 1.5.1)

How to enhance depth perception on a 2D screen

Subsurface layers clipped beneath base map

Accomplishments that we're proud of

Creating geological layers from scratch and hosting them on ArcGISOnline Exploring complex geological problems and how to tackle them from a software development perspective

What we learned

  • addFeatureLayerAsync and applyEditsAsync per feature results in duplicate features on the service - a functioning workflow is to add all features first and then sync all in one batch
  • deleting many features in one go from a hosted feature service using AGOL is impossible
  • ARCore works with Android emulator but it's of limited use in terms of navigation
  • use of ARCore's ARSceneView in combination with ArcGIS's SceneView

What's next for GeoXRay

  • Virtual borehole generator from selected point on surface
  • Cross section generator of subsurface units along a given plane
  • UI for toggling geological data
  • toggling between AR mode and classic 3D mode to observe data from any viewpoint
  • 2D overview map showing observer's position and direction of view

Submission video (internal to Esri) here.

If you're checking out our entry outside of Esri, you can download our presentation video here.

Built With

Share this project: