Share this
Visualising spatial data using Tableau
by Richard Leeke on 22 April 2012
Recently I’ve been having a bit of fun exploring ways to visualise spatial data more effectively. I’ve long been an enthusiastic advocate of data visualisation techniques and I also have a lot of background with spatial data, having spent several years as the architectural lead on the Landonline project, which captured all of New Zealand’s land records, so combining the two interests seemed a natural thing to do.
As regular readers of this blog will know, we use a product called Tableau extensively in the Performance Intelligence practice at Equinox for analysing system performance metrics. So when the latest release of Tableau recently extended support for visualising data spatially, I couldn’t wait to see what the power of Tableau’s visualisation techniques could bring to all that New Zealand spatial data which Landonline helped make publically available.
Unfortunately though, Tableau’s support was limited to the set of spatial boundaries that are built in to the product. There is quite a good break-down available if you are in the US, and generally some sort of regional breakdown for most other countries, but there is currently no ability to extend the available boundaries.
Not to be deterred, my rainy-day project over the Christmas break became seeing if I could extend it for myself. And with the help of some open source spatial software and a fair bit of determination, the answer is yes – though it does mean stepping out into unsupported territory, somewhat.
Here’s the first thing I did once I had worked out how to load additional boundaries. This is a view of the Tsunami warning zones around where I live. The view combines the Tsunami boundaries available from the Porirua City Council with Street Address data from Land Information New Zealand and Meshblock data from Statistics New Zealand, and allows the results of an address search to be shown with the meshblock containing the address overlaying the local Tsunami zones.
That’s all very well, but it’s not really using any of the data analysis capabilities of Tableau, it’s just using it as a drawing tool: the equivalent view would be easy to produce with any number of GIS packages.
The real power comes when combining different types of data from multiple sources, and I have various half-finished examples just waiting to be blogged about.
But a great little example that has nothing to do with NZ came up a few weeks ago when I got an email from Shawn Wallwork, who, like me, is a regular contributor on the Tableau user forums. Shawn makes extensive use of Tableau’s mapping capabilities for the work he does for his clients in the advertising industry in the US and was an enthusiastic early adopter of my “hack” for extending Tableau’s maps when I shared it with the Tableau community.
Shawn described an idea he had to help answer a very common request he gets from his advertising industry clients. Various types of advertising are tightly geo-targeted – usually at the ZIP code level for his US clients. For example, direct mail campaigns target households within a specified distance of a store and online banner ads are placed based on the (approximate) location of the user’s IP address.
The perennial question is which ZIP codes to target to give the most cost-effective coverage. Answering that question needs an effective way of assessing the relevant demographic data, taking into account the spatial distribution of the target demographic groups.
Shawn and I decided to combine forces on putting an example together showing the approach we have come up with. Knowing that I’m a keen windsurfer, Shawn invented a direct mail campaign for an imaginary windsurfing shop in Colorado Springs, which is where some of his real clients are located. The visualisation below is to support the decision about which ZIPs should receive the mail-out.
Explore the visualisation by selecting different demographic groups and varying the radius of the target circle. Hover over ZIP codes on the map or bar chart to see details, and exclude ZIPs from the totals using the Exclude option in the tooltip or using the ZIP selection list down the side. Click on a ZIP on the map or bar chart to see it highlighted in the other view.
Notice how the colour-coding on the map indicates the numbers of the selected demographic group within each ZIP code for the ZIPs inside the circle, and highlights the ZIPs that are partially or wholly outside the circle.
The totals at the bottom show a couple of key indicators for the currently selected ZIPs: the estimated total for the selected demographic that fall within the selected radius and the estimated percentage of households that fall outside the chosen radius.
The key point here is that whilst the target is defined by distance from the store, the advertising has to be bought by zip code. So there is a judgement call to be made about the ZIP codes which cross the boundary. The estimated numbers shown here are based on apportioning the demographic totals for the whole ZIP, in proportion to the land area of the ZIP code that falls inside the circle. Clearly that is a simplistic assumption, but coupled with local knowledge about the location of population centres, it is still helpful.
Shawn has written up a fuller description of the business need and how this visualisation addresses it on the Tableau Community site, here. He describes the rave reviews this “instantaneous what-if machine” is getting from his clients.
Whilst the visualisation embedded in the blog is very effective, it is somewhat constrained by the long, thin format of our blog template. Also the web delivery mechanism is inherently less interactive and less responsive than the Tableau desktop version. If you are interested in seeing the full effectiveness, you can download the workbook from the download link in the bottom right-hand corner and also download either Tableau Reader (which allows you to view but not create visualisations) or Tableau Public (the free version of Tableau which allows you to develop visualisations for publishing in blogs and suchlike). Either of those will allow you to explore the full interactivity on your desktop.
Any Tableau users wanting to know more about how to extend Tableau’s spatial support can read about my “hack” utility in this Tableau Community Viz Talk article. Alternatively, Robert Mundigl has written a great set of “how to” instructions on his Clearly and Simply blog, which perhaps offer a gentler introduction. Bear in mind, though, that generating this visualisation has made considerable use of a GIS database and GIS utilities to prepare the data for use with Tableau and does also rely on my unsupported method of getting the shape boundaries into Tableau.
Share this
- Agile Development (153)
- Software Development (126)
- Agile (76)
- Scrum (66)
- Application Lifecycle Management (50)
- Capability Development (47)
- Business Analysis (46)
- DevOps (43)
- IT Professional (42)
- Equinox IT News (41)
- Agile Transformation (38)
- IT Consulting (38)
- Knowledge Sharing (36)
- Lean Software Development (35)
- Requirements (35)
- Strategic Planning (35)
- Solution Architecture (34)
- Digital Disruption (32)
- IT Project (31)
- International Leaders (31)
- Digital Transformation (26)
- Project Management (26)
- Cloud (25)
- Azure DevOps (23)
- Coaching (23)
- IT Governance (23)
- System Performance (23)
- Change Management (20)
- Innovation (20)
- MIT Sloan CISR (15)
- Client Briefing Events (13)
- Architecture (12)
- Working from Home (12)
- IT Services (10)
- Data Visualisation (9)
- Kanban (9)
- People (9)
- Business Architecture (8)
- Communities of Practice (8)
- Continuous Integration (7)
- Business Case (4)
- Enterprise Analysis (4)
- Angular UIs (3)
- Business Rules (3)
- GitHub (3)
- Java Development (3)
- Lean Startup (3)
- Satir Change Model (3)
- API (2)
- Automation (2)
- Scaling (2)
- Security (2)
- Toggles (2)
- .Net Core (1)
- AI (1)
- Diversity (1)
- Testing (1)
- ✨ (1)
- August 2024 (1)
- February 2024 (3)
- January 2024 (1)
- September 2023 (2)
- July 2023 (3)
- August 2022 (4)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- March 2021 (1)
- February 2021 (2)
- November 2020 (2)
- September 2020 (1)
- July 2020 (1)
- June 2020 (3)
- May 2020 (3)
- April 2020 (2)
- March 2020 (8)
- February 2020 (1)
- November 2019 (1)
- August 2019 (1)
- July 2019 (2)
- June 2019 (2)
- April 2019 (3)
- March 2019 (2)
- February 2019 (1)
- December 2018 (3)
- November 2018 (3)
- October 2018 (3)
- September 2018 (1)
- August 2018 (4)
- July 2018 (5)
- June 2018 (1)
- May 2018 (1)
- April 2018 (5)
- March 2018 (3)
- February 2018 (2)
- January 2018 (2)
- December 2017 (2)
- November 2017 (3)
- October 2017 (4)
- September 2017 (5)
- August 2017 (3)
- July 2017 (3)
- June 2017 (1)
- May 2017 (1)
- March 2017 (1)
- February 2017 (3)
- January 2017 (1)
- November 2016 (1)
- October 2016 (6)
- September 2016 (1)
- August 2016 (5)
- July 2016 (3)
- June 2016 (4)
- May 2016 (7)
- April 2016 (13)
- March 2016 (8)
- February 2016 (8)
- January 2016 (7)
- December 2015 (9)
- November 2015 (12)
- October 2015 (4)
- September 2015 (2)
- August 2015 (3)
- July 2015 (8)
- June 2015 (7)
- April 2015 (2)
- March 2015 (3)
- February 2015 (2)
- December 2014 (4)
- September 2014 (2)
- July 2014 (1)
- June 2014 (2)
- May 2014 (9)
- April 2014 (1)
- March 2014 (2)
- February 2014 (2)
- December 2013 (1)
- November 2013 (2)
- October 2013 (3)
- September 2013 (2)
- August 2013 (6)
- July 2013 (2)
- June 2013 (1)
- May 2013 (4)
- April 2013 (5)
- March 2013 (2)
- February 2013 (2)
- January 2013 (2)
- December 2012 (1)
- November 2012 (1)
- October 2012 (2)
- September 2012 (3)
- August 2012 (3)
- July 2012 (3)
- June 2012 (1)
- May 2012 (1)
- April 2012 (1)
- February 2012 (1)
- December 2011 (4)
- November 2011 (2)
- October 2011 (2)
- September 2011 (4)
- August 2011 (2)
- July 2011 (3)
- June 2011 (4)
- May 2011 (2)
- April 2011 (2)
- March 2011 (3)
- February 2011 (1)
- January 2011 (4)
- December 2010 (2)
- November 2010 (3)
- October 2010 (1)
- September 2010 (1)
- May 2010 (1)
- February 2010 (1)
- July 2009 (1)
- April 2009 (1)
- October 2008 (1)