R

DSM2 interactive map

The Delta Simulation Model II (DSM2) is a hydrodynamic model used for Sacramento-San Joaquin Delta planning and management. When working with DSM2 output, I frequently need to look up the location of channels, nodes, and stations in the model. A map of all of the channels, nodes, and stations (and more) is provided with DSM2 as a PDF file, but that file is not easy to search. Fortunately, folks in the Delta Modeling Section of the Department of Water Resources shared shapefiles of DSM2 channels, nodes, and stations with me.

Storing parameters in named lists and hash tables in R and Racket

When building a simulation model in R, I might want to group related input parameters into a data structure. For example, in a life cycle model with resident and anadromous fish, you might use different fecundity parameters for each life history type. One option is to create different objects for each fecundity parameter. fecundity_resident = 1000 fecundity_anadromous = 4000 That option is not unreasonable with only two fecundity parameters but it becomes cluttered with many values.

Nested for loops in R and Racket

I have recently started learning Racket. For a first task, I tried to build a simple age-structured population model. I hit a stumbling block and reached out to the helpful folks on the Racket mailing list. In this post, I recap the mailing list exchange with a target audience of R programmers that are interested in learning more about Racket. The simple model used for this exercise is a deterministic multistage Beverton-Holt model.

DataTables from the DT package as a Shiny CRUD app interface

Shiny Scorekeeper is a basketball scorekeeper app built with the Shiny web framework for R. I’ve written about the motivation for creating Shiny Scorekeeper on my projects page. The short version is that I needed a new app for scoring video of my son’s basketball games and I decided it would be a good learning experience to try to build my own. In this post, I describe using DataTables from the DT package as the interface to the CRUD (create-read-update-delete) features in Shiny Scorekeeper.

Deploying a Shiny app as a desktop application with Electron

In developing the DSM2 HYDRO Viz Tool, we were faced with deciding how to deploy a Shiny app that required interaction with large local files. I first heard about the possibility of using Electron to deploy Shiny apps as standalone desktop applications in this talk by Katie Sasso, but it wasn’t until I discovered the R Shiny Electron (RSE) template that I decided to take the plunge. R Shiny Electron Build Process The R Shiny Electron (RSE) template includes only very basic instructions for how to get started with this process (and they clearly specify that it is not ready for production).