Squeak.ru - шаблоны программирования

Скопировать заголовок в новый файл astropy

У меня есть этот скрипт, который создает файл с несколькими расширениями, но я хотел бы добавить заголовки из старых файлов в расширения.

new_hdul = fits.HDUList()
new_hdul.append(fits.PrimaryHDU(header=headermain))
new_hdul.append(fits.ImageHDU(nod1, header=header1, name='Chop1')) 
new_hdul.append(fits.ImageHDU(nod2, header=header2, name='Chop2'))
new_hdul.append(fits.ImageHDU(diff1, name='Dif'))

Теперь я попробовал:

headermain = fits.getheader(file,0)

а также

headermain = fits.open(file).header.copy()

Но оба дают мне ошибки, говоря, что

ValueError: заголовок должен быть объектом заголовка

Как я могу это исправить?

headermain = fits.getheader(file,0)
print(headermain)

см. http://pastebin.com/JXki7EPV.

06.04.2016

Ответы:


1

Как правило, получить заголовок как объект заголовка из файла несложно. Вы astropy.io.fits.open() файл и извлекаете заголовок из PrimaryHDU с помощью:

from astropy.io import fits

filename = 'test.fits'

with fits.open(filename) as hdus:
    headermain = hdus[0].header

или с getheader:

headermain = fits.getheader(filename) # Defaults to primary header!

и в результате получится fits.Header-объект, который вы сможете использовать при написании.

Но если ваш файл не является допустимым файлом FITS, могут возникнуть проблемы. Если это не сработает, не могли бы вы отредактировать свой вопрос и показать вывод любой из этих двух функций?

print(headermain)
06.04.2016
  • Я попробовал оба метода, и оба дают одну и ту же ошибку. Я вставил вывод headermain. 06.04.2016
  • @Coolcrab - Если вы сами обнаружили ошибку, вы можете ответить на свой вопрос. :) 06.04.2016
  • Я смешивал pyfits и astropy.fits, поэтому метод, описанный выше и вами, верен, если этого не делать. 06.04.2016
  • о, я бы никогда не догадался об этом, но в ретроспективе это очевидно. Общий совет: не используйте pyfits, если у вас есть astropy. См. важное примечание на домашней странице Pyfits. 06.04.2016
  • Новые материалы

    Очистить файлы Program .cache в Ubuntu 20.10
    Очистите кеш за несколько простых шагов! GNU / Linux реализовал эффективное управление хранилищем для своих пользователей. Но заметили ли вы, что в вашей системе Linux заканчивается место,..

    Использование Node.js для чтения действительно больших файлов (часть 1)
    В этом сообщении в блоге есть интересный источник вдохновения. На прошлой неделе кто-то на одном из моих каналов в Slack опубликовал тестовое задание, которое он получил на должность..

    Введение в градиентный спуск и обратное распространение
    Введение в градиентный спуск и обратное распространение Как машинное обучение? Машинное обучение ( ML ) - это исследование компьютерных алгоритмов, которые автоматически улучшаются по..

    Шаблон CQRS — C#
    Этот архитектурный шаблон в основном говорит о том, что мы можем использовать одну модель для операций чтения, а другую — для операций записи. Звучит хорошо, но реализовать его может быть..

    Освоение функций потерь в машинном обучении для регрессии: полное руководство по оптимизации…
    Введение: Функция потерь является важным компонентом алгоритмов машинного обучения и статистических моделей. Его роль заключается в измерении несоответствия между прогнозируемым выходом модели и..

    10 языков программирования, которые изменят мир в 2023 году
    Мир программирования постоянно развивается, и востребованные языки постоянно меняются. Однако есть несколько языков, которые выдержали испытание временем и по-прежнему очень ценны для изучения в..

    Чем заняться в наших библиотеках (апрель 2023 г.)
    В апреле этого года мы празднуем обучение по-разному — от принятия позитивного и устойчивого мышления до понимания и сохранения местных популяций пчел, а также изучения новейших и новейших..