Tuto: Collector for ArcGIS: Go (really) offline!
ArcGIS Collector’s offline mode is great. Being able to scroll your map of a refugee camp displaying 18000+ points of shelters, 2800+ points of toilets/showers and a 900mb tiled satellite imagery basemap without any lag/loading time on your phone is quite impressive.
This tutorial won’t explain you how to create an offline map and synchronize your edits because tons of well-made tutorials already exist for this:
- With unversionned data: http://server.arcgis.com/fr/server/latest/get-started/windows/tutorial-set-up-feature-service-data-for-offline-use.htm
- With versioned data: http://server.arcgis.com/fr/server/latest/get-started/windows/tutorial-create-offline-maps-with-versioned-data.htm (good luck )
- Create a custom tiled background: http://blogs.esri.com/esri/arcgis/2014/03/23/using-your-own-basemap-layers-with-collector-for-arcgis/
The purpose of this tutorial is to experience the use of Collector in field conditions. Without Wi-Fi access, you’re not able to synchronize your edits and use the collected data in ArcMap for instance. This can be quite problematic in some situations we face during missions: we almost always manage to find Wi-Fi (or 3G) at some point, but in some cases you want to use your data now and can’t wait for a few days before going back to a Wi-Fi-friendly location.
It might also happen that the Wi-Fi is not strong enough to download all your data (especially if you are using pictures as attachments) and that Collector crashes during the synchronization.
What you have is your phone(s), your computer, an USB cable and people craving for their maps.
The following workflow will explain you how to extract all the data stored on your phone (meaning not only the edits you made but all the data displayed on the map) and has been tested with the following settings:
- ArcGIS collector 10.3.3 installed on the Internal Storage memory of the phone (quite important if you want to use custom backgrounds). Works also if installed on the SD card.
- Phone: tested on several Android smartphones (Crosscall Odyssey, Samsung Galaxy, LG Fino). By extrapolation I’d say every Android smartphone with enough internal storage to host Collector or with an SD card works. Not tested on Iphone/IOS, neither on Windows Phone (Collector still doesn’t exist on Windows Phone as of today).
- Works with both 10.2 and 10.3 ArcGIS Desktop versions but the workflow is quite different (see below).
- The map in Collector is created with non-versioned data (not tested with versioned data for now but I assume it works the same).
You have downloaded your map on Collector when you had Wi-Fi, have collected some new points in the field / edited some attributes of existing points and now you want to synchronize your edits and access the database from your computer to update a map in ArcMap.
But of course, you don’t have Wi-Fi anymore, neither to synchronize the phone or connect your computer to the database. You’ll have to do everything manually and offline.
/!\ Be careful, depending of your version of ArcGIS Desktop, the steps are completely different.
Steps for ArcGIS 10.3
- Plug your phone to your computer using an USB cable and go to the folder ArcGIS_Collector/offline_data of your phone. It can be located in the Internal Storage or SD Card root folder.
- Copy the folder called something like [username]_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx and paste it somewhere on your computer (e.g. on your desktop)
- Open ArcMap (or ArcCatalog)
- Open the Toolbox and search for the tool “Copy Runtime Geodatabase to Geodatabase” (in Conversion/To geodatabase)
- In Input Runtime Geodatabase, go and search inside the folder you copied from your phone a file called xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx.geodatabase. It should be located on the first folder of the folder you copied earlier (if you have several maps in offline mode, you may have several .geodatabase files).
- ArcGIS will automatically create an Output geodatabase on Document/ArcGIS, but you can change the directory if you want. Then, press OK to launch the GP tool.
- Using ArcCatalog, go to the output location where you’ll find a new Geodatabase containing all the data that was stored on your phone (the existing data + your offline edits). Note that it also keeps the related tables and attachments as shown below
8. You can then use queries on the EditDate or Creator field to know which points were collected with this phone.
Steps for ArcGIS 10.2
The “Copy Runtime Geodatabase to File Geodatabase” tool doesn’t exists in the 10.2 version of ArcGIS, so we’ll have to use another one (two in fact) to achieve the same result.
- Copy the content of your smartphone and open ArcGIS (like explained in points 1, 2 and 3 above).
- Open the Toolbox and search for the tool “Export XML Workspace Document” (in Data Management/Distributed Geodatabase)
- In Input data, drag and drop the .geodatabase file from your phone (you have to drag and drop it in the white line below “Input data” because you won’t be able to find it using the “Open” button)
- Choose a location for the output .xml file. Leave all other options by default.
- Once done, open the tool Import XML Workspace Document (in Data Management/Distributed Geodatabase)
- In Target GDB, put the location of the geodatabase that will contain all the exported data (it will automatically create one if it doesn’t exists yet in the specified folder). Always use a blank GDB that you will delete later.
- In Import file, put the .xml file you created earlier. Leave other options by default.
- You’ll end up with a geodatabase containing all the data, like explained in point 7 of the ArcGIS 10.3 version above.
Using this method, you can use ArcGIS Collector to collect data almost completely offline, as long as you have downloaded a map on it before the mission.
However, this DIY method has some flaws if you have a lot of smartphones to synchronize:
- It will take some time to extract the data form each phone (well, not much more than with a lot of GPS devices in fact).
- Each phones will give you a complete extract of the database so you’ll have to select only the last edits/addings from each (using queries on editdate or editby) and paste it on a clean geodatabase.
- The phones won’t synchronize between themselves so the data collected on one phone won’t appear on the other phones and vice-versa.