Coordinate Based Problem Solving and Geospatial Analysis by Keith Harper
In 2026, I drove my Ford Transit van from Chattanooga, Tennessee to Deadhorse, Alaska.
The Problem: When the trip was complete, I wanted to create a map of Sleep Locations where I spent each night.
The Solution: Extract and sort coordinate-based location data stored within my android phone.
While the solution might sound simple, geospatial data stored within a phone presents a host of problems. Using data management and manipulation I translated hundreds of thousands of data points into a map of 42 nightly sleeping spots.

Demonstrated Skills:
QGIS โข Google Timeline โข Python โข Google Sheets โข Spatial Analysis โข Spatiotemporal Analysis โข GeoJSON โข JSON โข GPS Data โข Data Cleaning โข ETL โข Attribute Tables โข Spatial Visualization โข Temporal Filtering โข Coordinate Data โข Data Validation โข Cartography โข Geographic Research โข Validation โข Final Product โข Storytelling
A Solution in 8 Phases
Phase 1 โ Data Acquisition
Phase 2 โ Data Conversion & Preparation
Phase 3 โ QGIS Import & Inspection
Phase 4 โ Temporal Analysis
Phase 5 โ Overnight Location Extraction
Phase 6 โ Visualization & Symbology
Phase 7 โ Coordinate/Location Validation
Phase 8 โ Final Analysis, Cartographic Product, & Storytelling
Phase 1 โ Data Acquisition
The Problem: Android Phones, with Google Timeline activated, accumulate geospatial data continually, yet inconsistently.
My Google Timeline has acquired data since 2011. My Timeline file is 82mb, containing hundreds of thousands of datapoints. The information exists primarily as raw location-history data rather than as a useful geographic dataset.
The first challenge is figuring out what data I actually have, and how can I get it into a form that GIS software can understand.
I identify the relevant source file, Timeline.json.
The file is approximately 82 MB, containing a very large number of individual location records dating back to 2011.
This immediately introduces a real GIS/data-management problem. Instead of starting with a neat spreadsheet containing 50 locations, I start with a large machine-generated dataset.
Technical competencies of this phase:
Data acquisition
Obtaining geographic data from an external source
Working with user-generated GPS/location-history data
Identifying relevant datasets within a larger information source
Data structure awareness
Understanding that location data can exist in different formats
Recognizing the difference between raw location history and GIS-ready spatial data
Identifying useful geographic attributes within a large dataset
Professional competency demonstrated:
Data discovery and source evaluation
Phase 2 โ Data Conversion & Preparation
The Problem: raw Timeline data isn’t immediately in a format readable by GIS software.
I convert the Timeline JSON data into GeoJSON by use of a Python script. I develop the script using AI prompt-engineering through Chat-GPT.
By running this script through PyCharm, I create a GIS-compatible spatial dataset in GeoJSON that is loaded into QGIS.
I share my process with other devs via GitHub here: https://github.com/TheCemeteryDetective/json_to_geojson/blob/main/JSON_to_geoJSON
I also document and share my process with the Reddit GoogleMaps community here:
https://www.reddit.com/r/GoogleMaps/comments/1jm1k0q/comment/n39qsr7/?context=3
The resulting dataset is approximately:
- 75.84 MB
- 226,061 features
- WGS 84 / EPSG:4326
Effectively, I perform an ETL process:
Extract โ Transform โ Load
Technical competencies in this phase:
- JSON data
- Python
- GeoJSON
- Data-format conversion
- Spatial data preparation
- ETL concepts
- Large dataset handling
- Geographic coordinates
- CRS awareness
- WGS 84
- EPSG codes
Phase 3 โ QGIS Import & Inspection
Loading data isn’t the same thing as understanding it.
I answer key questions:
- What does the features represent?
- What attributes are available?
- Are the coordinates correct?
- What fields will be used for analysis?
- What is the temporal information?
- Is QGIS interpreting the data correctly?
Exploring the GeoJSON file with QGIS 3.40.11:
Examine:
- Layer properties
- Feature count
- CRS
- Attribute table
- Available fields
- Timestamp information
- Geographic distribution of points
The data contains a very large number of individual records.
Since the attribute table does not initially expose all the information I expect, I am forced to investigate the data structure rather than simply assuming the data is wrong.
Technical competencies
- QGIS
- Layer management
- Attribute-table inspection
- Feature inspection
- CRS identification
- Spatial-data validation
- Dataset structure analysis
- GIS troubleshooting
Phase 4 โ Temporal Analysis
This is one of the most interesting parts of the project.
I am not simply asking: “Where did I go?”
I am asking: “Where did I spend each night?”
This question turns the problem into spatiotemporal analysis.
The problem
GPS data doesn’t inherently know what constitutes an “overnight stay.” My data contains timestamps representing movement and location throughout the journey.
I establish a logical rule for identifying overnight locations.
I also encounter timezone complications because my journey crosses multiple time zones.
My analytical approach
I develop the concept that the location associated with the pre-midnight portion of the day represents the place where I end that travel day.
This important analytical decision is solved by creating a business/analytical rule. The solution is a much more sophisticated concept than simply filtering points after midnight.
Technical competencies
- Temporal data
- Timestamp interpretation
- Date fields
- Time-zone awareness
- Temporal filtering
- Date-range queries
- Spatiotemporal reasoning
- Analytical-rule development
Phase 5 โ Overnight Location Extraction
This phase of the project narrows the focus into a specific analytical target.
Hundreds of thousands of location records are reduced into a meaningful dataset.
One overnight location โ One date
Instead of:
226,061 individual GPS observations
I conceptually develop my data into:
| Date | Latitude | Longitude | Location |
|---|---|---|---|
| July 21 | XX.XXXX | -XXX.XXXX | Overnight location |
| July 22 | XX.XXXX | -XXX.XXXX | Overnight location |
| July 23 | XX.XXXX | -XXX.XXXX | Overnight location |
I work with date/time information to isolate the relevant records.
I also create and work with CSV/tabular data containing:
- Date
- Latitude
- Longitude
Those coordinates allowed me to construct geographic point information in QGIS.
Technical competencies
- Data filtering
- Attribute querying
- Coordinate extraction
- Latitude/longitude handling
- Point-feature creation
- Tabular-to-spatial conversion
- Data reduction
- Data organization
- Chronological sequencing
Phase 6 โ Visualization & Symbology
Making a dataset visually understandable.
A giant collection of identical points doesn’t communicate much.
I work with the QGIS symbology panel to distinguish individual data points. Using graduated color coding, I visually represent different portions/patterns in the journey.
This transforms the data from “a bunch of dots” into a visual representation of movement through space and time.
Technical competencies
- QGIS symbology
- Categorized visualization
- Graduated symbology
- Point-layer visualization
- Cartographic communication
- Visual pattern recognition
- Map interpretation
Phase 7 โ Coordinate & Location Validation
Simply trusting the data and the computer is a FUNDAMENTAL FALACY in data science. The output must make sense.
Since my eventual dataset is small in comparison to the original dataset, I am able to view individual latitude/longitude coordinates and examine them geographically, including using Google Earth as a validation/reference tool.
I also encounter the practical problem of QGIS not always interpreting coordinate input the way I expect.
Troubleshooting:
- Latitude/longitude order
- Coordinate formatting
- CRS
- Point placement
- Attribute values
- Geographic location
Technical competencies
- Coordinate validation
- Geographic reference
- Google Earth
- QGIS
- Spatial verification
- Coordinate troubleshooting
- Data quality control
- Cross-platform geographic analysis
- Ground-truthing / spatial QA-QC.
Phase 8 โ Final Analysis & Cartographic Product
The purpose of this project is not simply to produces a QGIS file.
The ultimate product is a story.
I took the digital footprint of a months-long journey and reconstructed my overnight geography.
The final project contains:
1. Overview map
A map showing the entire journey.
2. Overnight-location map
One point for each overnight location.
3. Temporal visualization
Showing the progression of overnight locations through time.
4. Supporting dataset
A clean CSV/GeoPackage containing:
- Date
- Latitude
- Longitude
- Location name
- Region/state/province
- Country
- Notes
5. Methodology
A concise explanation of how overnight locations were identified.
6. Technical workflow
A diagram showing:
Google Timeline โ JSON โ GeoJSON โ QGIS โ Filtering โ Overnight Dataset โ Visualization โ Validation
The Competency Map
This personal project demonstrates competency in:
GIS
- QGIS
- Spatial data management
- Layer creation
- Spatial analysis
- Cartography
- Symbology
- Coordinate systems
Data
- JSON
- GeoJSON
- CSV
- Tabular data
- Data transformation
- ETL
- Data cleaning
- Data validation
Spatial
- Latitude/longitude
- GPS data
- Point features
- Coordinate systems
- WGS 84 / EPSG:4326
- Spatial visualization
- Spatial verification
Temporal
- Dates
- Timestamps
- Time zones
- Temporal filtering
- Spatiotemporal analysis
Analytical
- Problem formulation
- Methodology development
- Rule creation
- Pattern recognition
- Data reduction
- Quality control
- Troubleshooting
Professional
- Independent research
- Technical problem solving
- Learning unfamiliar technology
- Iterative workflow development
- Translating a real-world problem into a GIS workflow
- Communicating results visually
And here’s the important part:
My Alaska journey as a portfolio laboratory.
The overnight map is Project #1.
From the same underlying journey, I develop additional projects:
- Gas consumption and fuel-cost spatial analysis
- Travel-route analysis
- Elevation / terrain analysis
- Distance and travel-time analysis
- Weather versus travel patterns
- Campsite/overnight-location suitability analysis
- Alaska highway infrastructure mapping
- Cemetery mapping / Cemetery Detective
- E-bike exploration mapping
- Public-land / recreation GIS analysis
Demonstrable Skillset
This project began as a personal question: where did I actually spend my nights during my journey to Alaska? What began as an exploration of my own location history evolved into a practical GIS exercise involving data acquisition, transformation, spatial and temporal analysis, visualization, troubleshooting, and geographic validation.
By transforming hundreds of thousands of raw location records into a meaningful representation of my overnight travels, I demonstrated how GIS can turn seemingly ordinary data into a story about movement, place, and experience. More importantly, the project represents the beginning of my deliberate transition from simply experiencing the world to learning how to analyze, map, and communicate it through geographic information systems.
Contact: Keith@KeithHarper.net






