Open aj1s opened 2 years ago
This seems like a lower priority than documentation and producing [mean] output. Moving to milestone 5.
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 90, 0
Tracing error back line by line in plot_uncertainty.r
input block:
start_year = 2021
end_year = 2050
varname = "Total_CumCO2eq_all_diff"
ylabel = "Change from baseline in total cumulative emissions (MMT CO2-eq)"
file_tag = "_unc"
data_dir_a = "./outputs/output_co_rcp85"
figdirs_a = c("mean", "low", "high")
scenarios_a = c("B_Current_co_rcp85_climNA_output_mean_BC1_NR120", "C_Potential_co_rcp85_climNA_output_mean_BC1_NR120", "D_Maximum_co_rcp85_climNA_output_mean_BC1_NR120")
scen_labs_a = c("B_Current", "C_Potential", "D_Maximum")
data_dir_b = NA
figdirs_b = NA
scenarios_b = NA
scen_labs_b = NA
data_dir_c = NA
figdirs_c = NA
scenarios_c = NA
scen_labs_c = NA
reg = "All_region"
lt = "All_land"
own="All_own"
error in for loop that begins on line 187
> reg_lab
[1] "All_region"
> own_lab
[1] "All_own"
> lt_lab
[1] "All_land"
> g
[1] 1
> f
[1] 2
> fig_lab
[1] "low"
> n
[1] 3
> pre
[1] "D_Maximum_co_rcp85_climNA"
> post
[1] "_BC1_NR120"
> snames_all
character(0)
> in_df
[1] Scenario Region Land_Type Ownership Units Year Value
<0 rows> (or 0-length row.names)
in_df
on line 267 is empty
snames
becomes empty on line 262 because GREP is looking for "S-" in the scenario names and can't find it.
should there be scenario names with "S-" in snames?
> snames = grep(pre, in_df_pre$Scenario, value = TRUE)
> snames
[1] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[3] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[5] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[7] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[9] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[11] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[13] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[15] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[17] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[19] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[21] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[23] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[25] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[27] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[29] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
> snames = grep(post, snames, value = TRUE)
> snames
[1] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[3] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[5] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[7] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[9] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[11] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[13] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[15] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[17] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[19] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[21] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[23] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[25] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[27] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[29] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
> snames = grep("S-", snames, value = TRUE)
> snames
character(0)
Nevermind, this code wouldn;t be encountered because figdirs[1]!=figdirs[2] as checked on line 254.
looking from line 272 on
> soil
[1] "D_Maximum_co_rcp85_climNA_output_mean"
> if(regexpr("_S", scenarios[n]) < 0) {soil = "_S=mean"}
> soil
[1] "_S=mean"
> snames = grep(pre, in_df_pre$Scenario, value = TRUE)
> snames
[1] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[3] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[5] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[7] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[9] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[11] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[13] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[15] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[17] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[19] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[21] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[23] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[25] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[27] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[29] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
> snames = grep(post, snames, value = TRUE)
> snames
[1] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[3] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[5] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[7] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[9] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[11] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[13] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[15] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[17] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[19] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[21] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[23] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[25] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[27] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
[29] "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120" "D_Maximum_co_rcp85_climNA_output_D-sd_A+sd_S+sd_BC1_NR120"
> snames = grep(soil, snames, value = TRUE)
> snames
character(0)
our scenario names may be missing important data that tells the script what to do with the scenarios
> scenarios[n]
[1] "D_Maximum_co_rcp85_climNA_output_mean_BC1_NR120"
because scenarios[n]
has no occurrence of "_S" (as checked by line 275), it is then looking for "_S=mean" in "./outputs/output_co_rcp85/low/All_region/All_land/All_own/All_region_All_land_All_own_Total_CumCO2eq_all_diff_output.csv"
@aj1s this is lowish priority, but does "_S=mean" show up in the CALAND tutorials anywhere? Likely as some form of scenario naming convention?
@sbassett - Neither "_S=mean" nor "S=mean" appear specifically in any of the tutorials. However, I assume it refers to a case where the CALAND.R argument "value_col_soilcon" is set to '8', by which a run will use the mean soil carbon flux estimate under soil conservation. This is the case with all of our mean CALAND.R runs, whereas with our low and upper bounded CALAND.R runs, this argument was set in the same direction as was that for accumulation (i.e., positive for uptake under a low bounded run, or negative for emissions under a high bounded run).
Thank you @aj1s! Changing the S=mean to S+ worked! We have uncertainty plots!
@sbassett Supernal ! Thanks for birddogging !
'runscript_CALAND_NM_solely85_unc.r' and 'runscript_plot_caland_NM_solely85_unc.r' generate outputs needed for uncertainty bounds and in the req'd dir organization.
However, 'runscript_plot_uncertainty_NM_solely85.r' (7f9191c8854de1bd20e34cb8a66089076d9496b9) returns:
Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 90, 0
It may be that the error is thrown at the first of two attempts (at lines 272 and 310) to combine
in_df$Value
with the columns ofgroup_df
:group_df <- cbind(group_df,in_df$Value)
It appears that for each
varname
,group_df
is correctly populated with the three respective output csvs (i.e., for mean, low bound, and high bound), as each correctly has 7 variables and 90 obs (i.e., 30 annual obs for each of three ambition-based scenarios). However, there are 0 obs of variablein_df$Value
.