https://github.com/RadioAstronomySoftwareGroup/pyuvdata
Raw File
Tip revision: 835524471803bbc0e4802a41d20fd6dd9c834c5d authored by Bryna Hazelton on 23 March 2024, 14:08:37 UTC
Use absolute path in hdf5 hash
Tip revision: 8355244
__init__.py
# -*- mode: python; coding: utf-8 -*-
# Copyright (c) 2019 Radio Astronomy Software Group
# Licensed under the 2-clause BSD License

import numpy as np


def time_array_to_time_range(calobj_in, keep_time_array=False):
    calobj = calobj_in.copy()
    tstarts = calobj.time_array - calobj.integration_time / (86400 * 2)
    tends = calobj.time_array + calobj.integration_time / (86400 * 2)
    calobj.time_range = np.stack((tstarts, tends), axis=1)
    if not keep_time_array:
        calobj.time_array = None
        calobj.lst_array = None
    calobj.set_lsts_from_time_array()

    return calobj


def extend_jones_axis(calobj, input_flag=True, total_quality=True):
    while calobj.Njones < 4:
        new_jones = np.min(calobj.jones_array) - 1
        calobj.jones_array = np.append(calobj.jones_array, new_jones)
        calobj.Njones += 1
        if not calobj.metadata_only:
            attrs_to_extend = [
                "gain_array",
                "delay_array",
                "flag_array",
                "input_flag_array",
                "quality_array",
                "total_quality_array",
            ]
            for attr in attrs_to_extend:
                attr_value = getattr(calobj, attr)
                if attr_value is not None:
                    attr_value = np.concatenate(
                        (attr_value, attr_value[..., [-1]]), axis=-1
                    )
                    setattr(calobj, attr, attr_value)

    if not calobj.metadata_only:
        if calobj.input_flag_array is None and input_flag:
            calobj.input_flag_array = calobj.flag_array
        if calobj.total_quality_array is None and total_quality:
            calobj.total_quality_array = np.ones(
                calobj._total_quality_array.expected_shape(calobj)
            )
back to top