From f63a20bf5b8b3d4b440f8d057cb02f622849af37 Mon Sep 17 00:00:00 2001 From: Mayeul Aubin Date: Tue, 29 Apr 2025 18:07:23 +0200 Subject: [PATCH] convert snapshot to density script --- convert_snapshot_to_density.py | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 convert_snapshot_to_density.py diff --git a/convert_snapshot_to_density.py b/convert_snapshot_to_density.py new file mode 100644 index 0000000..2959594 --- /dev/null +++ b/convert_snapshot_to_density.py @@ -0,0 +1,54 @@ +from pysbmy.density import get_density_pm_snapshot +from pysbmy.snapshot import read_snapshot +import argparse + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Convert snapshot to density.") + parser.add_argument( + "-S", + "--snapshot", + type=str, + required=True, + help="Path to the snapshot file.", + ) + parser.add_argument( + "-o", + "--output", + type=str, + required=True, + help="Path to the output density file.", + ) + parser.add_argument( + "-N", + "--N", + type=int, + default=None, + help="Size of the density field grid (N x N x N).", + ) + parser.add_argument( + "-c", + "--corner", + type=float, + nargs=3, + default=[0.0, 0.0, 0.0], + help="Corner of the box (x, y, z).", + ) + + args = parser.parse_args() + + # Read the snapshot + print("Reading snapshot...") + snap = read_snapshot(args.snapshot) + + if args.N is None: + N = snap.Np0 + else: + N = args.N + + print("Calculating density...") + F=get_density_pm_snapshot(snap, N,N,N, args.corner[0],args.corner[1],args.corner[2]) + + print("Writing density...") + F.write(args.output) + print("Density written to", args.output) + print("Done.") \ No newline at end of file