示例#1
0
    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))
示例#2
0
    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))
示例#3
0
    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")
示例#4
0
    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))
示例#6
0
    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")