Writing about cities, urban planning, mapping, data visualization & creative coding

  • Segmenting Street-Level Images with Computer Vision using Tensorflow

    In this post I outline my workflow in training a toy convolutional neural network (CNN) model from start to finish including creating my own ground truth images. The model is then used to predict semantic segmentation masks of street-level images, a tool popular in autonomous vehicle driving applications.

  • Exploratory Data Analysis of Urban Trees in Calgary

    The City of Calgary estimates there are almost 7 million trees growing within city limits. The urban forest we see today is the result of over a century of careful planning, planting and maintenance. Using a dataset of public trees, I did a short exploratory data analysis to understand the distribution of tree species.

  • Designing a Transit Map: User Experience Design

    With the launch of Calgary’s new Bus Rapid Transit (BRT), I experimented with designing an interactive transit map to visualize the new system. The challenge involved creating an accessible, intuitive map where a user could quickly see the new routes and explore connections.

  • The Online Transit Map: Challenging a One Size Fits All Approach

    Transit agencies must influence how their transit maps are displayed online. By relinquishing the design and mapping to tech companies, they lose out on the opportunity to communicate effectively with their customers.

  • Working with GTFS Realtime Transit Data

    Decoding GTFS Realtime transit data can be a challenging endeavour for simple front end development. By using protobuf.js, AWS Lambda and Serverless, we can make the data accessible for web application and visualizations.

  • Using Open Data and Machine Learning to Predict Traffic Collisions

    With the recent release of a traffic incident data set in Calgary, I was interested in utilizing the data to create a simple prediction model using machine learning. The availability of traffic incident data is still lacking in parts of Canada and its release can create an opportunity to analyze, interpret and predict urban transport behaviours.

  • Predict and Visualize Traffic Collisions using Keras and tensorflow.js

    A simple traffic collision predictor and visualization created using Keras, tensorflow.js, React and Mapbox.

  • Urban Farms, Land Use and Soil Contamination

    Urban farming offers cities both economic and social benefits. With increasing populations migrating to urban centres, the development of sustainable, secure foods sources is a boon, however the potential for soil contamination is a barrier.

  • Transit Connectivity and Network Centrality

    How do we know if transit routes are traveling through the most connected areas of a City? If we were to map bus routes and network centrality for communities what would that tell us about transit planning? Continuing on from my post about Social Street Networks, I’ve created an interactive map showing Calgary Transit bus routes and closeness centrality measures of the neighbourhoods they intersect.

  • Using React and Mapbox to Map Bus Routes

    With all the hype surrounding React and Angular and JavaScript frameworks lately, it’s probably time to get familiar with this new fad. My recent post and project about Network Analysis required some type of application UI so why not try out React?

  • Social Street Networks

    I’m always excited about discovering new ways to visualize how cities are planned and how street networks impact mobility and use. Recently I came across the study of Network Science and Social Network Analysis and its application to Transportation Planning.

  • Drawing 3D Arcs

    This is a simple sketch of 3D arcs using bezier curves. They can be a little tricky to figure out, especially when you can’t see the handles. I’ve been using them for a while in photoshop and have a pretty good grasp on how to manipulate them. I might try implementing this in a mapping visualization. Here is the code.

  • Streetscape Feature Segmentation with Deep Learning

    I’ve been a little obsessed with artificial neural networks recently. A couple weeks ago I came across some research by the Machine Intelligence Lab at Cambridge which led to a segmentation program called SegNet. The accuracy of predicting and segmenting streetscape features had me curious about how the program worked.

  • Drawing Roads with GeoJSON and Processing

    Continuing with my 3D mapping theme, I’ve built onto my previous map with GeoJSON road data from the City of Calgary Open Data catalogue.

  • Advection Dispersion Visualization in Processing

    I recently took a Environmental Engineering graduate course about contaminant transport. Part of the course involved finite difference analysis and modelling so I thought I’d do a simple visualization with Processing to see the equations in action. The coding part was pretty simple but it was interesting to see how I could apply Processing to visualize a contaminant plume.

  • 3D Mapping – Visualizing Population Data

    Since the City of Calgary began releasing open data through the online catalogue I’ve been trying to come up with an interesting way to represent and visualize census data. It’s often difficult to represent something as boring as population and demographic data in a compelling way. The City of Calgary’s own census page presents the data in pages and pages of tables and graphs.

  • Drawing GeoJSON files in p5.js

    Although using mapping application like Google Maps, Mapbox or Leaflet can be extremely useful, I was looking for a way to draw simple GeoJSON files in my Processing/p5.js sketches. I didn’t want to use a library to integrate my GeoJSON files and I wanted more flexibility in how my maps could be drawn and manipulated. I came across this post by Mike Fowler that achieved exactly what I was considering so I went about implementing this method in p5.js.

  • Mapping Pies - Visualizing Housing Type Data in Calgary

    Over the past few months I’ve been learning and developing my skills in Processing and P5.js. Processing was brought by my attention earlier this summer by a graphic designer friend who thought I should give it a try. At that time I was learning python and looking for a more creative platform for coding. Since then I’ve been studying the tutorials by Daniel Shiffman, a contributor to Processing and associate professor at NYU’s Tisch School of the Arts. His youtube channel has been an awesome resources in getting started with Processing as well as picking up some basic Java and Javascript.