From ea8fac69e407722df26764af4a4c9fc4f5867964 Mon Sep 17 00:00:00 2001 From: hollorol Date: Fri, 1 Sep 2017 23:39:36 +0200 Subject: [PATCH] add updateMusoMapping function and fix musoMapping function --- RBBGCMuso/DESCRIPTION | 1 + RBBGCMuso/NAMESPACE | 2 ++ RBBGCMuso/R/calibMuso.R | 4 +-- RBBGCMuso/R/cleanup.R | 1 + RBBGCMuso/R/otherUsefullFunctions.R | 17 ------------ RBBGCMuso/R/outputMapping.R | 41 +++++++++++++++++++++++++--- RBBGCMuso/R/rungetMuso.R | 2 +- RBBGCMuso/R/sysdata.rda | Bin 0 -> 3546 bytes RBBGCMuso/man/musoMapping.Rd | 22 +++++++++++++++ RBBGCMuso/man/updateMusoMapping.Rd | 20 ++++++++++++++ RBBGCMuso_0.3.1.0-1.tar.gz | Bin 42383 -> 0 bytes 11 files changed, 86 insertions(+), 24 deletions(-) create mode 100644 RBBGCMuso/R/sysdata.rda create mode 100644 RBBGCMuso/man/musoMapping.Rd create mode 100644 RBBGCMuso/man/updateMusoMapping.Rd delete mode 100644 RBBGCMuso_0.3.1.0-1.tar.gz diff --git a/RBBGCMuso/DESCRIPTION b/RBBGCMuso/DESCRIPTION index ff85f5f..f84f3cc 100644 --- a/RBBGCMuso/DESCRIPTION +++ b/RBBGCMuso/DESCRIPTION @@ -3,6 +3,7 @@ Title: An R package for BiomeBGC-MuSo ecosystem modelling Version: 0.3.1.0-1 Authors@R: person("Roland", "Hollo's", , "hollorol@gmail.com", role = c("aut", "cre")) Description: What the package does (one paragraph). +Depends: R (>= 2.10) License: GPL-2 LazyData: true NeedsCompilation: no diff --git a/RBBGCMuso/NAMESPACE b/RBBGCMuso/NAMESPACE index 5fad472..c10acaf 100644 --- a/RBBGCMuso/NAMESPACE +++ b/RBBGCMuso/NAMESPACE @@ -6,10 +6,12 @@ export(corrigMuso) export(getyearlycum) export(getyearlymax) export(musoDate) +export(musoMapping) export(plotMuso) export(rungetMuso) export(setupMuso) export(spinupMuso) export(supportedMuso) +export(updateMusoMapping) import(graphics) import(utils) diff --git a/RBBGCMuso/R/calibMuso.R b/RBBGCMuso/R/calibMuso.R index 5a96941..895fc32 100644 --- a/RBBGCMuso/R/calibMuso.R +++ b/RBBGCMuso/R/calibMuso.R @@ -55,7 +55,7 @@ calibMuso <- function(settings,parameters=NULL, timee="d", debugging=FALSE, logf } if(aggressive==TRUE){ - cleanupMuso(location=outputloc) + cleanupMuso(location=outputloc,deep = TRUE) } ##change the epc file if and only if there are given parameters @@ -229,7 +229,7 @@ calibMuso <- function(settings,parameters=NULL, timee="d", debugging=FALSE, logf }} - cleanupMuso(location=outputloc) + cleanupMuso(location=outputloc,deep = TRUE) if(errorsign==1){ return("Modell Failure") } diff --git a/RBBGCMuso/R/cleanup.R b/RBBGCMuso/R/cleanup.R index c27dd21..05c88df 100644 --- a/RBBGCMuso/R/cleanup.R +++ b/RBBGCMuso/R/cleanup.R @@ -26,6 +26,7 @@ cleanupMuso <- function(location=NULL, simplicity=TRUE,deep=FALSE){ areThereAnyFolders <- TRUE } + if(dir.exists("../ERROR")){ setwd("../ERROR") diff --git a/RBBGCMuso/R/otherUsefullFunctions.R b/RBBGCMuso/R/otherUsefullFunctions.R index 8508918..ddbe61f 100644 --- a/RBBGCMuso/R/otherUsefullFunctions.R +++ b/RBBGCMuso/R/otherUsefullFunctions.R @@ -113,20 +113,3 @@ corrigMuso <- function(settings, data){ } return(data) } - -#' genMusoMapping -#' -#' This function leapyear-corrigate the output of the modell -#' @author Roland Hollos -#' @param settings This is the output of the setupMuso() function. It contains all of the RBBGCMuso settings -#' @param data the models outputdata -#' @return It returns the modells leapyear-corrigated output data. -#' @export -#' @usage corrigMuso(settings, data) - -genMusoMapping<-function(output_map_init="output_map_init.c"){ - - outputRaw<-grep("\\[",readLines("output_map_init",-1),value=TRUE) - - -} diff --git a/RBBGCMuso/R/outputMapping.R b/RBBGCMuso/R/outputMapping.R index c5d5706..7793801 100644 --- a/RBBGCMuso/R/outputMapping.R +++ b/RBBGCMuso/R/outputMapping.R @@ -1,5 +1,38 @@ -musoMapping <- function(code){ -variableCodes<-c("1","0","2","1","3","2","4","3","5","4","6","5","7","6","8","7","9","8","10","9","11","10","12","11","13","12","14","13","15","14","16","15","17","16","18","17","19","18","20","19","21","20","22","21","23","22","24","23","25","24","26","25","27","26","28","27","29","28","30","29","31","30","32","31","33","32","34","34","35","35","36","36","37","37","38","38","39","39","40","40","41","41","42","42","43","43","44","44","45","45","46","46","47","47","48","48","49","49","50","50","51","51","52","52","53","53","54","54","55","55","56","56","57","57","58","58","59","59","60","60","61","61","62","62","63","63","64","64","65","65","66","66","67","67","68","68","69","69","70","70","71","71","72","72","73","73","74","74","75","75","76","76","77","77","78","78","79","79","80","80","81","81","82","82","83","83","84","84","85","85","86","86","87","87","88","88","89","89","90","90","91","91","92","92","93","93","94","94","95","95","96","96","97","97","98","98","99","99","100","100","101","101","102","102","103","103","104","104","105","105","106","106","107","107","108","108","109","109","110","110","111","111","112","112","113","113","114","114","115","115","116","116","117","117","118","118","119","119","120","120","121","121","122","122","123","123","124","124","125","125","126","126","127","127","128","128","129","129","130","130","131","131","132","132","133","133","134","134","135","135","136","136","137","137","138","138","139","139","140","140","141","141","142","142","143","143","144","144","145","145","146","146","147","147","148","148","149","149","150","150","151","151","152","152","153","153","154","154","155","155","156","156","157","157","158","158","159","159","160","160","161","161","162","162","163","163","164","164","165","165","166","166","167","167","168","168","169","169","170","170","171","171","172","172","173","173","174","174","175","175","176","176","177","177","178","178","179","179","180","180","181","181","182","182","183","183","184","184","185","185","186","186","187","187","188","188","189","189","190","190","191","191","192","192","193","193","194","194","195","195","196","196","197","197","198","198","199","199","200","200","201","201","202","202","203","203","204","204","205","205","206","206","207","207","208","208","209","209","210","210","211","211","212","212","213","213","214","214","215","215","216","216","217","217","218","218","219","219","220","220","221","221","222","222","223","223","224","224","225","225","226","226","227","227","228","228","229","229","230","230","231","231","232","232","233","233","234","234","235","235","236","236","237","237","238","238","239","239","240","240","241","241","242","242","243","243","244","244","245","245","246","246","247","247","248","248","249","249","250","250","251","251","252","252","253","253","254","280","255","281","256","282","257","283","258","284","259","285","260","286","261","287","262","288","263","289","264","290","265","291","266","292","267","293","268","294","269","295","270","296","271","297","272","298","273","299","274","300","275","301","276","302","277","303","278","304","279","305","280","306","281","307","282","308","283","309","284","310","285","311","286","312","287","313","288","314","289","315","290","316","291","317","292","318","293","319","294","320","295","321","296","322","297","323","298","324","299","325","300","326","301","327","302","328","303","329","304","340","305","341","306","342","307","343","308","344","309","345","310","346","311","347","312","348","313","349","314","350","315","351","316","352","317","353","318","354","319","355","320","356","321","357","322","358","323","359","324","360","325","361","326","362","327","363","328","364","329","365","330","366","331","367","332","368","333","369","334","370","335","371","336","372","337","373","338","374","339","375","340","376","341","377","342","378","343","379","344","380","345","381","346","382","347","383","348","384","349","385","350","386","351","387","352","388","353","389","354","390","355","391","356","392","357","393","358","394","359","395","360","396","361","397","362","398","363","399","364","400","365","401","366","402","367","403","368","404","369","405","370","406","371","407","372","408","373","409","374","410","375","411","376","412","377","413","378","414","379","415","380","416","381","417","382","418","383","419","384","420","385","421","386","422","387","423","388","424","389","425","390","426","391","427","392","428","393","429","394","430","395","431","396","433","397","434","398","435","399","436","400","437","401","438","402","439","403","440","404","441","405","442","406","443","407","444","408","445","409","446","410","447","411","448","412","449","413","450","414","451","415","452","416","453","417","454","418","455","419","456","420","457","421","458","422","459","423","460","424","461","425","462","426","463","427","464","428","480","429","481","430","482","431","483","432","484","433","500","434","501","435","502","436","503","437","504","438","505","439","506","440","507","441","508","442","509","443","510","444","511","445","512","446","513","447","514","448","515","449","516","450","517","451","518","452","519","453","520","454","521","455","522","456","526","457","527","458","528","459","529","460","530","461","531","462","532","463","533","464","534","465","535","466","536","467","537","468","538","469","539","470","540","471","541","472","542","473","543","474","544","475","545","476","546","477","547","478","548","479","549","480","550","481","551","482","552","483","553","484","560","485","561","486","562","487","563","488","564","489","565","490","566","491","567","492","568","493","569","494","570","495","571","496","572","497","573","498","574","499","575","500","576","501","577","502","578","503","579","504","590","505","591","506","592","507","593","508","594","509","595","510","596","511","597","512","598","513","599","514","600","515","601","516","602","517","603","518","604","519","605","520","606","521","607","522","608","523","609","524","612","525","613","526","614","527","615","528","616","529","617","530","618","531","619","532","620","533","621","534","622","535","623","536","624","537","625","538","626","539","627","540","628","541","629","542","630","543","631","544","632","545","633","546","634","547","635","548","636","549","637","550","638","551","639","552","640","553","641","554","642","555","643","556","644","557","645","558","646","559","647","560","648","561","649","562","650","563","651","564","652","565","653","566","654","567","655","568","656","569","657","570","658","571","prcp","572","tmax","573","tmin","574","tavg","575","tday","576","tnight","577","tsoil_avg","578","vpd","579","swavgfd","580","swabs","581","swtrans","582","swabs_per_plaisun","583","swabs_per_plaishade","584","ppfd_per_plaisun","585","ppfd_per_plaishade","586","par","587","GDD","588","pa","589","co2","590","dayl","591","soilw_SUM","592","snoww","593","canopyw","594","prcp_src","595","runoff_snk","596","soilevap_snk","597","snowsubl_snk","598","canopyevap_snk","599","trans_snk","600","deeppercolation_snk","601","deepdiffusion_snk","602","deeptrans_src","603","groundwater_src","604","evapotransp","605","prcp_to_canopyw","606","prcp_to_soilw","607","prcp_to_snoww","608","canopyw_evap","609","canopyw_to_soilw","610","snoww_subl","611","snoww_to_soilw","612","soilw_evap","613","soilw_trans_SUM","614","prcp_to_runoff","615","canopyw_to_THN","616","canopyw_to_MOW","617","canopyw_to_GRZ","618","canopyw_to_HRV","619","canopyw_to_PLG","620","leafc","621","leafc_storage","622","leafc_transfer","623","frootc","624","frootc_storage","625","frootc_transfer","626","livestemc","627","livestemc_storage","628","livestemc_transfer","629","deadstemc","630","deadstemc_storage","631","deadstemc_transfer","632","livecrootc","633","livecrootc_storage","634","livecrootc_transfer","635","deadcrootc","636","deadcrootc_storage","637","deadcrootc_transfer","638","gresp_storage","639","gresp_transfer","640","cwdc","641","litr1c","642","litr2c","643","litr3c","644","litr4c","645","soil1c","646","soil2c","647","soil3c","648","soil4c","649","STDBc","650","CTDBc","651","psnsun_src","652","leaf_mr_snk","653","leaf_gr_snk","654","froot_mr_snk","655","froot_gr_snk","656","livestem_mr_snk","657","livestem_gr_snk","658","deadstem_gr_snk","659","livecroot_mr_snk","660","livecroot_gr_snk","661","deadcroot_gr_snk","662","litr1_hr_snk","663","litr2_hr_snk","664","litr4_hr_snk","665","soil1_hr_snk","666","soil2_hr_snk","667","soil3_hr_snk","668","soil4_hr_snk","669","fire_snk","670","fruitc","671","fruitc_storage","672","fruitc_transfer","673","softstemc","674","softstemc_storage","675","softstemc_transfer","676","THNsnk","677","THNsrc","678","MOWsnk","679","MOWsrc","680","GRZsnk","681","GRZsrc","682","HRVsnk","683","HRVsrc","684","PLGsnk","685","PLGsrc","686","PLTsrc","687","FRZsrc","688","SNSCsnk","689","SNSCsrc","690","m_leafc_to_litr1c","691","m_leafc_to_litr2c","692","m_leafc_to_litr3c","693","m_leafc_to_litr4c","694","m_frootc_to_litr1c","695","m_frootc_to_litr2c","696","m_frootc_to_litr3c","697","m_frootc_to_litr4c","698","m_leafc_storage_to_litr1c","699","m_frootc_storage_to_litr1c","700","m_livestemc_storage_to_litr1c","701","m_deadstemc_storage_to_litr1c","702","m_livecrootc_storage_to_litr1c","703","m_deadcrootc_storage_to_litr1c","704","m_leafc_transfer_to_litr1c","705","m_frootc_transfer_to_litr1c","706","m_livestemc_transfer_to_litr1c","707","m_deadstemc_transfer_to_litr1c","708","m_livecrootc_transfer_to_litr1c","709","m_deadcrootc_transfer_to_litr1c","710","m_livestemc_to_cwdc","711","m_deadstemc_to_cwdc","712","m_livecrootc_to_cwdc","713","m_deadcrootc_to_cwdc","714","m_gresp_storage_to_litr1c","715","m_gresp_transfer_to_litr1c","716","m_leafc_to_fire","717","m_frootc_to_fire","718","m_leafc_storage_to_fire","719","m_frootc_storage_to_fire","720","m_livestemc_storage_to_fire","721","m_deadstemc_storage_to_fire","722","m_livecrootc_storage_to_fire","723","m_deadcrootc_storage_to_fire","724","m_leafc_transfer_to_fire","725","m_frootc_transfer_to_fire","726","m_livestemc_transfer_to_fire","727","m_deadstemc_transfer_to_fire","728","m_livecrootc_transfer_to_fire","729","m_deadcrootc_transfer_to_fire","730","m_livestemc_to_fire","731","m_deadstemc_to_fire","732","m_livecrootc_to_fire","733","m_deadcrootc_to_fire","734","m_gresp_storage_to_fire","735","m_gresp_transfer_to_fire","736","m_litr1c_to_fire","737","m_litr2c_to_fire","738","m_litr3c_to_fire","739","m_litr4c_to_fire","740","m_cwdc_to_fire","741","leafc_transfer_to_leafc","742","frootc_transfer_to_frootc","743","livestemc_transfer_to_livestemc","744","deadstemc_transfer_to_deadstemc","745","livecrootc_transfer_to_livecrootc","746","deadcrootc_transfer_to_deadcrootc","747","leafc_to_litr1c","748","leafc_to_litr2c","749","leafc_to_litr3c","750","leafc_to_litr4c","751","frootc_to_litr1c","752","frootc_to_litr2c","753","frootc_to_litr3c","754","frootc_to_litr4c","755","leaf_day_mr","756","leaf_night_mr","757","froot_mr","758","livestem_mr","759","livecroot_mr","760","psnsun_to_cpool","761","psnshade_to_cpool","762","cwdc_to_litr2c","763","cwdc_to_litr3c","764","cwdc_to_litr4c","765","litr1_hr","766","litr1c_to_soil1c","767","litr2_hr","768","litr2c_to_soil2c","769","litr3c_to_litr2c","770","litr4_hr","771","litr4c_to_soil3c","772","soil1_hr","773","soil1c_to_soil2c","774","soil2_hr","775","soil2c_to_soil3c","776","soil3_hr","777","soil3c_to_soil4c","778","soil4_hr","779","cpool_to_leafc","780","cpool_to_leafc_storage","781","cpool_to_frootc","782","cpool_to_frootc_storage","783","cpool_to_livestemc","784","cpool_to_livestemc_storage","785","cpool_to_deadstemc","786","cpool_to_deadstemc_storage","787","cpool_to_livecrootc","788","cpool_to_livecrootc_storage","789","cpool_to_deadcrootc","790","cpool_to_deadcrootc_storage","791","cpool_to_gresp_storage","792","cpool_leaf_gr","793","transfer_leaf_gr","794","cpool_froot_gr","795","transfer_froot_gr","796","cpool_livestem_gr","797","transfer_livestem_gr","798","cpool_deadstem_gr","799","transfer_deadstem_gr","800","cpool_livecroot_gr","801","transfer_livecroot_gr","802","cpool_deadcroot_gr","803","transfer_deadcroot_gr","804","leafc_storage_to_leafc_transfer","805","frootc_storage_to_frootc_transfer","806","livestemc_storage_to_livestemc_transfer","807","deadstemc_storage_to_deadstemc_transfer","808","livecrootc_storage_to_livecrootc_transfer","809","deadcrootc_storage_to_deadcrootc_transfer","810","gresp_storage_to_gresp_transfer","811","livestemc_to_deadstemc","812","livecrootc_to_deadcrootc","813","leafc_to_MOW","814","STDBc_to_GRZ","815","STDBc_to_MOW","816","STDBc_to_HRV","817","STDBc_to_PLG","818","CTDBc_to_PLG","819","CH4_flux_soil","820","CH4_flux_FERMENT","821","CH4_flux_MANURE","822","m_vegc_to_SNSC","823","m_STDBc_to_SNSC","824","leafn","825","leafn_storage","826","leafn_transfer","827","frootn","828","frootn_storage","829","frootn_transfer","830","livestemn","831","livestemn_storage","832","livestemn_transfer","833","deadstemn","834","deadstemn_storage","835","deadstemn_transfer","836","livecrootn","837","livecrootn_storage","838","livecrootn_transfer","839","deadcrootn","840","deadcrootn_storage","841","deadcrootn_transfer","842","cwdn","843","litr1n","844","litr2n","845","litr3n","846","litr4n","847","soil1n","848","soil2n","849","soil3n","850","soil4n","851","sminn_RZ","852","retransn","853","npool","854","nfix_src","855","ndep_src","856","nleached_snk","857","nvol_snk","858","fire_snk","859","THNsnk","860","MOWsnk","861","GRZsnk","862","GRZsrc","863","HRVsnk","864","HRVsrc","865","PLGsnk","866","PLGsrc","867","PLTsrc","868","FRZsrc","869","SNSCsnk","870","SNSCsrc","871","BNDRYsrc","872","ndiffused_snk","873","STDBn","874","m_leafn_to_litr1n","875","m_leafn_to_litr2n","876","m_leafn_to_litr3n","877","m_leafn_to_litr4n","878","m_frootn_to_litr1n","879","m_frootn_to_litr2n","880","m_frootn_to_litr3n","881","m_frootn_to_litr4n","882","m_leafn_storage_to_litr1n","883","m_frootn_storage_to_litr1n","884","m_livestemn_storage_to_litr1n","885","m_deadstemn_storage_to_litr1n","886","m_livecrootn_storage_to_litr1n","887","m_deadcrootn_storage_to_litr1n","888","m_leafn_transfer_to_litr1n","889","m_frootn_transfer_to_litr1n","890","m_livestemn_transfer_to_litr1n","891","m_deadstemn_transfer_to_litr1n","892","m_livecrootn_transfer_to_litr1n","893","m_deadcrootn_transfer_to_litr1n","894","m_livestemn_to_litr1n","895","m_livestemn_to_cwdn","896","m_deadstemn_to_cwdn","897","m_livecrootn_to_litr1n","898","m_livecrootn_to_cwdn","899","m_deadcrootn_to_cwdn","900","m_retransn_to_litr1n","901","m_leafn_to_fire","902","m_frootn_to_fire","903","m_leafn_storage_to_fire","904","m_frootn_storage_to_fire","905","m_livestemn_storage_to_fire","906","m_deadstemn_storage_to_fire","907","m_livecrootn_storage_to_fire","908","m_deadcrootn_storage_to_fire","909","m_leafn_transfer_to_fire","910","m_frootn_transfer_to_fire","911","m_livestemn_transfer_to_fire","912","m_deadstemn_transfer_to_fire","913","m_livecrootn_transfer_to_fire","914","m_deadcrootn_transfer_to_fire","915","m_livestemn_to_fire","916","m_deadstemn_to_fire","917","m_livecrootn_to_fire","918","m_deadcrootn_to_fire","919","m_retransn_to_fire","920","m_litr1n_to_fire","921","m_litr2n_to_fire","922","m_litr3n_to_fire","923","m_litr4n_to_fire","924","m_cwdn_to_fire","925","leafn_transfer_to_leafn","926","frootn_transfer_to_frootn","927","livestemn_transfer_to_livestemn","928","deadstemn_transfer_to_deadstemn","929","livecrootn_transfer_to_livecrootn","930","deadcrootn_transfer_to_deadcrootn","931","leafn_to_litr1n","932","leafn_to_litr2n","933","leafn_to_litr3n","934","leafn_to_litr4n","935","leafn_to_retransn","936","frootn_to_litr1n","937","frootn_to_litr2n","938","frootn_to_litr3n","939","frootn_to_litr4n","940","ndep_to_sminn","941","nfix_to_sminn","942","cwdn_to_litr2n","943","cwdn_to_litr3n","944","cwdn_to_litr4n","945","litr1n_to_soil1n","946","sminn_to_soil1n_l1","947","litr2n_to_soil2n","948","sminn_to_soil2n_l2","949","litr3n_to_litr2n","950","litr4n_to_soil3n","951","sminn_to_soil3n_l4","952","soil1n_to_soil2n","953","sminn_to_soil2n_s1","954","soil2n_to_soil3n","955","sminn_to_soil3n_s2","956","soil3n_to_soil4n","957","sminn_to_soil4n_s3","958","soil4n_to_sminn","959","sminn_to_nvol_l1s1","960","sminn_to_nvol_l2s2","961","sminn_to_nvol_l4s3","962","sminn_to_nvol_s1s2","963","sminn_to_nvol_s2s3","964","sminn_to_nvol_s3s4","965","sminn_to_nvol_s4","966","retransn_to_npool","967","sminn_to_npool","968","npool_to_leafn","969","npool_to_leafn_storage","970","npool_to_frootn","971","npool_to_frootn_storage","972","npool_to_livestemn","973","npool_to_livestemn_storage","974","npool_to_deadstemn","975","npool_to_deadstemn_storage","976","npool_to_livecrootn","977","npool_to_livecrootn_storage","978","npool_to_deadcrootn","979","npool_to_deadcrootn_storage","980","leafn_storage_to_leafn_transfer","981","frootn_storage_to_frootn_transfer","982","livestemn_storage_to_livestemn_transfer","983","deadstemn_storage_to_deadstemn_transfer","984","livecrootn_storage_to_livecrootn_transfer","985","deadcrootn_storage_to_deadcrootn_transfer","986","livestemn_to_deadstemn","987","livestemn_to_retransn","988","livecrootn_to_deadcrootn","989","livecrootn_to_retransn","990","STDBn_to_GRZ","991","STDBn_to_HRV","992","STDBn_to_PLG","993","STDBn_to_MOW","994","N2O_flux_soil","995","N2O_flux_GRZ","996","N2O_flux_FRZ","997","nplus","998","remdays_curgrowth","999","remdays_transfer","1000","remdays_litfall","1001","predays_transfer","1002","predays_litfall","1003","day_leafc_litfall_increment","1004","day_frootc_litfall_increment","1005","day_livestemc_turnover_increment","1006","day_livecrootc_turnover_increment","1007","annmax_leafc","1008","annmax_frootc","1009","annmax_livestemc","1010","annmax_livecrootc","1011","dsr","1012","proj_lai","1013","all_lai","1014","plaisun","1015","plaishade","1016","sun_proj_sla","1017","shade_proj_sla","1018","psi_avg","1019","vwc_avg","1020","dlmr_area_sun","1021","dlmr_area_shade","1022","gl_t_wv_sun","1023","gl_t_wv_shade","1024","assim_sun","1025","assim_shade","1026","daily_gross_nmin","1027","daily_gross_nimmob","1028","daily_net_nmin","1029","m_tmin","1030","m_soilstress","1031","max_conduct","1032","m_ppfd_sun","1033","m_ppfd_shade","1034","m_vpd","1035","m_final_sun","1036","m_final_shade","1037","gl_bl","1038","gl_c","1039","gl_s_sun","1040","gl_s_shade","1041","gl_e_wv","1042","gl_sh","1043","gc_e_wv","1044","gc_sh","1045","ytd_maxplai","1046","vwc[0]","1047","vwc[1]","1048","vwc[2]","1049","vwc[3]","1050","vwc[4]","1051","vwc[5]","1052","vwc[6]","1053","n_limitation","1054","pa","1055","co2","1056","t","1057","lnc","1058","flnr","1059","ppfd","1060","g","1061","dlmr","1062","Ci","1063","O2","1064","Ca","1065","gamma","1066","Kc","1067","Ko","1068","Vmax","1069","Jmax","1070","J","1071","Av","1072","Aj","1073","A","1074","pa","1075","co2","1076","t","1077","lnc","1078","flnr","1079","ppfd","1080","g","1081","dlmr","1082","Ci","1083","O2","1084","Ca","1085","gamma","1086","Kc","1087","Ko","1088","Vmax","1089","Jmax","1090","J","1091","Av","1092","Aj","1093","A","1094","abgc","1095","cum_npp_ann","1096","sum_ndemand","1097","PLG_cpool","1098","PLG_npool","1099","litr_aboveground","1100","litr_belowground","1101","daily_nbp","1102","daily_npp","1103","daily_nep","1104","daily_nee","1105","daily_gpp","1106","daily_mr","1107","daily_gr","1108","daily_hr","1109","daily_fire","1110","cum_npp","1111","cum_nep","1112","cum_nee","1113","cum_gpp","1114","cum_mr","1115","cum_gr","1116","cum_hr","1117","cum_fire","1118","vegc","1119","litrc","1120","soilc","1121","soiln","1122","daily_litfallc","1123","Cchange_MOW","1124","Cchange_HRV","1125","Cchange_PLG","1126","Cchange_GRZ","1127","Cchange_FRZ","1128","Cchange_PLT","1129","Cchange_SNSC","1130","daily_sr","1131","daily_tr","1132","cum_ET","1133","tsoil[0]","1134","tsoil[1]","1135","tsoil[2]","1136","tsoil[3]","1137","tsoil[4]","1138","tsoil[5]","1139","tsoil[6]","1140","tsoil_surface") -variableCodes <- matrix(variableCodes[seq(from=2,to=2280,by=2)],2,byrow=TRUE) -return(variableCodes[2,][which(variableCodes[1,]==as.character(code))]) +#' updateMusoMapping +#' +#' This function update the the muso outputcode-variable matrix +#' @author Roland Hollos +#' @param output_map_init The outputcode-variable bindings is described in output_map_init.c file, via this parameter, you can give it the the function +#' @return The outputcode-variable matrix, and also change the global variable +#' @export +#' @usage updateMusoMapping(output_map_init="output_map_init.c") + +updateMusoMapping<-function(output_map_init="output_map_init.c"){ + + outputRaw<-grep("\\[",readLines("output_map_init",-1),value=TRUE) + + codes <- as.vector(lapply(outputRaw, function (x) as.numeric(unlist(strsplit(unlist(strsplit(x,"\\["))[2],"\\]"))[1]))) + names <- unlist(lapply(outputRaw, function (x) unlist(strsplit(unlist(strsplit(x,">"))[2],";"))[1])) + mMapping <-cbind(codes,names) + save(mMapping, file="mMap.RData") + return(mMapping) +} + +#' musoMapping +#' +#' musoMapping can give us the name of a muso outputcode +#' @author Roland Hollos +#' @param code the MuSo outputcode +#' @param mapData updateMusomapping generated matrix +#' @return The name of the MuSo outputcode +#' @export +#' @usage musoMapping(code, mapData=NULL) + + +musoMapping <- function(code, mapData=NULL){ + if(is.null(mapData)){ + return(unlist(mMapping[which(mMapping[,1]==code),2])) #mMapping is package-scoped system variable generated by uudateMusoMapping + } else { + return(unlist(mapData[which(mapData[,1]==650),2])) + } } diff --git a/RBBGCMuso/R/rungetMuso.R b/RBBGCMuso/R/rungetMuso.R index 0c9faa7..e1b680a 100644 --- a/RBBGCMuso/R/rungetMuso.R +++ b/RBBGCMuso/R/rungetMuso.R @@ -56,7 +56,7 @@ rungetMuso <- function(settings, timee="d", debugging=FALSE, logfilename=NULL, k } if(aggressive==TRUE){ - cleanupMuso(location=outputloc) + cleanupMuso(location=outputloc, deep=TRUE) } ##We change the working directory becase of the model, but we want to avoid sideeffects, so we save the current location and after that we will change everything to it. diff --git a/RBBGCMuso/R/sysdata.rda b/RBBGCMuso/R/sysdata.rda new file mode 100644 index 0000000000000000000000000000000000000000..0c15c68a63fd08b23d129a4b6150ad0c0a9beca3 GIT binary patch literal 3546 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 LF~GJyT-N$GRs&vL literal 0 HcmV?d00001 diff --git a/RBBGCMuso/man/musoMapping.Rd b/RBBGCMuso/man/musoMapping.Rd new file mode 100644 index 0000000..7db1c42 --- /dev/null +++ b/RBBGCMuso/man/musoMapping.Rd @@ -0,0 +1,22 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/outputMapping.R +\name{musoMapping} +\alias{musoMapping} +\title{musoMapping} +\usage{ +musoMapping(code, mapData=NULL) +} +\arguments{ +\item{code}{the MuSo outputcode} + +\item{mapData}{updateMusomapping generated matrix} +} +\value{ +The name of the MuSo outputcode +} +\description{ +musoMapping can give us the name of a muso outputcode +} +\author{ +Roland Hollos +} diff --git a/RBBGCMuso/man/updateMusoMapping.Rd b/RBBGCMuso/man/updateMusoMapping.Rd new file mode 100644 index 0000000..83aef85 --- /dev/null +++ b/RBBGCMuso/man/updateMusoMapping.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/outputMapping.R +\name{updateMusoMapping} +\alias{updateMusoMapping} +\title{updateMusoMapping} +\usage{ +updateMusoMapping(output_map_init="output_map_init.c") +} +\arguments{ +\item{output_map_init}{The outputcode-variable bindings is described in output_map_init.c file, via this parameter, you can give it the the function} +} +\value{ +The outputcode-variable matrix, and also change the global variable +} +\description{ +This function update the the muso outputcode-variable matrix +} +\author{ +Roland Hollos +} diff --git a/RBBGCMuso_0.3.1.0-1.tar.gz b/RBBGCMuso_0.3.1.0-1.tar.gz deleted file mode 100644 index 2da23a113f8ee1a842d91ff903e26e5f4a39b37e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42383 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