OK, ich habe viel darüber auf Gitter geredet, aber es scheint, dass ich ein Problem eröffnen muss. Ich werde versuchen, das Problem hier zu artikulieren, bitte aber bei Bedarf um Klarheit.
Das Problem ist folgendes: Plötzlich, wenn ich die neueste Version des Entwicklungszweigs mit dem neuesten dvmdostem-Code ausführe, erhalte ich ein ziemlich häufiges Problem, bei dem gemäß dem Workflow-Protokoll und meinen hinzugefügten logger.debug()-Anweisungen das richtige Posterior ( für SLA) und früher (für alle anderen Merkmale im dvmdostem CMT04-Salix PFT siehe hier: https://www.betydb.org/pfts/136). Zum Beispiel:
2017-10-10 07:56:52 INFO [PEcAn.logger::logger.info] :
Selected PFT(s): CMT04-Salix
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'prior.distns' not found
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'post.distns' not found
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'trait.mcmc' not found
2017-10-10 07:56:52 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix has MCMC samples for: SLA
2017-10-10 07:56:52 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix will use prior distributions for: mort2
growth_resp_factor leaf_turnover_rate leaf_width nonlocal_dispersal
fineroot2leaf root_turnover_rate seedling_mortality stomatal_slope
r_fract root_respiration_rate Vm_low_temp Vcmax quantum_efficiency
2017-10-10 07:56:52 INFO [PEcAn.logger::logger.info] :
using 5004 samples per trait
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-10 07:56:52 INFO [PEcAn.logger::logger.info] :
No sampling method supplied, defaulting to uniform random sampling
Welches sind die falschen Eigenschaften, die im vorherigen Dist-Teil aufgeführt sind.
Wenn ich mir also die Posterior-ID in den dbfiles UND im PFT-Ordner im PEcAn-Lauf anschaue, zeigen beide die richtigen vorherigen/posterioren Dateien/Infos und stimmen überein.
Zum Beispiel:
> load('prior.distns.Rdata')
> ls()
[1] "post.distns" "prior.distns" "q"
> prior.distns
distn parama paramb n
SW_albedo unif 0.010 0.300 NA
gcmax unif 0.001 0.005 NA
cuticular_cond weibull 1.120 54531.000 29
SLA norm 10.000 5.000 NA
frprod_perc_20 unif 0.100 99.000 NA
frprod_perc_10 unif 0.100 99.000 NA
extinction_coefficient_diffuse weibull 4.000 0.400 NA
>
und
> load('prior.distns.Rdata')
> ls()
[1] "prior.distns" "q"
> prior.distns
distn parama paramb n
SW_albedo unif 0.010 0.300 NA
gcmax unif 0.001 0.005 NA
cuticular_cond weibull 1.120 54531.000 29
SLA norm 10.000 5.000 NA
frprod_perc_20 unif 0.100 99.000 NA
frprod_perc_10 unif 0.100 99.000 NA
extinction_coefficient_diffuse weibull 4.000 0.400 NA
> getwd()
[1] "/data/sserbin/Modeling/dvmdostem/pecan_runs/run.56/pft/CMT04-Salix"
> load('post.distns.MA.Rdata')
> ls90
Error: object 'ls90' not found
> ls()
[1] "post.distns" "prior.distns" "q"
> post.distns
distn parama paramb n
SW_albedo unif 0.01000 3.000000e-01 NA
gcmax unif 0.00100 5.000000e-03 NA
cuticular_cond weibull 1.12000 5.453100e+04 29
SLA norm 10.91521 1.807541e-01 NA
frprod_perc_20 unif 0.10000 9.900000e+01 NA
frprod_perc_10 unif 0.10000 9.900000e+01 NA
extinction_coefficient_diffuse weibull 4.00000 4.000000e-01 NA
> load('post.distns.Rdata')
> ls()
[1] "post.distns" "prior.distns" "q"
> post.distns
distn parama paramb n
SW_albedo unif 0.01000 3.000000e-01 NA
gcmax unif 0.00100 5.000000e-03 NA
cuticular_cond weibull 1.12000 5.453100e+04 29
SLA norm 10.91521 1.807541e-01 NA
frprod_perc_20 unif 0.10000 9.900000e+01 NA
frprod_perc_10 unif 0.10000 9.900000e+01 NA
extinction_coefficient_diffuse weibull 4.00000 4.000000e-01 NA
> prior.distns
distn parama paramb n
SW_albedo unif 0.010 0.300 NA
gcmax unif 0.001 0.005 NA
cuticular_cond weibull 1.120 54531.000 29
SLA norm 10.000 5.000 NA
frprod_perc_20 unif 0.100 99.000 NA
frprod_perc_10 unif 0.100 99.000 NA
extinction_coefficient_diffuse weibull 4.000 0.400 NA
Der Schreibkonfigurationscode versucht dann, die falschen Parameter zu schreiben, was zu Läufen führt, bei denen das einzige variierte Modellmerkmal SLA ist, da es MCMC-Beispiele enthält. Ich kann nicht herausfinden, woher die Phantompriors kommen. Tobey Carman von UAF hat das gleiche Problem auf der VM, die auf dem gleichen Level von Develop/dvmdostem-Commits liegt.
https://github.com/PecanProject/pecan/issues/new
Es ist im Moment sehr schwer zu sagen, aber es scheint, dass dies nur mit dieser speziellen PFT zusammenhängt? Aber ich bin mir nicht ganz sicher, ich habe mit anderen Modi von PFT-Combos rumgespielt und das noch nicht gesehen. Könnte auch spezifisch für die tem-Modell-Registrierung in pEcAn/bety . sein
Hier ist ein Ausschnitt aus einer meiner pecan.CONFIGS.xmls
?xml version="1.0"?>
<pecan>
<outdir>/data/sserbin/Modeling/dvmdostem/pecan_runs/run.56/</outdir>
<database>
<bety>
<user>bety</user>
<password>bety</password>
<host>localhost</host>
<dbname>bety</dbname>
<driver>PostgreSQL</driver>
<write>FALSE</write>
</bety>
<dbfiles>/data/home/sserbin/.pecan/dbfiles</dbfiles>
</database>
<pfts>
<pft>
<name>CMT04-Salix</name>
<constants>
<num>1</num>
</constants>
<posteriorid>2000001342</posteriorid>
<outdir>/data/sserbin/Modeling/dvmdostem/pecan_runs/run.56//pft/CMT04-Salix</outdir>
</pft>
</pfts>
Also habe ich get.parameter.samples einige print-Anweisungen hinzugefügt
### Identify PFTs in the input settings.xml file
get.parameter.samples <- function(settings,
posterior.files = rep(NA, length(settings$pfts)),
ens.sample.method = "uniform") {
## added by sps
PEcAn.logger::logger.debug(paste0("get.param.samples.R posterior file: ", posterior.files))
PEcAn.logger::logger.debug(paste0("priors: ", prior.distns))
# added by sps
pfts <- settings$pfts
num.pfts <- length(settings$pfts)
pft.names <- list()
outdirs <- list()
for (i.pft in seq_along(pfts)) {
pft.names[i.pft] <- settings$pfts[[i.pft]]$name
### If no PFT(s) are specified insert NULL to warn user
if (length(pft.names) == 0) {
pft.names[1] <- "NULL"
}
### Get output directory info
outdirs[i.pft] <- settings$pfts[[i.pft]]$outdir
PEcAn.logger::logger.info(paste0("PFT Output Directories: ", outdirs)) # added by sps
} ### End of for loop to extract pft names
PEcAn.logger::logger.info("Selected PFT(s): ", pft.names)
## Generate empty list arrays for output.
trait.samples <- sa.samples <- ensemble.samples <- env.samples <- runs.samples <- list()
## Load PFT priors and posteriors
for (i in seq_along(pft.names)) {
#rm(prior.distns, post.distns, trait.mcmc) # sps
## Load posteriors
if (!is.na(posterior.files[i])) {
# Load specified file
load(posterior.files[i])
if (!exists("prior.distns") & exists("post.distns")) {
prior.distns <- post.distns
}
} else {
# Default to most recent posterior in the workflow, or the prior if there is none
fname <- file.path(outdirs[i], "post.distns.Rdata")
PEcAn.logger::logger.debug(paste0("posterior fname: ",fname)) # added by sps
if (file.exists(fname)) {
load(fname)
prior.distns <- post.distns
} else {
load(file.path(outdirs[i], "prior.distns.Rdata"))
}
}
## added by sps
PEcAn.logger::logger.debug(paste0("get.param.samples.R posterior file: ", posterior.files))
PEcAn.logger::logger.debug(paste0("priors: ", prior.distns))
# added by sps
### Load trait mcmc data (if exists)
if ("trait.mcmc.Rdata" %in% dir(unlist(outdirs[i]))) {
ma.results <- TRUE
PEcAn.logger::logger.debug("*** Trait MCMC samples found ***") # added by sps
load(file.path(outdirs[i], "trait.mcmc.Rdata"))
} else {
ma.results <- FALSE
PEcAn.logger::logger.debug("*** Trait MCMC samples not found ***") # added by sps
}
pft.name <- unlist(pft.names[i])
Protokollausgabe
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-10 16:54:40 WARN [PEcAn.logger::logger.warn] :
Multiple Valid Files found on host machine. Returning last updated
record.
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-10 16:54:40 DEBUG [PEcAn.logger::logger.debug] :
get.param.samples.R posterior file:
/data/home/sserbin/.pecan/dbfiles/posterior/2000001348/post.distns.MA.Rdata
2017-10-10 16:54:40 DEBUG [PEcAn.logger::logger.debug] :
priors: c("gamma", "beta", "gamma", "gamma", "beta", "lnorm", "weibull",
"beta", "weibull", "beta", "weibull", "norm", "weibull", "weibull",
"gamma") priors: c(1.47, 2.63, 2.9, 6.53, 20.3, 0.811, 1.67, 3.61, 3.63,
2, 2.66, 10, 2.06, 3.55, 90.9) priors: c(0.0578, 6.52, 0.63, 1.49, 76.1,
0.843, 0.657, 0.433, 3.81, 4, 6.29, 1.02, 19, 24.7, 1580) priors: c(0,
0, 40, 17, 30, 0, 66, 0, 4, 0, 35, 0, 125, 97, 56)
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-10 16:54:40 INFO [PEcAn.logger::logger.info] :
PFT Output Directories:
/data/sserbin/Modeling/dvmdostem/pecan_runs/run.60//pft/CMT04-Salix
2017-10-10 16:54:40 INFO [PEcAn.logger::logger.info] :
Selected PFT(s): CMT04-Salix
2017-10-10 16:54:40 DEBUG [PEcAn.logger::logger.debug] :
get.param.samples.R posterior file:
/data/home/sserbin/.pecan/dbfiles/posterior/2000001348/post.distns.MA.Rdata
2017-10-10 16:54:40 DEBUG [PEcAn.logger::logger.debug] :
priors: c("gamma", "beta", "gamma", "gamma", "beta", "lnorm", "weibull",
"beta", "weibull", "beta", "weibull", "norm", "weibull", "weibull",
"gamma") priors: c(1.47, 2.63, 2.9, 6.53, 20.3, 0.811, 1.67, 3.61, 3.63,
2, 2.66, 10, 2.06, 3.55, 90.9) priors: c(0.0578, 6.52, 0.63, 1.49, 76.1,
0.843, 0.657, 0.433, 3.81, 4, 6.29, 1.02, 19, 24.7, 1580) priors: c(0,
0, 40, 17, 30, 0, 66, 0, 4, 0, 35, 0, 125, 97, 56)
2017-10-10 16:54:40 DEBUG [PEcAn.logger::logger.debug] :
*** Trait MCMC samples found ***
2017-10-10 16:54:40 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix has MCMC samples for: SLA
2017-10-10 16:54:40 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix will use prior distributions for: mort2
growth_resp_factor leaf_turnover_rate leaf_width nonlocal_dispersal
fineroot2leaf root_turnover_rate seedling_mortality stomatal_slope
r_fract root_respiration_rate Vm_low_temp Vcmax quantum_efficiency
2017-10-10 16:54:40 INFO [PEcAn.logger::logger.info] :
using 5004 samples per trait
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Seltsam ist, dass der erste Satz von Logger-Anweisungen zeigt, dass der Lauf bereits posterior.files und prior.distns gesetzt hat, bevor er überhaupt dazu kommt, priors/posteriors in der for-Schleife zu parsen? Ich kann also immer noch nicht isolieren, woher die Priors kommen und wie sie dann in dieser Funktion verwendet werden? Basierend auf dem Code sieht es so aus, als ob er die Informationen aus dem PFT-Ordner verwenden sollte, aber sie scheinen von woanders herzukommen?
Es scheint sicher , dass es dieses Bit sein runnign sollte die richtige posterior info aber dafür zu bekommen , welchen Gründen auch immer es ist kein
} else {
# Default to most recent posterior in the workflow, or the prior if there is none
fname <- file.path(outdirs[i], "post.distns.Rdata")
PEcAn.logger::logger.debug(paste0("posterior fname: ",fname)) # added by sps
if (file.exists(fname)) {
load(fname)
prior.distns <- post.distns
} else {
load(file.path(outdirs[i], "prior.distns.Rdata"))
}
}
Ich weiß, dass es nicht läuft, weil der Logger-Ausgang nicht da ist ....
Anstatt also diesen Teil auszuführen, verwendet es einige andere prior.distns von woanders, die es zu greifen scheint, wer weiß wo???
OK, sehr sehr seltsam und ich bin damit verloren. Ich habe eine NEUE DVM-DOS-TEM PFT erstellt und habe immer noch das gleiche Problem
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:28:17 INFO [PEcAn.logger::logger.info] :
Selected PFT(s): CMT04-Betula
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'prior.distns' not found
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'post.distns' not found
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'trait.mcmc' not found
2017-10-13 08:28:17 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Betula has MCMC samples for: SLA
2017-10-13 08:28:17 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Betula will use prior distributions for: mort2
growth_resp_factor leaf_turnover_rate leaf_width nonlocal_dispersal
fineroot2leaf root_turnover_rate seedling_mortality stomatal_slope
r_fract root_respiration_rate Vm_low_temp Vcmax quantum_efficiency
2017-10-13 08:28:17 INFO [PEcAn.logger::logger.info] :
using 5004 samples per trait
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Gibt es einen Grund, warum dieser Fehler modellspezifisch in Bezug auf dvm-dos-tem sein könnte? Vielleicht wird etwas falsch aus dem NAMESPACE maskiert? Ich kann nicht sehen, wie das passiert?
Okay, irgendwas ist los. Hier ist ein SIPNET-Lauf
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:32:10 INFO [PEcAn.logger::logger.info] :
Selected PFT(s): tundra.deciduous.NGEE_Arctic
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'prior.distns' not found
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'post.distns' not found
Warning in rm(prior.distns, post.distns, trait.mcmc) :
object 'trait.mcmc' not found
2017-10-13 08:32:10 INFO [PEcAn.logger::logger.info] :
PFT tundra.deciduous.NGEE_Arctic has MCMC samples for: leafC Amax
Vm_low_temp leaf_respiration_rate_m2 SLA
2017-10-13 08:32:10 INFO [PEcAn.logger::logger.info] :
PFT tundra.deciduous.NGEE_Arctic will use prior distributions for: mort2
growth_resp_factor leaf_turnover_rate leaf_width nonlocal_dispersal
fineroot2leaf root_turnover_rate seedling_mortality stomatal_slope
r_fract root_respiration_rate Vcmax quantum_efficiency
2017-10-13 08:32:10 INFO [PEcAn.logger::logger.info] :
using 3004 samples per trait
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:32:10 INFO [PEcAn.logger::logger.info] :
No sampling method supplied, defaulting to uniform random sampling
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:32:10 INFO [PEcAn.logger::logger.info] :
Using uniform random sampling
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Vcmax und mort2 sind eindeutig ein Fehler. Woher kommen diese Prioren!
Hier ist auch eine frühere Ausgabe von meinem workflow.log vor der meta.analyse
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:28:10 INFO [PEcAn.logger::logger.info] :
---------------------------------------------------------
2017-10-13 08:28:10 INFO [PEcAn.logger::logger.info] : SLA
Auto-disconnecting PostgreSQLConnection
2017-10-13 08:28:13 INFO [PEcAn.logger::logger.info] : Median SLA : 12.525
2017-10-13 08:28:13 INFO [PEcAn.logger::logger.info] :
---------------------------------------------------------
2017-10-13 08:28:13 INFO [PEcAn.logger::logger.info] :
Summary of Prior distributions for: CMT04-Betula
2017-10-13 08:28:13 INFO [PEcAn.logger::logger.info] :
distn parama paramb n
2017-10-13 08:28:13 INFO [FUN] :
cuticular_cond lnorm 8.400 0.900 0
2017-10-13 08:28:13 INFO [FUN] :
extinction_coefficient_diffuse gamma 5.000 10.000 NA
2017-10-13 08:28:13 INFO [FUN] :
gcmax unif 0.001 0.005 NA
2017-10-13 08:28:13 INFO [FUN] :
SLA norm 10.000 5.000 NA
2017-10-13 08:28:13 INFO [FUN] :
frprod_perc_20 unif 0.100 99.000 NA
2017-10-13 08:28:13 INFO [FUN] :
frprod_perc_10 unif 0.100 99.000 NA
2017-10-13 08:28:13 INFO [PEcAn.logger::logger.info] :
number of observations per trait for CMT04-Betula
2017-10-13 08:28:13 INFO [PEcAn.logger::logger.info] :
34 observations of SLA
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Dort werden die richtigen Merkmale angezeigt, sodass das Problem nach der Metaanalyse und vor dem Ausführen von write.configs auftritt
OK, und dann wird es manchmal gut funktionieren, wie unten
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:48:05 INFO [PEcAn.logger::logger.info] :
PFT Output Directories:
/data/sserbin/Modeling/dvmdostem/pecan_runs/run.61//pft/CMT04-Salix
2017-10-13 08:48:05 INFO [PEcAn.logger::logger.info] :
Selected PFT(s): CMT04-Salix
2017-10-13 08:48:05 DEBUG [PEcAn.logger::logger.debug] :
posterior fname:
/data/sserbin/Modeling/dvmdostem/pecan_runs/run.61//pft/CMT04-Salix/post.distns.Rdata
2017-10-13 08:48:05 DEBUG [PEcAn.logger::logger.debug] :
get.param.samples.R posterior file: NA
2017-10-13 08:48:05 DEBUG [PEcAn.logger::logger.debug] :
priors: c("weibull", "unif", "unif", "norm", "unif", "unif", "weibull")
priors: c(1.12, 0.01, 0.001, 10.9152064936782, 0.1, 0.1, 4) priors:
c(54531, 0.3, 0.005, 0.180754050808388, 99, 99, 0.4) priors: c(29, NA,
NA, NA, NA, NA, NA)
2017-10-13 08:48:05 DEBUG [PEcAn.logger::logger.debug] :
*** Trait MCMC samples found ***
2017-10-13 08:48:05 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix has MCMC samples for: SLA
2017-10-13 08:48:05 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix will use prior distributions for: cuticular_cond
SW_albedo gcmax frprod_perc_20 frprod_perc_10
extinction_coefficient_diffuse
2017-10-13 08:48:05 INFO [PEcAn.logger::logger.info] :
using 5004 samples per trait
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Ich glaube wirklich, dass hier etwas mit Ordnung zu tun hat....
Beachten Sie in der Log-Ausgabe oben get.param.samples.R posteriore Datei: NA und es hat gut funktioniert, aber weiter oben zeigt diese print-Anweisung einen Pfad zu einer Datei, eine Datei mit den richtigen Informationen darin, aber dann verwendet sie die falschen Vorher?
Yup, und wenn ich den GENAU GLEICHEN Arbeitsablauf und die Einstellungen in pecan.xml ausführe, dh den Arbeitsablauf einfach erneut quelle, erhalte ich andere Ergebnisse!!!
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:56:35 WARN [PEcAn.logger::logger.warn] :
Multiple Valid Files found on host machine. Returning last updated
record.
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:56:36 DEBUG [PEcAn.logger::logger.debug] :
get.param.samples.R posterior file:
/data/home/sserbin/.pecan/dbfiles/posterior/2000001353/post.distns.MA.Rdata
2017-10-13 08:56:36 DEBUG [PEcAn.logger::logger.debug] :
priors: c("gamma", "beta", "gamma", "gamma", "beta", "lnorm", "weibull",
"beta", "weibull", "beta", "weibull", "norm", "weibull", "weibull",
"gamma") priors: c(1.47, 2.63, 2.9, 6.53, 20.3, 0.811, 1.67, 3.61, 3.63,
2, 2.66, 10, 2.06, 3.55, 90.9) priors: c(0.0578, 6.52, 0.63, 1.49, 76.1,
0.843, 0.657, 0.433, 3.81, 4, 6.29, 1.02, 19, 24.7, 1580) priors: c(0,
0, 40, 17, 30, 0, 66, 0, 4, 0, 35, 0, 125, 97, 56)
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 08:56:36 INFO [PEcAn.logger::logger.info] :
PFT Output Directories:
/data/sserbin/Modeling/dvmdostem/pecan_runs/run.61//pft/CMT04-Salix
2017-10-13 08:56:36 INFO [PEcAn.logger::logger.info] :
Selected PFT(s): CMT04-Salix
2017-10-13 08:56:36 DEBUG [PEcAn.logger::logger.debug] :
Sie können sehen, dass diese print-Anweisung dieses Mal nicht NA ist und ich die falschen Eigenschaften in write.configs bekomme!
Wenn es also nicht richtig funktioniert, zeigt es auf die KORREKTE posteriore Datei, ABER erhält irgendwie Priors für Merkmale, die IN DIESER DATEI oder in der PFT nicht existieren!?
Ich weiß also nicht, ob dies hilfreich ist, aber @tobeycarman, der auch auf dieses Problem
>
>
> # ----------------------------------------------------------------------
> # PEcAn Workflow .... [TRUNCATED]
> if (is.na(args[1])){
+ settings <- PEcAn.settings::read.settings("pecan.xml")
+ } else {
+ settings.file = args[1]
+ settings <- PEcAn.setting .... [TRUNCATED]
2017-10-13 08:05:51 SEVERE [PEcAn.logger::logger.severe] :
Could not find a pecan.xml file
Warning in file(file, ifelse(append, "a", "w")) :
cannot open file '/home/dlebauer/out/ebifarm/post//STATUS': No such file or directory
Error in file(file, ifelse(append, "a", "w")) :
cannot open the connection
Error during wrapup: cannot open the connection
>
Ist es möglich, dass sich in der Datenbank irgendwie ein Posterior von einem alten Lauf von @dlebauer befindet , der wie ein ED2-Lauf aussieht, auf den wir irgendwie standardmäßig eingestellt werden? Oder vielleicht irgendwo in einem R-Paket. Ich habe erfolglos gesucht. Mir ist klar, dass dies eine abgefahrene Weite ist, aber ich dachte, ich würde fragen, falls es etwas wäre, das eine Idee auslösen würde
Weil ich nicht sehen kann, wie sein Fehler so angezeigt wird ... es sei denn, es hat etwas mit der VM zu tun.
Hier sind Ausgaben von @tobeycarman, die auch die Inkonsistenz zeigen, wo es nicht funktioniert und dann nicht mehr funktioniert. Aber auch er bekommt die gleichen falschen Parameter
Ich fügte hinzu
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 09:57:01 WARN [PEcAn.logger::logger.warn] :
Multiple Valid Files found on host machine. Returning last updated
record.
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 09:57:01 DEBUG [PEcAn.logger::logger.debug] :
get.param.samples.R posterior file: NA
2017-10-13 09:57:01 DEBUG [PEcAn.logger::logger.debug] :
priors: c("gamma", "beta", "gamma", "gamma", "beta", "lnorm", "weibull",
"beta", "weibull", "beta", "weibull", "norm", "weibull", "weibull",
"gamma") priors: c(1.47, 2.63, 2.9, 6.53, 20.3, 0.811, 1.67, 3.61, 3.63,
2, 2.66, 10, 2.06, 3.55, 90.9) priors: c(0.0578, 6.52, 0.63, 1.49, 76.1,
0.843, 0.657, 0.433, 3.81, 4, 6.29, 1.02, 19, 24.7, 1580) priors: c(0,
0, 40, 17, 30, 0, 66, 0, 4, 0, 35, 0, 125, 97, 56)
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
See help("Deprecated")
2017-10-13 09:57:01 INFO [PEcAn.logger::logger.info] :
PFT Output Directories:
/data/sserbin/Modeling/dvmdostem/pecan_runs/run.64//pft/CMT04-Salix
2017-10-13 09:57:01 INFO [PEcAn.logger::logger.info] :
Selected PFT(s): CMT04-Salix
2017-10-13 09:57:01 DEBUG [PEcAn.logger::logger.debug] :
posterior fname:
/data/sserbin/Modeling/dvmdostem/pecan_runs/run.64//pft/CMT04-Salix/post.distns.Rdata
2017-10-13 09:57:01 DEBUG [PEcAn.logger::logger.debug] :
get.param.samples.R posterior file: NA
2017-10-13 09:57:01 DEBUG [PEcAn.logger::logger.debug] :
priors: c("weibull", "unif", "unif", "norm", "unif", "unif", "weibull")
priors: c(1.12, 0.01, 0.001, 10.9152064936782, 0.1, 0.1, 4) priors:
c(54531, 0.3, 0.005, 0.180754050808388, 99, 99, 0.4) priors: c(29, NA,
NA, NA, NA, NA, NA)
2017-10-13 09:57:01 DEBUG [PEcAn.logger::logger.debug] :
*** Trait MCMC samples found ***
2017-10-13 09:57:01 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix has MCMC samples for: SLA
2017-10-13 09:57:01 INFO [PEcAn.logger::logger.info] :
PFT CMT04-Salix will use prior distributions for: cuticular_cond
SW_albedo gcmax frprod_perc_20 frprod_perc_10
extinction_coefficient_diffuse
2017-10-13 09:57:01 INFO [PEcAn.logger::logger.info] :
using 5004 samples per trait
Warning: '$.SafeList' is deprecated.
Use 'PEcAn.settings::$.SafeList' instead.
Es scheint also, wenn etwas Pekannuss dazu bringt, eine Änderung aufzunehmen, es funktioniert ordnungsgemäß, aber ansonsten nicht. Und wieder get.param.samples.R posteriore Datei: NA, wenn es funktioniert
Dies im Web zu tun hatte nicht das gleiche Ergebnis, daher ist dies ziemlich inkonsistent.
Hinzufügen der
@serbinsh könntest du den Workflow bis hierher Zeile für Zeile ausführen?
Die "Mehrere gültige Dateien auf dem Host-Rechner gefunden. Letzte Aktualisierung zurückgeben"
aufzeichnen. " Warnung könnte ein Hinweis sein, dbfile.check kann manchmal eine Liste unerwünschter Dateien zurückgeben
Ich bin mir nicht sicher, ob das für Ihr Problem relevant ist, aber dies hat mir Probleme auf dem PDA verursacht, weshalb ich der Funktion die Option return.all
hinzugefügt habe
Ich habe das gleiche Problem mit DALEC
Mein letzter Lauf 1000008435
Erstellt eine Konfigurationsdatei mit
-mort2 19.5518192434762
-growth_resp_factor 0.269134877386544
-t5 0.00115746296987216
-leaf_width 4.21460770704145
-nonlocal_dispersal 0.208363236071724
-fineroot2leaf 2.28414274764454 -t7 0.00143050364071698
-seedling_mortality 0.95094009313231
-stomatal_slope 3.44801807715082
-r_fract 0.31488851365167
-root_respiration_rate 5.48891170784511
-Vm_low_temp 9.99793554087408
-SLA 0.0329788044168264
-Vcmax 22.4703903038444
-quantum_efficiency 0.0574557888428778
Das ist definitiv falsche Variablen.
Es wurde versucht, Betsys Lauf auf der Release-VM zu duplizieren, und die DALEC-Konfigurationsdatei war
Der Lauf war erfolgreich, so dass der neueste Code bei der Entwicklung eindeutig bestimmte Eigenschaften verwendet.
@tonygardella Ich stimme zu, dass es sich um ein Entwicklungszweigproblem handelt. Meine Vermutung ist eine unbeabsichtigte Folge des Verschiebens von Funktionen und NAMESPACE, kann aber noch nicht herausfinden warum
Dies wurde bis zum Schritt write.configs verfolgt. Insbesondere beim Schritt get.parameter.samples wird es durcheinander gebracht, die richtigen vorherigen und/oder hinteren Daten zu finden und dann standardmäßig auf diese ed-spezifischen Merkmale zu setzen.
@tonygardella Können wir den Pfad / Ort sehen, an dem diese Priors
Ich glaube, dies ist die beleidigende Datei: https://github.com/PecanProject/pecan/blob/develop/base/utils/data/post.distns.RData
In get.parameter.samples diese Zeile entfernt das Objekt von prior.distns , so dass , wenn es um bekommt diese Linie sie die posterior.distns zu prior.distns zuordnen kann, aber in diesem Fall die geladene noch prior.distns.RData Datei geladen als prior.distns, da das PEcAn.utils-Paket geladen wird. Die Existenz dieses Objekts führt dazu, dass diese Paketdatei als Standard verwendet wird.
Der Grund dafür, dass dies auf unseren Maschinen und nicht auf der VM passiert, liegt darin, dass dieser Teil des Codes nicht ausgelöst wird, es sei denn, es sind nachträgliche Dateien vorhanden, die auf der VM nicht vorhanden sind.
Beim Ausführen Zeile für Zeile versuchte ich immer wieder, prior.distns aus meiner Umgebung zu löschen, aber es konnte das Objekt nicht finden Teil des utils-Pakets.
Wird die Datei irgendwo für einen Test verwendet? https://github.com/PecanProject/pecan/blob/develop/base/utils/data/post.distns.RData
Eine schnelle Suche hat nicht gezeigt, dass es nirgendwo verwendet wird.
Aaaund dies erklärt, warum es auftauchte, wenn es tat - das In-Paket post.distns
war nicht automatisch im Workflow sichtbar, bis ich in #1684 Utils auf Lazy-Loading umgestellt habe. Mea culpa!
Hilfreichster Kommentar
Aaaund dies erklärt, warum es auftauchte, wenn es tat - das In-Paket
post.distns
war nicht automatisch im Workflow sichtbar, bis ich in #1684 Utils auf Lazy-Loading umgestellt habe. Mea culpa!