Skip to content

cyverse-gis/neon-shiny-browser

Repository files navigation

CircleCI license Project Supported by CyVerse Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. DOI

DockerHub

NEON-Shiny-Browser

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).

Overview

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.

Features

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.

Goal

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.

NEON

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.

Installation

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()

Run App in RStudio or RStudio-Server

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

Run App as a background process (preferred method)

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 with Docker

Run Docker locally or on a Virtual Machine

Pull Container from Docker Hub

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.

Build Container yourself

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 .

Requirements

Linux

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:

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")

FEEDBACK

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.

About

R Shiny application for working with NEON R API

Resources

License

Stars

Watchers

Forks

Packages

No packages published