Versions:
File extensions:
.R
.Rmd
.html
.css
.js
Map entries for the #30dayMapChallenge for 2023
<div align=”center”; text-align:center>
<img src=”img/30daymap2023/day3.png”, width = “100%”, height = “25%”>
</div>
R
<div align=”center”; text-align:center>
<img src=”img/30daymap2023/day6.png”, width = “100%”, height = “100%”>
</div>
R
Threejs
<div align=”center”; text-align:center>
<img src=”img/30daymap2023/day9_.png”, width = “100%”, height = “100%”>
</div>
R
Google maps
<div align=”center”; text-align:center>
<img src=”img/30daymap2023/day15.png”, width = “100%”, height = “100%”>
</div>
R
Mapdeck
Mapbox
<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>
R
Mapdeck
Mapbox
<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>
R
Map entries for the #30dayMapChallenge for 2022
<div align=”center”; text-align:center>
<img src=”img/30daymap2022/day2.png”, width = “100%”, height = “25%”>
</div>
R
<div align=”center”; text-align:center>
<img src=”img/30daymap2022/day3.jpg”, width = “100%”, height = “25%”>
</div>
R
Leaflet
<div align=”center”; text-align:center>
<img src=”img/30daymap2022/day14.png”, width = “100%”, height = “100%”>
</div>
R
<div align=”center”; text-align:center>
<img src=”img/30daymap2022/day19.png”, width = “100%”, height = “200%”>
</div>
R
<div align=”center”; text-align:center>
<img src=”img/30daymap2022/day25.png”, width = “100%”, height = “100%”>
</div>
R
<div align=”center”; text-align:center>
<img src=”img/30daymap2022/day26.png”, width = “100%”, height = “200%”>
</div>
R
<div align=”center”; text-align:center>
<img src=”img/30daymap2022/day30.png”, width = “100%”, height = “25%”>
</div>
R
Map entries for the #30dayMapChallenge for 2021.
<div align=”center”; text-align:center>
<img src=”img/30daymap2021/day1.jpeg”, width = “100%”, height = “25%”>
</div>
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)
<div align=”center”; text-align:center>
<img src=”img/30daymap2021/day4_2.jpg”, width = “100%”, height = “25%”>
</div>
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)
<div align=”center”; text-align:center>
<img src=”img/30daymap2021/day7.png”, width = “100%”, height = “100%”>
</div>
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)
<div align=”center”; text-align:center>
<img src=”img/30daymap2021/day11_1.jpg”, width = “100%”, height = “50%”>
</div>
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)
<div align=”center”; text-align:center>
<img src=”img/30daymap2021/day22.png”, width = “100%”, height = “200%”>
</div>
R
pacman::p_load(here,mapdeck,dplyr,ggmap,sp,maptools,scales,rgdal,ggplot2,readr,devtools,colorspace,mapdata,ggsn,mapview,mapproj,ggthemes,rnaturalearth,rnaturalearthdata,ggtext)
<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
R
Shiny
Leaflet
HTML
CSS
pacman::p_load(shiny,shinythemes,dplyr,here,leaflet,rgdal,sp,sf,raster,colorspace,mapdata,ggmap,jpeg)
Inside Airbnb open data
Map entries for the #30dayMapChallenge for November 2020.
An interactive map of my favourite coffee spots around the world using Mapbox Studio and R
.
<div align=”center”; text-align:center>
<img src=”img/day1.jpg”, width = “100%”, height = “25%”>
</div>
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)
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.
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>
R
Mapbox
R packages: dplyr
, mapdeck
, tibble
, htmltools
, sf
, sfheaders
, data.table
, stringr
, tigris
, sp
, here
,maps
, colorspace
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.
<div align=”center”; text-align:center>
<img src=”img/day6.jpg”, width = “100%”, height = “25%”>
</div>
R
Mapbox
pacman::p_load(here,mapdeck,dplyr,purrr,readr)
R
code
Data: OpenData NYC squirrel census
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.
<div align=”center”; text-align:center>
<img src=”img/day8.jpg”, width = “100%”, height = “25%”>
</div>
R
Leaflet
pacman::p_load(here,dplyr,rworldmap,leaflet,readr,rgeos,purrr,stringr,ggthemes,showtext,geosphere,htmlwidgets)
R
code
BACI International Trade Database
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>
R
pacman::p_load(dplyr,readr,rvest,xml2,magrittr,ggplot2,stringr,ggthemes,ggnetwork,elevatr,raster,colorspace,ggtext,ggsn,ggspatial)
Terrain raster 3DEP data courtesy of the U.S. Geological Survey
Terrain tiles obtained from Amazon Web Services
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>
R
pacman::p_load(dplyr,readr,rvest,xml2,magrittr,sp,sf,rgdal,ggmap,ggplot2,stringr,ggthemes,ggnetwork,colorspace,ggtext,ggsn,ggspatial,showtext)
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.
<div align=”center”; text-align:center>
<img src=”img/day11.jpg”, width = “100%”, height = “100%”>
</div>
R
Mapbox
pacman::p_load(here,mapdeck,dplyr,purrr,readr,showtext,stringr,colorspace,htmltools)
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.
<div align=”center”; text-align:center>
<img src=”img/day14.jpg”, width = “100%”, height = “100%”>
</div>
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)
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
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.
<div align=”center”; text-align:center>
<img src=”img/day16.png”, width = “100%”, height = “100%”>
</div>
AKIRA
<div align=”center”; text-align:center>
<img src=”img/day16_2.png”, width = “100%”, height = “100%”>
</div>
R
pacman::p_load(dplyr,readr,rnaturalearth,rnaturalearthdata,sf,raster,png,plyr,cowplot,mapdata,sp,ggplot2,ggtext)
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.
<div align=”center”; text-align:center>
<img src=”img/day20.jpg”, width = “100%”, height = “100%”>
</div>
R
Mapbox
pacman::p_load(dplyr,here,mapdeck,rgdal,sp,sf,raster,colorspace,mapdata,ggmap,jpeg)
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
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
(Best viewed in Safari and full screen)
<div align=”center”; text-align:center>
<img src=”img/day23.jpg”, width = “100%”, height = “100%”>
</div>
R
Mapbox
pacman::p_load(here,dplyr,rworldmap,mapdeck,sf,sfheaders,data.table,readr,rgeos,purrr,stringr,ggthemes,showtext,geosphere,htmlwidgets)
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.
<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.
Framer
Mapbox
Realtime updates of 2019-nCov global distribution from live scraped data from the European Centre for Disease Prevention and Control (ECDC).
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>
Spatial analysis of Airbnb listing and ratings for the San Francisco area.
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>
Matt Malishev
:mag: Website
:bird: @darwinanddavis
:email: matthew.malishev [at] gmail.com