Trip Planning with Electric Vehicles
Problem
Long-distance travel with electric vehicles introduces planning challenges that do not exist for internal combustion vehicles. EV drivers must account for charging station availability, charger compatibility, charging speed, and proximity to a planned route while also considering vehicle range constraints and personal preferences such as amenities or desired state of charge. Existing consumer tools often obscure these variables and do not provide transparency into how routing and charger selection decisions are made. The problem addressed in this project was how to programmatically identify and visualize optimal EV charging locations along a route using authoritative national data while giving the user control over routing and range parameters.
Analysis Procedures
This project was implemented as a Python script tool within ArcGIS Pro using ArcPy and the Network Analyst extension. A national EV charging station dataset from the Joint Office of Energy and Transportation was read and processed from CSV format and parsed to retain only relevant records, filtering out restricted-access stations and chargers without compatible CCS connectors. The cleaned dataset was written to a geodatabase table and converted into a spatial point feature class.
A network route analysis layer was then created using user-defined origin and destination coordinates. The script programmatically added route stops, solved the network, and generated points along the route at regular distance intervals corresponding to half of the vehicle’s maximum driving range. Charging stations located within a specified buffer distance of the route were selected and copied to a new feature class. These candidate charging locations were symbolized alongside the route and range markers, and turn-by-turn driving directions were generated automatically. Object-oriented programming was used to encapsulate routing and charger-selection logic within a custom EVRoutePlanner class, improving code readability and extensibility.
Results
The final output of the project is a fully automated ArcGIS Pro script tool that produces a mapped EV travel route, identifies viable charging stations near the route, displays range-based interval markers, and generates turn-by-turn driving directions. The tool successfully integrates large national datasets with network analysis and spatial filtering to provide actionable travel guidance. Results are visualized directly in the map interface, allowing users to inspect individual charging station attributes such as connector counts, charging speed, and location context. The workflow demonstrates how GIS programming can bridge raw infrastructure data and practical transportation decision-making.


Reflection
In this project, I developed a Python-based GIS automation tool that integrates national EV charging infrastructure data with network route analysis in ArcGIS Pro. I designed the workflow to import, filter, spatially process, and visualize charging stations relative to a user-defined travel route, while encapsulating core logic in reusable functions and a custom class structure.
This project significantly strengthened my programming competency within a GIS context. I gained hands-on experience working with large tabular datasets, converting them into spatial features, managing geodatabases, and programmatically controlling ArcGIS Pro projects. Implementing a custom class for route planning deepened my understanding of object-oriented programming in Python, while troubleshooting Network Analyst workflows improved my ability to interpret ESRI documentation and debug complex geoprocessing errors. The project also reinforced best practices for building script tools that are usable by non-programmers.
What I learned through this project matters because modern GIS roles increasingly require the ability to automate workflows, integrate external datasets, and build repeatable analytical tools rather than relying solely on manual processes. This experience demonstrated how programming extends GIS from static analysis to dynamic decision-support systems. The skills developed here—ArcPy scripting, network analysis automation, data validation, and modular code design—are directly transferable to enterprise GIS, transportation planning, and geospatial application development, making this project a strong representation of my programming competency.
