diff --git a/galaxy.py b/galaxy.py index 6135ac3..8d2b7ae 100644 --- a/galaxy.py +++ b/galaxy.py @@ -1,12 +1,17 @@ # coding: utf-8 import numpy as np +import pandas as pd from plotter import U def get_gas_dm_stars(pp): # Load arrays - pp.load_parts(keys=["pos", "vel", "mass", "epoch"]) + try: + pp.load_parts(keys=["pos", "vel", "mass", "epoch"]) + except: + pp.load_parts(keys=["pos", "vel", "mass"]) + pp.load_cells(keys=["pos", "vel", "dx", "rho"]) cells = pp.cells parts = pp.parts @@ -241,8 +246,21 @@ def load_wrapper(pp, fun): return res -def allinone(pp): +def allinone(pp, redo=False): def fun(pp): return analyse_disk(pp), analyse_rings(pp, [4, 5, 6, 7, 8]) + + + try: + assert(not redo) + sectors = pd.read_csv("{pp.run}/disk_{pp.run}_{pp.num}.csv") + disk = pd.read_csv(f"{pp.run}/disk_{pp.run}_{pp.num}.csv") - return load_wrapper(pp, fun) + except (AssertionError, FileNotFoundError): + res = load_wrapper(pp, fun) + disk = pd.DataFrame({key: [res[0][key]] for key in res[0]}) + sectors = pd.DataFrame({key: res[1][key] for key in res[1]}) + sectors.to_csv(f"{pp.run}/sectors_{pp.run}_{pp.num}.csv") + disk.to_csv(f"{pp.run}/disk_{pp.run}_{pp.num}.csv") + + return disk, sectors