Storm data exploration (2/n)

Unfortunately, it is not possible (for me) to generate leaflet objects in RMarkdown (.Rmd), knit the .Rmd file to a markdown file (.md) and an .html document, to then use the .md file as a page with GitHub pages. For some reason this is not working and I could not figure out a solution, yet. However, the generated .html file from RStudio is working – although, the formatting is not the same as for the rest of the site. Sorry for that!

In case anyone can provide some help or hint feel free to drop me a line or post an answer at stackoverflow. Thank you!

Loading the environment

Loading the workspace that has been saved in the first part of the data exploration.

# Entire workspace.
source_data("https://github.com/thomassie/Storms/blob/master/Exploration/StormDataWorkSpace.RData?raw=true")
##  [1] "plot.pressure.dens.x" "theme_tmm538"         "dd.i"                
##  [4] "plot.pressure.1"      "plot.pressure.dens.y" "dd.sum.year"         
##  [7] "plot.pressure.2"      "plot.wind.main"       "year.max"            
## [10] "topn.WindKPH.Max"     "plot.wind.1"          "pal_tmm_01"          
## [13] "plot.wind.2"          "plot.dur"             "plot.pres"           
## [16] ".Random.seed"         "topn.Duration"        "plot.pressure.main"  
## [19] "topn.Pressure.Min"    "w.max"                "dd.model.1"          
## [22] "model.1"              "rho.wind.pres"        "n.select"            
## [25] "dd"                   "p.min"                "year.min"            
## [28] "i"                    "dd.pacific"           "plot.wind"           
## [31] "n"                    "d.max"                "plot.wind.dens.x"    
## [34] "dd.model.temp.1"      "plot.wind.dens.y"     "dd.atlantic"         
## [37] "dd.sum"               "dd.org"

This time I will have a look at specific parts of the data set according to the choices I made before (i.e., a defined time interval; see first part of data exploration).

Let’s have a look at these storms. First, I want to see which are the storms that lasted the longest and where they ocurred. I use a data set called ‘dd.s’ which represents a selection of the entire summary data set ‘dd.sum’.

# renderLeaflet({

# What to show...?
dd.s <- topn.Duration

# Create an indicator for grouping.
groups = as.character(unique(dd.s$KeyPlus))

# The basic map.
map = leaflet(dd.s) %>% 
  # addProviderTiles(providers$CartoDB.DarkMatter)
  # addProviderTiles(providers$OpenMapSurfer.Grayscale)
  addProviderTiles(providers$CartoDB.Positron) %>%
# addProviderTiles(providers$Esri.OceanBasemap)
  addFullscreenControl(position = "topleft", pseudoFullscreen = FALSE)


# Colors of a specific palette assigned to 'Maximum.Wind'.
groupColors = colorNumeric(palette = "YlOrRd", domain = dd$MaxWindKPH)

# Grouping!
for (g in groups) {
  d = dd[dd$KeyPlus == g, ]
  
  map = map %>% 
    addPolylines(data = d,
                 color = "#788E95",
                 group = g,
                 lng = ~ Lon,
                 lat = ~ Lat,
                 weight = 0.6,
                 opacity = 0.6) %>%
    addCircleMarkers(data = d,
                     group = g,
                     lng = ~Lon, 
                     lat = ~Lat, 
                     color = ~groupColors(WindKPH),
                     # color = ~groupColors(Saffir.Simpson),
                     weight = 2,
                     # fill = FALSE,
                     radius = ~(WindKPH^1.2)/50,
                     # radius = ~sqrt(Maximum.Wind)*2,
                     popup = paste("Name: ", d$Name, "<br>",
                                   "Date: ", date(d$DateTime), "<br>",
                                   "Time: ", strftime(d$DateTime, format="%H:%M:%S",tz = "UTC"), "<br>",
                                   "Status: ", d$Status, "<br>",
                                   "Minimum in central Pressure: ", d$Pressure, "<br>",
                                   "Maximum wind speed: ", d$WindKPH, "km/h"))
}

map %>%
  addLayersControl(overlayGroups = groups)

Now, which are the storms that showed the highest wind speeds?

# What to show...?
dd.s <- topn.WindKPH.Max

# Create an indicator for grouping.
groups = as.character(unique(dd.s$KeyPlus))

# The basic map.
map = leaflet(dd.s) %>% 
  addProviderTiles(providers$CartoDB.DarkMatter) %>%
  addFullscreenControl(position = "topleft", pseudoFullscreen = FALSE)

# Colors of a specific palette assigned to 'Maximum.Wind'.
groupColors = colorNumeric(palette = "YlOrRd", domain = dd$MaxWindKPH)

# Grouping!
for (g in groups) {
  d = dd[dd$KeyPlus == g, ]
  
  map = map %>% 
    addPolylines(data = d,
                 color = "#788E95",
                 group = g,
                 lng = ~ Lon,
                 lat = ~ Lat,
                 weight = 0.6,
                 opacity = 0.6) %>%
    addCircleMarkers(data = d,
                     group = g,
                     lng = ~Lon, 
                     lat = ~Lat, 
                     color = ~groupColors(WindKPH),
                     weight = 2,
                     radius = ~(WindKPH^1.2)/50,   # pronouncing differences
                     popup = paste("Name: ", d$Name, "<br>",
                                   "Date: ", date(d$DateTime), "<br>",
                                   "Time: ", strftime(d$DateTime, format="%H:%M:%S",tz = "UTC"), "<br>",
                                   "Status: ", d$Status, "<br>",
                                   "Minimum in central Pressure: ", d$Pressure, "<br>",
                                   "Maximum wind speed: ", d$WindKPH, "km/h"))
}

map %>%
  addLayersControl(overlayGroups = groups)

It is nice to work with leaflet maps. Although, I have to say, for the setting with GitHub pages and reading in .md files it is not so cool. At least for a beginner…

I carry on with part 3 of the storm data exploration/analysis.