mirror of
https://github.com/Richard-Sti/csiborgtools.git
synced 2024-12-22 21:18:04 +00:00
Edits paths (#79)
This commit is contained in:
parent
61077940f3
commit
5acc4684bb
1 changed files with 67 additions and 84 deletions
|
@ -21,6 +21,17 @@ from warnings import warn
|
||||||
import numpy
|
import numpy
|
||||||
|
|
||||||
|
|
||||||
|
def check_directory(path):
|
||||||
|
if not isdir(path):
|
||||||
|
raise IOError(f"Invalid directory `{path}`!")
|
||||||
|
|
||||||
|
|
||||||
|
def try_create_directory(fdir):
|
||||||
|
if not isdir(fdir):
|
||||||
|
makedirs(fdir)
|
||||||
|
warn(f"Created directory `{fdir}`.")
|
||||||
|
|
||||||
|
|
||||||
class Paths:
|
class Paths:
|
||||||
"""
|
"""
|
||||||
Paths manager for CSiBORG and Quijote simulations.
|
Paths manager for CSiBORG and Quijote simulations.
|
||||||
|
@ -48,11 +59,6 @@ class Paths:
|
||||||
self.borg_dir = borg_dir
|
self.borg_dir = borg_dir
|
||||||
self.quijote_dir = quijote_dir
|
self.quijote_dir = quijote_dir
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _check_directory(path):
|
|
||||||
if not isdir(path):
|
|
||||||
raise IOError(f"Invalid directory `{path}`!")
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def srcdir(self):
|
def srcdir(self):
|
||||||
"""
|
"""
|
||||||
|
@ -70,7 +76,7 @@ class Paths:
|
||||||
def srcdir(self, path):
|
def srcdir(self, path):
|
||||||
if path is None:
|
if path is None:
|
||||||
return
|
return
|
||||||
self._check_directory(path)
|
check_directory(path)
|
||||||
self._srcdir = path
|
self._srcdir = path
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -90,7 +96,7 @@ class Paths:
|
||||||
def borg_dir(self, path):
|
def borg_dir(self, path):
|
||||||
if path is None:
|
if path is None:
|
||||||
return
|
return
|
||||||
self._check_directory(path)
|
check_directory(path)
|
||||||
self._borg_dir = path
|
self._borg_dir = path
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -110,7 +116,7 @@ class Paths:
|
||||||
def quijote_dir(self, path):
|
def quijote_dir(self, path):
|
||||||
if path is None:
|
if path is None:
|
||||||
return
|
return
|
||||||
self._check_directory(path)
|
check_directory(path)
|
||||||
self._quijote_dir = path
|
self._quijote_dir = path
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -130,7 +136,7 @@ class Paths:
|
||||||
def postdir(self, path):
|
def postdir(self, path):
|
||||||
if path is None:
|
if path is None:
|
||||||
return
|
return
|
||||||
self._check_directory(path)
|
check_directory(path)
|
||||||
self._postdir = path
|
self._postdir = path
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -143,9 +149,7 @@ class Paths:
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
fpath = join(self.postdir, "temp")
|
fpath = join(self.postdir, "temp")
|
||||||
if not isdir(fpath):
|
try_create_directory(fpath)
|
||||||
mkdir(fpath)
|
|
||||||
warn(f"Created directory `{fpath}`.", UserWarning, stacklevel=1)
|
|
||||||
return fpath
|
return fpath
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -202,11 +206,9 @@ class Paths:
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote"]
|
assert simname in ["csiborg", "quijote"]
|
||||||
if simname == "quijote":
|
if simname == "quijote":
|
||||||
raise RuntimeError("Quijote FoF membership is in the FoF cats..")
|
raise RuntimeError("Quijote FoF membership is in the FoF cats.")
|
||||||
fdir = join(self.postdir, "FoF_membership", )
|
fdir = join(self.postdir, "FoF_membership", )
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
mkdir(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
fout = join(fdir, f"fof_membership_{nsim}.npy")
|
fout = join(fdir, f"fof_membership_{nsim}.npy")
|
||||||
if sorted:
|
if sorted:
|
||||||
fout = fout.replace(".npy", "_sorted.npy")
|
fout = fout.replace(".npy", "_sorted.npy")
|
||||||
|
@ -223,14 +225,14 @@ class Paths:
|
||||||
simname : str
|
simname : str
|
||||||
Simulation name. Must be one of `csiborg` or `quijote`.
|
Simulation name. Must be one of `csiborg` or `quijote`.
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote"]
|
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
fdir = join(self.postdir, "FoF_membership", )
|
fdir = join(self.postdir, "FoF_membership", )
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
mkdir(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning)
|
|
||||||
return join(fdir, f"halo_catalog_{nsim}_FOF.txt")
|
return join(fdir, f"halo_catalog_{nsim}_FOF.txt")
|
||||||
|
elif simname == "quijote":
|
||||||
return join(self.quijote_dir, "Halos_fiducial", str(nsim))
|
return join(self.quijote_dir, "Halos_fiducial", str(nsim))
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unknown simulation name `{simname}`.")
|
||||||
|
|
||||||
def mmain(self, nsnap, nsim):
|
def mmain(self, nsnap, nsim):
|
||||||
"""
|
"""
|
||||||
|
@ -248,11 +250,9 @@ class Paths:
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
fdir = join(self.postdir, "mmain")
|
fdir = join(self.postdir, "mmain")
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
mkdir(fdir)
|
return join(
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
fdir, f"mmain_{str(nsim).zfill(5)}_{str(nsnap).zfill(5)}.npz")
|
||||||
return join(fdir,
|
|
||||||
f"mmain_{str(nsim).zfill(5)}_{str(nsnap).zfill(5)}.npz")
|
|
||||||
|
|
||||||
def initmatch(self, nsim, simname, kind):
|
def initmatch(self, nsim, simname, kind):
|
||||||
"""
|
"""
|
||||||
|
@ -272,21 +272,17 @@ class Paths:
|
||||||
-------
|
-------
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote"]
|
|
||||||
assert kind in ["particles", "fit"]
|
assert kind in ["particles", "fit"]
|
||||||
ftype = "npy" if kind == "fit" else "h5"
|
ftype = "npy" if kind == "fit" else "h5"
|
||||||
|
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
fdir = join(self.postdir, "initmatch")
|
fdir = join(self.postdir, "initmatch")
|
||||||
if not isdir(fdir):
|
elif simname == "quijote":
|
||||||
mkdir(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning)
|
|
||||||
return join(fdir, f"{kind}_{str(nsim).zfill(5)}.{ftype}")
|
|
||||||
|
|
||||||
fdir = join(self.quijote_dir, "initmatch")
|
fdir = join(self.quijote_dir, "initmatch")
|
||||||
if not isdir(fdir):
|
else:
|
||||||
mkdir(fdir)
|
raise ValueError(f"Unknown simulation name `{simname}`.")
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning)
|
|
||||||
|
try_create_directory(fdir)
|
||||||
return join(fdir, f"{kind}_{str(nsim).zfill(5)}.{ftype}")
|
return join(fdir, f"{kind}_{str(nsim).zfill(5)}.{ftype}")
|
||||||
|
|
||||||
def get_ics(self, simname):
|
def get_ics(self, simname):
|
||||||
|
@ -303,7 +299,6 @@ class Paths:
|
||||||
-------
|
-------
|
||||||
ids : 1-dimensional array
|
ids : 1-dimensional array
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote", "quijote_full"]
|
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
files = glob(join(self.srcdir, "ramses_out*"))
|
files = glob(join(self.srcdir, "ramses_out*"))
|
||||||
files = [f.split("/")[-1] for f in files] # Only file names
|
files = [f.split("/")[-1] for f in files] # Only file names
|
||||||
|
@ -315,10 +310,13 @@ class Paths:
|
||||||
ids.remove(5511)
|
ids.remove(5511)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
return numpy.sort(ids)
|
elif simname == "quijote" or simname == "quijote_full":
|
||||||
|
files = glob(
|
||||||
files = glob("/mnt/extraspace/rstiskalek/Quijote/Snapshots_fiducial/*")
|
"/mnt/extraspace/rstiskalek/Quijote/Snapshots_fiducial/*")
|
||||||
files = [int(f.split("/")[-1]) for f in files]
|
files = [int(f.split("/")[-1]) for f in files]
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unknown simulation name `{simname}`.")
|
||||||
|
|
||||||
return numpy.sort(files)
|
return numpy.sort(files)
|
||||||
|
|
||||||
def snapshots(self, nsim, simname, tonew=False):
|
def snapshots(self, nsim, simname, tonew=False):
|
||||||
|
@ -339,15 +337,16 @@ class Paths:
|
||||||
-------
|
-------
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote"]
|
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
fname = "ramses_out_{}"
|
fname = "ramses_out_{}"
|
||||||
if tonew:
|
if tonew:
|
||||||
fname += "_new"
|
fname += "_new"
|
||||||
return join(self.postdir, "output", fname.format(nsim))
|
return join(self.postdir, "output", fname.format(nsim))
|
||||||
return join(self.srcdir, fname.format(nsim))
|
return join(self.srcdir, fname.format(nsim))
|
||||||
|
elif simname == "quijote":
|
||||||
return join(self.quijote_dir, "Snapshots_fiducial", str(nsim))
|
return join(self.quijote_dir, "Snapshots_fiducial", str(nsim))
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unknown simulation name `{simname}`.")
|
||||||
|
|
||||||
def get_snapshots(self, nsim, simname):
|
def get_snapshots(self, nsim, simname):
|
||||||
"""
|
"""
|
||||||
|
@ -370,10 +369,12 @@ class Paths:
|
||||||
snaps = glob(join(simpath, "output_*"))
|
snaps = glob(join(simpath, "output_*"))
|
||||||
# Take just the last _00XXXX from each file and strip zeros
|
# Take just the last _00XXXX from each file and strip zeros
|
||||||
snaps = [int(snap.split("_")[-1].lstrip("0")) for snap in snaps]
|
snaps = [int(snap.split("_")[-1].lstrip("0")) for snap in snaps]
|
||||||
else:
|
elif simname == "quijote":
|
||||||
snaps = glob(join(simpath, "snapdir_*"))
|
snaps = glob(join(simpath, "snapdir_*"))
|
||||||
snaps = [int(snap.split("/")[-1].split("snapdir_")[-1])
|
snaps = [int(snap.split("/")[-1].split("snapdir_")[-1])
|
||||||
for snap in snaps]
|
for snap in snaps]
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unknown simulation name `{simname}`.")
|
||||||
return numpy.sort(snaps)
|
return numpy.sort(snaps)
|
||||||
|
|
||||||
def snapshot(self, nsnap, nsim, simname):
|
def snapshot(self, nsnap, nsim, simname):
|
||||||
|
@ -418,19 +419,14 @@ class Paths:
|
||||||
-------
|
-------
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote"]
|
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
fdir = join(self.postdir, "particles")
|
fdir = join(self.postdir, "particles")
|
||||||
if not isdir(fdir):
|
elif simname == "quijote":
|
||||||
makedirs(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning)
|
|
||||||
fname = f"parts_{str(nsim).zfill(5)}.h5"
|
|
||||||
return join(fdir, fname)
|
|
||||||
|
|
||||||
fdir = join(self.quijote_dir, "Particles_fiducial")
|
fdir = join(self.quijote_dir, "Particles_fiducial")
|
||||||
if not isdir(fdir):
|
else:
|
||||||
makedirs(fdir)
|
raise ValueError(f"Unknown simulation name `{simname}`.")
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning)
|
|
||||||
|
try_create_directory(fdir)
|
||||||
fname = f"parts_{str(nsim).zfill(5)}.h5"
|
fname = f"parts_{str(nsim).zfill(5)}.h5"
|
||||||
return join(fdir, fname)
|
return join(fdir, fname)
|
||||||
|
|
||||||
|
@ -451,19 +447,13 @@ class Paths:
|
||||||
-------
|
-------
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote"]
|
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
fdir = join(self.postdir, "structfit")
|
fdir = join(self.postdir, "structfit")
|
||||||
if not isdir(fdir):
|
elif simname == "quijote":
|
||||||
mkdir(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
fname = f"out_{str(nsim).zfill(5)}_{str(nsnap).zfill(5)}.npy"
|
|
||||||
return join(fdir, fname)
|
|
||||||
|
|
||||||
fdir = join(self.quijote_dir, "structfit")
|
fdir = join(self.quijote_dir, "structfit")
|
||||||
if not isdir(fdir):
|
else:
|
||||||
mkdir(fdir)
|
raise ValueError(f"Unknown simulation name `{simname}`.")
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning)
|
|
||||||
fname = f"out_{str(nsim).zfill(5)}_{str(nsnap).zfill(5)}.npy"
|
fname = f"out_{str(nsim).zfill(5)}_{str(nsnap).zfill(5)}.npy"
|
||||||
return join(fdir, fname)
|
return join(fdir, fname)
|
||||||
|
|
||||||
|
@ -485,9 +475,8 @@ class Paths:
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
fdir = join(self.postdir, "overlap")
|
fdir = join(self.postdir, "overlap")
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
mkdir(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
fname = f"overlap_{str(nsim0).zfill(5)}_{str(nsimx).zfill(5)}.npz"
|
fname = f"overlap_{str(nsim0).zfill(5)}_{str(nsimx).zfill(5)}.npz"
|
||||||
if smoothed:
|
if smoothed:
|
||||||
fname = fname.replace("overlap", "overlap_smoothed")
|
fname = fname.replace("overlap", "overlap_smoothed")
|
||||||
|
@ -520,11 +509,11 @@ class Paths:
|
||||||
fdir = join(self.postdir, "environment")
|
fdir = join(self.postdir, "environment")
|
||||||
assert kind in ["density", "velocity", "potential", "radvel",
|
assert kind in ["density", "velocity", "potential", "radvel",
|
||||||
"environment"]
|
"environment"]
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
makedirs(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
if in_rsp:
|
if in_rsp:
|
||||||
kind = kind + "_rsp"
|
kind = kind + "_rsp"
|
||||||
|
|
||||||
fname = f"{kind}_{MAS}_{str(nsim).zfill(5)}_grid{grid}.npy"
|
fname = f"{kind}_{MAS}_{str(nsim).zfill(5)}_grid{grid}.npy"
|
||||||
if smooth_scale is not None and smooth_scale > 0:
|
if smooth_scale is not None and smooth_scale > 0:
|
||||||
smooth_scale = float(smooth_scale)
|
smooth_scale = float(smooth_scale)
|
||||||
|
@ -547,9 +536,7 @@ class Paths:
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
fdir = join(self.postdir, "HMF")
|
fdir = join(self.postdir, "HMF")
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
makedirs(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
fname = f"halo_counts_{simname}_{str(nsim).zfill(5)}.npz"
|
fname = f"halo_counts_{simname}_{str(nsim).zfill(5)}.npz"
|
||||||
return join(fdir, fname)
|
return join(fdir, fname)
|
||||||
|
|
||||||
|
@ -579,9 +566,8 @@ class Paths:
|
||||||
assert simname in ["csiborg", "quijote"]
|
assert simname in ["csiborg", "quijote"]
|
||||||
assert kind in ["dist", "bin_dist", "tot_counts"]
|
assert kind in ["dist", "bin_dist", "tot_counts"]
|
||||||
fdir = join(self.postdir, "nearest_neighbour")
|
fdir = join(self.postdir, "nearest_neighbour")
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
makedirs(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
if nsim is not None:
|
if nsim is not None:
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
nsim = str(nsim).zfill(5)
|
nsim = str(nsim).zfill(5)
|
||||||
|
@ -615,9 +601,8 @@ class Paths:
|
||||||
"""
|
"""
|
||||||
assert simname in ["csiborg", "quijote"]
|
assert simname in ["csiborg", "quijote"]
|
||||||
fdir = join(self.postdir, "knn", "auto")
|
fdir = join(self.postdir, "knn", "auto")
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
makedirs(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
if nsim is not None:
|
if nsim is not None:
|
||||||
if simname == "csiborg":
|
if simname == "csiborg":
|
||||||
nsim = str(nsim).zfill(5)
|
nsim = str(nsim).zfill(5)
|
||||||
|
@ -648,9 +633,8 @@ class Paths:
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
fdir = join(self.postdir, "knn", "cross")
|
fdir = join(self.postdir, "knn", "cross")
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
makedirs(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
if nsims is not None:
|
if nsims is not None:
|
||||||
assert isinstance(nsims, (list, tuple)) and len(nsims) == 2
|
assert isinstance(nsims, (list, tuple)) and len(nsims) == 2
|
||||||
nsim0 = str(nsims[0]).zfill(5)
|
nsim0 = str(nsims[0]).zfill(5)
|
||||||
|
@ -680,9 +664,8 @@ class Paths:
|
||||||
path : str
|
path : str
|
||||||
"""
|
"""
|
||||||
fdir = join(self.postdir, "tpcf", "auto")
|
fdir = join(self.postdir, "tpcf", "auto")
|
||||||
if not isdir(fdir):
|
try_create_directory(fdir)
|
||||||
makedirs(fdir)
|
|
||||||
warn(f"Created directory `{fdir}`.", UserWarning, stacklevel=1)
|
|
||||||
if nsim is not None:
|
if nsim is not None:
|
||||||
return join(fdir, f"{simname}_tpcf{str(nsim).zfill(5)}_{run}.p")
|
return join(fdir, f"{simname}_tpcf{str(nsim).zfill(5)}_{run}.p")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue