を持っていない私はそのような値を持つファイル、CSVを使用しています26.5936 ... ...「int型のオブジェクトは、私のプログラムでは何の属性 '度'
from astroquery.skyview import SkyView
from astropy.coordinates import ICRS, Galactic, FK4, FK5, SkyCoord
from astropy.table import Table
from matplotlib import pyplot
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
import pandas as pd
import csv
import io, os
import astropy.units as u
import pyfits
import numpy as np
import matplotlib
catalogue = pd.read_csv('cat7.csv', delimiter=(','))
catalogue.columns = ['ra', 'dec']
df1 = catalogue[['ra','dec']]
ra = []
dec = []
for r in df1['ra']:
ra.append(r)
for d in df1['dec']:
dec.append(d)
os.mkdir('images')
path = os.getcwd()
tree = path+'/images/'
for i in range(1, len(df1)):
img = SkyView.get_images(position=SkyCoord(ra[i], dec[i], frame='icrs', unit=(u.deg, u.deg), obstime='J2000'), survey=['DSS2 Blue', '2MASS-J', '2MASS-K', 'WISE 3.4', 'WISE 22', 'GALEX Far UV'],pixels='150,150',coordinates='J2000',grid=False, gridlabels=False)
for h in img:
x = plt.figure(figsize=(18, 14))
ax1 = plt.subplot2grid((3, 3), (0, 0))
ax1.imshow(img[0][0].data, cmap='gray')
ax1.set_xlabel('DSS2 Blue')
ax1.set_xticks([])
ax1.set_yticks([])
ax2 = plt.subplot2grid((3, 3), (0, 1))
ax2.imshow(img[1][0].data, cmap='gray')
ax2.set_xlabel('2MASS-J')
ax2.set_xticks([])
ax2.set_yticks([])
ax3 = plt.subplot2grid((3, 3), (0, 2))
ax3.imshow(img[2][0].data, cmap='gray')
ax3.set_xlabel('2MASS-K')
ax3.set_xticks([])
ax3.set_yticks([])
ax4 = plt.subplot2grid((3, 3), (1, 0))
ax4.imshow(img[3][0].data, cmap='gray')
ax4.set_xlabel('WISE 3.4')
ax4.set_xticks([])
ax4.set_yticks([])
ax5 = plt.subplot2grid((3, 3), (1, 1))
ax5.imshow(img[4][0].data, cmap='gray')
ax5.set_xlabel('WISE 22')
ax5.set_xticks([])
ax5.set_yticks([])
ax6 = plt.subplot2grid((3, 3), (1, 2))
ax6.imshow(img[5][0].data, cmap='gray')
ax6.set_xlabel('GALEX Far UV')
ax6.set_xticks([])
ax6.set_yticks([])
try:
for filename in os.listdir('galaxies'):
if filename.endswith('.fits'):
try:
fit = pyfits.open('galaxies/' + filename)
flux = fit[0].data
flux = np.array(flux, dtype=np.float64)
header = fit[0].header
start_wave = header['CRVAL1']
step = header['CDELT1']
w0, dw, n = start_wave, step, len(flux)
w = start_wave + step * n
wave = np.linspace(w0, w, n, endpoint=False)
data = Table([wave, flux], names=(str(header['CRVAL1']), str(step)))
until = 5660 - start_wave + 901
until = until/step
u = int(until)
j = (flux[0:u])
media1 = sum(flux[0:u])/len(j)
media1 = media1+100
inc = u + 5
k = (flux[u:inc])
media_h = sum(flux[u:inc])/len(k)
hdu_name = fit
name = hdu_name[0].header['TARGET']
ra_fit = hdu_name[0].header['OBSRA']
dec_fit = hdu_name[0].header['OBSDEC']
m = max(k)+100
if(int(ra_fit) == int(ra[i]) and int(dec_fit) == int(dec[i])):
ax7 = plt.subplot2grid((3, 3), (2, 0), colspan=3)
ax7.plot(wave, flux, label = name, color='black')
ax7.annotate('hα',xy=(6562,m),xytext=(6545,m))
plt.ylabel('Counts')
plt.xlabel('Wavelength (Å)')
x.savefig(tree+name, format='png')
plt.close(x)
except:
continue
except:
continue
私は、ファイル.fitsの数で、この数を比較する必要があります。その作品は、一度だけ動作します! 2回目のループ "for"はエラーを示します。 'int'オブジェクトには属性 'deg'がありません。 「img = Sky ...」の前に「try」を置くと、この関数がジャンプします。他の数字と比較するには?
ああ! J_Hありがとう!あなたの答えは問題の解決策をもたらしました!私は "u"を "units"に変更する必要があるとは想像もしませんでした! –