QGIS & ArcGIS Pro

Desktop GIS for visualizing, analyzing, and managing captured GPS data. QGIS is the current primary tool; ArcGIS Pro integration is planned.

QGIS Setup

Version: QGIS 4.0.2 (Final) on macOS

Project file: ~/Sync/farm/emlid-exports/brownsville-property.qgz

Primary data source: PostGIS on CT100 (farmdb). QGIS connects directly via the PostGIS connector โ€” host 192.168.8.100, port 5432, database farmdb, user farmuser, SSL disabled. All points and geometries live there; GIS state stays single-source-of-truth instead of drifting between a GeoPackage copy and the DB.

GeoPackage (brownsville-points.gpkg) is retired as the primary format (May 2026). It still exists as a backup snapshot of points but isn’t kept in sync โ€” for live data use the PostGIS connection. ArcGIS Pro instructions further down still cover the GPKG path for portability.

The QGIS project is generated by a Python script (brownsville-property.py or setup-project.py for the console version) and includes:

  • ESRI World Imagery satellite basemap
  • All GPS points from all-points.csv, loaded as a delimited text layer (EPSG:4326)
  • Categorized symbology by feature code:
Code Symbol Color Label
p Circle Green (#22c55e) Plant
i Square Gray (#94a3b8) Infrastructure
u Diamond Orange (#f97316) Underground
n Triangle Blue (#3b82f6) Note
  • White labels with black buffer showing feature names
  • Zoomed to point extent with ~100m padding

Regenerating the project:

From the QGIS Python Console (Plugins โ†’ Python Console โ†’ Show Editor):

exec(open(os.path.expanduser('~/Sync/farm/emlid-exports/setup-project.py')).read())

Or standalone from Terminal:

/Applications/QGIS-final-4_0_2.app/Contents/MacOS/bin/python3 \
  ~/Sync/farm/emlid-exports/brownsville-property.py

Adding new sessions: After running the processing pipeline, update all-points.csv with the new session data, then reload the layer in QGIS (right-click layer โ†’ Reload). The symbology and labels persist.

ArcGIS Pro

ArcGIS Pro can work with the same data sources. The key consideration is coordinate system alignment and data format.

Importing GPS Data

From CSV (all-points.csv):

  1. Open ArcGIS Pro โ†’ Insert โ†’ New Map
  2. Map tab โ†’ Add Data โ†’ XY Table to Point
  3. Browse to ~/Sync/farm/emlid-exports/processed/all-points.csv
  4. Set X Field = lon, Y Field = lat, Z Field = elev_m
  5. Coordinate System = GCS_WGS_1984 (EPSG:4326)
  6. Click Run

From GeoPackage:

  1. Catalog pane โ†’ right-click Databases โ†’ Add Database
  2. Browse to brownsville-points.gpkg
  3. Drag the points layer onto the map

Coordinate System Notes

  • Emlid data is in WGS84 geographic (lat/lon, EPSG:4326). ArcGIS Pro will project on-the-fly for display.
  • For measurement accuracy, project to Ohio State Plane South (EPSG:3735, US feet) or UTM Zone 17N (EPSG:32617, meters).
  • Heights are ellipsoidal, not orthometric. Apply GEOID18 via the Transformation tool if you need MSL elevations.
  • To convert: Geoprocessing โ†’ Project โ†’ set output coordinate system and check “Geographic Transformations” to include the geoid.

Symbology

To replicate the QGIS categorized symbology:

  1. Right-click the points layer โ†’ Symbology
  2. Change from Single Symbol to Unique Values
  3. Field = code
  4. Add values: p (green circle), i (gray square), u (orange diamond), n (blue triangle)
  5. Apply

Labeling

  1. Right-click layer โ†’ Label Properties
  2. Label Field = feature_name
  3. Set halo (white text, 1.5pt black buffer) for readability over satellite imagery

Basemap

ArcGIS Pro includes built-in satellite imagery:

  • Map tab โ†’ Basemap โ†’ Imagery (or Imagery Hybrid for labels)
  • This is higher resolution than the ESRI XYZ tile service used in QGIS

Future: ArcGIS Field Maps

ArcGIS Field Maps on iOS cannot directly connect to the RS3 (not MFi-certified). Two potential workarounds:

  1. Bluetooth GPS forwarding โ€” third-party apps that relay NMEA from the RS3 to the iOS location stack (unreliable, not recommended)
  2. Post-process in ArcGIS Pro โ€” continue using Emlid Flow for field capture, import to ArcGIS Pro for analysis. This is the recommended approach.
  3. Android tablet โ€” Field Maps on Android can connect to the RS3 via mock location. QField is another option.
PostGIS Integration (Planned)

Future pipeline: all-points.csv โ†’ PostGIS on CT100 farmdb โ†’ queryable via Farm MCP tools, QGIS, and ArcGIS Pro.

Planned tables:

  • gis_points โ€” all raw GPS captures with geometry
  • plantings โ€” plants with species FK, planting date, zone
  • infrastructure โ€” above-ground features
  • underground โ€” buried utilities (critical for future excavation)

Planned Farm MCP spatial tools:

  • nearest_features(lat, lon, radius_m) โ€” find what’s nearby
  • query_in_radius(lat, lon, radius_m, code) โ€” filter by feature type
  • underground_near(lat, lon, radius_m) โ€” specifically for avoiding buried lines