コード例 #1
0
 def increment_progress(self, fcint_min, pp=False):
     Progress.increment_progress(self, fcint_min, pp=False)
     if pp:
         updated_progress_pp = {"DTGPP": self.dtgpp.strftime("%Y%m%d%H")}
         surfex.toml_dump(updated_progress_pp, self.progress_pp_file)
     else:
         updated_progress = {
             "DTGBEG": self.dtgbeg.strftime("%Y%m%d%H"),
             "DTG": self.dtg.strftime("%Y%m%d%H"),
             "DTGEND": self.dtgend.strftime("%Y%m%d%H")
         }
         surfex.toml_dump(updated_progress, self.progress_file)
コード例 #2
0
 def save(self, progress_file, progress_pp_file, log=True, log_pp=True):
     progress = {
         "DTGBEG": self.dtgbeg.strftime("%Y%m%d%H"),
         "DTG": self.dtg.strftime("%Y%m%d%H"),
         "DTGEND": self.dtgend.strftime("%Y%m%d%H"),
     }
     progress_pp = {
         "DTGPP": self.dtgpp.strftime("%Y%m%d%H"),
     }
     if log:
         surfex.toml_dump(progress, progress_file)
     if log_pp:
         surfex.toml_dump(progress_pp, progress_pp_file)
コード例 #3
0
 def save_as_file(self, wdir):
     fname = self.get_file_name(wdir)
     surfex.toml_dump(self.settings, fname)
コード例 #4
0
    def test_run_test_nc(self):

        config_exp = "scheduler/config/config_exp.toml"
        config_exp_surfex = "scheduler/config/config_exp_surfex.toml"
        grid = "conf_proj"
        my_format = "NC"
        this_config = "test/settings/" + my_format.lower() + ".toml"
        extension = ".nc"
        domain = "test/settings/" + grid + "_test.json"
        config_file = "config_run_test_nc.toml"
        rte = "rte_run_test_nc.json"
        json.dump(dict(os.environ), open(rte, "w"))
        config = surfex.merge_toml_env_from_files(
            [config_exp, config_exp_surfex, this_config])
        surfex.toml_dump(config, config_file)

        do_test = False
        host_name = socket.gethostname()
        if host_name == "pc4384" or host_name == "pc4495":
            do_test = True

        if do_test:
            # PGD
            task = "pgd"

            system = "scheduler/config/input_paths/pc4384.json"
            output = "PGD_TEST_" + grid + extension
            if "PGD_BINARY" in os.environ and os.environ["PGD_BINARY"] != "":
                binary = os.environ["PGD_BINARY"]
                pgd = output
            else:
                binary = "touch PGD" + extension
                pgd = "testdata/PGD_CONF_PROJ.nc"

            argv = [
                "-w", "", "-c", config_file, "--domain", domain, "-s", system,
                "-n", "scheduler/nam/", "-r", rte, "-f", "-o", output, binary
            ]
            kwargs = surfex.parse_args_surfex_binary(argv, task)
            surfex.run_surfex_binary(task, **kwargs)

            # PREP
            task = "prep"

            output = "PREP_TEST_" + grid + extension
            if "PREP_BINARY" in os.environ and os.environ["PREP_BINARY"] != "":
                binary = os.environ["PREP_BINARY"]
                prep = output
            else:
                binary = "touch PREP" + extension
                prep = "testdata/PREP_CONF_PROJ.nc"

            argv = [
                "-w", "", "--domain", domain, "--pgd", pgd, "--prep_file",
                "scheduler/nam/prep_from_namelist_values.json",
                "--prep_filetype", "json", "--dtg", "2020022000", "-c",
                config_file, "-s", system, "-n", "scheduler/nam/", "-r", rte,
                "-f", "-o", output, binary
            ]
            kwargs = surfex.parse_args_surfex_binary(argv, task)
            surfex.run_surfex_binary(task, **kwargs)

            # OFFLINE
            task = "offline"

            if "OFFLINE_BINARY" in os.environ and os.environ[
                    "OFFLINE_BINARY"] != "":
                binary = os.environ["OFFLINE_BINARY"]
            else:
                binary = "touch SURFOUT" + extension

            output = "OFFLINE_TEST_" + grid + extension
            argv = [
                "-w", "", "--domain", domain, "--pgd", pgd, "--prep", prep,
                "-c", config_file, "-s", system, "-n", "scheduler/nam/", "-r",
                rte, "-f", "-o", output, "--forc_zs", "--forcing_dir",
                "testdata", binary
            ]
            kwargs = surfex.parse_args_surfex_binary(argv, task)
            surfex.run_surfex_binary(task, **kwargs)