knitr::opts_chunk$set( fig.width = 7, fig.height = 4, collapse = TRUE, echo = TRUE, comment = "#>" ) #Reading input data dem_path <- system.file("extdata", "DEM_TX.tif", package = "NASAaccess") shape_path <- system.file("extdata", "basin.shp", package = "NASAaccess") library(terra) dem <- terra::rast(dem_path) shape <- terra::vect(shape_path)
NASAaccess package has multiple functions such as GLDASwat and GLDASpolyCentroid that download, extract, and reformat air temperature data ('Tair_f_inst') of GLDAS from NASA servers for grids within a specified watershed shapefile. The GLDASpolyCentroid and GLDASswat find the minimum and maximum air temperatures for each day at each grid within the study watershed by searching for minima and maxima over the three hours air temperature data values available for each day and grid. The GLDASwat and GLDASpolyCentroid functions output gridded air temperature (maximum and minimum) data in degrees 'C'.
Let's explore GLDASpolyCentroid and GLDASswat functions.
Let's use the example watersheds that we introduced with GPMswat and GPMpolyCentroid. Please visit NASAaccess GPM functions for more information.
#Reading input data dem_path <- system.file("extdata", "DEM_TX.tif", package = "NASAaccess") shape_path <- system.file("extdata", "basin.shp", package = "NASAaccess") library(NASAaccess) GLDASwat(Dir = "./GLDASwat/", watershed = shape_path, DEM = dem_path, start = "2020-08-1", end = "2020-08-3")
Let's examine the air temperature station file
GLDASwat.tempMaster <- system.file('extdata/GLDASwat', 'temp_Master.txt', package = 'NASAaccess') GLDASwat.table<-read.csv(GLDASwat.tempMaster) head(GLDASwat.table) dim(GLDASwat.table)
GLDASwat generated ascii table for each available grid located within the study watershed. GLDASwat also generated the air temperature stations file input shown above GLDASwat.table (table with columns: ID, File NAME, LAT, LONG, and ELEVATION) for those selected grids that fall within the specified watershed. The GLDAS dataset used here is the GLDAS Noah Land Surface Model L4 3 hourly 0.25 x 0.25 degree V2.1.
Now, let's see the location of the GLDASwat generated grid points
library(ggplot2) library(tidyterra) ggplot(shape) + geom_spatvector(color='red',fill=NA) + geom_point(data=GLDASwat.table,aes(x=LONG,y=LAT))
We note here that GLDASwat has given us all the GLDAS data grids that fall within the boundaries of the White Oak Bayou study watershed.
The time series air temperature data stored in the data tables (i.e., 2 tables) can be viewed also. looking at air temperature reformatted data from the first grid point as listed in the air temperature station file is by
GLDASwat.point.data <- system.file('extdata/GLDASwat', 'temp345937.txt', package = 'NASAaccess') #Reading data records read.csv(GLDASwat.point.data)
The time series air temperature data has been written in a format that gives daily maximum and minimum air temperature in degrees 'C'.
Now, let's examine GPMpolyCentroid.
Using the watershed example:
GLDASpolyCentroid(Dir = "./GLDASpolyCentroid/", watershed = shape_path, DEM = dem_path, start = "2018-08-1", end = "2018-08-3")
Now let's examine the GLDASpolyCentroid generated outputs
library(ggplot2) library(tidyterra) GLDASpolyCentroid.tempMaster <- system.file('extdata/GLDASpolyCentroid', 'temp_Master.txt', package = 'NASAaccess') GLDASpolyCentroid.table<-read.csv(GLDASpolyCentroid.tempMaster) #plot ggplot(shape) + geom_spatvector(color='red',fill=NA) + geom_point(data=GLDASpolyCentroid.table, aes(x=LONG,y=LAT)) + coord_sf(xlim=c(-96,-95.2),ylim=c(29.7,30))
We note here that GLDASpolyCentroid has given us the GLDAS data grid that fall within our specified watershed and assigns a pseudo air temperature gauge located at the centroid of the watershed a weighted-average daily maximum and minimum air temperature data.
sessionInfo()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.