Beispiel #1
0
def task(args):
    from miriad import CalData
    from mirtask import cliutil, keys

    banner = util.printBannerGit('gptext', 'convert gains to and from text',
                                 IDENT)

    ks = keys.KeySpec()
    ks.keyword('vis', 'f', ' ')
    ks.keyword('out', 'f', ' ')
    ks.keymatch('mode', 1, ['totext', 'applyvis', 'createvis'])
    opts = ks.process(args)

    if opts.out == ' ':
        util.die('must specify an output filename (out=...)')

    if opts.vis == ' ':
        util.die('must specify an input filename (vis=...)')

    mode = opts.mode[0]
    gi = GainsInfo()

    if mode == 'totext':
        gi.fromDataset(CalData(opts.vis).open('rw'))

        if opts.out == '-':
            gi.toText(sys.stdout)
        else:
            gi.toText(open(opts.out, 'w'))
    elif mode == 'applyvis':
        gi.fromText(open(opts.vis))
        h = CalData(opts.out).open('rw')
        gi.toDataset(h)
        h.openHistory()
        h.writeHistory(banner)
        h.logInvocation('PYTHON gptext', args)
        h.closeHistory()
        h.close()
    elif mode == 'createvis':
        gi.fromText(open(opts.vis))
        h = CalData(opts.out).open('c')
        gi.toDataset(h)
        h.openHistory()
        h.writeHistory(banner)
        h.logInvocation('PYTHON gptext', args)
        h.closeHistory()
        h.close()
    else:
        util.die('unrecognized mode "%s"', mode)
Beispiel #2
0
    def toDatasetPath(self, path, mode):
        """Valid values of *mode* are "rw" or "c"."""
        from miriad import CalData

        ds = CalData(path)
        handle = ds.open(mode)
        try:
            self.toDataset(handle)
        finally:
            handle.close()
        return self
Beispiel #3
0
    def _genfromtext(context, gaintext=None):
        from miriad import CalData
        context.ensureParent()
        out = CalData(context.fullpath())
        out.delete()

        try:
            gi = GainsInfo().fromText(open(str(gaintext)))
            gi.toDatasetPath(str(out), 'c')
        except Exception:
            out.delete()
            raise

        return out