You can access my project on Elevators in NYC at the following link: https://storymaps.arcgis.com/stories/f1ee088421384cdb8619736c3edc91b1
Author Archives: christophercali
Digital Storytelling: The Fairness Doctrine
See below for an informational digital zine on the FCC’s Fairness Doctrine.
View the inner pages side by side in the embed below.
See an interactive timeline of important dates pertaining to the Fairness Doctrine.
Exploring Macaulay Honors College
An Exercise in Data Visualization: Personal Fitness Before & During the COVID-19 Pandemic
An Exploratory Analysis of 311 Calls Handled by the DSNY During the COVID-19 Pandemic
For this first project, I put myself into the shoes of a DSNY (Department of Sanitation NY) data analyst. I would like to examine the 311 calls that DSNY handles and see if there are any specific types of complaints that need to be addressed, more so than others. In an initial filtering of the data, I think a good way to get the data simplified is to look at it in three ways: citizen issues, sanitation issues, and other issues that do not fit within either of the categories. To further clarify, citizen issues deals with problems that are caused by the average New Yorker – of illegal dumping, residents not cleaning up their garbage properly, etc. Sanitation issues refer to problems caused by the department itself – of complaints about workers, baskets not being picked up, etc. I wonder: As we continue into this new normal, which specific complaints can the DSNY focus on to decrease the amount of sanitation-related 311 calls the city receives and, more consequently, improve the quality of life of New Yorkers and performance of the agency? Additionally, how has the volume of DSNY-related 311 service requests changed throughout the pandemic?
Each of the complaint types were coded the following way:
|Abandoned Bike||Collection Truck Noise||
Litter Basket / Request
|Derelict Bicycle||DSNY Spillage||
|Derelict Vehicle||Employee Behavior||
|Dirty Conditions||Missed Collection||Snow|
|Graffiti||Missed Collection (All Materials)||
|Overflowing Litter Baskets|
The 311 Service Requests were sorted through and pulled from NYC Open Data. Since analysis is for the time period of the pandemic, data was pulled from March 11, 2020 (my first day of working from home) through August of 2021.
City officials, specifically in the DSNY, but also beyond at City Hall, would be interested in seeing the answer to the research questions above. Having this information would be beneficial to these stakeholders because it can influence where departmental resources are distributed for more efficient use of the DSNY workforce. Additionally, this information can determine if there is any legislation that can be passed to improve conditions for New Yorkers.
Initial Analysis & Visualization
To begin I created a stacked bar chart to demonstrate which types of issues are reported most frequently and further, to show which complaint types are most common in each. I chose to do a stacked bar chart because it allows us to see both of these measures in one chart.
In reviewing the stacked bar chart above, we can observe the following:
- While both DSNY-related issue types are common (with over 70,000 reports each) for both Citizen & Sanitation Issues, 311 callers more frequently complain about issues caused by other average New Yorkers, not the sanitation department itself.
- Within Sanitation Issues, Missed Collection is by far the most frequent complaint type with almost 70,000 reports.
- Within Citizen Issues, Dirty Conditions and Derelict Vehicles are most frequently reported, both at over 50,000 reports.
Design choices for stacked bar chart:
I tried to keep this chart simple, as to communicate clearly. I coded each of the issue types with different colors and then made a gradient for each of the complaint types. We primarily look at the quantities here, so I made sure the tooltip only contained the important information – the complaint type and quantity.
Monthly Trends During the Pandemic
Below, we see how DSNY-related 311 service request volume has changed throughout the pandemic. It is important to note that for all graphs below, we used the date that the report was created, which would correspond to the day that the call was initially made.
I also broke these out into the different issue-type categories to see if there was anything to glean from those differences.
We can observe the following:
- The lowest volume of 311 complaint calls happened in the earlier months of the pandemic. This seems to loosely line up with NYC lockdown in early 2020 and gradual reopening over time. Vaccines started becoming available to select adults in January, but ramped up in March and April. Perhaps there is a slight correlation between the vaccine rollout and 311 calls as well.
- The months with higher 311 service requests appear to be consistent across issue types. We cannot observe that any specific month had significant differences based on issue type on a month-to-month basis.
- March of 2021 has the highest call volume.
Analysis of Missed Collection, Dirty Conditions, and Derelict Vehicles
I am most interested in doing further analysis on the Missed Collection, Dirty Conditions, and Derelict Vehicle complaint types as those are the most common 311 reports to the DSNY. Further analysis of these complaint types can provide information to resolve the most frequent complaints from both issue categories.
We can observe from the line graph above:
- Consistent with earlier graphs, March of 2021 saw the most requests in the three complaint types I am focusing on: Missed Collection, Dirty Conditions, & Derelict Vehicles.
- Missed Collection had a stronger spike – perhaps this is weather related and can be resolved by ensuring more sanitation staff are available to work overtime to address issues of snow and garbage collection.
- Opportunity for further analysis: Does snow have anything to do with this and perhaps the higher winter call volumes in general? We can look at the relationship between weather patterns for those months and the ticket volume. Additionally, we can compare this to calls that are snow-related.
Design Choices for Line Graphs: I decided to make the line graphs very simple and thought that it was more beneficial to split the categories and complaint types into different graphs to make it more easy to view.
I had initially tried to do these charts as a bar graph or pie chart. Both were quite ineffective and unnecessary, so I decided to go with a table. We can observe that in all of these categories, most of the tickets are closed.
Opportunities for further analysis:
- Since we used the date that the service requests were created, in other words that the call was made, it would be interesting to see the time elapsed to when they were closed/resolved. This can further illuminate where department resources should be focused.
- Reviewing the descriptors to see what types of responses each of the issues received. One example of a Derelict Vehicle I noticed was that it was not actually a Derelict Vehicle – no further action was required after that.
- Mapping where open/pending cases are.
There are many interesting things to be gleaned from looking at the DSNY 311 Data. It is fair to conclude that both Citizen and Sanitation issues are of big concern and that the Missed Collection, Dirty Conditions, and Derelict Vehicle complaint types are the most common. It would be fair to suggest that DSNY officials take a closer look at these specific complaint types to try and decrease the amount of calls they get in those categories.
Interestingly, it appears that the Winter months of 2021 got the highest volume of 311 complaint calls with another spike happening in the warmer months of 2020.
With this, there are definitely more questions and further analysis to be done.
An Analysis of Electric Vehicle Charging Stations in the United States and New York City
This blog posting is for my Spring 2021 Spatial Data Analysis & Visualization and Geospatial Humanities course with Dr. Shipeng Sun.
UPDATE 12/19/21: Please note that my subscription for ARCGIS Online has run out, so maps below are no longer visible. I apologize for this inconvenience.
Recently, President Biden has proposed a large 2 trillion-dollar infrastructure plan. Within that plan, the New York Times reports that up to $174 billion of it will be used to “encourage Americans to switch to cars and trucks that run on electricity” (Chokshi). A big part of that money will go towards incentivizing the growth of electric vehicle (EV) charging stations.
I have always taken an interest in the growth of electric vehicles, as I believe they are the future of transportation in the United States. Currently, I drive a Mazda vehicle that runs on gasoline, but hope that I can switch over to an electric vehicle soon. Unfortunately, I am not yet equipped to do that and neither is the infrastructure of our country. Driving through my neighborhood of Bensonhurst, Brooklyn, you are able to find a gas station every few blocks. Charging stations for vehicles are much harder to come by. The biggest obstacle to electric car growth in my mind is the accessibility to charging stations. Consumers will not buy an electric vehicle if they believe it is too difficult to “fill up.” The new infrastructure plan has given me hope that we will see a sharp increase in the amount of charging stations across the country, making it more accessible and easier for those who would like to buy an electric car, but cannot.
For this project, I am taking a look at the number of charging stations in the United States using spatial data from the US Department of Energy. With this data, I will map out the charging stations in the US and using processing tools in QGIS, I will see which states have the most charging stations available. Using population data from the US Census Bureau, I will also take a look at the best locations for public charging stations on a per capita basis. Zooming in, I will take a look at the charging stations in NYC and determine which neighborhoods would be best to live in if you own an electric vehicle, based on Neighborhood Tabulation Areas from NYC Open Data.
To begin, I needed to locate the correct data. I began by pulling the Cartographic Boundaries from US Census Bureau for States and Counties in Shapefile format.
These Cartographic Boundaries did not have population data included in them, so I needed to find a way to join the data together before doing anything with the EV Charging Station Data. I then pulled Population Data from the US Census Bureau as CSVs for states and counties. For this, I used the 2019 estimated population because the 2020 census data has not yet been released.
I imported the data into QGIS for processing.
For the states, it is quite an easy join. Using the QGIS Processing Tool, Join by Field Value (using State Name to do so), I successfully joined population counts to the state boundaries.
For the counties, I had much more processing and cleaning to do. In Excel, I added a new column and used the concatenate function to create a string with “State Number – County Name” for the population data. In QGIS, I used the Field Calculator to create a new column with the same naming convention in the shapefile of county boundaries. Since both data sources (the county boundaries shapefile and CSV of population estimates) were from the Census Bureau, using the Join by Field value Function worked well enough because the strings were similar, using the same naming conventions. The data cleaning I had to do however was quite time-consuming. In the states of Louisiana, which named counties “Parish” instead of “County” and Alaska which used “Borough,” I adjusted the data in the CSV to match. I did this fix with Virginia as well which used “city” for a number of counties. There was also a location that had a Spanish tilde (ñ) that seemed to have issues processing, so I manually inputted information for that New Mexico county. I was able to identify these issues when I ran the Join by Field Value function in QGIS.
In addition, I also removed data from any non-states (except DC) such as US Virgin Islands & Guam, since population numbers were not provided for them.
Once my boundary layers were successfully joined with population data, I was able to import the data for charging stations using a delimited text layer. I pulled the CSV file from the Department of Energy database. The data is pulled from May 18, 2021. It is important to note that I only pulled the locations of US-based, public, Level 2, and DC Fast electric charging stations to use for this project.
As Freewire Tech explains, there are 3 different types of electric charging stations: Level 1, Level 2, and DC Fast Charging. They say: “In general, chargers are defined by the number of kilowatts (kW) they output. Each kilowatt-hour (kWh) received by a standard passenger-sized EV equates to about 4 miles of driving range. The higher the output from the charger, the faster the EV battery will recharge” (Freewire). To avoid going into unnecessary detail, Level 1 chargers can take over 24 hours to give an electric vehicle a full charge, which makes them impractical for the purposes of this analysis, as those looking for a charging station would want faster charging options. Level 2, the most common charger currently out there, can provide a full charge in about 8 hours, while a DC Fast Charger can take 60-90 minutes for a full charge. Additionally, there are under 1,000 Level 1 public charging stations in the US anyway. Due to their low number and inefficiency when it comes to charging time, I have excluded Level 1 stations from analysis.
For state boundaries and county boundaries, I used the Point Counts in Polygon tool to reveal the locations with the most charging stations. I did this in two ways: with population considered (on a per capita basis) and population not considered (just looking at total number of stations). I saved the joined and counted shapefiles into CSVs to process in Google Sheets. To display the different charging stations, I put the data in different ArcGIS maps embedded below. Underneath are my findings from my work in QGIS. I also pulled the Neighborhood Tabulation Areas from NYC Open Data, which are the NYC neighborhood boundaries to do a zoomed-in analysis of NYC. In my conclusion, I analyze my findings deeper and discuss what they tell us about the state of electric vehicle charging stations in the US.
Analysis & Visualization
Electric Vehicle Charging Stations in the US
Heat Map of Electric Vehicle Charging Stations in the US
EV Charging Stations by State
Data processing was done using QGIS, Excel, and Google Sheets.
Top Ten States with Most EV Charging Stations
|State||Number of Total Stations|
California tops the list for the state with the most EV charging stations by a large amount.
List of State Count for EV Charging Stations (Alphabetical)
Looking at the data, 21 states in the list have under 250 electric vehicle charging stations.
Proportional Symbols of EV Charging Stations by US State
You can click on each state to see how many charging stations are in each.
Top Ten States with Most EV Charging Stations Per Capita
|State||2019 Population Estimate||EV Stations per State||EV Stations Per 100,000 People|
|District of Columbia||705,749||234||33.2|
List of State Counts for EV Charging Stations on Per Capita Basis (Alphabetical)
The data shows that 32 states have under 10 EV charging stations per 100,000 people.
EV Charging Stations by US County
I found that looking at the breakdown by county was more illuminating.
Graduated Map of EV Charging Stations By County
Top 25 US Counties with Most EV Charging Stations
|County Name||State||EVs per County|
|New York||New York||352|
California certainly dominates the list with counties with the most EV charging stations.
List of County Count for EV Charging Stations (Alphabetical by State)
Strikingly, 1,391 counties have no charging stations.
Top 25 States with Most EV Charging Stations Per 10,000 People
Note: Since County populations are on the smaller side, I adjusted this to be per 10,000 people as opposed to 100,000 people like above.
|County Name||State||2019 Population Estimate||EVCSs per County||EVCs per 10,000 People|
List of County Count for EV Charging Stations Per 10,000 People (Greatest at Top)
The average and median for charging stations per 10,000 people in the counties are both under 1.
EV Charging Stations in NYC
Count of Electric Vehicle Charging Stations in Each NYC Neighborhood
New York City Neighborhoods with the Most Electric Vehicle Charging Stations (Top 27)
Using the Neighborhood Tabulation Areas from NYC Open Data as the boundary, I was able to see which neighborhoods have the most (and least) electric vehicle charging stations in New York City. It does not seem useful to do this on a per capita basis, given that the numbers are quite low.
|Neighborhood||Borough||NYC Neighborhood EVCS Count|
|Upper East Side-Carnegie Hill||Manhattan||32|
|Lenox Hill-Roosevelt Island||Manhattan||31|
|Turtle Bay-East Midtown||Manhattan||30|
|Hudson Yards-Chelsea-Flatiron-Union Square||Manhattan||27|
|Upper West Side||Manhattan||25|
|Battery Park City-Lower Manhattan||Manhattan||22|
|DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill||Brooklyn||19|
|Murray Hill-Kips Bay||Manhattan||18|
|SoHo-TriBeCa-Civic Center-Little Italy||Manhattan||16|
|North Side-South Side||Brooklyn||14|
|Hunters Point-Sunnyside-West Maspeth||Queens||13|
|Brooklyn Heights-Cobble Hill||Brooklyn||8|
|Old Town-Dongan Hills-South Beach||Staten Island||7|
|East Harlem South||Manhattan||6|
|New Springville-Bloomfield-Travis||Staten Island||6|
16 of the top 27 NYC neighborhoods with the most electric vehicle charging stations are in Manhattan. For those in NYC, Manhattan clearly has an edge when it comes to electric vehicles.
Electric Vehicle Charging Stations Counted in All NYC Neighborhoods
Even more interesting is that 103 neighborhoods in NYC do not have even one public EV charging station. That is more than 50% of the neighborhood within NYC.
In my analysis, I found that many locations in the US are lacking public access to high-speed electric vehicle charging. This is a gigantic barrier to the growth of electric vehicles. If people are unable to access charging to “fill up” their car, then they won’t want to purchase an electric vehicle.
Some striking findings bulleted below:
- 21 states in the US have fewer than 250 charging stations.
- The data shows that there are 32 states that have fewer than 10 stations per 100,000 people.
- There are 1,391 counties in the US with 0 charging stations. That is more than 44% of US counties.
- In NYC, 103 out of 195 Neighborhoods have no charging stations.
These statistics show that electric vehicles have a long way to go to become a dominant force in transportation in the US.
For comparison purposes, a simple Google search of how many gas stations in America tells us that there are over 100,000 gas stations in the country. According to my data, there are approximately 42,000 EV charging stations. For us to catch up to the amount of gas stations, we would need over a 100% increase in the amount of electric vehicle charging stations. It is quite clear that we have a lot of work to do if we want electric vehicles to be widely used in the US.
With that said, there is hope. If the federal government injects the industry with money, there can be rapid growth in EVs. One suggestion I would have to legislators is to provide different tax incentives for EV charging companies to grow. Big businesses in retail can also get involved in the growth of EV charging stations by providing space in their parking lots for people to charge their vehicles. Since we are not yet at the point where electric vehicles “fill up” in minutes like at a gas station, this would also increase the amount of shoppers who are waiting for their vehicle to charge, stimulating the retail economy that is increasingly at risk with the rise of online shopping. The fight for more sustainable and eco-friendly uses of energy continues!
For Further Research & Work
I would love to find the number of EV drivers in each state and county and try to determine the amount of EV charging stations with respect to those figures, instead of on a per capita/population basis. This would require much more research to see if this data exists and would be more difficult to process. The findings, however, can be beneficial to review.
I would also love to compare this data to the amount of gas stations in the US on a county-by-county basis. I am not sure my computer would have the capacity to handle a data set of that size, but it would definitely be interesting for comparison purposes.
US Department of Energy Alternative Fueling Station Locator
For reference, you can see the US Department of Energy Alternative Fueling Station Locator below.
DATA 78000 – Spatial Data Analysis and Visualization – Lab 3
Below, you can see my work for the third lab of DATA 78000 (Spring 2021) with Dr. Shipeng Sun.
All map layouts were done with QGIS. Attribute tables are embedded from Google Sheets.
Questions with their answers are below. All mapping work is done within the EPSG: 2263, NAD83/New York Long Island (ftUS) Coordinate Reference System. If you wish to see some of the pre-processing steps done with the different data sets/layers, you can see my document submission to Blackboard here.
Disclaimer: Pre-processing of the data done in QGIS was performed with inexact methods, so final figures may vary from other methods of data cleaning.
How many arrests per capita in each neighborhood in 2020?
Below, I have embedded a Google Sheet that contains all of the arrests per capita in each neighborhood of New York City in 2020.
To do this in QGIS, I joined Census Tracts & Census Population Data from Session 8 of Class. Then converted that joined layer into centroids (points). I then used those points to join them to NTA (Neighborhood Tabulation Areas) from NYC Open Data. Then, with the arrest data provided in the Lab 3 Assignment, I counted the arrests in each neighborhood (See “ARRESTS” column below). Using the Field Calculator, I added a new column to calculate the per capita amount, which is done with a simple function of dividing the arrests over neighborhood population (“POP18_sum” column below) and multiplying by 100,000.
What are the top 10 neighborhoods with the most arrests?
PER CAPITA (Per 100,000 People)
|Neighborhood||Borough||Arrests Per 100,000 People|
|DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill||Brooklyn||5,723.8|
|SoHo-TriBeCa-Civic Center-Little Italy||Manhattan||5,673.0|
|Springfield Gardens North||Queens||5,253.8|
|West New Brighton-New Brighton-St. George||Staten Island||5,123.2|
|Mott Haven-Port Morris||Bronx||4,999.0|
Note: It appears that Park Cemetery is considered a neighborhood in Queens. This is an area with a population of 189 – I think it is more likely that no one lives here, but arrests take place in this area. This discrepancy comes from the imprecise nature of data cleaning that was done in QGIS. I am leaving it as part of the answer, but if I was to use this for official purposes, I would consider removing Park Cemetery from the data because it is an outlier.
The choropleth map below labels the top ten neighborhoods with the highest arrests per 100,000 people. The bins used are quantiles (equal count).
TOTAL (Not taking into account population density)
|East New York||Brooklyn||3,016|
|East Harlem North||Manhattan||2,788|
|Mott Haven-Port Morris||Bronx||2,583|
|Crown Heights North||Brooklyn||2,515|
|Hudson Yards-Chelsea-Flatiron-Union Square||Manhattan||2,466|
|Central Harlem North-Polo Grounds||Manhattan||1,960|
The choropleth map below labels the top ten neighborhoods with the most arrests in 2020. Natural Breaks (Jenks) are being used for the classification method.
How many complaints per capita in each neighborhood in 2020?
Below, I have embedded a Google Sheet that contains 311 Calls per capita in each neighborhood of New York City in 2020. Note that for this question, I put the top 10 overall calls at the top, not per capita., though you can still see all of the calls per capita.
I used the same QGIS Methods as in Question 1 to accomplish this.
What are the top 10 neighborhoods with the most complaints?
TOTAL (Not taking into account population density)
|Neighborhood||Borough||311 Calls Count|
|Washington Heights South||Manhattan||42,560|
|Crown Heights North||Brooklyn||37,963|
|Central Harlem North-Polo Grounds||Manhattan||35,514|
|Washington Heights North||Manhattan||35,431|
|Prospect Lefferts Gardens-Wingate||Brooklyn||29,910|
|Upper West Side||Manhattan||28,160|
Choropleth map below using Quantile (Equal Count) Breaks. Top ten neighborhoods with complaint calls are labeled.
PER CAPITA (Per 100,000 People)
|Neighborhood||Borough||311 Calls Per Capita|
|Crotona Park East||Bronx||74,148.6|
|Washington Heights South||Manhattan||62,725.7|
|North Side-South Side||Brooklyn||56,781.3|
NOTE: The Park Cemetery issue seems to have arisen again in this question with the addition of a Brooklyn location in the top ten. As before, I will leave this in, but attribute this to the data cleaning methods used in QGIS.
Choropleth map below using Jenks (Natural) Breaks. Top ten neighborhoods with complaint calls per capita are labeled in the map.
What are the ratios of arrests to complaints for each neighborhood?
Ratios can be viewed in the last column of the embedded Google Sheet. To calculate these ratios, I used the Field Calculator in QGIS.
Which neighborhoods have ratios that are three times higher than the average?
As shown in the spreadsheet above, the average ratio of Calls to Arrest is 29.16 Calls to an Arrest. See table below for three neighborhoods with ratio higher than 3x the average (87.47).
|Kew Gardens Hills||15871||122||130.09|
|Ft. Totten-Bay Terrace-Clearview||3172||28||113.29|
|Glen Oaks-Floral Park-New Hyde Park||3997||42||95.17|
See choropleth map below, using quantile breaks. The three neighborhoods whose ratios exceed 3x the average are labeled.
How many noise-related complaints (311 services) in each neighborhood?
Using the Query Builder, I was able to use the keyword “Noise” to pull all the noise complaints from the 311 Call Data. Once that was complete, I used processing tool, Count Points in Polygon, to get the numbers in the spreadsheet below.
Below is an incomplete map layout using proportional symbols, to give a visual aid of the data in the Google Sheet above.
What are the top 5 subway lines that have the most noise complaints within 50 and 100 meters?
Please note that I am adjusting my analysis to check within 250 meters and 500 meters to widen the zone for which QGIS will count.
Image below shows the buffers for the MTA Subway Lines. Green is 500 Meters and Yellow is 250 Meters.
Next image, I have zoomed in to each borough and also have the noise complaints layer visible.
In QGIS, I used multiple processing methods to generate the data for the maps and tables below. I used the buffers as polygons and joined the data so that I can display it below. See document submission to Blackboard linked above for more information.
Subway Routes with Most Noise Complaints within a 500 Meter Buffer
|Line||Route||500m Noise Comps|
|2||7 Avenue Express||176,480|
|5||Lexington Avenue Express||164,662|
|B||6 Avenue Express||139,630|
|A||8 Avenue Express||134,588|
|D||6 Avenue Express||134,257|
Subway Routes with Most Noise Complaints within a 250 Meter Buffer
|Line||Route||250m Noise Comps|
|2||7 Avenue Express||126,479|
|5||Lexington Avenue Express||119,097|
|B||6 Avenue Express||73,710|
|1||Broadway – 7 Avenue Local||72,588|
|D||6 Avenue Express||71,654|
You can observe that 4 of the 5 of the lines are highest on the list for noise complaint calls within the 250m and 500m buffer. In the table, I made Bold the lines that are different in each.