Recently we collaborated with Microsoft and Prospect Silicon Valley (ProspectSV) on a project to assess the viability and value of several Azure services. Specifically, we were asked to demonstrate how the cloud-based platform could be used to retrieve, store, visualize and predict trends based on data from multiple sources. In order to demonstrate these capabilities, we built an ASP.NET MVC application leveraging the following Azure components:

  • Azure App Services
  • Azure Machine Learning
  • Azure Power BI Embedded
  • Azure Storage

Figure 1: ProspectSV Application Architecture depicts how the system uses these four Azure components. This diagram also describes which external data sources are used and where that data is stored.

Figure 1: ProspectSV Application Architecture

Vehicle Accident Analysis

One of the application’s objectives was to analyze vehicle accident data provided by the City of San Jose’s police department and correlate it with recorded weather conditions. To satisfy that requirement, we chose to surface Power BI dashboards using the Power BI Embedded API. This enabled us to quickly build informative and compelling reports which can be viewed without individual Power BI licenses.

The Figure 2: Power BI Dashboard contains visualizations showing the number of accidents by year, location (street intersection), and weather condition. By default, the dashboard shows all accidents for all years and weather conditions, but the map is filtered to only show locations where a large number of accidents occurred. Users can further filter the data by selecting any combination of columns or pie slices in these visualizations to filter the data displayed in the map.

For instance, selecting a specific weather condition (e.g., rain) and year (e.g., 2010) will cause the map to adjust, highlighting which intersections had the greatest number of incidents where it was raining during that time frame with bubbles ranging in color from yellow to red.

Figure 2: Power BI Dashboard

Electric Vehicle Charging Station Analysis

Another objective of the application was to determine utilization of electric vehicle charging stations managed by ProspectSV throughout the state of California. Again, we used Power BI dashboards, one of which can be seen below in Figure 3: Electric Vehicle Charging Station Usage.

This dashboard helps identify which stations are used the most, and which are used the least. This information greatly improves the decision-making process regarding where to build new charging stations.
Figure 3: Electric Vehicle Charging Station Usage

Locate Available Electric Vehicle Charging Stations

The final objective of the application was to assist motorists in locating electric vehicle charging stations near a specific destination. In addition to locating nearby charging stations, the system indicates whether those stations are currently in use and can also predict whether those stations will be in use at a specified arrival time.

After a user specifies a starting location and final destination, the system uses Bing Maps API routing service to estimate an arrival time based on current traffic patterns. Using the destination and anticipated arrival time, the system displays each station’s charging ports’ current availability and the probability of any ports being available upon arrival, as illustrated in Figure 4: Find Nearby Charging Stations.
Figure 4: Find Nearby Charging Stations


This project was exploratory in nature and had a short implementation phase. After witnessing the results of our efforts, ProspectSV was excited about our application’s capabilities. As we completed our planned tasks, we discussed the following ways to enhance the system:

  • Utilize weather data from stations closest to intersections, as opposed to average weather data across the entire City of San Jose.
  • Enhance charge station availability predictions by using dwell time of vehicles at charging stations to better predict when an in-use port at a station will become available.
  • Automate the training of the Azure Machine Language prediction model with data retrieved from the ChargePoint API in real time.