Load all packages and libraries
install.packages('rasterVis')
install.packages('tmap')
install.packages('tigris')
install.packages('rgdal', type = "source", configure.args=c('--with-proj-include=/Library/Frameworks/PROJ.framework/Headers', '--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'))
install.packages("tmaptools")
install.packages("sf")
install.packages("leaflet")
library(sp)
library(tmap)
library(raster)
library(RColorBrewer)
library(classInt)
library(rasterVis)
library(tigris)
library(rgdal)
library("tmaptools")
library("sf")
library("leaflet")
Viz1: Create Ventura and LA County baselayer maps. I used library(tigris) to download LA and Ventura county census tract boundaries.Then I downloaded census level median home value data from American Factfinder. The last step was to use the merge function to join the census level data to the empty county boundaries. After that is was just all about fine-tuning the map. The interactive mapping mode fixes the problem of overcrowding the map.
Map1
legend.postion is used for plot mode. Use view.legend.position in tm_view to set the legend position in view mode.
legend.postion is used for plot mode. Use view.legend.position in tm_view to set the legend position in view mode.
Viz2: Add Hill and Woolsey Fire extent. For Viz2, I thought it would be interesting to add the extents of the Woosley fire to see the type of homes that were being affected by the fire. This could also be helpful in channeling recovery efforts since it would allow aid to be distributed to lower value housing areas first (assuming that’s the goal). For anyone interested: I had to scour the far reaches of the internet to find a downloadable fire extent data, not sure why it’s so hard. But I eventually found this google map: https://www.google.com/maps/d/u/0/viewer?mid=1IkW-WhQoRcP4WGIIP-h_v6WK8zb0jG3M&ll=34.126688966793836%2C-118.7345541136649&z=11. Then I downloaded a KML version of the extents then converted it using an online converter: https://mygeodata.cloud/conversion. This was all done outside of R but I figured this method was more realistic of a workflow I’d have outside this class.
Map1+
tm_shape(fire) +
tm_fill(col = "Name", alpha = 0.8, palette = "OrRd", title = "Name of Fire") +
tm_borders(alpha=0.5, lwd = 2, col = "red")+
tm_scale_bar()
legend.postion is used for plot mode. Use view.legend.position in tm_view to set the legend position in view mode.
legend.postion is used for plot mode. Use view.legend.position in tm_view to set the legend position in view mode.
Viz3: Recreating GEOG7 Map. I thought it would be a good exercise to try to recreate one of the earlier maps I did for GEOG7 on R since it’ll be good practice for manipulating map elements plus it was kinda fun and nostalgic for me.

*It’s not quite exact as the reference: https://imgur.com/Mk6rozp but I think I got pretty close.
LS0tCnRpdGxlOiAiU3BhdGlhbCBNYXBwaW5nIGluIFIiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KTG9hZCBhbGwgcGFja2FnZXMgYW5kIGxpYnJhcmllcwpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygncmFzdGVyVmlzJykKaW5zdGFsbC5wYWNrYWdlcygndG1hcCcpCmluc3RhbGwucGFja2FnZXMoJ3RpZ3JpcycpCmluc3RhbGwucGFja2FnZXMoJ3JnZGFsJywgdHlwZSA9ICJzb3VyY2UiLCBjb25maWd1cmUuYXJncz1jKCctLXdpdGgtcHJvai1pbmNsdWRlPS9MaWJyYXJ5L0ZyYW1ld29ya3MvUFJPSi5mcmFtZXdvcmsvSGVhZGVycycsICctLXdpdGgtcHJvai1saWI9L0xpYnJhcnkvRnJhbWV3b3Jrcy9QUk9KLmZyYW1ld29yay91bml4L2xpYicpKQppbnN0YWxsLnBhY2thZ2VzKCJ0bWFwdG9vbHMiKQppbnN0YWxsLnBhY2thZ2VzKCJzZiIpCmluc3RhbGwucGFja2FnZXMoImxlYWZsZXQiKQpsaWJyYXJ5KHNwKQpsaWJyYXJ5KHRtYXApCmxpYnJhcnkocmFzdGVyKQpsaWJyYXJ5KFJDb2xvckJyZXdlcikKbGlicmFyeShjbGFzc0ludCkKbGlicmFyeShyYXN0ZXJWaXMpCmxpYnJhcnkodGlncmlzKQpsaWJyYXJ5KHJnZGFsKQpsaWJyYXJ5KCJ0bWFwdG9vbHMiKQpsaWJyYXJ5KCJzZiIpCmxpYnJhcnkoImxlYWZsZXQiKQpgYGAKClZpejE6IENyZWF0ZSBWZW50dXJhIGFuZCBMQSBDb3VudHkgYmFzZWxheWVyIG1hcHMuIEkgdXNlZCBsaWJyYXJ5KHRpZ3JpcykgdG8gZG93bmxvYWQgTEEgYW5kIFZlbnR1cmEgY291bnR5IGNlbnN1cyB0cmFjdCBib3VuZGFyaWVzLlRoZW4gSSBkb3dubG9hZGVkIGNlbnN1cyBsZXZlbCBtZWRpYW4gaG9tZSB2YWx1ZSBkYXRhIGZyb20gQW1lcmljYW4gRmFjdGZpbmRlci4gVGhlIGxhc3Qgc3RlcCB3YXMgdG8gdXNlIHRoZSBtZXJnZSBmdW5jdGlvbiB0byBqb2luIHRoZSBjZW5zdXMgbGV2ZWwgZGF0YSB0byB0aGUgZW1wdHkgY291bnR5IGJvdW5kYXJpZXMuIEFmdGVyIHRoYXQgaXMgd2FzIGp1c3QgYWxsIGFib3V0IGZpbmUtdHVuaW5nIHRoZSBtYXAuIFRoZSBpbnRlcmFjdGl2ZSBtYXBwaW5nIG1vZGUgZml4ZXMgdGhlIHByb2JsZW0gb2Ygb3ZlcmNyb3dkaW5nIHRoZSBtYXAuIApgYGB7cn0KIyMjIyMjIyMjIyMjIyMjIyMjVml6MTogVmVudHVyYSAmIExBIE1lZGlhbiBIb21lIFZhbHVlIE1hcCMjIyMjIyMjIyMjIyMjIyMjIwojcHVsbCB2ZW50dXJhICYgTEEgY291bnR5IGJvdW5kYXJ5IG1hcCBmcm9tIGxpYnJhcnkodGlncmlzKQpWZW5fYm91bmQgPC0gdHJhY3RzKHN0YXRlID0gIkNBIiwgY291bnR5ID0gIlZlbnR1cmEiLCBjYiA9IFRSVUUpCgpMQV9ib3VuZCA8LSB0cmFjdHMoc3RhdGUgPSAiQ0EiLCBjb3VudHkgPSAiTG9zIEFuZ2VsZXMiLCBjYiA9IFRSVUUpCgoKI2ltcG9ydCBjc3YgZmlsZSB3aXRoIG1lZGlhbiBob21lIHZhbHVlIGRhdGEgKFZlbnR1cmEpCkhXNCA8LSBmaWxlLnBhdGggKCIvVXNlcnMva3Jnci5kZi9EZXNrdG9wL0dFT0cyMDgvQXNzaWdubWVudCA0L3ZlbnR1cmFfbWVkaWFuX3ZhbC5jc3YiKQptZWRpYW4udmFsIDwtIHJlYWQuY3N2KEhXNCwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKQptZWRpYW4udmFsJG1lZGlhbi52YWx1ZSA8LSBhcy5udW1lcmljKG1lZGlhbi52YWwkbWVkaWFuLnZhbHVlKQptZWRpYW4udmFsJGlkMiA8LSBhcy5jaGFyYWN0ZXIobWVkaWFuLnZhbCRpZDIpCgojaW1wb3J0IGNzdiBmaWxlIHdpdGggbWVkaWFuIGhvbWUgdmFsdWUgZGF0YSAoTG9zIEFuZ2VsZXMpCkhXNC4yIDwtIGZpbGUucGF0aCAoIi9Vc2Vycy9rcmdyLmRmL0Rlc2t0b3AvR0VPRzIwOC9Bc3NpZ25tZW50IDQvTEFfbWVkaWFuX3ZhbC5jc3YiKQpMQS5tZWRpYW4udmFsIDwtIHJlYWQuY3N2KEhXNC4yLCBzdHJpbmdzQXNGYWN0b3JzID0gRkFMU0UpCkxBLm1lZGlhbi52YWwkbWVkaWFuLnZhbCA8LSBhcy5udW1lcmljKExBLm1lZGlhbi52YWwkbWVkaWFuLnZhbCkKTEEubWVkaWFuLnZhbCRpZDIgPC0gYXMuY2hhcmFjdGVyKExBLm1lZGlhbi52YWwkaWQyKQoKI21lcmdlIGNlbnN1cyB0cmFjdCBib3VuZGFyaWVzIHdpdGggbWVkaWFuIGhvbWUgdmFsdWVzIChWZW50dXJhKQp2ZW5fbWVyZ2UgPC0gbWVyZ2UoVmVuX2JvdW5kLCBtZWRpYW4udmFsLCBieS54ID0gIkFGRkdFT0lEIiwgYnkueSA9ICJpZCIpCgojbWVyZ2UgY2Vuc3VzIHRyYWN0IGJvdW5kYXJpZXMgd2l0aCBtZWRpYW4gaG9tZSB2YWx1ZXMgKExvcyBBbmdlbGVzKQpMQV9tZXJnZSA8LSBtZXJnZShMQV9ib3VuZCwgTEEubWVkaWFuLnZhbCwgYnkueCA9ICJBRkZHRU9JRCIsIGJ5LnkgPSAiaWQiKQoKI3ZpZXcgaGlzdG9ncmFtIHRvIGZpbmQgaWRlYWwgYnJlYWtzCmhpc3QodmVuX21lcmdlQGRhdGEkbWVkaWFuLnZhbHVlKQpoaXN0KExBX21lcmdlQGRhdGEkbWVkaWFuLnZhbCkKCiNjcmVhdGUgbWFwCnRtYXBfbW9kZSgidmlldyIpCnRtYXBfc3R5bGUoImNvYmFsdCIpCk1hcDEgPC0gdG1fc2hhcGUodmVuX21lcmdlKSsKICB0bV9maWxsKGNvbCA9ICJtZWRpYW4udmFsdWUiLCBwYWxldHRlID0gIlB1QnUiLCB0aXRsZSA9ICJWZW50dXJhIENvdW50eSBNZWRpYW4gSG9tZSBWYWx1ZSIsIAogICAgICAgICAgc3R5bGUgPSAiZml4ZWQiLAogICAgICAgICAgYnJlYWtzID0gYygwLCAyNTAwMDAsIDUwMDAwMCwgNzUwMDAwLCAxMDAwMDAwLCBJbmYpLAogICAgICAgICAgdGV4dE5BID0gIk5vIERhdGEiLCAKICAgICAgICAgIGNvbG9yTkEgPSAiZ3JheSIpICsKICB0bV9ib3JkZXJzKGNvbCA9ICJ3aGl0ZSIpICsKICB0bV9sYXlvdXQobGVnZW5kLnRpdGxlLnNpemUgPSAxLAogICAgICAgICAgICBsZWdlbmQudGV4dC5zaXplID0gMC42LAogICAgICAgICAgICBsZWdlbmQudGV4dC5jb2xvciA9ICJncmF5MjAiLAogICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSBjKCJsZWZ0IiwiYm90dG9tIiksCiAgICAgICAgICAgIGxlZ2VuZC5iZy5jb2xvciA9ICJ3aGl0ZSIsCiAgICAgICAgICAgIGxlZ2VuZC53aWR0aCA9IC0xLAogICAgICAgICAgICBsZWdlbmQuYmcuYWxwaGEgPSAxKSsKICB0bV92aWV3KHZpZXcubGVnZW5kLnBvc2l0aW9uID0gYygicmlnaHQiLCAiYm90dG9tIikpICsKdG1fc2hhcGUoTEFfbWVyZ2UpKwogIHRtX2ZpbGwoY29sID0gIm1lZGlhbi52YWwiLCBwYWxldHRlID0gIllsR24iLCB0aXRsZSA9ICJMQSBDb3VudHkgTWVkaWFuIEhvbWUgVmFsdWUiLCAKICAgICAgICAgIHN0eWxlID0gImZpeGVkIiwKICAgICAgICAgIGJyZWFrcyA9IGMoMCwgMjUwMDAwLCA1MDAwMDAsIDc1MDAwMCwgMTAwMDAwMCwgSW5mKSwKICAgICAgICAgIHRleHROQSA9ICJObyBEYXRhIiwgCiAgICAgICAgICBjb2xvck5BID0gImdyYXkiKSArCiAgdG1fYm9yZGVycyhjb2wgPSAid2hpdGUiKSArCiAgdG1fbGF5b3V0KGxlZ2VuZC50aXRsZS5zaXplID0gMSwKICAgICAgICAgICAgbGVnZW5kLnRleHQuc2l6ZSA9IDAuNiwKICAgICAgICAgICAgbGVnZW5kLnRleHQuY29sb3IgPSAiZ3JheTIwIiwKICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gYygibGVmdCIsImJvdHRvbSIpLAogICAgICAgICAgICBsZWdlbmQuYmcuY29sb3IgPSAid2hpdGUiLAogICAgICAgICAgICBsZWdlbmQud2lkdGggPSAtMSwKICAgICAgICAgICAgbGVnZW5kLmJnLmFscGhhID0gMSkgKwogIHRtX3ZpZXcodmlldy5sZWdlbmQucG9zaXRpb24gPSBjKCJsZWZ0IiwgImJvdHRvbSIpKQoKTWFwMQpgYGAKClZpejI6IEFkZCBIaWxsIGFuZCBXb29sc2V5IEZpcmUgZXh0ZW50LiBGb3IgVml6MiwgSSB0aG91Z2h0IGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGFkZCB0aGUgZXh0ZW50cyBvZiB0aGUgV29vc2xleSBmaXJlIHRvIHNlZSB0aGUgdHlwZSBvZiBob21lcyB0aGF0IHdlcmUgYmVpbmcgYWZmZWN0ZWQgYnkgdGhlIGZpcmUuIFRoaXMgY291bGQgYWxzbyBiZSBoZWxwZnVsIGluIGNoYW5uZWxpbmcgcmVjb3ZlcnkgZWZmb3J0cyBzaW5jZSBpdCB3b3VsZCBhbGxvdyBhaWQgdG8gYmUgZGlzdHJpYnV0ZWQgdG8gbG93ZXIgdmFsdWUgaG91c2luZyBhcmVhcyBmaXJzdCAoYXNzdW1pbmcgdGhhdCdzIHRoZSBnb2FsKS4gCkZvciBhbnlvbmUgaW50ZXJlc3RlZDoKSSBoYWQgdG8gc2NvdXIgdGhlIGZhciByZWFjaGVzIG9mIHRoZSBpbnRlcm5ldCB0byBmaW5kIGEgZG93bmxvYWRhYmxlIGZpcmUgZXh0ZW50IGRhdGEsIG5vdCBzdXJlIHdoeSBpdCdzIHNvIGhhcmQuIEJ1dCBJIGV2ZW50dWFsbHkgZm91bmQgdGhpcyBnb29nbGUgbWFwOiBodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZC91LzAvdmlld2VyP21pZD0xSWtXLVdoUW9SY1A0V0dJSVAtaF92NldLOHpiMGpHM00mbGw9MzQuMTI2Njg4OTY2NzkzODM2JTJDLTExOC43MzQ1NTQxMTM2NjQ5Jno9MTEuIFRoZW4gSSBkb3dubG9hZGVkIGEgS01MIHZlcnNpb24gb2YgdGhlIGV4dGVudHMgdGhlbiBjb252ZXJ0ZWQgaXQgdXNpbmcgYW4gb25saW5lIGNvbnZlcnRlcjogaHR0cHM6Ly9teWdlb2RhdGEuY2xvdWQvY29udmVyc2lvbi4gVGhpcyB3YXMgYWxsIGRvbmUgb3V0c2lkZSBvZiBSIGJ1dCBJIGZpZ3VyZWQgdGhpcyBtZXRob2Qgd2FzIG1vcmUgcmVhbGlzdGljIG9mIGEgd29ya2Zsb3cgSSdkIGhhdmUgb3V0c2lkZSB0aGlzIGNsYXNzLgoKYGBge3J9CiMjIyMjIyMjIyMjIyMjIyMjI1ZpejI6IFdvb3NsZXkgRmlyZSBFeHRlbnQjIyMjIyMjIyMjIyMjIyMjIyMKZmlyZSA8LSByZWFkT0dSKCIvVXNlcnMva3Jnci5kZi9EZXNrdG9wL0dFT0cyMDgvQXNzaWdubWVudCA0L3Rlc3Rfc2hwL2ZpcmVfS01ML215Z2VvZGF0YSIsICJGb3VyX2ZpcmVzLXBvbHlnb24iKQoKTWFwMSsKdG1fc2hhcGUoZmlyZSkgKwogIHRtX2ZpbGwoY29sID0gIk5hbWUiLCBhbHBoYSA9IDAuOCwgcGFsZXR0ZSA9ICJPclJkIiwgdGl0bGUgPSAiTmFtZSBvZiBGaXJlIikgKwogIHRtX2JvcmRlcnMoYWxwaGE9MC41LCBsd2QgPSAyLCBjb2wgPSAicmVkIikrCiAgdG1fc2NhbGVfYmFyKCkKYGBgCgpWaXozOiBSZWNyZWF0aW5nIEdFT0c3IE1hcC4gSSB0aG91Z2h0IGl0IHdvdWxkIGJlIGEgZ29vZCBleGVyY2lzZSB0byB0cnkgdG8gcmVjcmVhdGUgb25lIG9mIHRoZSBlYXJsaWVyIG1hcHMgSSBkaWQgZm9yIEdFT0c3IG9uIFIgc2luY2UgaXQnbGwgYmUgZ29vZCBwcmFjdGljZSBmb3IgbWFuaXB1bGF0aW5nIG1hcCBlbGVtZW50cyBwbHVzIGl0IHdhcyBraW5kYSBmdW4gYW5kIG5vc3RhbGdpYyBmb3IgbWUuCmBgYHtyfQp5b2xvIDwtIHJlYWRPR1IoIi9Vc2Vycy9rcmdyLmRmL0Rlc2t0b3AvR0VPRzIwOC9Bc3NpZ25tZW50IDQveW9sb19zaHAiLCJ5b2xvX3NocCIpCnBsb3QoeW9sbykKeW9sb0BkYXRhJERFQ18xMF9TXzMgPC0gYXMubnVtZXJpYyh5b2xvQGRhdGEkREVDXzEwX1NfMykKCiNjb252ZXJ0aW5nIENSUywgZGlkIG5vCnlvbG8gPC0gc3BUcmFuc2Zvcm0oeW9sbywgQ1JTKCIrcHJvaj1sb25nbGF0ICtkYXR1bT1OQUQ4MyIpKQoKdHRtKCkKdG1hcF9zdHlsZSgid2hpdGUiKQp0bV9zaGFwZSh5b2xvKSsKICB0bV9maWxsKGNvbCA9ICJERUNfMTBfU18zIiwgcGFsZXR0ZSA9ICJHcmVlbnMiLAogICAgICAgICAgc3R5bGUgPSAiZml4ZWQiLAogICAgICAgICAgYnJlYWtzID0gYyg1LCAzNywgODYsIDE1MSwgMjM2LCAzNzEpLAogICAgICAgICAgdGl0bGUgPSAiRmlsaXBpbm8gUG9wdWxhdGlvbiIpICsKICB0bV9ib3JkZXJzKCkgKwogIHRtX2xheW91dChmcmFtZSA9ICIjOTE1ODEyIiwKICAgICAgICAgICAgZnJhbWUubHdkID0gNCwKICAgICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gYygwLjA0LCAwLjIpLAogICAgICAgICAgICBsZWdlbmQudGV4dC5jb2xvciA9ICIjQ0Y5NzUyIiwKICAgICAgICAgICAgbGVnZW5kLndpZHRoID0gMSwKICAgICAgICAgICAgbGVnZW5kLnRpdGxlLnNpemUgPSAuOSwKICAgICAgICAgICAgdGl0bGUucG9zaXRpb24gPSBjKCJjZW50ZXIiLCAidG9wIiksCiAgICAgICAgICAgIG1haW4udGl0bGUgPSAiWW9sbyBDb3VudHkgVS5TLiBDZW5zdXMiLAogICAgICAgICAgICBtYWluLnRpdGxlLnBvc2l0aW9uID0gYygiY2VudGVyIiwgInRvcCIpLAogICAgICAgICAgICBtYWluLnRpdGxlLmNvbG9yID0gIiNDRjk3NTIiLAogICAgICAgICAgICBmb250ZmFjZSA9IDIsCiAgICAgICAgICAgIGxlZ2VuZC5mcmFtZSA9ICIjOTE1ODEyIikgKwogIHRtX2NyZWRpdHMoIk5vcm1hbiBEZWxhIEZ1ZW50ZSAgIDA1fDIwfDIwMTYiLCAKICAgICAgICAgICAgIGNvbCA9ICIjQ0Y5NzUyIiwgCiAgICAgICAgICAgICBwb3NpdGlvbiA9IC4zKQpgYGAKKkl0J3Mgbm90IHF1aXRlIGV4YWN0IGFzIHRoZSByZWZlcmVuY2U6IGh0dHBzOi8vaW1ndXIuY29tL01rNnJvenAgYnV0IEkgdGhpbmsgSSBnb3QgcHJldHR5IGNsb3NlLgo=