Объект 'numpy.ndarray' не имеет атрибута 'write' - PullRequest
0 голосов
/ 28 октября 2019

Я пишу код на Python для расчета фона астрономического изображения шарового скопления M15 (M15 уменьшено). Мой код может рассчитать фон и построить его с помощью plt.imshow (). Чтобы сохранить фоновое вычтенное изображение, я должен преобразовать его в str из numpy.nparray. Я перепробовал много вещей, включая np.array2string, использованный здесь. Файл просто остается в виде массива, который не может быть сохранен, так как он мне нужен для сохранения в виде файла .fits. Любые идеи, как получить это на ул? Код:

#sigma clip is the number of standard deviations from centre value that value can be before being rejected
sigma_clip = SigmaClip(sigma=2.)
#used to estimate the background in each of the meshes
bkg_estimator = MedianBackground()
#define path for reading in images
M15red_path = Path('.', 'ObservingData/M15normalised/')
M15red_images = ccdp.ImageFileCollection(M15red_path)
M15reduced = M15red_images.files_filtered(imagetyp='Light Frame', include_path=True)
M15backsub_path = Path('.', 'ObservingData/M15backsub/')
for n in range (0,59):
    bkg = Background2D(CCDData.read(M15reduced[n]).data, box_size=(20,20), 
                   filter_size=(3, 3), 
                   edge_method='pad', 
                   sigma_clip=sigma_clip, 
                   bkg_estimator=bkg_estimator)
    M15subback = CCDData.read(M15reduced[n]).data - bkg.background
    np.array2string(M15subback)
    #M15subback.write(M15backsub_path / 'M15backsub{}.fits'.format(n))

    print(type(M15subback[1]))

1 Ответ

0 голосов
/ 28 октября 2019

Вы можете попробовать использовать [numpy.save] [1] (но это сохраняет файл .npy). В вашем случае,

import numpy as np
...
for n in range (0,59):
    ...
    np.save('M15backsub{}.npy'.format(n), M15backsub)

Так как вам нужно хранить массив numpy, это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...