Я использую Python 2.7.10 и pyfits 3.3. Раньше я использовал следующий код для объединения двух таблиц. Тем не менее, теперь я получаю некоторые ошибкиКак слить два стола с pyfits?
t1 = pyfits.open(table1)[1].columns
t2 = pyfits.open(table2)[1].columns
new_columns = t1 + t2
hdu = pyfits.BinTableHDU.from_columns(new_columns)
hdu.writeto(outtable)
Ошибка является:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/vvikraman/anaconda2/lib/python2.7/site-packages/pyfits/hdu/table.py", line 116, in from_columns
data = FITS_rec.from_columns(coldefs, nrows=nrows, fill=fill)
File "/home/vvikraman/anaconda2/lib/python2.7/site-packages/pyfits/fitsrec.py", line 315, in from_columns
if arr.hdu.data is None:
ReferenceError: weakly-referenced object no longer exists
Спасибо Том и Эверт! Том, этот ответ решает мою проблему. Эверт, раньше я делал эти шаги, но не работал. – vinu
Это хорошее объяснение проблемы, спасибо. Это выявило тонкую ошибку, которая, я думаю, попытаюсь опубликовать исправление. Тем не менее, ответ Тома Олдкрофта на использование интерфейса Astropy Table более высокого уровня для манипулирования таблицами - это способ перехода на новый код. – Iguananaut
FWIW есть проблема, открытая для этого здесь: https://github.com/astropy/astropy/issues/4345#issuecomment-180957070 – Iguananaut