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
# 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
Yorum Gönder