Python Astronomi için dosya okuma ve yazma



Astronomlar genellikle fits ve txt uzantılı dosyaları okuyup üzerinde işlemler gerçekleştirmektedir.
öncelikler kullanılan kütüphaneler:

astropy
matplotlib
numpy
pandas

gibi temel kütüphaneler kullanılmaktadır.


okuma işlemi: txt ve türevleri için 



from astropy.io import ascii

grb=astropy.io.ascii.read('isikegrisi.txt') #ışık eğrisi txt uzantılı bir dosya
time=np.array(grb['col2'])
mjans=np.array(grb['col4'])    
 # burada dosya içinde olan kolonlar col1, col2...  gibi sıralanmaktadır. Ancak unutulmaması gereken  şey ise txt dosyasında col isimleri var ise o  zaman o isimler yazılmadır yani "time" diye bir kolon varsa o zaman "time" kolonu yazılmalıdır. 

Tabi burda istediğiniz işlemi gerçekleştirebilirsiniz, matplotlib kullanarak grafikler çizebilirsininiz. Ya da kolonlar ile ilgili işlemlede bulunabilirsiniz.




şimdi fits dosyası nasıl okunur ona bi bakalım:


from astropy.io import fits


bat_file = fits.open('aa.fits') # fits dosyası okur
bat_data = bat_file[1].data     # fits içinde kolon isimleri için yaptığımız
bat_time = bat_data['TIME']        işlemdir.
bat_rate = bat_data['RATE']
bat_error = bat_data['ERROR']
bat_staterr = bat_data['STAT_ERR']  

# TIME, RATE... bunlarda her bir kolonun isimleri,   bu isimler olmadan kolonu okuyamazsınız.

Yazdırma:

burada seçilen bir aralığı dosya yazdırma işlmei var, ve burada if koşulu kullanılabilirken aynı zamanda "where" komutu da aynı işlevi görebilmektdir.


from astropy.table import Table #Table kütüphanesi ile işlem yapıyoruz


x=np.where(koşullar) #parantez için koşullarını yaz bi değişkene at
text_data = Table([time[x], flux[x]]) #table böyle yazılır time ve flux where komutuna göre değerleri seçer ve kolona atar.
ascii.write(text_data,'/Users/Desktop/.../orn.txt') #dosyayı txt veya başka uzantı şeklinde yazdırıp istediğiniz konuma uzantı vererek yapabilrisiniz.






Yorumlar

Popüler Yayınlar