worldmaps

Spatial data analysis projects

Matt Malishev

Versions:

File extensions:
.R
.Rmd
.html .css
.js


30 day map challenge

Map entries for the #30dayMapChallenge for 2023

Firestarter - Largest bushfires in Australian history (1899–2022)

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day3.png”, width = “100%”, height = “25%”>
</div>

Tools

R

R code


Where does Taiwan fish?

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day6.png”, width = “100%”, height = “100%”>
</div>

Tools

R
Threejs

R code


Fires of the century - 125 years of Australian bushfires

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day9_.png”, width = “100%”, height = “100%”>
</div>

Tools

R
Google maps

R code


Highrise headache - Major constructions in Melbourne (2020–2022)

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day15.png”, width = “100%”, height = “100%”>
</div>

Tools

R
Mapdeck
Mapbox

R code


Where did the Palestine and Israel protests start? Exploring protest origins per country (Oct–Nov 2022)

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day23.gif”, width = “100%”, height = “100%”>
</div>

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day23.png”, width = “100%”, height = “100%”>
</div>

Tools

R
Mapdeck
Mapbox

R code


Firelines - Australian bushfires and their ten closest neighbours (1980–2022)

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day30.png”, width = “100%”, height = “100%”>
</div>

<div align=”center”; text-align:center> <img src=”img/30daymap2023/day30.gif”, width = “100%”, height = “100%”>
</div>

Tools

R

R code


30 day map challenge

Map entries for the #30dayMapChallenge for 2022

City sprawling – isochrones of Australia’s major cities

<div align=”center”; text-align:center> <img src=”img/30daymap2022/day2.png”, width = “100%”, height = “25%”>
</div>

Tools

R

R code


Human rights protection scores by country (1980–2017)

<div align=”center”; text-align:center> <img src=”img/30daymap2022/day3.jpg”, width = “100%”, height = “25%”>
</div>

Tools

R
Leaflet

R code


Fishprint — Major fishing vessel activity of China vs Australia

<div align=”center”; text-align:center> <img src=”img/30daymap2022/day14.png”, width = “100%”, height = “100%”>
</div>

Tools

R

R code


Bait and hook — China’s global fishing chokehold

<div align=”center”; text-align:center> <img src=”img/30daymap2022/day19.png”, width = “100%”, height = “200%”>
</div>

Tools

R

R code


Stylised city maps of places I’ve lived

<div align=”center”; text-align:center> <img src=”img/30daymap2022/day25.png”, width = “100%”, height = “100%”>
</div>

Tools

R

R code


Treescape – Urban tree canopy networks by area

<div align=”center”; text-align:center> <img src=”img/30daymap2022/day26.png”, width = “100%”, height = “200%”>
</div>

Tools

R

R code


NSW flood disaster – Leveraging hi-res data and mapping to understand natural disaster events

<div align=”center”; text-align:center> <img src=”img/30daymap2022/day30.png”, width = “100%”, height = “25%”>
</div>

Tools

R

R code


30 day map challenge

Map entries for the #30dayMapChallenge for 2021.

Rumble in south east Asia: 500 years of earthquake data

Day 1 - Points

<div align=”center”; text-align:center> <img src=”img/30daymap2021/day1.jpeg”, width = “100%”, height = “25%”>
</div>

Tools

R

pacman::p_load(here,sf,RColorBrewer,dplyr,ggmap,sp,maptools,scales,rgdal,ggplot2,jsonlite,readr,devtools,colorspace,mapdata,ggsn,mapview,mapproj,ggthemes,reshape2,grid,rnaturalearth,rnaturalearthdata,ggtext,purrr)          

R code



Where do Melburnians eat? Exploring restaurant seating capacity per area

Day 4 - Hexagons

<div align=”center”; text-align:center> <img src=”img/30daymap2021/day4_2.jpg”, width = “100%”, height = “25%”>
</div>

Tools

R
Mapbox

pacman::p_load(here,mapdeck,dplyr,ggmap,sp,maptools,scales,rgdal,ggplot2,jsonlite,readr,devtools,colorspace,mapdata,ggsn,mapview,mapproj,ggthemes,reshape2,grid,rnaturalearth,rnaturalearthdata,ggtext,purrr)          

R code



Classifying major ecoregions in Brazil

Day 7 - Green

<div align=”center”; text-align:center> <img src=”img/30daymap2021/day7.png”, width = “100%”, height = “100%”>
</div>

Tools

R

pacman::p_load(here,mapdeck,dplyr,ggmap,sp,maptools,scales,rgdal,ggplot2,jsonlite,readr,devtools,colorspace,mapdata,ggsn,mapview,mapproj,ggthemes,reshape2,grid,rnaturalearth,rnaturalearthdata,ggtext,purrr)          

R code



Avian Airstrike: Aircraft-bird strikes across Australia (2012–2017)

Day 11 and 12 - 3D and population

<div align=”center”; text-align:center> <img src=”img/30daymap2021/day11_1.jpg”, width = “100%”, height = “50%”>
</div>

Tools

R
Mapbox

pacman::p_load(here,mapdeck,dplyr,ggmap,sp,maptools,scales,rgdal,ggplot2,readr,devtools,colorspace,mapdata,ggsn,mapview,mapproj,ggthemes,rnaturalearth,rnaturalearthdata,ggtext)          

R code



The Human Lifeline

Day 22 - Boundaries

<div align=”center”; text-align:center> <img src=”img/30daymap2021/day22.png”, width = “100%”, height = “200%”>
</div>

Tools

R

pacman::p_load(here,mapdeck,dplyr,ggmap,sp,maptools,scales,rgdal,ggplot2,readr,devtools,colorspace,mapdata,ggsn,mapview,mapproj,ggthemes,rnaturalearth,rnaturalearthdata,ggtext)          

R code



Inside Airbnb: Mapping and analysing Airbnb’s global property listings

<div align=”center”; text-align:center> <img src=”img/airbnb_gui.jpg”, width = “100%”, height = “200%”>
</div>

Create a web app that mimics that Airbnb site, but maps available listings to comapre cities around the world based on user criteria rather than simply listing price and availability.

The criteria users can select to compare among cities

Launch app

Tools

R Shiny
Leaflet
HTML
CSS

pacman::p_load(shiny,shinythemes,dplyr,here,leaflet,rgdal,sp,sf,raster,colorspace,mapdata,ggmap,jpeg)  

R code

Data

Inside Airbnb open data



30 day map challenge

Map entries for the #30dayMapChallenge for November 2020.

Day 1 - Points

An interactive map of my favourite coffee spots around the world using Mapbox Studio and R.

Interactive mobile map of my favourite coffee places around the world

<div align=”center”; text-align:center> <img src=”img/day1.jpg”, width = “100%”, height = “25%”>
</div>

Tools

R
Mapbox

pacman::p_load(here,sf,RColorBrewer,dplyr,ggmap,sp,maptools,scales,rgdal,ggplot2,jsonlite,readr,devtools,colorspace,mapdata,ggsn,mapview,mapproj,ggthemes,reshape2,grid,rnaturalearth,rnaturalearthdata,ggtext,purrr)          

R code



Day 4: Hexagons

Mapping my Lyft ride activity from June 2018 to March 2020.

Using geolocation data for my Lyft rides as a passenger to create an interactive map that shows my destination and origin locations. The data covers the USA.

Mapping my Lyft ride data over two years

Atlanta, USA (where I lived during this time)
<div align=”center”; text-align:center> <img src=”img/day4_1.jpg”, width = “100%”, height = “25%”>
</div>

Tools

R
Mapbox
R packages: dplyr, mapdeck, tibble, htmltools, sf, sfheaders, data.table, stringr, tigris, sp , here,maps, colorspace

R code



Day 6: Red

Squirrels! The NYC Open Data Squirrel Census on squirrel sightings.

I’ve seen these data used many times and I hadn’t tried them yet. There are detailed behaviour data too, but location data are fine for this exercise.

Cinnamon squirrel locations in NYC Central Park

<div align=”center”; text-align:center> <img src=”img/day6.jpg”, width = “100%”, height = “25%”>
</div>

Tools

R
Mapbox

pacman::p_load(here,mapdeck,dplyr,purrr,readr)

R code
Data: OpenData NYC squirrel census



Day 8: Yellow

Australia’s global honey export trade

Mapping Australia’s honey exports from publicly available trade data for 2017. Australia is in the top five major exporters for honey.

Australian honey exports for 2017

<div align=”center”; text-align:center> <img src=”img/day8.jpg”, width = “100%”, height = “25%”>
</div>

Tools

R
Leaflet

pacman::p_load(here,dplyr,rworldmap,leaflet,readr,rgeos,purrr,stringr,ggthemes,showtext,geosphere,htmlwidgets)  

R code
BACI International Trade Database



Day 9: Monochrome

Exploring digital elevation models (DEM) of the Appalachian Trail, USA, with my camping and hiking spots for 2018–2020.

<div align=”center”; text-align:center> <img src=”img/day9.png”, width = “100%”, height = “100%”>
</div>

Tools

R

pacman::p_load(dplyr,readr,rvest,xml2,magrittr,ggplot2,stringr,ggthemes,ggnetwork,elevatr,raster,colorspace,ggtext,ggsn,ggspatial)

R code

Data

Terrain raster 3DEP data courtesy of the U.S. Geological Survey
Terrain tiles obtained from Amazon Web Services



Day 10 - Grid

A city footprint of Melbourne, Australia, my home city. There are tonnes of detailed data on the City of Melbourne open data portal for some future analyses. I wanted to make a minimal sketch design map that showcases the classic grid structure of Melbourne.

<div align=”center”; text-align:center> <img src=”img/day10.jpg”, width = “100%”, height = “100%”>
</div>

Tools

R

pacman::p_load(dplyr,readr,rvest,xml2,magrittr,sp,sf,rgdal,ggmap,ggplot2,stringr,ggthemes,ggnetwork,colorspace,ggtext,ggsn,ggspatial,showtext)

Data

City of Melbourne Open Data



Day 11 - 3D

Vulnerability of Melbourne’s urban forest

I found some comprehensive data on tree canopy coverage in Melbourne from 2019 on the City of Melbourne Open Data site and tree traits are always fun to plot in 3D.

The data cover species, genera, height (DBH), life expectancy, latlons, year and date planted, precinct location, to name a few. I plotted tree locations and height to show some patterns, e.g. you can see where tall trees have been cleared in areas that are known to have high rise apartments buildings. I added life expectancy as the colour factor to get a snapshot idea of planting activity by the city council and choice of species over time. Lots more to explore.

Click for full map (best in Safari, for some reason)

<div align=”center”; text-align:center> <img src=”img/day11.jpg”, width = “100%”, height = “100%”>
</div>

Tools

R
Mapbox

pacman::p_load(here,mapdeck,dplyr,purrr,readr,showtext,stringr,colorspace,htmltools)  

R code

Data

City of Melbourne Open Data


Day 14: Climate change

The climate risk of crops in Vietnam

Exploring exposure of coffee, cashew, and cassava crops in Vietnam to climate risk.

There are tonnes of open data on climate change impacts and I’ve worked a lot with gridded climate, microclimate, environment, and habitat data in the past. I originally planned on doing a risk map for coffee plantations in Colombia (maybe down the track), but the good stuff is paywalled by UNESCO under heritage listing and, of course, there’s a daily deadline for this mapping challenge.

I stumbled across these data from the International Center for Tropical Agriculture (CIAT) on Vietnam, including shp files, and I had to dive in. The risk indices are defined by summed values of climate change representative concentration pathway (8.5 2050), which is an international standard, county exposure to natural hazards, poverty rate (measured by the Gini coefficient), health care, infrastructure, organisational capacity, and education.

Click for full map

<div align=”center”; text-align:center> <img src=”img/day14.jpg”, width = “100%”, height = “100%”>
</div>

Tools

R

pacman::p_load(ggfortify,dplyr,here,foreign,rgdal,sp,sf,mapdata,patchwork,readr,purrr,ggplot2,ggthemes,ggnetwork,elevatr,raster,colorspace,ggtext,ggsn,ggspatial,showtext)

R code

Data

CIAT - International Center for Tropical Agriculture Dataverse (CGIAR)
Parker, Louis; Bourgoin, Clement; Martinez Valle, Armando; Läderach, Peter, 2018, “VN_CRVA.zip”, Climate Risk Vulnerability Assessment to inform sub-national decision making in Vietnam, Nicaragua and Uganda, https://doi.org/10.7910/DVN/O8GOHP/QZT3YQ, Harvard Dataverse, V2



Day 16: Islands

For the Miyazaki fans AKA seeing if I could bend R to my will.

My maps are usually data-driven because there are never enough data, but this was a simpler design one where I set the challenge of plotting images/arrays within geom polygons in R. An easy enough task in design and image software, but not so trivial in R. Turns out it can be done. Shout out to user @inscaven on Stackoverflow for the code base.

I also figured out how to plot images/arrays within polygons for different map projections. I may do a write up on this in the future. For now, this is a useful tool to have in my arsenal.

There is also the ggpattern package for filling geoms with geometric patterns that I want to dive into to test some of the capabilities.

Click for full map

<div align=”center”; text-align:center> <img src=”img/day16.png”, width = “100%”, height = “100%”>
</div>

AKIRA

Click for full map

<div align=”center”; text-align:center> <img src=”img/day16_2.png”, width = “100%”, height = “100%”>
</div>

Tools

R

pacman::p_load(dplyr,readr,rnaturalearth,rnaturalearthdata,sf,raster,png,plyr,cowplot,mapdata,sp,ggplot2,ggtext)

R code


Day 20: Population

The Great Feral Camel Crater of Australia

Did you know Australia has camels? Millions of feral ones, roaming the deserts like big, roaming, feral camels. There are so many camels, the data almost blew up my laptop trying to map them. Here are some fun facts about Australia’s feral camels:

I found these data online from Northern Territory’s Department of the Environment and Natural Resources and the original research paper from Saalfeld & Edwards (2010). Low density (magenta) represents approx. 0.25 camels, high density (white) represents ~2 camels. Lots of camels.

Click for full map

<div align=”center”; text-align:center> <img src=”img/day20.jpg”, width = “100%”, height = “100%”>
</div>

Tools

R
Mapbox

pacman::p_load(dplyr,here,mapdeck,rgdal,sp,sf,raster,colorspace,mapdata,ggmap,jpeg)  

R code

Data

Department of the Environment and Natural Resources – Northern Territory of Australia.
Saalfeld W. K., Edwards G. P. (2010) Distribution and abundance of the feral camel (Camelus dromedarius) in Australia. The Rangeland Journal 32, 1-9, https://doi.org/10.1071/RJ09058



Day 23: Boundaries

70 years of Russian refugee resettlement

More of a take on no boundaries through the lense of no boundaries between country borders for refugees, economically-displaced peoples, migrants, and new horizon seekers.

I found these human migration data online from the UN Refugee Agency and being close to my own Russian heritage, I wanted to see what patterns in Russian refugee and emigration numbers emerged over the decades. The original dataset is broken up into individual years, but it looked super messy when I first mapped it, so I instead collapsed the data into decades to make for a neater map.

Notes

Click for full interactive map

(Best viewed in Safari and full screen)

<div align=”center”; text-align:center> <img src=”img/day23.jpg”, width = “100%”, height = “100%”>
</div>

Tools

R
Mapbox

pacman::p_load(here,dplyr,rworldmap,mapdeck,sf,sfheaders,data.table,readr,rgeos,purrr,stringr,ggthemes,showtext,geosphere,htmlwidgets)

R code

Data

UN Refugee Agency





Day 26: Mapping with a new tool

Using Framer and Mapbox to design a mobile interface

I’ve been meaning to dive into Framer ever since I watched a webinar a few months ago. It’s really fun and intuitive. You can integrate Mapbox’s features and preload data using imported tilesets, then prototype the interface in Framer.

Lots of things to map for a first project, so here are biking directions from Framer HQ in Amsterdam to my favourite brewery.

Click for interactive mobile prototype

<div align=”center”; text-align:center> <img src=”img/day26.jpg”, width = “100%”, height = “100%”>
</div>

If you don’t know what Framer is, it’s a prototyping tool. Tons of features, interactions, device platforms, graphics, icon sets.

Here’s the process:

The cool thing is you can open the prototype on your own mobile and use regular gestures to navigate the interface.

Tools

Framer
Mapbox

Framer



Realtime interactive map of coronavirus 2019-nCov global distribution

eRum2020::CovidR

Coronavirus 2019-nCov global distribution map

Realtime updates of 2019-nCov global distribution from live scraped data from the European Centre for Disease Prevention and Control (ECDC).

Tools

R, HTML, CSS
R packages: maps,readr,dplyr,leaflet,xml2,rvest,ggmap,geosphere,htmltools,mapview,rnaturalearth,purrr

<div align=”center”; text-align:center> <img src=”img/coronavirus.jpg”, width = “100%”, height = “25%”>
</div>

Visualising Airbnb open data

San Francisco property type and ratings

Spatial analysis of Airbnb listing and ratings for the San Francisco area.

Tools

R, HTML, CSS
R packages: readr dplyr, leaflet, colorspace

<div align=”center”; text-align:center> <img src=”img/airbnb_sf.jpg”, width = “100%”, height = “25%”>
</div>

Maintainer

Matt Malishev
:mag: Website
:bird: @darwinanddavis
:email: matthew.malishev [at] gmail.com