Files
pipeline/select_runs.py
T
2022-01-19 08:46:19 +01:00

56 lines
1.4 KiB
Python

from run_selector import RunSelector
from plotter import Plotter, U
import os
path_from_home = "simus/ismfeed/allmode"
names = "n6_st_2e5_seed3_T5Myr_nsink1e3_comp*"
def prep_mcons(study):
study.coarse_step_from_log()
def time_mcons(study, run, target=0.2):
mcons = study.get_value(f"/series/coarse_step_from_log/mcons/{run}")
time = study.get_value(f"/series/coarse_step_from_log/time/{run}")
idx = -mcons[::-1].searchsorted(-target)
time_target = time[idx] * study.info["unit_time"].express(U.Myr)
return time_target
def find_nums(study, prep_function, time_function):
nums = {}
prep_function(study)
for run in study.runs:
time_target = time_function(study, run)
rs = RunSelector(path_in=in_dir, in_runs=run, time=time_target, unit_time=U.Myr)
nums.update(rs.nums)
return nums
def write_paths(nums, path_from_home, filename="~/list_file"):
paths = []
for key in nums:
for num in nums[key]:
paths.append(f"{path_from_home}/{key}/output_{num:05}\n")
f = open(os.path.expanduser(filename), "w")
f.writelines(paths)
f.close()
in_dir = os.path.expanduser(f"~/{path_from_home}")
study = Plotter(
in_dir,
filter_name=names,
nums="first",
tag="select",
).study
nums = find_nums(study, prep_mcons, time_mcons)
write_paths(nums, ".")
pl = Plotter(in_dir, runs=nums.keys(), nums=nums)
pl.rho_pdf()