In the winter of 2012, NYC's Department of Information Technology and Telecommunications (DoITT) was tasked with developing an application to track snow vehicle operations. The DoITT GIS team was given a mandate to have the application in production before the end of the winter. Due to the aggressive schedule, our approach was to get something up as quickly as possible while enhancing and improving over time. Beyond the schedule constraint, additional challenges were minimal requirements and decision-making by committee with no clear business owner.
Three major tasks were required to complete the project: scale the existing infrastructure to better handle the expected demand, determine an approach for communicating the information to the public in a legible and understandable way, and develop and test the application. The team quickly undertook a multi-pronged approach to complete these tasks within a roughly two-month timeframe.
Of all the impossible tasks, scaling the infrastructure was the most challenging and difficult. High-profile application launches in NYC that come with press announcements tend to garner traditional and social media coverage and with that national exposure and demand. And although the application would have been a perfect candidate to deploy in the cloud, that was not an option. Additional servers were added and the application was optimized and tuned for performance. To do so, multiple-layers of caching were employed including GeoWebCache and a Content Delivery Network.
In terms of visualizing the data, we conducted a quick review of existing public-facing applications. There were not many examples at the time with most cities choosing to show 'breadcrumbs' of a plow's path. We felt this method was not an effective way of conveying plow coverage; our objective being, to show which streets had been plowed and not to show where a plow had been at specific time. As such, we decided on visualizing the data by the time a street was last plowed. Five time-buckets were established and the street segments were color-coded based on the last GPS ping received on the segment. Every 15 minutes an ETL pulls the GPS data and renders tiles using GeoServer and GeoWebCache.
The application, PlowNYC, was developed using open source and commercial software and custom code. These include OpenLayers, Geoserver, GeoWebCache, GeoTools and Oracle. Since its release, the application has been enhanced to handle greater traffic, support mobile clients and to simplify the interface. The presentation will cover these aspects of the project.