Commit 4e8adb8a authored by Alice Donini's avatar Alice Donini
Browse files

update utils.py

parent 39bd319a
Loading
Loading
Loading
Loading
+39 −9
Original line number Original line Diff line number Diff line
@@ -156,7 +156,7 @@ def get_runs_database(args, database):
    if args.tcuname is not None:
    if args.tcuname is not None:
        selection = database.loc[database['Target']].isin([args.tcuname])
        selection = database.loc[database['Target']].isin([args.tcuname])
        if args.verbose:
        if args.verbose:
            print("Selection of runs based on the TCU name", args.tcuname, ". Only run with the name in the TCU are kept")
            print("Selection of runs based on the TCU name", args.tcuname, ". Only runs with the name in the TCU are kept")
            print(selection.index)
            print(selection.index)


    # if args.night[0] != 'all':
    # if args.night[0] != 'all':
@@ -175,12 +175,12 @@ def get_runs_database(args, database):


    databaseRuns = np.array(selection.index)
    databaseRuns = np.array(selection.index)
    if args.runlist is not None:
    if args.runlist is not None:
        rl = np.loadtxt(args.runlist, unpack=True, dtype=int)
        rl = np.loadtxt(os.environ.get('CONFIG_FOLDER') + '/' + args.runlist, unpack=True, dtype=int)
        #databaseRuns = np.array([a for a in rl if a in databaseRuns])
        #databaseRuns = np.array([a for a in rl if a in databaseRuns])
        databaseRuns = np.array([a for a in rl])
        databaseRuns = np.array([a for a in rl])


    if args.verbose:
    if args.verbose:
        print("Final run selection", databaseRuns)
        print("Final run selection: ", databaseRuns)
    return databaseRuns
    return databaseRuns




@@ -276,7 +276,7 @@ def get_coordinates(args):
    """
    """
    returns the name and the Ra/Dec of the source
    returns the name and the Ra/Dec of the source
    """
    """

    success = False
    if args.source_name is None:
    if args.source_name is None:
        raise ValueError("Please provide the name of the analysed source by using --source_name")
        raise ValueError("Please provide the name of the analysed source by using --source_name")


@@ -286,13 +286,43 @@ def get_coordinates(args):
        c = SkyCoord.from_name(args.source_name)
        c = SkyCoord.from_name(args.source_name)
        ra = c.ra.value
        ra = c.ra.value
        dec = c.dec.value
        dec = c.dec.value
        success = True
        if args.verbose:
            print("Coordinates of ", args.source_name, "found using Astropy: RA ", ra, ", Dec ", dec)
    except:
    except:
        print("Cannot resolve target name", args.source_name, "using Astropy. Switch to the Ra and Dec provided.")
        print("Cannot resolve target name", args.source_name, "using Astropy. Switch to the Ra and Dec provided by the user.")
        if all(item is not None for item in [args.ra, args.dec]):
            if args.ra >= 0 and args.ra < 360 and args.dec >= -90 and args.dec < 90:
            if args.ra >= 0 and args.ra < 360 and args.dec >= -90 and args.dec < 90:
                ra = args.ra
                ra = args.ra
                dec = args.dec
                dec = args.dec
            print("Using user provided RA and Dec.")
                if args.verbose:
                    print("Coordinates provided by the user: RA ", ra, ", Dec", dec)
        else:
        else:
            print("Please provide RA and Dec values by using --ra and --dec")
            print("Please provide RA and Dec values by using --ra and --dec")
            exit(0)
            exit(0)
    if (success is True and args.ra and args.dec):
        if args.ra != ra or args.dec != dec:
            print(f"WARNING! Astropy coordinates RA {ra}, Dec {dec} are different than the ones provided by the user RA {args.ra}, Dec {args.dec}.")
    return ra, dec
    return ra, dec


def print_runs(table, mask, by_date=False):
    """
    function to print out the run numbers that survive a certain set of cuts
    """
    print(f"{mask.sum()} wobble runs for the selected source")
    print(f"Observation time: {table['elapsed_time'][mask].sum()/3600:.2f} hours")
    print()
    print(np.array2string(np.array(table['runnumber'][mask]), separator=', '))
    
    if by_date:
        print()
        print()
        dates = [datetime.utcfromtimestamp(t - 0.5 * 86400).date() for t in table['time'][mask]]
        for i, date in enumerate(np.unique(dates)):
            rr = []
            for d, run in zip(dates, table['runnumber'][mask]):
                if d != date:
                    continue
                rr.append(run)
            print(i + 1, ":", date, ":", rr)