This README and repository is a work in progress and still being edited.
This repo contains all the code I used to create maps for the #30DayMapChallenge 2020 (started by Topi Tjukanov in 2019). The themes for the maps are defined in the image below.
All my maps are about Bangalore, India and rely on data from open sources, primarily OpenStreetMap.
All maps were generated using the R programming language using the following packages:
-
cartography: Giraud, T. and Lambert, N. (2016). cartography: Create and Integrate Maps in your R Workflow. JOSS, 1(4). doi: 10.21105/joss.00054.
-
extrafont: Winston Chang, (2014). extrafont: Tools for using fonts. R package version 0.17. https://CRAN.R-project.org/package=extrafont
-
imager: Simon Barthelme (2020). imager: Image Processing Library Based on 'CImg'. R package version 0.42.3. https://CRAN.R-project.org/package=imager
-
mapedit: Tim Appelhans, Kenton Russell and Lorenzo Busetto (2020). mapedit: Interactive Editing of Spatial Data in R. R package version 0.6.0. https://CRAN.R-project.org/package=mapedit
-
mapview: Tim Appelhans, Florian Detsch, Christoph Reudenbach and Stefan Woellauer (2020). mapview: Interactive Viewing of Spatial Data in R. R package version 2.7.8. https://CRAN.R-project.org/package=mapview
-
osmdata: Mark Padgham, Bob Rudis, Robin Lovelace, Maëlle Salmon (2017). osmdata Journal of Open Source Software, 2(14). URL https://doi.org/10.21105/joss.00305
-
raster: Robert J. Hijmans (2020). raster: Geographic Data Analysis and Modeling. R package version 3.1-5. https://CRAN.R-project.org/package=raster
-
rayshader: Tyler Morgan-Wall (2020). rayshader: Create Maps and Visualize Data in 2D and 3D. R package version 0.19.4. https://github.com/tylermorganwall/rayshader
-
scales: Hadley Wickham and Dana Seidel (2020). scales: Scale Functions for Visualization. R package version 1.1.1. https://CRAN.R-project.org/package=scales
-
sf: Pebesma, E., 2018. Simple Features for R: Standardized Support for Spatial Vector Data. The R Journal 10 (1), 439-446, https://doi.org/10.32614/RJ-2018-009
-
tidyverse: Wickham et al., (2019). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686, https://doi.org/10.21105/joss.01686
-
tmap: Tennekes M (2018). “tmap: Thematic Maps in R.” Journal of Statistical Software, 84(6), 1-39. doi: 10.18637/jss.v084.i06 (URL: https://doi.org/10.18637/jss.v084.i06).
-
TSP: Michael Hahsler and Kurt Hornik (2020). TSP: Traveling Salesperson Problem (TSP). R package version 1.1-10. https://CRAN.R-project.org/package=TSP. Hahsler M, Hornik K (2007). “TSP - Infrastructure for the traveling salesperson problem.” Journalof Statistical Software, 23(2), 1-21. ISSN 1548-7660, doi: 10.18637/jss.v023.i02 (URL: https://doi.org/10.18637/jss.v023.i02), <URL: http://www.jstatsoft.org/v23/i02/>.
Data was obtained from OpenStreetMap. © OpenStreetMap contributors and available from https://www.openstreetmap.org Copyright and license details can be found at https://www.openstreetmap.org/copyright
Tweet: "Starting the #30DayMapChallenge with a simple map of traffic lights in #Bangalore shown as points. #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Building on from yesterday, for day 2 (theme of lines) of the #30DayMapChallenge I visualize all vehicular roads in #Bangalore. #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Polygons for day 3. Multiple maps today. Each one has 9 smaller maps with partial built fabrics for different admin wards of #Bangalore. 9 are chosen at random from 198 admin wards. I get a different set of 9 each time! #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Hexagons for Day 4 of the #30DayMapChallenge . Today's map shows the distribution of buildings across #Bangalore. #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Blue is the theme for Day 5 of the #30DayMapChallenge. I've got a WIP map of the natural waters (channels, lakes, rivers) in & around #Bangalore. #Bengaluru #bloremapped #maps #rspatial"
Tweet: For Day 6 (red) of the #30DayMapChallenge, I map the areas of #Bangalore which are more than 500m away from a bus stop (as the crow flies). #Bengaluru #bloremapped #maps #rspatial
Tweet: "Simple map for Day 7 (green) of the #30DayMapChallenge. Here are the parks (forests, nature reserves, etc are excluded) of #Bangalore. #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Day 8 (yellow) of the #30DayMapChallenge. I have walking distance estimates for RV Road Metro Station (its on the yellow line) using two methods: 500m radius & route based. Also have a similar map for the MG Road Station for comparison. #Bengaluru #bloremapped #maps #rspatial". Used the @MapBox API for routing calculations with R.
Tweet: "For Day 9, I've got a monochrome map of Basavanagudi and surrounding areas in #Bangalore. #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial"
Tweet: "The grid of Jayanagar's streets is the focus of my map for Day 10 of the #30DayMapChallenge. #Bangalore #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Tried making 3D maps using R for the first time today. Used the really cool #rayshader package. Here are the WIP outputs. Same data as Day 4 showing the distribution of buildings across #Bangalore. #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial"
Tweet: "CityLab's article on "memory maps" was the inspiration for today's map (that was not made with GIS software). Here's my memory map of #Bangalore for Day 12 of the #30DayMapChallenge, made using Photoshop. #Bengaluru #bloremapped #maps". Here's the link to the article: https://bloomberg.com/news/articles/2015-11-10/what-cities-look-like-when-your-brain-does-the-mapping-without-gps Very interesting maps!
Tweet: "Today (Day 13) I made a quick population map of #Bangalore using raster data from @WorldPopProject. Appears to underestimate Bangalore's population; especially in the east and south. Not sure why. #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Day 14's theme is climate change. Today I build on one of my previous maps. The cross marks indicate lakes which are no longer around due to urbanization/changes in flows/ climate change (in a roundabout way). #30DayMapChallenge #Bangalore #Bengaluru #bloremapped #maps #rspatial"
Tweet: "I was exploring the TSP for Day 15 (connections) of the #30DayMapChallenge when I found @aschinchon's awesome experiment using TSP algorithms to draw portraits. So here is #Bangalore as a TSP Portrait! B&W version of Day 2's map was input. #Bengaluru #bloremapped #maps #rspatial"
Tweet: "I was looking at the disjointed cycle networks in #Bangalore & decided to try and present them as islands for Day 16 of the #30DayMapChallenge . Tons of artistic license + asymmetric buffers + experimentation + exaggeration led to this! #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Day 17's theme is the historical map. Compared conditions today with a map from 1797. Link to the original: https://warper.wmflabs.org/maps/2020#Preview_tab Also, worth taking a look at the sat image: https://goo.gl/maps/tLFG5dbhTmEwEVw58 #30DayMapChallenge #Bangalore #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Really quick maps today (Day 18) showing the landuse around MG Road Metro Station in #Bangalore. Colours aren't official and only indicative. Also tried a B&W version. #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial "
Tweet: "Okay. Haven't quite figured it out yet but I was trying to use a diverging palette to show missing or unlikely data for Day 19 (NULL) of the #30DayMapChallenge. #Bangalore #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Okay. Starting to think South and East #Bangalore aren't as dense as I think they are. Or data is missing. For Day 20 of the #30DayMapChallenge I have a pop density raster map.#Bengaluru #bloremapped #maps #rspatial"
Tweet: "Today (Day 21) I'm looking at the difference in the billed and collected water taxes by admin ward in #Bangalore over a 4 year period. Data from https://smartcities.data.gov.in/catalog/water-tax-bengaluru?filters%5Bfield_catalog_reference%5D=2914701&format=json&offset=0&limit=9&sort%5Bcreated%5D=desc #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial As per the dataset (billed - collected = 0) in only one instance!"
Tweet: "Not the nicest looking map but it gets the job done. (Day 22 - movement) I was thinking about transfers between the metro and bus networks. The map shows the bus stops within 1km of a metro station in #Bangalore. #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial "
Tweet: "(Day 23 - boundaries - #30DayMapChallenge ) I used centroids of #Bangalore's ward to create voronoi polygons (in black) and laid them over a ward map. Interesting how the polygons seem to combine wards towards the center of the city. #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Loads to learn still but really excited about how this turned out! #rayshader FTW! The map today has the topography of #Bangalore. (for day 24 - elevation - #30DayMapChallenge) #Bengaluru #bloremapped #maps #RStats #rspatial"
Tweet: "A very work in progress map today. Day 25's (#30DayMapChallenge) theme is COVID-19. I was trying to figure out how much space we would need if all 12,326,532 people of #Bangalore decided to stand 2m apart. If my math is right, they'd all fit in a circle with radius 2607m. I highly underestimated the amount of time 2,054,422 tiny hexagons would take to render so here is a much more computationally lighter map. The circle shown has a radius of 3000m. #30DayMapChallenge #Bangalore #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Used a new #RStats package (tanaka) and some new functions from the raster package to try and get a contour map of #Bangalore for Day 26 of the #30DayMapChallenge. Haven't quite got the hang of it yet but getting there! #Bengaluru #bloremapped #maps #rspatial"
Tweet: "For Day 27 (big or small data), I show #Bangalore's biodiversity as geotagged by people using @inaturalist's platform! Fantastic resource! #30DayMapChallenge #Bengaluru #bloremapped #maps #rspatial"
Tweet: "Today (Day 28 - non-geographic map - #30DayMapChallenge) I've got a map which isn't really a topological map nor is it a geographic one. Its quite conceptual but shows the different areas of #Bangalore. #Bengaluru #bloremapped #maps #rspatial"
Tweet: "A WIP map today (Day 29 - Globe). Recreating a portion of Lambton's work from the Great Trig Survey of the Indian Penninsula. #Bangalore + east of TBD. Geo-ref in #QGIS and mapping of points in #RStats using @jdatap's fantastic globe4r package! #30DayMapChallenge #maps #rspatial Copy of map hosted here https://en.wikipedia.org/wiki/File:GTS_Peninsula_Asiatic_Researches.jpg by @Wikipedia and @Wikimedia"
Tweet: "For the last day of #30DayMapChallenge, I tried making morph. tessellations in #Rstats based on @martinfleis & @darribas post. Still needs sorting out w/ creating polygons but its a step in the right direction! #Bangalore #Bengaluru #bloremapped #rspatial"