I have a problem which ought to be trivial but seems to have been massively over-complicated by the column-based nature of FITS BinTableHDU.

The script I'm writing should be trivial: iterate through a FITS file and write a subset of rows to an identically formatted FITS file, reducing the row count from c700k/3.6GB to about 350 rows. I have processed the input file and have each row that I want to save in a python array of FITS records:

```
    outarray = []

    self.indata=Table.read(self.infile, hdu=1)

    for r in self._indata:

        RecPassesFilter = FilterProc(r, self)

        #
        # Add to output array only if passes all filters...  
        #   
        if RecPassesFilter:
            outarray.append(r)

```

Now, I've created an empty BintableHDU with exactly the same columns and formats and I want to add the filtered data:

[...much omitted code later...}

```
            mycols =  []
            for inputcol in self._coldefs:
                mycols.append(fits.Column(name=inputcol.name, format=inputcol.format))

           # Next line should produce an empty BinTableHDU in the identical format to the output data

            SaveData = fits.BinTableHDU.from_columns(mycols)

            for s in self._outdata:
                SaveData.data.append(s)

```

Now that last line not only fails, but every variant of it (SaveData.append() or .add\_row() or whatever) also fails with a "no such method" error. There seems to be a singular lack of documentation on how to do the trivial task of adding a record. Clearly I am missing something, but two days later I'm still drawing a blank.

Can anyone point me in the right direction here?