Introduction: Social Topographies of San Francisco
The social fabric of San Francisco can be read through many lens, each making up its own topography. I believe that through data visualization and mapping we can learn much about our surroundings. For this project, I was interested in creating thematic maps from publicly accessible data, which describe the social makeup of San Francisco. By choosing nine social factors to map, my goal was to create a portrait of the city in an accessible and tangible form.
To do this, I first compiled the data and then created georeferenced maps. I then brought these maps into digital modeling software to export .stl files for 3D printing. Finally, I constructed a frame for the three-dimensional maps, so that they could be displayed together. By creating a three-dimensional representation of the data, my hope is to engage the viewer first by examining the form of the maps and then make their own correlations between location, adjacencies, and relation to topography.
The social factors that I used are:
- Residential Density
- No Fault Evictions/Google Bus Stops
- Ambient Noise Levels
- Percentage Race White
- Pedestrian Victims
- Bicycle Routes and Paths (current and planned)
- Percentage Home Owners
- Driving Distance to Hospitals
- Median Income Level
Step 1: Collecting Data
I collected data in the form of .csv files and .shp files. My primary source was DataSF, a website maintained by the City of San Francisco with a wealth of data. Additionally, I sourced data from the US Census and ESRI. Most of the data is in the format of census block or block groups.
Step 2: Mapping
I created thematic maps in ArcMap and ArcScene to join and relate and then visualize the data. This mapping software allows data to be viewed spatial by georeferencing the information to a coordinate system (latitude and longitude). This data comes in the form of points, lines, or polygons. The geometry then contains referenced information associated in an attribute table.
(Thank you Kelly Clonts for your assistance with "Housing" data.)
Step 3: Modeling
I used Rhino and the parametric plug-in Grasshopper to import GIS data and related attributes through the custom plug-ins Local Code and Heron. Both plug-ins allow for the geometry and attribute data to be imported together. The attributes can then be used to create three-dimensional models representing the data.
The Housing Density is simply an extrusion of the census blocks to the height of each density number.
The Median Income Level is slightly more complicated. It involves first taking the centroid of the census block and then raising it up to the height of the median income. Additional points are spread evenly along the perimeter of the city boundary. These points are then used to create a mesh surface that approximates income topography of the city.
The Ambient Noise Levels is a similar process to income, but includes an additional step that creates thickened mesh outline frame, rather than a surface.
Step 4: Meshmixer
After exporting an .stl file for 3D printing, I brought it into Autodesk Meshmixer to edit the geometry. Grasshopper is notorious for creating rather messy meshes. So, editing the geometry is usually necessary before printing to avoid error messages. Meshmixer makes this easy with its mesh analysis tool. If more complicated operations are required, I recommend using MeshLab, another free editing software.
Step 5: 3D Printing
If all goes well with the .stl export and mesh editing in Meshmixer, it’s time to 3D Print. I used an Objet Connex 500 resin printer with materials Vero White and Tango Black Plus. This gave me the ability to print grey scale combinations of the two materials.
Step 6: Display
To display the 3D printed maps, I created a walnut veneer and birch frame on a Metabeam lasercutter. I then assembled the plywood frames by sandwiching the prints between the wood layers. I’m currently adding LED lights to the assemblage, which will highlight the translucent quality of the resin prints.
(Additional thanks to Levon Fox and Luis Jaggy for their help!)