def main(): print("Parsing input arguments...") parser = argparse.ArgumentParser(description="Parse input parameters.") parser.add_argument('sims', nargs='+', help='Simulation inde(x/ices) or name(s) to analyse') parser.add_argument('list_file', help='Output list file name') parser.add_argument('--base_dir', default=local.BASE_DIR, help='Simulation base directory (default: ' f'{local.BASE_DIR})') parser.add_argument('--snapshot_type', help='Type code for full snapshots (default: 1)', default='1') parser.add_argument('--output_names', help='Prefix of existing outputs (default: "output")', default='output') parser.add_argument('--link_names', help='Prefix of links (default: "eagle")', default='eagle') args = parser.parse_args() if args.sims[0].lower() == 'all': args.sims = xl.get_all_sims(args.base_dir) have_full_sim_dir = True else: have_full_sim_dir = False for isim in args.sims: process_sim(args, isim, have_full_sim_dir)
def main(): """Main loop over simulations and snapshots.""" if args.sims[0].lower() == 'all': args.sims = xl.get_all_sims(args.base_dir) have_full_sim_dir = True else: have_full_sim_dir = False for isim in args.sims: if have_full_sim_dir: wdir = isim else: wdir = xl.get_sim_dir(args.base_dir, isim) print("") print( "====================================================================" ) print(f"=== Processing {wdir} ===") print( "====================================================================" ) print("") for iisnap, isnap in enumerate(args.snaps): # Account for possibly different VR numbering than (desired) output if args.vr_snaps is None: ivsnap = isnap else: ivsnap = args.vr_snaps[iisnap] process_snap(wdir, args.out_file, isnap, ivsnap)
def get_args(argv=None): """Parse input arguments.""" print("Parsing input arguments...") parser = argparse.ArgumentParser(description="Parse input parameters.") parser.add_argument('sims', nargs='+', help='Simulation index/name to analyse ("all" to ' 'process all simulations in base_dir.') parser.add_argument('--base_dir', default=local.BASE_DIR, help='Base directory of the simulation, default: ' f'{local.BASE_DIR}') parser.add_argument('--dmo_sim', help='Directory of the DM-only simulation to match ' 'to. This must be identical for all sims ' 'processed here.') parser.add_argument('--snapshots', type=int, nargs='+', help='Snapshots to match.') parser.add_argument('--vr_name', default='vr', help='Name prefix of VR catalogue (default: "vr").') args = parser.parse_args(argv) if args.sims[0].lower() == 'all': args.sims = xl.get_all_sims(args.base_dir) args.have_full_sim_dir = True else: args.have_full_sim_dir = False return args
def main(): global num_repos_name argvals = None args = get_args(argvals) # Follow immediate instructions from args mpl.rcParams['lines.linewidth'] = args.plot_linewidth if args.plot_mass_range is not None: yranges['Masses'] = args.plot_mass_range if args.sims[0].lower() == 'all': if args.bh_bid is not None: print("It does not make sense to analyse the same BH BIDs " "in different simulations.") return args.sims = xl.get_all_sims(args.base_dir) args.have_full_sim_dir = True else: args.have_full_sim_dir = False print(f"Processing {len(args.sims)} simulations") if args.use_old_names: num_repos_name = 'NumberOfRepositionings' for isim in args.sims: process_sim(isim, args)
def main(): """Main program.""" argvals = None args = get_args(argvals) args.dmo_dir = f'{args.base_dir}{args.dmo_sim}' if args.sims[0].lower() == 'all': args.sims = xl.get_all_sims(args.base_dir) args.have_full_sim_dir = True else: args.have_full_sim_dir = False print(f"Processing {len(args.sims)} simulations") for isim in args.sims: process_sim(isim, args)
def main(): """Main program loop.""" # Parse input parameters argvals = None args = get_args(argvals) # Deal with request for all-sim-batch if args.sims[0].lower() == 'all': if args.bh_bid is not None: print("It does not make sense to analyse the same BH BIDs " "in different simulations.") return args.sims = xl.get_all_sims(args.base_dir) args.have_full_sim_dir = True else: args.have_full_sim_dir = False print(f"Processing {len(args.sims)} simulations") for isim in args.sims: process_sim(isim, args)
def main(): print("Parsing input arguments...") parser = argparse.ArgumentParser(description="Parse input parameters.") parser.add_argument('sims', nargs='+', help='Simulation inde(x/ices) or names to ' 'analyse ("all" for all in base_dir).') parser.add_argument('--snap_name', default='output', help='Name prefix of simulation outputs ' '(default: "output").') parser.add_argument('--snapshots', type=int, nargs='+', help='Snapshots for which to create plots.') parser.add_argument('--base_dir', default=local.BASE_DIR, help='Base directory of simulations (default: ' f'{local.BASE_DIR}).') parser.add_argument('--vr_file', default="vr", help='File of (transcribed) VR catalogue ' '(default: vr).') parser.add_argument('--bh_file', default="black_hole_data.hdf5", help='Combine BH data file, default: ' 'black_hole_data.hdf5') parser.add_argument('--plot_prefix', default='gallery/vr-plots', help='Prefix of output files, default: ' '"gallery/vr_plots') parser.add_argument('--bh_mass_range', type=float, nargs='+', help='Min and max BH mass for selection, at target z ' '[M_Sun], default: no selection.') parser.add_argument('--bh_selection_redshift', type=float, default=0.0, help='Redshift at which to make BH mass selection ' '(default: 0.0)') parser.add_argument('--include_subdominant_bhs', action='store_true', help='Only show black holes that are the most massive ' 'in their galaxy, at the linked snapshot.') parser.add_argument('--halo_mstar_range', default=[3e10, 4e11], type=float, help='Min and max stellar mass of host galaxy ' '[M_Sun], default: 3e10 4e11.', nargs='+') parser.add_argument('--halo_m200_range', type=float, nargs='+', help='Min and max M200 of host galaxy ' '[M_Sun], default: 0 1e16.', default=[0, 1e16]) parser.add_argument( '--include_satellites', action='store_true', help='Only show BHs in central haloes, not satellites.') parser.add_argument('--show_target_only', action='store_true', help='Show only the target BH, not possible others ' 'that also match the selection criteria.') parser.add_argument('--show_median', action='store_true', help='Add the median for all selected BHs.') parser.add_argument('--alpha_others', type=float, default=1.0, help='Alpha value for non-target BHs, default: 1.0') parser.add_argument('--summary_only', action='store_true', help='Only generate summary plots, not those ' 'highlighting each invididual BH.') args = parser.parse_args() # Resolve (possible) placeholder for all simulations if args.sims[0].lower() == 'all': args.sims = xl.get_all_sims(args.base_dir) have_full_sim_dir = True else: have_full_sim_dir = False # Process each simulation in turn for isim in args.sims: process_sim(args, isim, have_full_sim_dir)
def main(): """Main program""" print("Parsing input arguments...") parser = argparse.ArgumentParser(description="Parse input parameters.") parser.add_argument('sims', help='Simulation inde(x/ices) or names to analyse', nargs='+') parser.add_argument('--snap_name', help='Name prefix of simulation outputs ' '(default: "output")', default='output') parser.add_argument('--max_snap', type=int, help='Maximum number of outputs (default: 3000)', default=3000) parser.add_argument('--base_dir', help='Base directory of simulations ' f'(default: {local.BASE_DIR})', default=local.BASE_DIR) parser.add_argument('--full_dir', action='store_true') parser.add_argument('--out_file', help='File to store output in (default: ' '"black_hole_data.hdf5")', default='black_hole_data.hdf5') parser.add_argument('--include', help='Only include the listed data sets', nargs='+') parser.add_argument('--exclude', help='Exclude the listed data sets', nargs='+') parser.add_argument('--vr_snap', default=36, type=int, help='Link to VR catalogue in this snapshot ' '(default: 36). Set to -1 to disable VR linking.') parser.add_argument( '--vr_file', default='vr', help='Base name of VR catalogue to use (default: "vr")') parser.add_argument('--out_dir') args = parser.parse_args() # Sanity checks on input arguments if not args.base_dir.endswith('/'): args.base_dir = args.base_dir + '/' if args.vr_snap < 0: args.vr_snap = None if args.sims[0].lower() == 'all': args.sims = xl.get_all_sims(args.base_dir) have_full_sim_dir = True elif args.full_dir: have_full_sim_dir = True else: have_full_sim_dir = False args.combined_vr = True for isim in args.sims: process_sim(args, isim, have_full_sim_dir)