This repository contains the code and research framework developed for the ACM SIGSPATIAL 2024 GIS Cup. The project focuses on optimizing the locations and capacities of Electric Vehicle Charging Stations (EVCS) in the state of Georgia, USA. The overall objective is to balance the accessibility of EVCS while ensuring that the distribution of charging stations meets future demand.
Before running the project, it is recommended to set up a Conda environment. Follow these steps to create and activate the Conda environment:
Run the following command to create a Conda environment (named acm2024_env
):
conda create --name acm2024_env python=3.10
Activate the Conda environment using the following command:
conda activate acm2024_env
Once the Conda environment is activated, install the required packages listed in the requirements.txt
file:
pip install -r requirements.txt
Our research framework for determining the optimal locations of EVCS consists of several key steps:
We analyzed potential users who would utilize EVCS based on Origin-Destination (OD) data, OpenStreetMap road network data, and provided Point of Interest (POI) data. This data was preprocessed to create a demand map representing areas of high potential EVCS usage.
Considering the expected penetration of EVCS in Georgia by 2025, we calculated the potential capacity map. This was derived using car registration data, the H-T Index, and OD data to estimate the necessary EVCS capacity to meet future demand.
Our core optimization algorithm combines Greedy algorithms and Quadratic Programming (QP). Using the Two-Step Floating Catchment Area (2SFCA) method as a framework, we calculated the accessibility at demand points and trained our model to minimize the standard deviation of the accessibility index. This ensures that the placement of EVCS locations is fair and efficient.
To ensure resilience, we processed disaster-related data (e.g., power outage data, Justice40 Climate Data). EVCS locations identified in high-risk areas were excluded from the final results.
Georgia was divided into four spatial categories to reflect urban and non-urban influences:
- Category 1: Atlanta
- Category 2: Suburban (Urban areas excluding Atlanta)
- Category 3: Rural
- Category 4: Highway
EVCS charger types were classified as follows:
- Category 1: DC Fast Chargers (DCFC)
- Category 2: Level 2 Chargers (Fast Chargers)
Based on these classifications, we optimized the EVCS network for a total of seven scenarios:
- Case 1: Atlanta Level 2
- Case 2: Atlanta DCFC
- Case 3: Suburban Level 2
- Case 4: Suburban DCFC
- Case 5: Rural Level 2
- Case 6: Rural DCFC
- Case 7: Highway DCFC
The optimization process was consistent across all cases, producing reasonable and effective results.
The first step involves filtering POIs for Atlanta, Suburban, and Rural areas. Using Geographic Information System (GIS) tools, we analyzed provided POIs and extracted new candidates from OpenStreetMap (OSM). After this filtering, we identified potential sites for EVCS installation based on categories like supermarkets, city halls, and hotels.
From the filtered POIs, we selected initial points for installation:
- For Level 2 Chargers: POIs were further refined to select high-probability installation sites.
- For DCFC: Initial POIs were selected using road network data, focusing on motorways and intersections.
In areas where the demand is low and only one or two EVCS are needed, the initial POI often becomes the final EVCS location. In these cases, the location is selected by cross-referencing the POIs with the demand map to find the optimal site. This approach is consistent for both Level 2 and DCFC chargers.
This step focuses on optimizing the EVCS location and capacity using a combination of Greedy algorithms and Quadratic Programming (QP):
- Location Optimization: The Greedy algorithm selects the optimal EVCS locations by minimizing the standard deviation of accessibility across demand points.
- Capacity Optimization: Quadratic Programming (QP) is used to allocate the optimal number of charging ports to each EVCS location. The goal is to balance supply and demand while minimizing the standard deviation of the accessibility index at the demand points. This ensures that the distribution of charging capacity is fair and efficient.
- Minimum Ports: All EVCS locations are assigned at least 1 port to ensure functionality.
- Urban Limits: In urban areas, the number of ports is constrained between 2 and 25 to prevent excessive allocation in high-demand locations, based on real-world EVCS data.
- Urban Areas: Capture range of 3000 meters and bandwidth of 1000 meters, reflecting shorter travel distances.
- Suburban/Rural Areas: Capture range of 4000 meters and bandwidth of 1500 meters, as residents in these areas are more willing to travel further distances for services, such as healthcare or charging stations.
After processing, the output files (such as the optimized EVCS locations) will be saved in the specified output directory.
To run the optimization for any scenario, simply open the corresponding Jupyter Notebook ({region}_{charger_type}.ipynb
), update the paths as needed, and execute the cells.
For instance:
- Case 1: Open and run
atlanta_lv2.ipynb
for Atlanta with Level 2 chargers. - Case 3: Open and run
suburban_dcfc.ipynb
for suburban DC Fast Chargers.
Each notebook is configured for its respective scenario, so you can test different regions and charger types independently.
Note: Processing larger datasets (e.g., Atlanta) may take significantly longer. For quicker validation, you may start with smaller regions such as suburban or rural areas.
Best regards,
Team SCSI