def set_arrays(filename, args, fields=None, ascii=True, clobber=False): if ascii: write_arrays(filename, args, fields, clobber=clobber) return if not clobber and os.path.isfile(filename): raise IOErr("filefound", filename) if not numpy.iterable(args) or len(args) == 0: raise IOErr('noarrayswrite') if not numpy.iterable(args[0]): raise IOErr('noarrayswrite') size = len(args[0]) for arg in args: if not numpy.iterable(arg): raise IOErr('noarrayswrite') elif len(arg) != size: raise IOErr('arraysnoteq') if fields is None: fields = ['col%i' % (ii + 1) for ii in range(len(args))] if len(args) != len(fields): raise IOErr("toomanycols", str(len(fields)), str(len(args))) cols = [] for val, name in zip(args, fields): col = fits.Column(name=name.upper(), format=val.dtype.name.upper(), array=val) cols.append(col) tbl = fits.BinTableHDU.from_columns(fits.ColDefs(cols)) tbl.name = 'TABLE' tbl.writeto(filename, overwrite=True)
def set_arrays(filename, args, fields=None, ascii=True, clobber=False): if ascii: write_arrays(filename, args, fields, clobber=clobber) return if not clobber and os.path.isfile(filename): raise IOErr("filefound", filename) if not numpy.iterable(args) or len(args) == 0: raise IOErr('noarrayswrite') if not numpy.iterable(args[0]): raise IOErr('noarrayswrite') size = len(args[0]) for arg in args: if not numpy.iterable(arg): raise IOErr('noarrayswrite') elif len(arg) != size: raise IOErr('arraysnoteq') if fields is None: fields = ['col%i' % (ii + 1) for ii in range(len(args))] if len(args) != len(fields): raise IOErr("toomanycols", str(len(fields)), str(len(args))) cols = [] for val, name in izip(args, fields): col = fits.Column(name=name.upper(), format=val.dtype.name.upper(), array=val) cols.append(col) tbl = fits.BinTableHDU.from_columns(fits.ColDefs(cols)) tbl.name = 'TABLE' tbl.writeto(filename, overwrite=True)