Skip to content
/ nppr Public

An R package for ocean productivity data automatically downloading, reading, processing and visualization

Notifications You must be signed in to change notification settings

chaoxv/nppr

Repository files navigation

nppr

Tools for ocean productivity data downloading, reading, processing and visualization. All data are available from http://sites.science.oregonstate.edu/ocean.productivity/index.php.

Cite as:

Chao Xu. 2023. nppr: An R package for ocean productivity data downloading, reading, processing and visualization (v1.0.0). Zenodo.

✍️ Authors

Chao Xu

Xiamen University

⏬ Installation

You can install the development version of nppr like so:

# install.packages("remotes")
remotes::install_github("chaoxv/nppr")

Example

This is a basic example which shows you how to solve a common problem:

library(nppr)
  1. Download ocean productivity data
# Load supporting packages
library(RCurl)
library(XML)
library(R.utils)
library(tidyverse)
library(lubridate)

# Create an empty folder to save your ocean produtivity files.
yourfolder <- paste0(getwd(), '/', 'vgpm') 
dir.create(yourfolder)

# Dowmload the VGPM data. If it is not defined, the default  grid size is 'low', time span is 'monthly', satellite is 'MODIS'.
get_npp_vgpm(file.path = yourfolder,
             grid.size = 'low',
             time.span = 'monthly',
             satellite = 'MODIS',
             mindate = '2016-01-15', 
             maxdate = '2016-03-15') 
  1. Read hdf file
# Use the hdf file you have downloaded yet.
yourfile <- paste0(yourfolder, '/201601.hdf')
read_hdf(file.path = yourfile)    
  1. Match the ocean productivity data by your longitude, latitude and date.
# Extract a single value
match_sig(file.path = yourfolder,
          lon = 120, lat = 20, date = '2016-03-01')

# Extract multiple values
mydat <- data.frame(lon = c(120, 112, 116), 
                    lat = c(17, 15, 18),
                    date = c('2016-03-04', '2016-03-07', '2016-02-04'))

match_df(mydat, file.path = yourfolder)  
  1. Ocean productivity data visualization.
# Load supporting packages



library(viridis)
library(raster)
library(ggplot2)
library(ggspatial)
library(rnaturalearth)
library(rnaturalearthdata)
data(nppdata)

  ggplot()+
  geom_oce(nppdata, aes(x = lon, y = lat, fill = npp), 
           lonlim = c(100, 120), latlim = c(7, 25))+
  scale_fill_viridis(option = "D", 
                     direction = -1,
                     breaks = seq(50, 1050, 100),
                     limits = c(50, 1050))+
  labs(x = 'Longitude', y = 'Latitude',
  fill = expression(NPP*~'('*mg~C~m^-2~d^-1*')'))

💖 Contributing

We welcome any contributions! By participating in this project you agree to abide by the terms outlined in the Contributor Code of Conduct.

About

An R package for ocean productivity data automatically downloading, reading, processing and visualization

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages