Source code for frb.scripts.dm_ism_hp_map

import argparse
import numpy as np
import pandas as pd
from frb.dm import dm_ism_healpix_map
import healpy as hp

DEFAULT_MAPFILE = dm_ism_healpix_map.get_current_mapfile()


[docs] def make_grabdmism_out(l,b,dmism): if isinstance(dmism, (list, np.ndarray)): df = pd.DataFrame({'l': l, 'b': b, 'DM_ISM': dmism}) print(df.head()) else: print(f"DM ISM value at (l={l}, b={b}): {dmism:.2f} pc cm^-3")
[docs] def add_create_map_options(parser=None, usage=None): if parser == None: parser = argparse.ArgumentParser(usage=usage, conflict_handler='resolve') parser.add_argument('--nside', type=int, default=64, help='HEALPix resolution parameter (nside). Default is 64.') parser.add_argument('--n_cores', type=int, default=15, help='Number of CPU cores to use for parallel processing. Default is 15.') parser.add_argument('--save_path', type=str, default=DEFAULT_MAPFILE, help=f'Path to save the HEALPix map file. Default is "{DEFAULT_MAPFILE}".') return parser
[docs] def add_get_map_options(parser=None, usage=None): if parser == None: parser = argparse.ArgumentParser(usage=usage, conflict_handler='resolve') parser.add_argument('--mapfile', type=str, default=DEFAULT_MAPFILE, help=f'Path to the HEALPix map file. Default is "{DEFAULT_MAPFILE}".') return parser
[docs] def add_grab_dm_ism_options(parser=None, usage=None): if parser == None: parser = argparse.ArgumentParser(usage=usage, conflict_handler='resolve') parser.add_argument('--l', type=float, required=True, help='Galactic longitude in degrees.') parser.add_argument('--b', type=float, required=True, help='Galactic latitude in degrees.') parser.add_argument('--mapfile', type=str, default=DEFAULT_MAPFILE, help=f'Path to the HEALPix map file. Default is "{DEFAULT_MAPFILE}".') return parser
[docs] def add_plot_map_options(parser=None, usage=None): if parser == None: parser = argparse.ArgumentParser(usage=usage, conflict_handler='resolve') parser.add_argument('--mapfile', type=str, default=DEFAULT_MAPFILE, help=f'Path to the HEALPix map file. Default is "{DEFAULT_MAPFILE}".') parser.add_argument('--title', type=str, default=r'$DM_{ISM}$ Map', help='Title for the Mollweide plot.') parser.add_argument('--min', type=float, default=0, help='Minimum value for the color scale.') parser.add_argument('--max', type=float, default=1000, help='Maximum value for the color scale.') return parser
[docs] def main(): parser = argparse.ArgumentParser(description='Process DM ISM HEALPix maps.') subparsers = parser.add_subparsers(dest='command', required=True) # Subcommands add_create_map_options(subparsers.add_parser('create', help='Create a HEALPix map.')) add_get_map_options(subparsers.add_parser('get', help='Get DM ISM value from the map.')) add_grab_dm_ism_options(subparsers.add_parser('grab', help='Grab DM ISM value from the map.')) add_plot_map_options(subparsers.add_parser('plot', help='Plot the HEALPix map.')) args = parser.parse_args() if args.command == 'create': dm_ism_healpix_map.create_ne2001_dm_healpix_map(nside=args.nside, n_cores=args.n_cores, save_path=args.save_path) print(f"Map saved to {args.save_path}") elif args.command == 'get': dm_map = dm_ism_healpix_map.get_dm_map(mapfile=args.mapfile) nside = hp.get_nside(dm_map) print(f"Loaded DM map from {args.mapfile}") print(f"Number of pixels: {len(dm_map)}") print(f"Nside: {nside}") print(f"Min DM: {dm_map.min():.2f}, Max DM: {dm_map.max():.2f}") elif args.command == 'grab': dm_map = dm_ism_healpix_map.get_dm_map(mapfile=args.mapfile) dm_ism = dm_ism_healpix_map.grab_dm_ism_from_healpix_map(args.l, args.b, dm_map) make_grabdmism_out(args.l, args.b, dm_ism) elif args.command == 'plot': dm_ism_healpix_map.plot_mollwiede_view_dm_ism(mapfile=args.mapfile, title=args.title, min=args.min, max=args.max) return None
if __name__ == '__main__': main() # This script is designed to be run from the command line. # It provides functionality to create a HEALPix map of DM ISM values, # retrieve DM ISM values from the map, grab specific DM ISM values based on coordinates, # and plot the HEALPix map in a Mollweide projection. # The script uses argparse for command-line argument parsing.