def create_gaintable_from_rows(gt: GainTable, rows: numpy.ndarray, makecopy=True) -> GainTable: """ Create a GainTable from selected rows :param gt: GainTable :param rows: Boolean array of row selection :param makecopy: Make a deep copy (True) :return: GainTable """ if rows is None or numpy.sum(rows) == 0: return None assert len( rows ) == gt.ntimes, "Length of rows does not agree with length of GainTable" assert isinstance(gt, GainTable), gt if makecopy: newgt = copy_gaintable(gt) newgt.data = copy.deepcopy(gt.data[rows]) return newgt else: gt.data = copy.deepcopy(gt.data[rows]) return gt
def append_gaintable(gt: GainTable, othergt: GainTable) -> GainTable: """Append othergt to gt :param gt: :param othergt: :return: GainTable gt + othergt """ assert gt.receptor_frame == othergt.receptor_frame gt.data = numpy.hstack((gt.data, othergt.data)) return gt