Ответ на ваш вопрос в документации здесь . Однако это низкоуровневые детали формата FITS. Если вы еще не очень хорошо знакомы с FITS и просто хотите создать таблицу, используйте Table
более высокого уровня. Например, та же таблица может быть создана как:
>>> from astropy.table import Table
>>> t = Table({
... 'target': np.array([b'NGC1001', b'NGC1002', b'NGC1003'], dtype='S20'),
... np.array([11.1, 12.3, 15.2])
...})
Теперь у вас есть репрезентация таблицы, которая совсем не c соответствует FITS, но вы можете записать ее в файл FITS, например:
>>> t.write('table.fits', format='fits')
И результат будет примерно тот же самый. Он будет обрабатывать преобразование dtypes в соответствующие типы столбцов FITS. Обычно необходимо использовать низкоуровневую библиотеку только в том случае, если вам нужен детальный контроль над точным форматом файла FITS, но ваш опыт может отличаться.
Кстати, когда вы делаете таблицу так, как вы это делали, это в большинстве случаев в течение долгого времени не было необходимости явно создавать объект ColDefs
. Вы можете просто передать простой список столбцов в BinTableHDU.from_columns
, например BinTableHDU.from_columns([col1, col2])
. Тот факт, что класс ColDefs
вообще доступен пользователям, в основном является устаревшим случаем или для некоторых очень специальных целей. Документы могли бы лучше подчеркнуть, что это не важно.