R/nr_losses_gridded.R

Defines functions nr_losses_gridded

#' nr_losses_gridded
#'
#' @param gdx data to perform actions on
#' @param crops the crops
#' @param sum ???
#'
#' @author Jan-Philipp Dietrich
nr_losses_gridded<-function(gdx,crops=NULL,sum=TRUE){
  if(is.null(crops)) crops <- readGDX(gdx,"kcr")
  ov_area <- readGDX(gdx,"ov_area",select=list(type="level"))
  f18_cgf <- readGDX(gdx,"f18_cgf")
  ov_prod <- readGDX(gdx,"ov_prod",select=list(type="level"))
  im_attributes_harvest <- readGDX(gdx,"im_attributes_harvest")
  f51_nr_fix_ndfa <- readGDX(gdx,"f51_nr_fix_ndfa")
  fm_attributes_residue_ag <- readGDX(gdx,"fm_attributes_residue_ag")
  fm_seed_shr <- readGDX(gdx,"fm_seed_shr")
  f51_nr_residue_bg <- readGDX(gdx,"f51_nr_residue_bg")
  ov51_nr_eff <- readGDX(gdx,"ov51_nr_eff",select=list(type="level"))
  
  ov_prod_res_ag <- dimSums(ov_area[,,crops],dim=3.2)*collapseNames(f18_cgf[,,crops][,,"intercept"]) + ov_prod[,,crops]*collapseNames(f18_cgf[,,crops][,,"slope"])*collapseNames(im_attributes_harvest[,,crops][,,"dm"])
  ov_prod_res_bg <- (ov_prod[,,crops]*collapseNames(im_attributes_harvest[,,crops][,,"dm"]) + ov_prod_res_ag[,,crops])*collapseNames(f18_cgf[,,crops][,,"bg_to_ag"])
  N_req <- (1-f51_nr_fix_ndfa[,,crops])*(ov_prod[,,crops]*collapseNames(im_attributes_harvest[,,crops][,,"nr"]) + 
                                           ov_prod_res_ag[,,crops]*collapseNames(fm_attributes_residue_ag[,,crops][,,"nr"]) + 
                                           ov_prod_res_bg[,,crops]*f51_nr_residue_bg[,,crops]) - ov_prod[,,crops]*fm_seed_shr[,,crops]*collapseNames(im_attributes_harvest[,,crops][,,"nr"])
  if(sum) N_req <- dimSums(N_req,dim=3.1)
  N_use <- N_req/ov51_nr_eff
  N_losses <- N_use - N_req
  return(N_losses)
}
pik-piam/nitrogen documentation built on Nov. 5, 2019, 12:48 a.m.