A multifunctional R Shiny map and data API download tool. Designed to make NEON API data accessible in RStuduio. This version is meant to be deployed locally, on your own computer or virtual machine. The CyVerse NEON Browser can be used in the CyVerse Discover Environment to download NEON data to your CyVerse Data Store.
The app can be run in RStudio or RStudio-Server (online).
The NEON Shiny Browser is an interactive tool to browse, pull, and manipulate data collected by NEON. This R Shiny app uses leaflet, neonUtilities, and nneo to create a comprehensive tool that allows users to do everything from browsing NEON sites, to finding and downloading and unzipping data products.
First, this app displays relevant features of NEON and their research on a map. Users can view and filter map features such as NEON sites, NEON domains, AOP flightpaths, and TOS locations.
Additionally, this app provides an easy, in-app alternative to NEON's data portal. Users can browse data products, view their details (e.g. description, abstract, availability), and easily download them to their computer.
The goal of this app is to simplify the NEON experience and introduce NEON's services in a simple platform that can be useful for newcomers and experienced users alike. While the NEON website will always be the ultimate destination for information, opportunities, or more advanced requests, this application is a functional tool meant to satisfy basic interactions with NEON services. Specifically, the app's unified platform hopes to simplify the NEON experience by aggregating many of the more advanced features and making them accesible to those without the time or the programming experience. For example, all downloads come stacked, meaning that the data products arrive already unzipped, joined, and grouped by table type. While one could download from the NEON Data Portal, and then use an R package to apply the same process to their downloads, that requires multiple steps and some basic knowledge of programming and R; the CyVerse NEON Browser, on the other hand, does this automatically, saving time and learning for those who want it. Similarly, a visit to the NEON website yields a data browser and interactive map in different locations (and entirely separate domains), making it potentially confusing for a newcomer to grasp the basics of NEON and be able to find all the services that augment NEON data. This tool, conversely, combines basic approximations of the map and data browser, offering similar information and capabilities from one contained platform. Through these measures, the CyVerse NEON Browser hopes to act as a complement to the structure that NEON has already created, increasing its reach and impact in the world of ecology and beyond.
The National Ecological Observatory Network is a "continental-scale ecological observation facility" that provides open data on our ecosystems. The envisioned 30-year project collects environmental data like precipitation, soil temperature, humidity, and pressure across 81 field sites (47 terrestrial and 34 aquatic) to measure the patterns and changes in our environment. With over 180 data products describing the characteristics of a diverse range of ecosystems, their data will be crucial to future studies of biology and climate change over time.
To install the tool, clone from this git repository:
$ cd
$ git clone https://github.com/cyverse-gis/neon-shiny-browser
$ cd ~/neon-shiny-browser
$ R
> setwd('~/neon-shiny-browser')
> library(shiny)
> runApp()
Start RStudio or RStudio server, and in the Console:
setwd('~/neon-shiny-browser')
library(shiny)
runApp()
The app should install any missing dependencies in R. You may have to install additional system dependencies, see RStudio Geospatial. Example linux install is described below.
Important: You must allow pop-ups in your Browser for the app to open
Running a Shiny App in your R console will lock the console and prevent you from doing other work in RStudio while the app is running. You can run this app as a background process using the RStudio "Jobs" tab
Create an background.R
script or use the one in this repo. Start a new Job running the script. After the app downloads its dependencies and starts, you'll see that it is running and listening on a randomly assigned local port: Listening on http://127.0.0.1:4199
In this example, the app is on port 4199
In the R Console, type:rstudioapi::viewer("http://localhost:4199")
The App will open in the lower right corner of RStudio in the Viewer pane.
You can pop-out the viewer and it will open as its own browser tab.
Run Docker locally or on a Virtual Machine
To run the Shiny-Server, you must first pull
the container from the Docker Hub
docker pull cyversevice/shiny-neon-browser:3.6.3
Create a directory called NEON_Downloads
, suggest in your user's home directory e.g. mkdir ~/NEON_Downloads
Run the container image:
docker run -it --rm -p 3838:3838 -e REDIRECT_URL=http://localhost:3838 -v ${HOME}/NEON_Downloads:/srv/shiny-server/NEON_Downloads cyversevice/shiny-neon-browser:3.6.3
The app will open in your browser at http://localhost:3838
Important: The data are not downloaded to your computer if you do not mount a volume -v
into the Docker container when it is run
If you're running on are remote server, you can change localhost
to your IP address or DNS.
To build the Docker container locally:
cd
git clone https://github.com/cyverse-gis/neon-shiny-browser
cd neon-shiny-browser
sudo docker build -t shiny-neon-browser:3.6.3 .
While we suggest using our CyVerse docker image or the original Rocker Project Geospatial image, if you want to attempt a local installation of the geospatial packages in linux, you can install the following (example for Debian or Ubuntu):
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
lbzip2 \
libfftw3-dev \
libgdal-dev \
libgeos-dev \
libgsl0-dev \
libgl1-mesa-dev \
libglu1-mesa-dev \
libhdf4-alt-dev \
libhdf5-dev \
libjq-dev \
liblwgeom-dev \
libpq-dev \
libproj-dev \
libprotobuf-dev \
libnetcdf-dev \
libsqlite3-dev \
libssl-dev \
libudunits2-dev \
netcdf-bin \
postgis \
protobuf-compiler \
sqlite3 \
tk-dev \
unixodbc-dev
# start R
R
In R terminal:
install.packages(c("RColorBrewer","RandomFields","RNetCDF","classInt","deldir","gstat","hdf5r","lidR","mapdata","maptools","mapview","ncdf4","proj4","raster","rgdal","rgeos","rlas","sf","sp","spacetime","spatstat","spdep","geoR","geosphere","shiny","leaflet","leaflet.extras","neonUtilities","shinythemes","shinyWidgets","shinyBS","shinyjs","sf","jsonlite", "dplyr", "DT", "crul"))
BiocManager::install('rhdf5', update=FALSE, ask=FALSE)
In addition to Shiny, a few packages need to be downloaded:
leaflet
andleaflet.extras
: These are responsible for the map and its features.neonUtilities
: Used to download and stack NEON data.shinythemes
,shinyWidgets
,shinyBS
, andshinyjs
: Adds themes, "pimped-up" widgets, boostrap, and JavaScript functions to the app.sf
andgeosphere
: Deal with geometries and coordinates necesary for the interactive map.jsonlite
: Deals with JSON structures.DT
anddplyr
: Help with data table manipulation.crul
: Used for making HTTP requests.
Note: Mac OS X currently requires that gfortran
and clang
be installed in addition to the latest version of R (> v3.5.1 "Feather Spray")
This is a message from the main developer of this app, Daniel Lee. I am an intern at CyVerse. If anyone notices anything they see is wrong or want changed and improved, please create an Issue here. You can also contact my advisor, Tyson L. Swetnam.
And of course, any other feedback or suggestions would be nice. I'd love to hear reactions from anyone who would potentially use the app in the future, as ultimately the app is here to help scientists who want to use it.