2015 foss4g track: spatiotemporal interface development: using web technologies to bring complex...

74
Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life Jon Duckworth

Upload: gis-in-the-rockies

Post on 24-Jan-2017

475 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Interface Development:

Using Web Technologies to Bring Complex Data to Life

Jon Duckworth

Page 2: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Jon Duckworth

M.Eng. Civil Engineering Univ. of Colorado Denver | 2013- 2015

Intern & GIS Scientist National Renewable Energy Lab | 2014- present

__________________________________________

HTML/CSS/JS Python PostgreSQL/PostGIS R Command Line Utilities HDF5

Page 3: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

What to Expect

1. Intro to Interfaces

2. The Case for JavaScript

3. Getting Started

Page 4: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

What is an Interface?

Page 5: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Data Interfaces

So you’ve got some data…

Page 6: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Data Interfaces

So you’ve got some data…

… now what!?

Page 7: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

What is an interface?

A tool for…

Page 8: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

What is an interface?

A tool for…

• interacting with data

Page 9: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

What is an interface?

A tool for…

• interacting with data

• discovering patterns

& connections

Page 10: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

What is an interface?

A tool for…

• interacting with data

• discovering patterns

& connections

• telling a story

Page 11: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

What is an interface?

A tool for…

• interacting with data

• discovering patterns

& connections

• telling a story

Page 12: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatial Interfaces

Page 13: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Maps As Interfaces

Billy Roberts, NREL

Page 14: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Multivariate Data

Land-based wind speed 80 m

Page 15: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Multivariate Data

Land-based/offshore wind speed 100 m

Page 16: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Time Series Data

Page 17: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Time Series Data

Page 18: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Time Series Data

Page 19: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Time Series Data

Page 20: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Interactive Interfaces

Page 21: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Interactive Interfaces

• Empower the user

Page 22: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Interactive Interfaces

• Empower the user

• Allow exploration of novel combinations

Page 23: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Interactive Interfaces

• Empower the user

• Allow exploration of novel combinations

• Elegantly handle multivariate and

time-series data

Page 24: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Interactive Interfaces

• Empower the user

• Allow exploration of novel combinations

• Elegantly handle multivariate and

time-series data

• Make data exploration fun

Page 25: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

The Beauty of JavaScript

Page 26: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 27: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 28: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 29: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 30: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 31: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 32: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 33: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Spatiotemporal Visualization

Page 34: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Why JavaScript?

Page 35: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

The Beauty of JavaScript

• Built on interaction

• Event-oriented architecture

• Rapid library development

• Accessibility

Page 36: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Getting Started

Page 37: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Start Simple!

• Link together a couple of pieces

• Embedded data

• Stick to low-dimensional datasets

Page 38: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Learn the Basics

HTML

(Structure)

Container Left Side Right Side Map Chart 1 Controls Chart 2 Select Slider

Page 39: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Learn the Basics

HTML

(Structure)

CSS

(Style)

Map

Select Slider

Chart 1

Chart 2

Page 40: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Learn the Basics

HTML

(Structure)

CSS

(Style)

JavaScript

(Interaction)

Click

Select Slide

Click

Click

Page 41: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Learn the Basics

HTML

(Structure)

CSS

(Style)

JavaScript

(Interaction)

Click

Click

Page 42: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Tools for Getting Started

Page 43: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Tools for Getting Started

Page 44: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Highmaps/Highcharts

Highly featured

http://www.highcharts.com/maps/demo/data-class-two-ranges

Page 45: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Highmaps/Highcharts

Highly featured

Hover tooltips

Custom titles, subtitles, text

Customizable legends, colors

Page 46: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Highmaps/Highcharts

Configuration objects

Page 47: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Highmaps/Highcharts

Thorough documentation

Page 48: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Highmaps/Highcharts

Pre-processed geographies

Page 49: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Highmaps/Highcharts

Very similar charting API

http://www.highcharts.com/demo/spline-plot-bands

Page 50: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Tools for Getting Started

Page 51: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Slippy Maps

Page 52: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Slippy Maps

Page 53: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Slippy Maps

Page 54: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Supports interactivity

Page 55: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Supports interactivity

Page 56: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Supports interactivity

Page 57: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Simple & lightweight

Page 58: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Leaflet

Supports variety of layer types

Page 59: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Tools for Getting Started

Page 60: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Underscore Data Manipulation

• Parsing

• Filtering

• Mapping

• Converting

• Templating

Page 61: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Tools for Getting Started

Page 62: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

D3

Just amazing!

Page 63: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

D3

Loads of examples

Page 64: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

D3

Loads of examples

Strong user community

Page 65: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

D3

Loads of examples

Strong user community

Constant maintenance & improvement

Page 66: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

D3

Loads of examples

Strong user community

Constant maintenance & improvement

https://github.com/mbostock/d3/wiki/Gallery

Page 67: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Tools for Getting Started

Page 68: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

jQuery

DOM Manipulation

Event Management

Server Communication

Page 69: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Tools for Getting Started

Page 70: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

JavaScript Frameworks

Page 71: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

JavaScript Frameworks

• Provide structure

• Event management

• Modularity

• Extensibility

Page 72: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

JavaScript Frameworks

• Transparent

• Modular

• Flexible

• Lightweight

Page 73: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Parting Thoughts

Page 74: 2015 FOSS4G Track: Spatiotemporal Interface Development: Using Web Technologies to Bring Complex Data to Life by Jonathan Duckworth

Parting Thoughts

• Keep it simple

• Beg, borrow, and steal

• Learn iteratively

• Have fun!