R/convertAMSRE.R

Defines functions convertAMSRE

Documented in convertAMSRE

#' Convert AMSR-E H4
#'
#' Converts an AMSR-E H4 soil moisture file to GeoTIFF.
#' @param x Path to file.
#' @param savePath Optional save path for new GeoTIFF.  Defaults to \code{NULL}.
#' @param plotNew Plot new raster? Defaults to \code{FALSE}.
#' @param saveRaster Should raster be written to file? Defaults to \code{TRUE}.  If \code{FALSE}, \code{raster} object is returned.  If \code{TRUE}, filename is returned.
#' @export
#' @return \code{raster} object or filename.
#' @examples
#' extractAMSRE(x = "path/to/data/amsre_soilmoisture.hdf")


convertAMSRE <- function(x = "C:/Users/ssaxe/Documents/Scripts/R Scripts/Model Evaluation Tool/raster/Soil Moisture/AMSR-E/amsre_soil_moisture_avr_11_2002.hdf",
                         savePath = NULL, plotNew = F, saveRaster = T){
  require(gdalUtils)
  require(raster)

  # Convert to tiff in temporary directory
  temp_path <- tempfile(fileext = ".tif")
  y <- gdalUtils::gdal_translate(x, dst_dataset = temp_path)

  # import as raster
  r <- raster::raster(temp_path)

  # convert -9999 vals to NA
  r[r == -9999] <- NA

  # redefine extent information
  raster::extent(r) <- raster::extent(c(-180,180,-90,90))

  # define projection system
  raster::crs(r) <- raster::crs("+init=epsg:4326")

  # plot?
  if (plotNew) plot(r)

  # write new raster to working directory
  if (saveRaster){
    if (is.null(savePath)){
      # generate name
      saveName <- paste0(tools::file_path_sans_ext(basename(x)), ".tif")
      raster::writeRaster(x = r,
                          filename = saveName,
                          format   = "GTiff")
      return(saveName)
    }else{
      raster::writeRaster(x = r,
                          filename = savePath,
                          format   = "GTiff")
      return(savePath)
    }
  }else{
    return(r)
  }
}
ssaxe-usgs/EASEgridR documentation built on May 27, 2019, 3:32 p.m.