Doç. Dr. Özgür Baştürk
Ankara Üniversitesi, Astronomi ve Uzay Bilimleri Bölümü
obasturk at ankara.edu.tr
http://ozgur.astrotux.org
Astronomide yıldız, ötegezegen, Güneş sistemi cisimleri, kuyrukluyıldız ve asteroidler, gökadalar, gökada kümeleri gibi cisim katalog ve veritabanlarından, teleskopların gözlemsel verilerini içeren veritabanlarına ve bibliyografi / literatür veritabanlarına kadar pek çok tür veritabanı neredeyse günlük olarak kullanılmaktadır. Bu derste bu veritabanlarına erişim ve sorgulamalara yönelik giriş niteliğindeki bilgi, Python betikleri yardımıyla uygulamalı olarak verilecektir.
astroquery astronomiye yönelik Python uygulamalarının bulunduğu büyük bir modül olan astropy 'ın çeşitli astronomi veritabanlarına erişim için araçlar sunan paketidir.
Örnek olarak aşağıda SIMBAD veritabanında basit bir cisim sorgusu (ing. identifier query) yapabilmeye olanak sağlayan bir Python betiği verilmiştir.
from astroquery.simbad import Simbad
BBPeg = Simbad.query_object('BB Peg')
BBPeg.pprint()
Sorgunun sonucu bir astropy tablosudur (astropy tabloları ile geniş bilgi için bkz.) Bir astropy tablosundaki tüm sütunları görmek için astropy.table
nesnesinin columns
metodu kullanılır.
BBPeg.columns
Herhangi bir sütundaki bilgi sütun adını indeks olarak vermek suretiyle alınabilir. Örneğin cismin koordinatlarının hangi dalgaboyunda yapılan gözlemlerle belirlendiği bilinmek isteniyorsa COO_WAVELENGTH sütunundaki bilgiye aşağıdaki şekillerde erişilebilir. Görüldüğü gibi veritabanlarında herhangi bir bilginin aranan sütunda bulunabilmesi için öncelikle o bilginin veritabanına girilmiş olması gereklidir ve maalesef bunun garantisi de yoktur.
print(BBPeg['COO_WAVELENGTH'])
BBPeg['COO_BIBCODE']
Gördüğünüz bu örnek basit bir nesne sorgusudur. astropy
modülünün ve diğer Python modülleriyle birleştirilerek kullanılmasıyla daha gelişkin sorgularda tasarlanabilir. Aşağıdaki sorguda astropy.coordinates
kütüphanesindeki SkyCoord
fonkskiyonu ICRS koordinat sisteminde bir koordinat oluşturmak üzere kullanılmaktadır. Daha sonra astropy .units
modülündeki arcminute
metoduyla yaydakikası biriminde bir yarıçap tanımı yapılıp, SIMBAD veritabanı bu yarıçap dahilindeki cisimleri verecek şekilde sorgulanmaktadır. Sorgunun sonucunun her satırda en fazla 80 karakteri ve toplamda 10 cismi geçmeyecek şekilde sınırlandırılması ve birimlerinin de gösterilmesi istenmiştir.
from astropy import coordinates
import astropy.units as u
from astroquery.simbad import Simbad
# Sadece ICRS koordinatlarıyla calisir
koordinat = coordinates.SkyCoord("22h22m50s +16d19m20s", frame='icrs')
yaricap = 13.0 * u.arcminute
sorgu = Simbad.query_region(koordinat, radius=yaricap)
sorgu.pprint(show_unit=True, max_width=80, max_lines=10)
astropy.astroquery
pek çok veritabanında sorgular yapmayı sağlayan pek çok alt modül barınıdırır. Kullanılabilir araçların bir listesine bakılarak hangi veritabanlarında araştırmalar yapılabileceği görülebilir. astropy.astroquery
tüm bu veritabanlarına erişim için ortak olan araçlar paketini içeren bir Uygulama Programlama Arayüzü'ne (ing. Application Programming Interface, API) sahiptir. Bir API, modül, yazılım ve sistem bileşenlerinin söz konusu modüü nasıl kullanabileceğini tanımlayan bir arabirimidir. Bo modülle (örneğin astropy.astroquery
ile) yapılabilecek arama veya istek türlerini, nasıl yapılacağını, kullanılması gereken veri formatlarını ve izlenecek kuralları tanımlar. astroquery
API'de, çoğu modül için ortak olan standart araçlar; query_object ve query_region 'dır.
Tüm veritabanları için sorgulama yapısı benzer nitelikler içerir.
from astroquery.service import Servis
result = Servis.query_object('BB Peg')
Öncelikle astroquery.service
alt modülünden istenen Servis (ya da veritabanı) (IRSA, UKIDSS, SIMBAD, ALMA vs.) $import$ edilir. Daha sonra bu serviste istenen cisimler (tek tek ya da bir liste / döngü / dosya içinden) istenen servisin query_object
metoduyla aranır. Daha önce de örneği verilen bir SIMBAD sorgusu aşağıdaki şekide örneklenebilir.
from astroquery.simbad import Simbad
Simbad.query_object("M 31")
API'nin diğer metodları yarıçap ($radius$) ya da genişliği ($width$) ile tanımlı bir alanda arama yapmak için kullanılan query_region
ve eğer veritabanı görüntü sağlıyorsa get_images
metotlarıdır.
from astropy import coordinates
import astropy.units as u
sorgu = Simbad.query_object("HAT-P-19")
koordinatlar = coordinates.SkyCoord(sorgu['RA'], sorgu['DEC'], \
unit=(u.hourangle, u.deg), frame='icrs')
yaricap = 5*u.arcminute
yeni_sorgu = Simbad.query_region(koordinatlar,radius=yaricap)
yeni_sorgu
Görüntü sağlayan veritabanlarından görüntü de çekilmek istenebilir. Ancak bu noktada bazı veritabanlarının her kullanıcıya açık olmadğını, ancak kullanıcı adı ve şifreyle giriş yapılabildiğini belirtmekte fayda vardır. Örneğin UKIRT Teleskobu'yla süren Kızılöte Derin Gökyüzü Araştırması (UKIRT Infrared Deep Sky Survey) 'den aşağıdaki gibi bir betikle görüntü çekilebilir. Ancak kullanıcı adresi ve şifreye ihtiyaç duyulur.
from astroquery.ukidss import Ukidss
Ukidds.login(username,password)
images = Ukidss.get_images("m1")
Simbad veritabanı Güneş sistemi dışındaki gökcisimleri için temel verileri, farklı kataloglardaki isimlerini, bu cisimler üzerine yapılmış çalışmaların kaynakçasını ve cisim için yapılan çeşitli ölçümleri sağlar. SIMBAD veritabanı sınırlı sorgulama kapasitesine sahiptir. Sunucuya kısa sürelerde büyük sorgular gönderirseniz IP'niz geçici olarak kara listeye alınabilir. Sınırı değişmekle birlikte saniyede 5 ile 10 sorgudan fazla sorgu göndermemek gerekir. Çok sayıda cismi içeren büyük sorgularda nesne isimlerini bir döngü dahilinde dosyalardan okuyarak tek tek sorguya geçirmek yerine bir cisim listesi oluşturup, bu listeyi sorguya göndermekte fayda vardır.
Daha önce basit sorgular için bazı örnekler vermiştik. Şimdi biraz daha ileri sorgularla veritabanından veri almaya çalışalım. Yeni Nesil Transit Araştırması (ing. Next Generation Transit Survey, NGTS), temelde parlak yıldızların etrafında ($V < 13^m$) Neptün'nden daha küçük olan ötegezegenleri geçiş yöntemiyle keşfetmek ve karakterize etmek için tasarlanmış, geniş bir gökyüzü alanında yapılan bir fotometrik araştırmadır. Bu araştırmanın cisimleri NGTS ismi ile kataloglanmaktadır. Şu ana kadar ne kadar NGTS cisminin kataloglandığını öğrenmek için bir Simbad sorgusu aşağıdaki gibi yazılabilir.
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_object("NGTS-*", wildcard=True)
print(sonuc_tablosu)
Görüldüğü gibi tüm NGTS cisimlerini görebilmek için "*" karakterini kullandık. Bu karakterler ("*","?", "[1-9]", "[a-b]" gibi) bir ya da daha çok karakterin yerini tutmak üzere kullanılır (ing. wildcard). Örneğin NGTS'in keşfettiği gezegenleri listelemek için NGTS katalog isminden sonra olası tüm seçenekleri listeleyecek olan (katalogdaki tüm NGTS adıyla kodlanmış cisimler) "*" karakterini kullandıktan sonra gezegen isimlerinin $b$ ile $i$ harfleri arasında isimlerle yıldız isminin sonuna getirileceğini düşünerek (bugüne kadar etrafında en fazla gezegen bulunan sistemde 8 gezegen keşfedilmiştir) aşağıdaki şekilde kurgulanan bir sorgu kullanılabilir.
sonuc_tablosu = Simbad.query_object("NGTS-*[b-i]", wildcard=True)
sonuc_tablosu
Bir ya da daha fazla karakterin yerini tutmak üzere kulanabileceğiniz tüm karakterleri (ing. wildcard) öğrenmek için list_wildcards()
metodu kullanılabilir.
Simbad.list_wildcards()
Bölge sorgularında (query_region
) varsayılan yarıçap $20$ yaydakikasıdır ve astropy.units
kullanılarak değiştirilebilir.
from astroquery.simbad import Simbad
import astropy.units as u
sonuc_tablosu = Simbad.query_region("Polaris", radius=0.1 * u.deg)
# yaricap derece-dakika-saniye ('dms') formatinda da tanimlanabilir
sonuc_tablosu = Simbad.query_region("Polaris", radius='0d6m0s')
print(sonuc_tablosu)
Koordinat sorgularına daha önce örnekler verilmişti. Eğer bu tür sorgularda verilen koordinatların epoch değerleri (bu ölçümlerin referans verildiği zaman) biliniyorsa sorguya parametre olarak geçirilebilir.
from astropy import coordinates as coord
sonuc_tablosu = Simbad.query_region(coord.SkyCoord(ra=02.50, dec=89.90,
unit=(u.hour, u.deg), frame='fk5'),
radius=0.5 * u.deg,
epoch='B1950',
equinox=1950)
print(sonuc_tablosu)
Bölge sorgularında vektörleştirilmiş koordinat aralıklarını kullanmak hem hız açısından daha etkilidir, hem de daha kullanışlıdır.
sonuc_tablosu = Simbad.query_region(coord.SkyCoord(ra=[0, 1], dec=[-1,1],
unit=(u.hour, u.deg), frame='fk5'),
radius=0.1 * u.deg)
sonuc_tablosu
Bir cismin alternatif isimlerini öğrenmek için aşağıdaki gibi bir sorgu kurgulanabilir.
sorgu = Simbad.query_objectids("TYC 7282-1298-1")
sonuc_tablosu = [isim[0] for isim in sorgu]
print(sonuc_tablosu)
Bibliyografik kodu bilinen herhangi bir yayında veri tabanında aranabilir.
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_bibcode('2011A&A...535A..17B')
print(sonuc_tablosu)
Bibliyografik kodu bilinen yayının içinde geçen kataloglanmış ve yayın içinde \astrobj latex anahtarıyla kodlanmış cisimleri almak için de aşağıdaki gibi bir sorgu yazılabilir.
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_bibobj('2011A&A...535A..17B')
print(sonuc_tablosu)
SIMBAD veritabanının istenen kriter(ler)e göre arama yapılmasını sağlayan bir kriter arayüzü (criteria interface) de bulunmaktadır. astropy.astroquery.Simbad
bu arayüzün kullanılmasına olanak sağlayan fonksiyonlara da sahiptir. Örneğin Simbad kataloğunda bulunan 6 kadirden daha parlak $\beta$-Lyr türünden ışık eğrisi gösteren örten çift yıldızların bir listesine aşağıdaki sorguyla ulaşılabilir. Bu tür sorgular herhangi bir araştırma için hedef listesi oluşturulurken vazgeçilmezdir. Simbad veritabanında yapılabilecek kritere dayalı sorgular için öncelikle ilgili dokümantasyonu dikkatle okumak, sorgularda kullanılabilecek anahtar kelime ve olası karşılaştırma seçeneklerini öğrenmek gereklidir.
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_criteria('Vmag < 6 & maintype = "EB*betLyr"')
print(sonuc_tablosu)
SIMBAD veritabanı sorgularında ya da sonuçların görüntülenmesinde varsayılan değerler değiştirilebilir. Bir sorgunun sonucundan belirli sayıda satır çekmek için ROW_LIMIT, veritabanının belirli bir sürede sonuç vermediği vakit sorgunun başarısız olarak sonuçlandırılmasını denetleyen TIMEOUT gibi parametreler aşağıdaki şekilde ayarlanıp, istendiğinde değiştirilebilir.
#Simbad.ROW_LIMIT = 15
#Simbad.TIMEOUT = 60
İstenirse sanal gözlemevi (ing. Virtual Observatory, VO) tablolarında bulunan başlıklar listelenebilir (get_votable_fields), yenileri eklenebilir (add_votable_fields()) ya da çıkarılabilir (remove_votable_fields()). Sanal gözlemevi tabloları eski haline döndürülmek istendiğinde reset_votable_fields fonksiyonu kullanılır.
Simbad.list_votable_fields()
Simbad.add_votable_fields('typed_id')
Simbad.query_objects(['M51', 'Proxima', 'Antares'])
Herhangi bir alanla (sütunla) ilgili açıklayıcı bilgi alınabilir (get_field_description).
Simbad.table.colnames
Ancak bu açıklamalar her zaman güvenilir ve yeterli olmayabilir! Bu durumda Simbad'ın ana dokümantasyonuna başvurmakta fayda vardır.
Simbad.get_field_description('coo_qual')
SAO/NASA Astrophysics Data System astronomların literatür taramak üzere neredeyse her gün, belki defalarca sorgular yaptıları eşsiz bir dijital kütüphane portalıdır. ADS, Astronomi ve Astrofizik, Fizik ve arXiv e-baskılarındaki yayınları kapsayan 13 milyondan fazla kayıt içeren üç bibliyografik veri tabanı bulundurmaktadır. Astronomi ve fizik yayınlarının özetleri ve tam metni, yeni ADS modern arama formunun yanı sıra klasik bir arama formu aracılığıyla dizine eklenebilir ve aranabilir.
astropy.astroquery
SAO/NASA ADS veritabanında temel ve ileri düzey sorgular yapabilmek için pek çok fonksiyon sunar. Ancak öncelikle bir ADS hesabınızın olması gerekir. Yeni bir ADS hesabı oluşturmak, ADS hesabınızın ayarlarını kontrol etmek / güncellemek ve bu modülün ilgili fonksiyonlarının çalışabilmesi için gerekli API şifresini almak için öncelikle SAO/NASA ADS login sayfasına giriş yapmanız gerekir. API şifrenizi aldıktan sonra $na.ADS.TOKEN$ değişkenine verebileceğiniz gibi, bir dosyaya alabilir ya da bir çevre değişkeni olarak belirleyebilirsiniz.
from astroquery import nasa_ads as na
# Modul fonksiyonlarini kullanmadan once
# API sifrenizi girmeniz beklenir. Bunun icin oncelikle
# https://ui.adsabs.harvard.edu/user/account/login
# sayfasina giderek (kaydolduktan sonra) API sifrenizi aliniz
# API sifrenizi buradan verebileceğiniz gibi
# bir dosyaya kaydedip adini buraya verebilir
# ya da bir cevre degiskeni olarak ayarlayabilirsiniz.
na.ADS.TOKEN = 'kendi ADS sifreniz'
# varsayilan kayit dondurme sayisi 10'dur ve kayitlar
# tarihe gore yeniden eskiye dogru siralanir
# bu ayarlar degistirilebilir.
# dondurulen kayit sayisini 30'a cikarmak icin
na.ADS.NROWS = 30
# sadece belirli alanlari almak icin
na.ADS.ADS_FIELDS = ['author','title','abstract','pubdate']
# ornegin bir yazarin ilk isim oldugu yayinlari gorebilmek icin
# yazar adinin onune ^ isareti konur
# (bu durum ADS arama sayfasinda da aynidir)
# Bu yapisiyla query_simple yeni ADS arama kutusuyla ayni sekilde calisir
sonuclar = na.ADS.query_simple(query_string="^Borucki Kepler project")
# aramanizi istediginiz bir kritere gore sonradan da siralayabilirsiniz
print(sonuclar.sort(['pubdate']))
# en son sonucunu basligi
sonsonuc_baslik = sonuclar[-1]['title'][0]
print(sonsonuc_baslik)
# en son sonucun yazar listesi
print(sonuclar[-1]['author'])
astroquery.nasa_ads
henüz NASA / ADS veritabanı üzerinde çalışan web arayüzünün yeteneklerinin bütününe sahip değildir. Örneğin yayının yayıncıdan ya da arXiv'dan indirilebileceği linkleri sağlamaz, makalenizde doğrudan kullanabileceğiniz bibtex'ini vermez. Ancak dokümantasyounundan da takip edebileceğiniz gibi bu konularda ve modülü geliştirmek üzere çalışılmkatadır. İleride projeleriniz için yazmanız gerekecek kodlarda bu tür aramalara ihtyaç duyabilirsiniz, bu nedenle bu paketin gelişimini takip etmekte fayda vardır.
ads paketi SAO/NASA ADS veritabanı ile etkileşim için önemli bir alternatif sunar. Bu paketi kullanma için de API şifresine ihtiyaç duyulur ve yukarıda anlatıldığı şekilde alınabilir. Eğer python'u Anaconda üzerinden kurduysanız bu paketi kurmamış olmanız ihtimal dahilindedir. Her zamanki gibi $pip$ kurulum paketini kullanarak
$ pip install ads--user
komutu ile kurabileceğiniz gibi projenin github sayfasından kaynak kodu indirip de kurabilirsiniz.
Aşağıda $ads$ paketinin kullanımına bir örnek verilmiştir.
import ads
ads.config.token = 'kendi ADS sifreniz'
sonuclar = ads.SearchQuery(q="HAT-P-19", sort="citation_count")
for sonuc in sonuclar:
print(sonuc.title[0], sonuc.bibcode)
Yayın üzerinden arama yapıp başlık ($title$), yazar ($author$), bibliyografi kodu ($bibcode$), özet ($abstract$), makalenizin biyografi bölümünü oluşturmak üzere bibtex girdisi ($bibtex$), atıfları ($citation$), atıf sayısı (citation_count) gibi pek çok bilgiye ulaşabilirsiniz. Sorgunuzun sonucunu atadığınız değişken (yukarıdaki örnekte $sonuclar$ değişkeni) sonuna nokta koyduktan sonra
ADS veritabanında üzerinde sorgu yapabileceğiniz bütün alanlarda $ads$ paketiyle de sorgu yapabilirsiniz. Aşağıda yazar ismiyle yapılmış bir sorgu örneği görüyorsunuz.
sonuclar = list(ads.SearchQuery(author="Basturk, O"))
for sonuc in sonuclar:
print(sonuc.title)
Her sorgu bir $ads.Article$ nesnesi döndürür. Bu nesnenin oldukça kullanışlı pek çok metodu bulunmaktadır. Aşağıda bu metotlara bazı örnekler verilmiştir.
en_son_yayin = sonuclar[-1]
# Yayinla ilgili bazı özet bilgiler
print(en_son_yayin)
print(en_son_yayin.author)
print(en_son_yayin.bibtex)
Gaia, galaksimizin kompozisyonunu, oluşumunu ve evrimini ortaya koymak amacıyla Samanyolu'nun üç boyutlu bir haritasını çıkarmak üzere geliştirilmiş bir uzay teleskobu projesidir. Gaia, Galaksimizde ve Yerel Grup genelinde yaklaşık bir milyar yıldızın tayfsal ve kinematik gözlemlerini gerçekleştirmek için bugüne kadar eşi görülmemiş bir duyarlılıkta konum ve radyal hız ölçümleri yapmakktadır.
Gaia arşivi TAP (Table Access Protocol) + REST servisleri üzerine kuruludur. Üzerine kurulu olduğu $TAP+$, Uluslararası Sanal Gözlemevleri Birliği (IVOA) tarafından belirtilen Tablo Erişim Protokolü'nün (TAP: http://www.ivoa.net/documents/TAP/) bir uzantısıdır. TAP sorgu dili, veritabanlarını sorgulamak için yaygın olarak kullanılan Yapılandırılmış Sorgu Dili'ne (ing, Structured Query Language, SQL) benzer bir dil olan Astronomi Veri Sorgu Dili ([Astronomical Data Query Language, ADQL] (http://www.ivoa.net/documents/ADQL/2.0))'dir.
TAP, Eşzamanlı (ya da Senkron: Synchronous) ve Asenkron (Asynchronous) olmak üzere iki çalışma modu sunar:
Eşzamanlı: istenen cevap sunucu tarafından alındığında oluşturulur. Bu yöntem büyük boyutlarda sonuç üreten sorgular için kullanılmamalıdır.
Asenkron: sunucu, sorgulama isteğini yürütecek bir iş (task) başlatır. İsteğe ilk yanıt, task durumunu elde etmek için gerekli bilgilerdir. Sorgulama işi bittikten sonra sonuçlar alınabilir.
Gaia $TAP+$ sunucusu herkese açık, genel (public) ve kullanıcı erişimli (authenticated) olmak üzere iki erişim modu sağlar:
Genel kullanıcı: Bu standart $TAP$ erişimidir. Bir kullanıcı, 'anında' sorguda kullanılacak ADQL sorgularını yürütebilir ve tabloları yükleyebilir (sorgu yürütüldüğünde bu tablolar kaldırılır). Sonuçlar diğer kullanıcılar tarafından kullanılabilir ve sınırlı bir süre için sunucuda kalır.
Kullanıcı erişimli sorgulamalar: bazı işlevler yalnızca kimliği doğrulanmış kullanıcılarla sınırlıdır. Sonuçlar özel bir kullanıcı alanına kaydedilir ve sonsuza kadar sunucuda kalır (kullanıcı tarafından kaldırılabilir).
ADQL sorguları ve sonuçları, kullanıcının özel alanına kaydedilir. Bir kullanıcı özel bir alana tablo yükleyebilir. Bu tablolar sorgularda ve çapraz eşleşme işlemlerinde kullanılabilir.
Örnek olarak basit bir Gaia sorgusu astroquery.gaia
alt modülüyle aşağıdaki şekilde kurgulanabilir. BU şekilde koordinatları bilinen bir cismin istenen yakınlığında başka bir kaynağın olup olmadığı konusunda bilgi verebilir.
import astropy.units as u
from astropy.coordinates import SkyCoord
from astroquery.gaia import Gaia
koordinatlar = "00h38m04s +34d42m41s"
koor = SkyCoord(koordinatlar, obstime="J2000.", frame='icrs')
ra_aralik = u.Quantity(1, u.arcmin)
dec_aralik = u.Quantity(1, u.arcmin)
sorgu = Gaia.query_object_async(coordinate=koor, width=ra_aralik, height=dec_aralik)
sorgu.pprint()
İstenirse böyle bir sorgu isim üzerinden yapılmak üzere SIMBAD sorgularıyla birleştirilebilir.
Aşağıda SkyView kataloğunu kullanarak istenen bir alanın görüntüsünü çektikten sonra Vizier kataloğunu kullanarak bu görüntü üzerindeki kaynakları belirleyip işaretlemeye yönelik bir örnek verilmiştir. astroquery
her SkyView ve Vizier kataloglarında sorgulama yapaiblmek için birer alt modül sunmaktadır. Katalog sorgularını kullanırken astropy.coordinates
ve astropy.units
modüllerini de kullanmak gerekecektir. Grafikler için yine maptlotlib.pyplot
kullanılabilir.
from astropy import coordinates, units as u, wcs
from astroquery.skyview import SkyView
from astroquery.vizier import Vizier
from matplotlib import pyplot as plt
%matplotlib inline
merkez = coordinates.SkyCoord.from_name('Orion KL')
# Orion Nebula'nin 2MASS-J bandinda bir SkyView goruntusunu alalim
goruntuler = SkyView.get_images(position=merkez, survey='2MASS-J')
# sonucta birden fazla goruntu dondurulurse sadece ilkini kullanalim
goruntu = goruntuler[0]
# dondurulen goruntu bir HDU nesnesidir ve goruntu (imaj)
# bu nesnenin 0. indeksinde yer almaktadir.
koorwcs = wcs.WCS(goruntu[0].header)
fig = plt.figure(1)
# RA / DEC koordinatlarina sahip bir goruntu olusturalim
ax = fig.add_axes([0.15, 0.1, 0.8, 0.8], projection=koorwcs)
ax.set_xlabel("RA")
ax.set_ylabel("Dec")
ax.imshow(goruntu[0].data, cmap='gray_r', interpolation='none', origin='lower',
norm=plt.matplotlib.colors.LogNorm())
# Vizier'den bu bolgedeki nesne bilgilerini cekelim
# Bunun icin J/ApJ/826/16/table1 tablosunu kullanalim
# Herhangi baska bir tabloyu da kullanabilirdik
tablolar = Vizier.query_region(merkez, radius=5*u.arcmin,
catalog='J/ApJ/826/16/table1')
# istedigimiz koordinatlar bu tablolarin birincisindedir
tablo = tablolar[0]
# RA / DEC girdiyi astropy koordinatlarina donusturelim
tablo_koor = coordinates.SkyCoord(tablo['RAJ2000'], tablo['DEJ2000'],
unit=(u.hour, u.deg), frame='fk5')
# cismin cevresindeki diger cisimleri de J/ApJ/540/236 tablosundan alalim
tablolar2 = Vizier(row_limit=10000).query_region(merkez, radius=5*u.arcmin,
catalog='J/ApJ/540/236')
tablo2 = tablolar[0]
tablo2_koor = coordinates.SkyCoord(tablo2['RAJ2000'], tablo2['DEJ2000'],
unit=(u.hour, u.deg), frame='fk5')
# goruntuyu cizdirelim
ax.plot(tablo_koor.ra, tablo_koor.dec, '*', transform=ax.get_transform('fk5'),
mec='b', mfc='none')
ax.plot(tablo2_koor.ra, tablo2_koor.dec, 'o', transform=ax.get_transform('fk5'),
mec='r', mfc='none')
# istedigimiz bolgeye zoom yapabiliriz
ax.axis([100, 200, 100, 200])
plt.show()
Aşağıda size verilen veritabanlarını astropy.astroquery
'nin ilgili alt modül ve fonksiyonlarını kullanarak üçer örnek sorgu üretiniz. Sorgularınızla neleri elde etmeyi amaçladığınızı ve sorgularınızın sonuç olarak ne yaptığını oluşturacağınız Jupyter defterinde açıklamalı olarak anlatınız.
Şeyma Torun: : DACE (Data Analysis Center for Exoplanets)
Meltem Yıldız: : NIST Atomic Line List
Javid Bashirzade: Mikulski Archive for Space Telescopes (MAST)
Uğur Şenaslan: JPL Molecular Spectroscopy Catalog