diff --git a/docs/404.html b/docs/404.html index 0b2ea76..7b9e7b1 100644 --- a/docs/404.html +++ b/docs/404.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/atom.xml b/docs/atom.xml index 705d3a7..f99f8f3 100644 --- a/docs/atom.xml +++ b/docs/atom.xml @@ -4,7 +4,7 @@ Web Mapping Notes - 2020-04-03T03:37:33+00:00 + 2020-04-19T20:24:20+00:00 https://darribas.org Dani Arribas-Bel diff --git a/docs/blocks/b01.html b/docs/blocks/b01.html index 2058c3e..e3261c5 100644 --- a/docs/blocks/b01.html +++ b/docs/blocks/b01.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b02.html b/docs/blocks/b02.html index 6e43c2c..c5d8a96 100644 --- a/docs/blocks/b02.html +++ b/docs/blocks/b02.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b03.html b/docs/blocks/b03.html index 52fbaa4..bd4530e 100644 --- a/docs/blocks/b03.html +++ b/docs/blocks/b03.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b04.html b/docs/blocks/b04.html index 4166ce5..42031c5 100644 --- a/docs/blocks/b04.html +++ b/docs/blocks/b04.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b05.html b/docs/blocks/b05.html index 80a311f..1a033d6 100644 --- a/docs/blocks/b05.html +++ b/docs/blocks/b05.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b06.html b/docs/blocks/b06.html index fa35dfa..44762b8 100644 --- a/docs/blocks/b06.html +++ b/docs/blocks/b06.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b07.html b/docs/blocks/b07.html index a057543..5d83e9f 100644 --- a/docs/blocks/b07.html +++ b/docs/blocks/b07.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b08.html b/docs/blocks/b08.html index 67c3a74..9c87c34 100644 --- a/docs/blocks/b08.html +++ b/docs/blocks/b08.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/blocks/b09.html b/docs/blocks/b09.html new file mode 100644 index 0000000..07e409a --- /dev/null +++ b/docs/blocks/b09.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + Block 9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

+ Web Mapping Notes +
Guide, materials & resources +

+
+
+ +
+ + +
+
+ + + + + + + + + diff --git a/docs/blocks/b10.html b/docs/blocks/b10.html index 63732dc..045cd00 100644 --- a/docs/blocks/b10.html +++ b/docs/blocks/b10.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/index.html b/docs/index.html index 7932119..590efc5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_01.html b/docs/labs/lab_01.html index 44bfefe..d82c552 100644 --- a/docs/labs/lab_01.html +++ b/docs/labs/lab_01.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_02.html b/docs/labs/lab_02.html index b24b90c..004967a 100644 --- a/docs/labs/lab_02.html +++ b/docs/labs/lab_02.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_03.html b/docs/labs/lab_03.html index 7adc39d..475d5c7 100644 --- a/docs/labs/lab_03.html +++ b/docs/labs/lab_03.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_04.html b/docs/labs/lab_04.html index d1a26f4..d9fe3cf 100644 --- a/docs/labs/lab_04.html +++ b/docs/labs/lab_04.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_06.html b/docs/labs/lab_06.html index ce109c6..0e98963 100644 --- a/docs/labs/lab_06.html +++ b/docs/labs/lab_06.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_07.html b/docs/labs/lab_07.html index 209a681..fded76d 100644 --- a/docs/labs/lab_07.html +++ b/docs/labs/lab_07.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_08.html b/docs/labs/lab_08.html index 5b7f77d..fbdf1bf 100644 --- a/docs/labs/lab_08.html +++ b/docs/labs/lab_08.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/labs/lab_09.html b/docs/labs/lab_09.html new file mode 100644 index 0000000..2e4cd2b --- /dev/null +++ b/docs/labs/lab_09.html @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

+ Web Mapping Notes +
Guide, materials & resources +

+
+
+ +
+
+

+ + [Back to Block] + +

+ +

Lab 9 - Dashboards

+ +

To complete this lab, you will require the following:

+ +
    +
  • The internet
  • +
  • An active CARTO account
  • +
+ +

COVID-19 roundup

+ +

One of the best ways to learn anything is by examining how others before us have tackled similar problems. That’s exactly what we will do in this first section of the lab. Using the recent COVID-19 pandemic, we will spend some time studying dashboards other people have built to track its spread and incidence. When looking at them and playing around, remember everything we discussed in the Lecture about how to design good dashboards.

+ +

Here’s what we’ll do:

+ +
    +
  • Have a look at the list provided on Teams and pick one, and only one, dashboard
  • +
  • Once you know which you will do, add your name to “claim” it. Up to three students can look at the same link
  • +
  • Spend 15/20 minutes exploring the dashboard and, based on the principles discussed in class, try to come up with: +
      +
    1. Three most effective aspects of its design
    2. +
    3. Three areas where an improvement would make the biggest difference
    4. +
    5. Ideally, suggest how you would improve those from 2.
    6. +
    +
  • +
  • Type up your thoughts into a single entry on the “Lab 9” channel of the module’s Team. You can use the following template: +
      +
    • Maker: who’s responsible for the dashboard
    • +
    • URL: link to access it
    • +
    • Content: what is displayed on the dashboard
    • +
    • Best three aspects
    • +
    • Three areas to improve
    • +
    • Three suggestions for improvement
    • +
    +
  • +
+ +

Build dashboards in CARTO

+ +

Once we have seen a little bit of what people do dashboard land, we will turn to learning the tools of the trade. We will explore how you can build your own dashboards in CARTO. For this section, we will rely on the widgets functionality, which allows you to build interactivity and analysis into a map, and turn it into a dashboard.

+ +

Build your own COVID dashboard

+ +

At this point, we are ready to get our feet wet into the dasboard ocean. After having spent some time studying and evaluating examples about COVID-19, it is time to try to your own luck.

+ +

Log in to your CARTO account and, under the “Shared Data” section, you will find the following datasets:

+ +
    +
  • JHU COVID-19 worldwide data (covid_19_jhu_daily_update_for_april_22nd_2020): the shared dataset corresponds to April 18th. 2020, but on the link you can find daily updates since January 22nd.
  • +
  • New York Times US county data (covid_county_cases/death): these are two pre-processed datasets, prepared from the NYT source and including deaths and cases since March 25th. 2020. Code to generate the data is available here.
  • +
+ +

Pick one dataset and spend around 45 minutes trying to create a dashboard that is effective at communicating some aspects your consider relevant of the dataset. As discussed in the lecture, start by thinking exactly what you want to communicate, and build from there.

+ +

Presentation

+ +

You will then have 30 seconds to present your dashboard and hit the following points:

+ +
    +
  • What the dashboard shows
  • +
  • What interactivity/analysis element(s) you have used
  • +
  • One thing you think is really effective about it
  • +
+ +

Remember, 30 seconds. Short and sweet. Make them count!

+ + +
+ +

+ This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. +
+

+

+ Creative Commons License +

+
+ +
+
+ + + + + + + + + diff --git a/docs/labs/lab_09.pdf b/docs/labs/lab_09.pdf new file mode 100644 index 0000000..208288b Binary files /dev/null and b/docs/labs/lab_09.pdf differ diff --git a/docs/labs/lab_09_prepare_data.html b/docs/labs/lab_09_prepare_data.html new file mode 100644 index 0000000..ccfc49a --- /dev/null +++ b/docs/labs/lab_09_prepare_data.html @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

+ Web Mapping Notes +
Guide, materials & resources +

+
+
+ +
+
+

+ + [Back to Block] + +

+ +

[NOTE: you can download an .ipynb version of this file here]

+

Prepare COVID data for US counties

+ +
%matplotlib inline
+
+import geopandas
+import pandas
+
+ +

County boundaries

+ +

Source:

+ +
+

https://www.census.gov/geographies/mapping-files/time-series/geo/carto-boundary-file.html

+
+ +
    +
  • Pull counties
  • +
+ +
county_url = "https://www2.census.gov/geo/tiger/GENZ2018/shp/cb_2018_us_county_5m.zip"
+counties = geopandas.read_file(county_url)
+counties["fips"] = counties["STATEFP"] + counties["COUNTYFP"]
+
+ +
    +
  • Simplify table
  • +
+ +
tokeep = ["GEOID", "fips", "geometry"]
+counties_slim = counties[tokeep]
+
+ +

COVID-19 figures

+ +
    +
  • Pull down data
  • +
+ +
covid_url = "https://github.com/nytimes/covid-19-data/raw/master/us-counties.csv"
+covid = pandas.read_csv(covid_url)
+
+ +
    +
  • Remove entries without FIPS codes
  • +
+ +
covid_w_fips = covid.dropna()
+
+ +
    +
  • Keep only newer than March 15th
  • +
+ +
recent_covid_w_fips = covid_w_fips.assign(pdate=pandas.to_datetime(covid_w_fips["date"]))\
+                                  .query("pdate > 'March 25th 2020'")
+
+ +
    +
  • Index on everything but counts and widen by date
  • +
+ +
db = recent_covid_w_fips.set_index(["fips", "county", "state", "date"])\
+                        .unstack()
+
+ +

Example of cases for the top ten counties on April 17th:

+ +
db["cases"]\
+  .sort_values("2020-04-17", ascending=False)\
+  .head()\
+  .T\
+  .plot(figsize=(9, 3))
+
+ +
<matplotlib.axes._subplots.AxesSubplot at 0x7f45de7c0890>
+
+ +

png

+ +
    +
  • Clean FIPS
  • +
+ +
db_clean = db.reset_index()
+db_clean["fips"] = db_clean["fips"].astype(int)\
+                                   .astype(str)\
+                                   .apply(lambda i: i.zfill(5))
+db_clean = db_clean.set_index("fips") 
+
+ +

Single datasets (cases and deaths)

+ +
    +
  • Join, keep only geoms with COVID data and write out to single file
  • +
+ +
for d in ["cases", "deaths"]:
+    f_path = f"covid_county_{d}.gpkg"
+    print(f"Preparing {f_path}")
+    # Keep geoms w/ any COVID data
+    gdb_all = counties_slim.join(db_clean[d].assign(county=db_clean[("county", "")]), 
+                                 on="fips"
+                                )
+    gdb_all = gdb_all.reindex(gdb_all[gdb_all["county"].notnull()].index)
+    # Retain continental counties only
+    gdb_all = gdb_all.cx[-130:, :50]
+    # Write to GPKG
+    gdb_all.to_file(f_path, driver="GPKG")
+
+ +
Preparing covid_county_cases.gpkg
+Preparing covid_county_deaths.gpkg
+
+ + + +
+ +

+ This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. +
+

+

+ Creative Commons License +

+
+ +
+
+ + + + + + + + + diff --git a/docs/labs/lab_09_prepare_data.ipynb b/docs/labs/lab_09_prepare_data.ipynb new file mode 100644 index 0000000..a8a3045 --- /dev/null +++ b/docs/labs/lab_09_prepare_data.ipynb @@ -0,0 +1,270 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prepare COVID data for US counties" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import geopandas\n", + "import pandas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## County boundaries\n", + "\n", + "Source:\n", + "\n", + "> [`https://www.census.gov/geographies/mapping-files/time-series/geo/carto-boundary-file.html`](https://www.census.gov/geographies/mapping-files/time-series/geo/carto-boundary-file.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Pull counties" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "county_url = \"https://www2.census.gov/geo/tiger/GENZ2018/shp/cb_2018_us_county_5m.zip\"\n", + "counties = geopandas.read_file(county_url)\n", + "counties[\"fips\"] = counties[\"STATEFP\"] + counties[\"COUNTYFP\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Simplify table" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "tokeep = [\"GEOID\", \"fips\", \"geometry\"]\n", + "counties_slim = counties[tokeep]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## COVID-19 figures" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Pull down data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "covid_url = \"https://github.com/nytimes/covid-19-data/raw/master/us-counties.csv\"\n", + "covid = pandas.read_csv(covid_url)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Remove entries without FIPS codes" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "covid_w_fips = covid.dropna()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Keep only newer than March 15th" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "recent_covid_w_fips = covid_w_fips.assign(pdate=pandas.to_datetime(covid_w_fips[\"date\"]))\\\n", + " .query(\"pdate > 'March 25th 2020'\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Index on everything but counts and widen by date" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "db = recent_covid_w_fips.set_index([\"fips\", \"county\", \"state\", \"date\"])\\\n", + " .unstack()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Example of cases for the top ten counties on April 17th:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "db[\"cases\"]\\\n", + " .sort_values(\"2020-04-17\", ascending=False)\\\n", + " .head()\\\n", + " .T\\\n", + " .plot(figsize=(9, 3))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Clean FIPS" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "db_clean = db.reset_index()\n", + "db_clean[\"fips\"] = db_clean[\"fips\"].astype(int)\\\n", + " .astype(str)\\\n", + " .apply(lambda i: i.zfill(5))\n", + "db_clean = db_clean.set_index(\"fips\") " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Single datasets (cases and deaths)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Join, keep only geoms with COVID data and write out to single file" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Preparing covid_county_cases.gpkg\n", + "Preparing covid_county_deaths.gpkg\n" + ] + } + ], + "source": [ + "for d in [\"cases\", \"deaths\"]:\n", + " f_path = f\"covid_county_{d}.gpkg\"\n", + " print(f\"Preparing {f_path}\")\n", + " # Keep geoms w/ any COVID data\n", + " gdb_all = counties_slim.join(db_clean[d].assign(county=db_clean[(\"county\", \"\")]), \n", + " on=\"fips\"\n", + " )\n", + " gdb_all = gdb_all.reindex(gdb_all[gdb_all[\"county\"].notnull()].index)\n", + " # Retain continental counties only\n", + " gdb_all = gdb_all.cx[-130:, :50]\n", + " # Write to GPKG\n", + " gdb_all.to_file(f_path, driver=\"GPKG\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/labs/lab_09_prepare_data_files/lab_09_prepare_data_17_1.png b/docs/labs/lab_09_prepare_data_files/lab_09_prepare_data_17_1.png new file mode 100644 index 0000000..5e3acd8 Binary files /dev/null and b/docs/labs/lab_09_prepare_data_files/lab_09_prepare_data_17_1.png differ diff --git a/docs/labs/lab_10.html b/docs/labs/lab_10.html index ac48b67..0a0cda3 100644 --- a/docs/labs/lab_10.html +++ b/docs/labs/lab_10.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/pages/assessment.html b/docs/pages/assessment.html index 3ab86f9..d44f6db 100644 --- a/docs/pages/assessment.html +++ b/docs/pages/assessment.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/pages/setup.html b/docs/pages/setup.html index 3ede18c..0705314 100644 --- a/docs/pages/setup.html +++ b/docs/pages/setup.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/pages/syllabus.html b/docs/pages/syllabus.html index a84b0e7..9dea527 100644 --- a/docs/pages/syllabus.html +++ b/docs/pages/syllabus.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/search.html b/docs/search.html index 48f52a2..b4a9ace 100644 --- a/docs/search.html +++ b/docs/search.html @@ -123,6 +123,14 @@ + + + + + + + + diff --git a/docs/slidedecks/lecture_09.html b/docs/slidedecks/lecture_09.html new file mode 100644 index 0000000..66bd0fc --- /dev/null +++ b/docs/slidedecks/lecture_09.html @@ -0,0 +1,205 @@ + + + + + + + Web Mapping & Analysis + + + + + + + + + + + + + +
+
+
+

Web Mapping & Analysis

+

Dashboards

+

+

Dani Arribas-Bel

+

+
+ + +
+

Today

+
    +
  • What?
  • +
  • Why?
  • +
  • How?
  • +
+
+
+

+
+

Dashboards: what?

+
+
+

+

url

+
+
+

+

url

+
+
+

+
+
+

(Digital) Dashboards

+
+

[…] single-screen display of the most important information people need to do a job, presented in a way that allows them to monitor what’s going on in an instant

+
+

Few (2006)

+
+
+

(Digital) Dashboards

+
    +
  • “Centralisers” of data
  • +
  • Not only about maps
  • +
  • Up-to-date (dynamic/real time)
  • +
+
+
+
+

+
+

Dashboards: why (not)?

+
+
+

Why?

+
    +
  • Mo’data, mo’problems: need to access streams effectively
  • +
  • Dynamic data requires dynamic mediums
  • +
  • Decision-driven views: focus on “key indicators”
  • +
+
+
+

Useful features

+
    +
  • “Useful model” distilling the essential in one place
  • +
  • Powerful, yet accessible (client/server model)
  • +
  • Enable “designed” analysis
  • +
+
+
+

Why not?

+

Critical considerations

+
    +
  • Mechanistic view of complex/human systems
  • +
  • Reductionist: Focus only on what can (and is) be measured
  • +
  • Bias: What is measured? What is left out?
  • +
+
+
+

Map-based dashboards

+
    +
  • At least one view is a map, but may combine with other views
  • +
  • Organise information presented through space/geography
  • +
  • Limited but focused analysis through interactivity (“GIS on a browser”)
  • +
+
+
+

+
+
+
+

+
+

Dashboards: how?

+
+
+

How to design a dashboard

+
    +
  • Purpose first, technology next
  • +
  • One-rule-fits-all
  • +
  • Learning by (others’) mistakes
  • +
+
+
+

Thirteen mistakes in Dashboard Design
(Few, 2006)

+
+
+

Thirteen mistakes… (1-3)

+
    +
  1. Exceeding a single screen
  2. +
  3. Supplying inadequate context for the data
  4. +
  5. Excessive detail/precision
  6. +
+
+
+

Thirteen mistakes… (4-6)

+
    +
  1. Choosing a deficient measure
  2. +
  3. Inappropriate display media
  4. +
  5. Meaningless variety
  6. +
+
+
+

Thirteen mistakes… (7-9)

+
    +
  1. Poorly designed display media
  2. +
  3. Inaccurate encoding of quantitative data
  4. +
  5. Poor arrangement
  6. +
+
+
+

Thirteen mistakes… (10-13)

+
    +
  1. Highlighting important data ineffectively
  2. +
  3. Display cluttering/decoration
  4. +
  5. Color mis/overuse
  6. +
  7. Unattractive visual displays
  8. +
+
+
+

Enabling analysis

+
    +
  • Not only display of information
  • +
  • Interactivity fits more into one screen
  • +
  • “Purpose-built GIS”
  • +
+
+
+
+

+

Creative Commons License
Web Mapping & Analysis by Dani Arribas-Bel is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

+
+
+
+ + + + + + + + diff --git a/docs/slidedecks/lecture_09.pdf b/docs/slidedecks/lecture_09.pdf new file mode 100644 index 0000000..d40b759 Binary files /dev/null and b/docs/slidedecks/lecture_09.pdf differ diff --git a/docs/slides/figs/Lightmatter_Dashboard.jpg b/docs/slides/figs/Lightmatter_Dashboard.jpg new file mode 100644 index 0000000..30f48a5 Binary files /dev/null and b/docs/slides/figs/Lightmatter_Dashboard.jpg differ diff --git a/docs/slides/figs/dashboard.png b/docs/slides/figs/dashboard.png new file mode 100644 index 0000000..55a0c61 Binary files /dev/null and b/docs/slides/figs/dashboard.png differ diff --git a/docs/slides/figs/dashboard_covid.png b/docs/slides/figs/dashboard_covid.png new file mode 100644 index 0000000..f9e2f78 Binary files /dev/null and b/docs/slides/figs/dashboard_covid.png differ diff --git a/docs/slides/figs/dashboard_madrid.png b/docs/slides/figs/dashboard_madrid.png new file mode 100644 index 0000000..4cafdeb Binary files /dev/null and b/docs/slides/figs/dashboard_madrid.png differ diff --git a/docs/slides/lecture_09.md b/docs/slides/lecture_09.md new file mode 100644 index 0000000..ed54a4f --- /dev/null +++ b/docs/slides/lecture_09.md @@ -0,0 +1,109 @@ +% Web Mapping & Analysis +% Dashboards +%[Dani Arribas-Bel](http://darribas.org) + +# Today + +- What? +- Why? +- How? + +# +## Dashboards: *what?* +## {data-background=../slides/figs/Lightmatter_Dashboard.jpg data-background-size=contain} + +[`url`](https://commons.wikimedia.org/wiki/file:lightmatter_dashboard.jpg) + +## {data-background=../slides/figs/dashboard.png data-background-size=contain} + +[`url`](https://commons.wikimedia.org/wiki/File:Screenshot_Dashboard.png) + +## {data-background=../slides/figs/dashboard_covid.png data-background-size=contain} + +## (Digital) Dashboards + +> [...] single-screen display of the most important information people need to do a job, presented in a way that allows them to monitor what's going on in an instant + + + Few (2006) + + +## (Digital) Dashboards + +- "Centralisers" of data +- Not only about maps +- Up-to-date (dynamic/real time) + +# +## Dashboards: *why (not)?* +## Why? + +- *Mo'data, mo'problems*: need to access streams effectively +- Dynamic data requires dynamic mediums +- Decision-driven views: focus on "key indicators" + +## Useful features + +- *"Useful model"* distilling the essential in one place +- Powerful, yet accessible (client/server model) +- Enable "designed" analysis + +## Why not? + +Critical considerations + +- Mechanistic view of complex/human systems +- Reductionist: Focus only on what can (and is) be measured +- Bias: What is measured? What is left out? + +## Map-based dashboards + +- At least one view is a map, but may combine with other views +- Organise information presented through space/geography +- Limited but focused analysis through interactivity ("GIS on a browser") + +## {data-background=../slides/figs/dashboard_madrid.png data-background-size=contain} + +# +## Dashboards: *how?* +## How to design a dashboard + +- Purpose first, technology next +- One-rule-fits-all +- Learning by (others') mistakes + +## Thirteen mistakes in Dashboard Design
(Few, 2006) +## Thirteen mistakes... (1-3) + +1. Exceeding a single screen +2. Supplying inadequate context for the data +3. Excessive detail/precision + +## Thirteen mistakes... (4-6) + +4. Choosing a deficient measure +5. Inappropriate display media +6. Meaningless variety + +## Thirteen mistakes... (7-9) + +7. Poorly designed display media +8. Inaccurate encoding of quantitative data +9. Poor arrangement + +## Thirteen mistakes... (10-13) + +10. Highlighting important data ineffectively +11. Display cluttering/decoration +12. Color mis/overuse +13. Unattractive visual displays + +## Enabling analysis + +- Not only display of information +- Interactivity fits more into one screen +- "Purpose-built GIS" + +# +Creative Commons License
Web Mapping & Analysis by Dani Arribas-Bel is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. +