A grasshopper workflow for evaluating social distancing on sidewalks using GIS Data and Grasshopper.
- Workflow Demo
- Sidewalk_Social_Distancing_Plugin
- Mapping Project
- Rhino and Grasshopper Example Analysis Files. These Grasshopper Files Demonstrate the workflow
- This folder contains the plugin C# files and Visual Studio project
- Holds an ArcGIS Pro Mapping Project with reference GIS Data and Model Data used within the Analysis. Unfortunately source data is too large for github so links to original files can be found in Section 4
This tool/workflow is developed for the evaluation of specific sidewalks in support of social distancing interventions. End Users are interested in several blocks at a time and these tools support design development.
The analysis focuses on questions of social distancing on sidewalks with the understanding that there is generally low covid-19 transmission risk outdoors, but risk rises when individuals spend time in close proximity. In the context of the city sidewalk there are two conditions that are likely to increase risk, areas where there is not sufficient space to spread out, and busy areas with greater pedestrian traffic or zones that gather stationary occupants.
The analysis deals with each of these through consideration of sidewalk width as an indicator for pedestrians ability to keep distanced, and considering adjacent activates as proxies for how active a stretch of sidewalk is likely to be at a given time.
- Set up work space based on NYC Planning's 3d rhino model for your study area.
- Create a study boundary and use the Setup Script to prep and import site GIS data.
- Use the Analysis Script and Plugin to evaluate sidewalk conditions.
- Make Changes and modifications to the sidewalk to adjacent uses
- Compare Results
- Iterate
The following describes the workflow steps. Note that the workflow makes use of the following grasshopper plugins: HumanUI, BearGIS, Urbano, Elfront, & MetaHopper. github size limitations prevent source gis data for NYC to be shared here. Original data can be found using the links in section 4.
This model has had the following step (b) already completed. It contains a portion of the citywide rhino model, parcel and sidewalk gis layers imported for this study area, and a user generated boundary curve.
This script helps export a shp file for use in clipping down external gis data to the study site of focus, as well as import and bake city sidewalk and land use data. This has already been run in the demo, but you can check out the process and an additional urbano.io route intensity model.
This file contains an example of how to use the sidewalk analysis plugin in two examples. Example One classifies sidewalks for social distancing risk based on width and Example two uses land use data to estimate activity intensity.
This component extracts the centerline and edges of polygons in order to evaluate sidewalk width. The centerline is based on a sampling of the input Brep defined by the 'DivdeDist' input.
This component extracts profile lines for the sidewalk width corresponding with each segment of the sidewalk centerline.
This component extracts profile lines for the sidewalk width corresponding with each segment of the sidewalk centerline.
** denotes Use within workflow
Though developed as a proofs of concept, this workflow has the potential to provide usable insights with the addition of better informed weighting thresholds for covid-19 risk. All the risk weighting thresholds are currently placeholder for demonstration of the scripts functionality. In developing the components to the custom plugin, the Polygon Centerline and Visualize Analysis components have great potential for re-use in other applications. These are general use components that are particularly well suited for efficient sidewalk analysis but have the flexibility to work in any context that is either looking for a polygon centerline or to color a mesh based on spatial weighting. The later of which is quite common in spatial analysis. One significant value of this workflow is this ability to design the weighting system based on simple points, making it very adaptable and customizable.
As a larger workflow, the setup script currently looses efficacy by requiring the cropping of sidewalk data in gis prior to import. This cropping can be done in grasshopper but is time intensive. If sidewalk files were pre-processed to match the boundaries of the cities' rhino model divisions, this extra clipping step could be eliminated completely, making the workflow more accessible to none GIS users. Looking forward, if this work where to continue, I think next steps would be to integrate both land use and sidewalk width into a single index, and also incorporate urbano.io activity routing to influence sidewalk use intensity over time. If urbano were to be paired with Google Places API data or more robust datasets like StreetLight of SafeGraph, it would be possible to deliver a high resolution estimate of sidewalk use intensity.