Tag: maps

  • Cartographic Data Science

    Cartographic Data Science

    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.

    Google Earth Map of Tennessee to Alaska
    Night-time sleeping spots derived from historical “Google Timeline” data on an Android phone, using Python, Google Sheets, and QGIS.

    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:

    DateLatitudeLongitudeLocation
    July 21XX.XXXX-XXX.XXXXOvernight location
    July 22XX.XXXX-XXX.XXXXOvernight location
    July 23XX.XXXX-XXX.XXXXOvernight 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