Skip to content
Snippets Groups Projects
run_all.py 2.45 KiB
Newer Older
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Bootstrap script to create a new mesh based on the CORE 2 Resolution.

Dr. Paul Gierz, Jan 2020
"""

import os
import shutil


if __name__ == "__main__":
    print(80*"=")
    print("Starting generation of a mesh: {{cookiecutter.mesh_name}}.")
    print(40*"- ")
    print("Gathering input data:")
Paul Gierz's avatar
Paul Gierz committed
    if not os.path.exists("./raw_input_data"):
        os.makedirs("./raw_input_data")
    shutil.copyfile("{{cookiecutter.input_fpath}}", "./raw_input_data/{{cookiecutter.input_fname}}")
    shutil.copyfile("{{cookiecutter.input_fpath}}", "./raw_input_data/{{cookiecutter.input_fname}}_backup")
    if os.path.exists("fixup_gateways.yaml"):
        with open("fixup_gateways.yaml", "r") as gateway_fixes_file:
            gateway_fixes = yaml.load(gateway_fixes_file)
    if gateway_fixes:
        CDO = cdo.Cdo()
        print("Fixup input data:")
        for gateway_name, fix_list in gateway_fixes.items():
            print(gateway_name)
            print(fix_list)
            for fix_number, fix in enumerate(fix_list):
                print(f"* {fix_number}:")
                fix = [int(item) for item in fix.split(",")]
                x1 = fix[0]
                x2 = fix[1]
                y1 = fix[2]
                y2 = fix[3]
                value = fix[4]
                print("* Setting:")
                # FIXME:
                print(f"{y2} ------ {x2}")
                print(f" |            |")
                print(f" |    {value} |")
                print(f" |            |")
                print(f"{x1} ------ {y1}")
                output = CDO.setcindexbox(f"{value},{x1},{x2},{y1},{y2}", input="./raw_input_data/{{cookiecutter.input_fname}}")
                os.rename(output, "./raw_input_data/{{cookiecutter.input_fname}}")
    print(40*"- ")
    print("* MATLAB Part:")
    os.system("matlab.sh -s -S\"--mem=36000\" -M\"-nodisplay -r run('mg_topo_prep_triangle_input.m')\"")
    os.system("matlab.sh -s -S\"--mem=36000\" -M\"-nodisplay -r run('mg_coastline.m')\"")
    os.rename("{{cookiecutter.mesh_name}}_cst.txt", "mesh_CORE2_{{cookiecutter.mesh_name}}/{{cookiecutter.mesh_name}}_cst.txt")
    # TODO: Get count from the other python script and write it somewhere
    # TODO: C reads count from the file just written...
    print(40*"- ")
    print("* Triangle Part:")
    os.system("sbatch -W run_triangle.sh")
    print("Finished!")
    print("You should now inspect your mesh!")
    print(80*"=")