def worker(self, met_files, url, rev): for fname in met_files: site = os.path.basename(fname).split(".")[0].split("_")[0] base_nml_fn = os.path.join(self.grid_dir, "%s" % (self.nml_fname)) nml_fname = "cable_%s.nml" % (site) shutil.copy(base_nml_fn, nml_fname) (out_fname, out_log_fname) = self.clean_up_old_files(site) # ./plot_E_vs_psi_leaf.py, looks a reasonable match to obs # we don't hit the max, but the bulk of the values are in the right place Kmax_value = 0.4 #b_plant = 3.7616378326944595 # calculated from vlc #c_plant = 10.289003851919992 # calculated from vlc b_plant = 3.7989857501917563 # calculated from vlc, using p98 c_plant = 8.054967903830414 # calculated from vlc, using p98 vcmax = 30. # Belinda estimated this from their data fname = change_traits(fname, site, Kmax_value, b_plant, c_plant, vcmax, self.zse) # Add LAI to met file? if self.fixed_lai is not None or self.lai_dir is not None: fname = change_LAI(fname, site, fixed=self.fixed_lai, lai_dir=self.lai_dir) replace_dict = { "filename%met": "'%s'" % (fname), "filename%out": "'%s'" % (out_fname), "filename%log": "'%s'" % (out_log_fname), "filename%restart_out": "' '", "filename%type": "'%s'" % (self.grid_fname), "output%restart": ".FALSE.", #"fixedCO2": "%.2f" % (self.co2_conc), "casafile%phen": "'%s'" % (self.phen_fname), "casafile%cnpbiome": "'%s'" % (self.cnpbiome_fname), "cable_user%GS_SWITCH": "'medlyn'", "cable_user%GW_MODEL": ".FALSE.", "cable_user%or_evap": ".FALSE.", "redistrb": ".FALSE.", "spinup": ".FALSE.", "cable_user%litter": ".TRUE.", "cable_user%FWSOIL_SWITCH": "'%s'" % (self.fwsoil), } adjust_nml_file(nml_fname, replace_dict) self.run_me(nml_fname) add_attributes_to_output_file(nml_fname, out_fname, url, rev) shutil.move(nml_fname, os.path.join(self.namelist_dir, nml_fname)) if self.fixed_lai is not None or self.lai_dir is not None: os.remove("%s_tmp.nc" % (site))
def worker(self, met_files, url, rev): fname = met_files site = os.path.basename(fname).split(".")[0].split("_")[0] print(fname) ring = os.path.basename(fname).split(".")[0].split("_")[2] base_nml_fn = os.path.join(self.grid_dir, "%s" % (self.nml_fname)) nml_fname = "cable_%s_%s_%s.nml" % (site, self.met_fname, self.case_name) shutil.copy(base_nml_fn, nml_fname) (out_fname, out_log_fname, out_restart_fname) = self.clean_up_old_files(site, ring) # Add LAI to met file? if self.fixed_lai is not None or self.lai_dir is not None: fname = change_LAI(fname, site, fixed=self.fixed_lai, lai_dir=self.lai_dir) replace_dict = { "filename%met": "'%s'" % (fname), "filename%out": "'%s'" % (out_fname), "filename%log": "'%s'" % (out_log_fname), "spinup": ".FALSE.", #"filename%restart_in": "'%s'" % (out_restart_fname), "filename%restart_out": "'%s'" % (out_restart_fname), "filename%type": "'%s'" % (self.grid_fname), #"filename%gw_elev": "'%s'" % (self.elev_fname) "filename%veg": "'%s'" % (self.veg_fname), "filename%soil": "'%s'" % (self.soil_fname), "output%restart": ".TRUE.", "casafile%phen": "'%s'" % (self.phen_fname), "casafile%cnpbiome": "'%s'" % (self.cnpbiome_fname), #"cable_user%FWSOIL_SWITCH": "'Haverd2013'", #"cable_user%FWSOIL_SWITCH": "'standard'", "cable_user%FWSOIL_SWITCH": "'hie_exp'", "cable_user%GS_SWITCH": "'medlyn'", "cable_user%GW_MODEL": ".TRUE.", "cable_user%or_evap": ".FALSE.", "cable_user%MetType": "site", "gw_params%BC_hysteresis": ".FALSE.", "gw_params%HC_SWC": "FALSE", "gw_params%ssgw_ice_switch": ".TRUE.", "cable_user%litter": ".TRUE.", } adjust_nml_file(nml_fname, replace_dict) self.run_me(nml_fname) add_attributes_to_output_file(nml_fname, out_fname, url, rev) shutil.move(nml_fname, os.path.join(self.namelist_dir, nml_fname)) if self.fixed_lai is not None or self.lai_dir is not None: os.remove("%s_tmp.nc" % (site))
def worker(self, met_files, url, rev): for fname in met_files: site = os.path.basename(fname).split(".")[0] base_nml_fn = os.path.join(self.grid_dir, "%s" % (self.nml_fname)) nml_fname = "cable_%s.nml" % (site) shutil.copy(base_nml_fn, nml_fname) (out_fname, out_log_fname) = self.clean_up_old_files(site) # Add LAI to met file? if self.fixed_lai is not None or self.lai_dir is not None: fname = change_LAI(fname, site, fixed=self.fixed_lai, lai_dir=self.lai_dir) if self.fwsoil == "hydraulics": if site == "WombatStateForestOzFlux2": fname = change_iveg(fname, site, 20) else: fname = change_iveg(fname, site, 19) elif self.fwsoil == "standard": fname = change_iveg(fname, site, 2) replace_dict = { "filename%met": "'%s'" % (fname), "filename%out": "'%s'" % (out_fname), "filename%log": "'%s'" % (out_log_fname), "filename%restart_out": "' '", "filename%type": "'%s'" % (self.grid_fname), "filename%veg": "'%s'" % (self.veg_fname), "filename%soil": "'%s'" % (self.soil_fname), "output%restart": ".FALSE.", "fixedCO2": "%.2f" % (self.co2_conc), "casafile%phen": "'%s'" % (self.phen_fname), "casafile%cnpbiome": "'%s'" % (self.cnpbiome_fname), "cable_user%GS_SWITCH": "'medlyn'", "cable_user%GW_MODEL": ".FALSE.", "cable_user%or_evap": ".FALSE.", "redistrb": ".FALSE.", "spinup": ".TRUE.", "cable_user%FWSOIL_SWITCH": "'%s'" % (self.fwsoil), } adjust_nml_file(nml_fname, replace_dict) self.run_me(nml_fname) add_attributes_to_output_file(nml_fname, out_fname, url, rev) shutil.move(nml_fname, os.path.join(self.namelist_dir, nml_fname)) if self.fixed_lai is not None or self.lai_dir is not None: os.remove("%s_tmp.nc" % (site)) os.remove("new_sumbal")
def worker(self, met_files, url, rev, param_names, param_values, out_fname, out_log_fname): for fname in met_files: site = os.path.basename(fname).split("_")[0] base_nml_fn = os.path.join(self.grid_dir, "%s" % (self.nml_fname)) nml_fname = "cable_%s.nml" % (site) shutil.copy(base_nml_fn, nml_fname) (out_fname, out_log_fname) = self.clean_up_old_files(site) # Add LAI to met file? if self.fixed_lai is not None or self.lai_dir is not None: fname = change_LAI(fname, site, fixed=self.fixed_lai, lai_dir=self.lai_dir) # Set tree, grass and bare fracs, measurement height etc fname = set_site_info(fname, site) replace_dict = { "filename%met": "'%s'" % (fname), "filename%out": "'%s'" % (out_fname), "filename%log": "'%s'" % (out_log_fname), "filename%restart_out": "' '", "filename%type": "'%s'" % (self.grid_fname), "filename%veg": "'%s'" % (self.veg_fname), "filename%soil": "'%s'" % (self.soil_fname), "output%restart": ".FALSE.", #"output%patch": ".TRUE.", # get all patches "output%patch": ".FALSE.", # get all patches "fixedCO2": "%.2f" % (self.co2_conc), "casafile%phen": "'%s'" % (self.phen_fname), "casafile%cnpbiome": "'%s'" % (self.cnpbiome_fname), "cable_user%FWSOIL_SWITCH": "'standard'", "cable_user%GS_SWITCH": "'medlyn'", "cable_user%GW_MODEL": ".FALSE.", "cable_user%or_evap": ".FALSE.", "spinup": ".FALSE.", "verbose": ".FALSE.", } adjust_nml_file(nml_fname, replace_dict) self.run_me(nml_fname) add_attributes_to_output_file(nml_fname, out_fname, url, rev) shutil.move(nml_fname, os.path.join(self.namelist_dir, nml_fname)) if self.fixed_lai is not None or self.lai_dir is not None: os.remove("%s_tmp.nc" % (site))
def worker(self, met_files, url, rev, sci_config, repo_id, sci_id): cwd = os.getcwd() for fname in met_files: site = os.path.basename(fname).split(".")[0] base_nml_fn = os.path.join(self.grid_dir, "%s" % (self.nml_fname)) nml_fname = "cable_%s_R%s_S%s.nml" % (site, repo_id, sci_id) shutil.copy(base_nml_fn, nml_fname) #nml_fname = os.path.join(cwd, nml_fname) (out_fname, out_log_fname) = self.clean_up_old_files(site, repo_id, sci_id) # Add LAI to met file? if self.fixed_lai is not None or self.lai_dir is not None: fname = change_LAI(fname, site, fixed=self.fixed_lai, lai_dir=self.lai_dir) replace_dict = { "filename%met": "'%s'" % (fname), "filename%out": "'%s'" % (out_fname), "filename%log": "'%s'" % (out_log_fname), "filename%restart_out": "' '", "filename%type": "'%s'" % (self.grid_fname), "filename%veg": "'%s'" % (self.veg_fname), "filename%soil": "'%s'" % (self.soil_fname), "output%restart": ".FALSE.", "fixedCO2": "%.2f" % (self.co2_conc), "casafile%phen": "'%s'" % (self.phen_fname), "casafile%cnpbiome": "'%s'" % (self.cnpbiome_fname), "spinup": ".FALSE.", } # Make sure the dict isn't empty if bool(sci_config): replace_dict = merge_two_dicts(replace_dict, sci_config) adjust_nml_file(nml_fname, replace_dict) self.run_me(nml_fname) add_attributes_to_output_file(nml_fname, out_fname, sci_config, url, rev) shutil.move(nml_fname, os.path.join(self.namelist_dir, nml_fname)) if self.fixed_lai is not None or self.lai_dir is not None: os.remove("%s_tmp.nc" % (site))
def worker(self, met_files, url, rev): for fname in met_files: site = os.path.basename(fname).split(".")[0] print(site) base_nml_fn = os.path.join(self.grid_dir, "%s" % (self.nml_fname)) nml_fname = "cable_%s.nml" % (site) shutil.copy(base_nml_fn, nml_fname) (out_fname, out_log_fname) = self.clean_up_old_files(site) # Add LAI to met file? if self.fixed_lai is not None or self.lai_dir is not None: fname = change_LAI(fname, site, fixed=self.fixed_lai, lai_dir=self.lai_dir) replace_dict = { "filename%met": "'%s'" % (fname), "filename%out": "'%s'" % (out_fname), "filename%log": "'%s'" % (out_log_fname), "filename%restart_out": "' '", "filename%type": "'%s'" % (self.grid_fname), "filename%veg": "'%s'" % (self.veg_fname), "filename%soil": "'%s'" % (self.soil_fname), "output%restart": ".FALSE.", "fixedCO2": "%.2f" % (self.co2_conc), "casafile%phen": "'%s'" % (self.phen_fname), "casafile%cnpbiome": "'%s'" % (self.cnpbiome_fname), "cable_user%FWSOIL_SWITCH": "'Haverd2013'", "cable_user%GS_SWITCH": "'medlyn'", "cable_user%GW_MODEL": ".FALSE.", "cable_user%or_evap": ".FALSE.", #"elev_fname": "'%s'" % (self.elev_fname), } adjust_nml_file(nml_fname, replace_dict) self.run_me(nml_fname) add_attributes_to_output_file(nml_fname, out_fname, url, rev) shutil.move(nml_fname, os.path.join(self.namelist_dir, nml_fname)) if self.fixed_lai is not None or self.lai_dir is not None: os.remove("%s_tmp.nc" % (site))
def worker(self, met_files, url, rev): for fname in met_files: site = "AWAP_pixel" lat = os.path.basename(fname).split("_")[3] lon1 = os.path.basename(fname).split("_")[4].split(".")[0] lon2 = os.path.basename(fname).split("_")[4].split(".")[1] lon = "%s.%s" % (lon1, lon2) lat = float(lat) lon = float(lon) base_nml_fn = os.path.join(self.grid_dir, "%s" % (self.nml_fname)) nml_fname = "cable_%s.nml" % (site) shutil.copy(base_nml_fn, nml_fname) (out_fname, out_log_fname) = self.clean_up_old_files(site) # Add LAI to met file? if self.fixed_lai is not None or self.lai_dir is not None: fname = change_LAI(fname, site, fixed=self.fixed_lai, lai_dir=self.lai_dir) if self.fwsoil == "hydraulics": if lat == -30.40 and lon == 151.60: fname = change_iveg(fname, site, 21) # GRW if lat == -31.10 and lon == 142.50: fname = change_iveg(fname, site, 21) # GRW elif lat == -31.10 and lon == 150.95: fname = change_iveg(fname, site, 22) # SAW elif lat == -30.00 and lon == 141.40: fname = change_iveg(fname, site, 22) # SAW else: print("problem") sys.exit() replace_dict = { "filename%met": "'%s'" % (fname), "filename%out": "'%s'" % (out_fname), "filename%log": "'%s'" % (out_log_fname), "filename%restart_out": "' '", "filename%type": "'%s'" % (self.grid_fname), "filename%veg": "'%s'" % (self.veg_fname), "filename%soil": "'%s'" % (self.soil_fname), "output%restart": ".FALSE.", "fixedCO2": "%.2f" % (self.co2_conc), "casafile%phen": "'%s'" % (self.phen_fname), "casafile%cnpbiome": "'%s'" % (self.cnpbiome_fname), "cable_user%GS_SWITCH": "'medlyn'", "cable_user%GW_MODEL": ".FALSE.", "cable_user%or_evap": ".FALSE.", "redistrb": ".FALSE.", "spinup": ".FALSE.", "cable_user%litter": ".TRUE.", "cable_user%FWSOIL_SWITCH": "'%s'" % (self.fwsoil), } adjust_nml_file(nml_fname, replace_dict) self.run_me(nml_fname) add_attributes_to_output_file(nml_fname, out_fname, url, rev) shutil.move(nml_fname, os.path.join(self.namelist_dir, nml_fname)) if self.fixed_lai is not None or self.lai_dir is not None: os.remove("%s_tmp.nc" % (site)) os.remove("new_sumbal")