800100715151 Astronomide Veritabanları¶

Ders - 03 Astronomide Veritabanlarına Erişim ve Sorgulama¶

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

Bu derste neler öğreneceksiniz?¶

  • Veri Tabanlarına Erişim ve Sorgulama
    • astroquery İle Veritabanlarına Erişim
  • astroquery API Kullanımı
  • astroquery İle SIMBAD Kataloğu Sorguları
    • Sanal Gözlemevi Alanlarıyla Sorgunun Genişletilmesi
    • SIMBAD Veritabanında Kaynakça Sorguları
    • SIMBAD Veritabanında Kritere Dayalı Sorgular
    • SIMBAD Veritabanı Sorgularındaki Ayarlar
  • astroquery İle VizieR Sorguları
    • VizieR'de Bölge Sorguları
    • SkyView ve Vizier Kataloglarını Kullanarak Görüntü Üzerinde Kaynak Belirleme
  • astroquery İle SAO/NASA ADS Sorguları
  • astroquery İle Gaia Veritabanı Sorguları
  • astroquery İle NASA Exoplanet Archive Sorguları
  • Ödev 2
  • Kaynaklar

Veri Tabanlarına Erişim ve Sorgulama¶

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 İle Veritabanlarına Erişim¶

astroquery astronomiye yönelik Python uygulamalarının bulunduğu büyük bir modül olan astropy 'la koordine bir şekilde geliştirilen ve çeşitli astronomi veritabanlarına erişim için araçlar sunan bir pakettir ve geniş bir dokümantasyonu da bulunmaktadır.

Diğer taraftan standart sanal gözlemevi hizmet protokollerini (IVOA) destekleyen arşivlerdeki veriler içinde sorgulama yapılmasını ve veriye erişimi sağlayan PyVO adında önemli bir paket daha bulunmaktadır.

Ancak sanal gözlemevi (Virtual Observatory, VO) standartlarına yönelik ilave fonksiyonlar da barındıran astroquery daha genel bir seçenek sağlar ve web tabanlı servislerden veriye erişimi mümkün kılar. Ö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. astroquery ile erişebileceğiniz tüm servislerin bir listesini astroquery dokümantasyonunda bulabilirsiniz. Bunların arasında astronomide sık kullanılan kataloglar, veri arşivleri, simülasyonlar ve çizgi listesi servisleri gibi spesifik veri ve bilgi kaynakları bulunmaktadır.

Her servisin kendine özgü nesneleri, metotları, parametreleri ve veri setleri bulunduğundan çok sayıdaki servisin her birine örnek vermek mümkün değildir. Ancak bazı çok kullanılan servisler üzerinden verilecek genel örnekleri takip ederek diğer servislerin temelde nasıl çalıştığı konusunda temel bir fikir edinmek mümkündür. Neredeyse tüm astronomlar tarafından sıkça kullanılan Simbad Veritabanı bunun için iyi bir örnektir.

In [1]:
import astroquery
astroquery.__version__
Out[1]:
'0.4.11'
In [2]:
from astroquery.simbad import Simbad
ELCVn = Simbad.query_object('EL CVn')
ELCVn.pprint()
 main_id         ra            dec       ...     coo_bibcode     matched_id
                deg            deg       ...                               
--------- --------------- -------------- ... ------------------- ----------
V* EL CVn 200.98757818535 43.59873298072 ... 2020yCat.1350....0G  V* EL CVn
In [3]:
type(ELCVn)
Out[3]:
astropy.table.table.Table
In [4]:
display(ELCVn)
Table length=1
main_idradeccoo_err_majcoo_err_mincoo_err_anglecoo_wavelengthcoo_bibcodematched_id
degdegmasmasdeg
objectfloat64float64float32float32int16str1objectobject
V* EL CVn200.9875781853543.598732980720.00920.013690O2020yCat.1350....0GV* EL CVn
In [5]:
ELCVn.colnames
Out[5]:
['main_id',
 'ra',
 'dec',
 'coo_err_maj',
 'coo_err_min',
 'coo_err_angle',
 'coo_wavelength',
 'coo_bibcode',
 'matched_id']

Sorgunun sonucu bir astropy tablosudur (astropy tabloları ile ilgili geniş bilgi için bkz.) Bir astropy tablosundaki tüm sütunları görmek için astropy.table nesnesinin columns metodu kullanılır.

In [6]:
ELCVn.columns
Out[6]:
<TableColumns names=('main_id','ra','dec','coo_err_maj','coo_err_min','coo_err_angle','coo_wavelength','coo_bibcode','matched_id')>

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.

In [7]:
print(ELCVn['coo_wavelength'])
coo_wavelength
--------------
             O
In [8]:
ELCVn['coo_bibcode']
Out[8]:
<MaskedColumn name='coo_bibcode' dtype='object' description='Coordinate reference' length=1>
2020yCat.1350....0G

Gördüğünüz bu örnek basit bir nesne sorgusudur. astroquery modül fonksiyonlarının diğer Python modülleriyle birleştirilerek kullanılmasıyla daha gelişkin sorgular da 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.

In [9]:
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='fk5')
yaricap = 15.0 * u.arcminute
sorgu = Simbad.query_region(koordinat, radius=yaricap)
sorgu.pprint(show_unit=True, max_width=80)
          main_id                    ra         ...     coo_bibcode    
                                    deg         ...                    
---------------------------- ------------------ ... -------------------
    SDSS J222205.50+162455.4    335.52292190715 ... 2020yCat.1350....0G
    SDSS J222302.48+161354.3 335.76034655354994 ... 2020yCat.1350....0G
             LSPM J2223+1618     335.9269763147 ... 2020yCat.1350....0G
    SDSS J222330.77+162029.6 335.87822398944996 ... 2020yCat.1350....0G
                LEDA 1505483 335.68833333333333 ... 2003A&A...412...45P
                 BD+15  4634    335.83496477461 ... 2020yCat.1350....0G
                         ...                ... ...                 ...
                   V* BB Peg    335.73704808592 ... 2020yCat.1350....0G
    SDSS J222300.12+162519.5         335.750519 ... 2014A&A...563A..54P
             TYC 1682-1444-1    335.50754869869 ... 2020yCat.1350....0G
             TYC 1682-1466-1    335.67142858396 ... 2020yCat.1350....0G
                 BD+15  4631    335.65844191971 ... 2020yCat.1350....0G
Gaia DR2 2737346454909302912 335.47717416698083 ... 2018yCat.1345....0G
             TYC 1682-1330-1    335.88993540517 ... 2020yCat.1350....0G
Length = 19 rows

Sonuçları bir pandas tablosuna almak ve pandas fonksiyonlarından yararlanmak da ayrı bir esneklik sağlayacaktır.

In [10]:
type(sorgu)
Out[10]:
astropy.table.table.Table
In [11]:
pandas_tablosu = sorgu.to_pandas()
pandas_tablosu['main_id'].value_counts()
Out[11]:
SDSS J222205.50+162455.4        1
SDSS J222304.83+161811.2        1
Gaia DR2 2737346454909302912    1
BD+15  4631                     1
TYC 1682-1466-1                 1
TYC 1682-1444-1                 1
SDSS J222300.12+162519.5        1
V* BB Peg                       1
SDSS J222212.06+162849.2        1
CRTS J222318.6+160655           1
SDSS J222302.48+161354.3        1
TYC 1682-1413-1                 1
LP  460-13                      1
TYC 1682-1530-1                 1
BD+15  4634                     1
LEDA 1505483                    1
SDSS J222330.77+162029.6        1
LSPM J2223+1618                 1
TYC 1682-1330-1                 1
Name: main_id, dtype: int64

Başa Dön

astroquery API Kullanımı¶

astroquery pek çok veritabanında sorgular yapmayı sağlayan pek çok alt modül barınıdırır. Sorgulanabilecek servislerin listesi üzerinden her birinin dokümantasyonuna ulaşmak mümkündür. Bazı veritabanlarının sunucu ve bağlantıda zaman aşımı gibi seçeneklerin ayarlanmasına olanak sağlayan konfigürasyon dosyası UNIX sistemler için kullanıcı dizininde $HOME/.astropy/config/astroquery.cfg dosyasında bulunmaktadır. Dosyanın konumu astropy'ın kurulum türüne göre değişiklik gösterebilir. Her bir servisin sağlayıcısı ayrıca github hesapları üzerinden dokümantasyon ve özellikle bu servislere bağlı programlar geliştirmek isteyenler için bilgiler sağlamaktadır.

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. Bu modülle (örneğin 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('Nesne Adı') `

Ö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 aranabilir.

Daha önce de örneği verilen bir SIMBAD sorgusu aşağıdaki şekide örneklenebilir.

In [12]:
from astroquery.simbad import Simbad
Simbad.query_object("M 31")
Out[12]:
Table length=1
main_idradeccoo_err_majcoo_err_mincoo_err_anglecoo_wavelengthcoo_bibcodematched_id
degdegmasmasdeg
objectfloat64float64float32float32int16str1objectobject
M 3110.68470833333333341.268750000000004------I2006AJ....131.1163SM 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.

In [13]:
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 = 20*u.arcminute
yeni_sorgu = Simbad.query_region(koordinatlar,radius=yaricap)
yeni_sorgu
Out[13]:
Table length=100
main_idradeccoo_err_majcoo_err_mincoo_err_anglecoo_wavelengthcoo_bibcode
degdegmasmasdeg
objectfloat64float64float32float32int16str1object
SDSS J003905.71+343138.09.77382227093000134.52724447080.07730.053390O2020yCat.1350....0G
TYC 2283-628-19.7470721187134.509625605010010.03140.022290O2020yCat.1350....0G
TYC 2283-827-19.8555489413834.639614905740.01220.010790O2020yCat.1350....0G
TYC 2283-696-19.73810556224000134.747486358720.01750.014290O2020yCat.1350....0G
TYC 2283-112-19.7306335183334.851919049880010.02610.021190O2020yCat.1350....0G
BD+33 919.85660416666666534.768572222222226.05.00O2003yCat.1289....0Z
........................
SDSS J003751.49+345800.79.46456900000000134.966865------O2020ApJS..250....8L
SDSS J003755.30+342925.59.48043900000000234.490427------O2020ApJS..250....8L
SDSS J003800.41+345213.09.5017278866634.870310563959990.38430.319690O2020yCat.1350....0G
NVSS J003719+3446299.32970999999999934.774841000.01000.090R2022A&A...659A...1S
SDSS J003717.44+344100.99.3226834.683592------O2017A&A...597A..79P
SDSS J003638.71+345045.19.16131834.845883------O2020ApJS..250....8L

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")

Yukarıda HAT-P-19'un koordinatlarını elde etmeye yönelik sorgudan hareketle bu cisim merkezinde bir bölgeinin görüntüsü CDS.Vizier servisinden alınabilir. Ancak bunun için gökyüzü taraması yapan hangi araştırmada (survey) elde edilmiş imajların istendiği de belirtilmelidir. SkyView tüm gökyüzü araştırmalarının (surveys) listesinden hangi araştırmada, hangi dalgaboyunda ve çözünürlüte elde edilen imajları görüntülemek istiyorsanız ona uygun olanları seçebilirsiniz.

In [14]:
from astropy import wcs
from astroquery.vizier import Vizier
from astroquery.skyview import SkyView
from matplotlib import pyplot as plt
goruntuler = SkyView.get_images(position=koordinatlar, survey='SDSSg')
# Fonksiyon bir imaj listesi dondurur
goruntu = goruntuler[0]

# Bir FITS goruntusu fits.HDUList nesnesi olup; 0. indeksinde goruntu bulunur
# Bu indeksin header nesnesi basligi data nesnesi ise goruntunun kendisini verir
# Bu goruntunun WCS koordinatlari goruntu basliginda bulunur
mywcs = wcs.WCS(goruntu[0].header)

fig = plt.figure(1)
# Bu WCS koordinatlari uzerinden istenen buyuklukte bir goruntu kesilip 
# ekrana getirlebilir
ax = fig.add_axes([0.15, 0.1, 0.8, 0.8], projection=mywcs)
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())
Out[14]:
<matplotlib.image.AxesImage at 0x7bcd420d0e80>

Başa Dön

astroquery İle SIMBAD Kataloğu Sorguları¶

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.

In [15]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_object("NGTS-*", wildcard=True)
print(sonuc_tablosu)
  main_id           ra         ...     coo_bibcode     matched_id
                   deg         ...                               
----------- ------------------ ... ------------------- ----------
     NGTS-6     75.79542850055 ... 2020yCat.1350....0G     NGTS-6
CD-30 11338    215.12287137211 ... 2020yCat.1350....0G     NGTS-2
     NGTS-4  89.59897895667125 ... 2020yCat.1350....0G     NGTS-4
     NGTS-5 221.05820997568998 ... 2020yCat.1350....0G     NGTS-5
     NGTS-3     94.44480603106 ... 2020yCat.1350....0G     NGTS-3
    NGTS-6b     75.79542850055 ... 2020yCat.1350....0G    NGTS-6b
        ...                ... ...                 ...        ...
   NGTS-33b    107.83336103924 ... 2020yCat.1350....0G   NGTS-33b
    NGTS-31  80.42127306748333 ... 2020yCat.1350....0G    NGTS-31
    NGTS-32 223.85771860788995 ... 2020yCat.1350....0G    NGTS-32
   NGTS-31b  80.42127306748333 ... 2020yCat.1350....0G   NGTS-31b
   NGTS-32b 223.85771860788995 ... 2020yCat.1350....0G   NGTS-32b
    NGTS-30    173.71475459885 ... 2020yCat.1350....0G    NGTS-30
   NGTS-30b    173.71475459885 ... 2020yCat.1350....0G   NGTS-30b
Length = 80 rows

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). astroquery 0.4.11 versiyonunda bulunan matched_id sütunu bu şekilde yazılan bir sorguyla eşleşen isimleri gösterirken, main_id sütunu SIMBAD veritabanında bu cisim için kullanılan ana ismi listelelemektedir. Wildcard kullanımına bir örnek olarak 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.

In [16]:
sonuc_tablosu = Simbad.query_object("NGTS-*[b-i]", wildcard=True)
sonuc_tablosu
Out[16]:
Table length=35
main_idradeccoo_err_majcoo_err_mincoo_err_anglecoo_wavelengthcoo_bibcodematched_id
degdegmasmasdeg
objectfloat64float64float32float32int16str1objectobject
NGTS-6b75.79542850055-30.399366349580.00910.010290O2020yCat.1350....0GNGTS-6b
NGTS-7Ab352.5218160956579-38.969850785586950.06790.101290O2018yCat.1345....0GNGTS-7Ab
NGTS-8b328.97582610528-14.0683959650800020.01570.015390O2020yCat.1350....0GNGTS-8b
NGTS-9b141.92067062426-19.3476555154999980.00980.010590O2020yCat.1350....0GNGTS-9b
NGTS-10b91.87224-25.59490999999999555.021.090O2012yCat.1322....0ZNGTS-10b
NGTS-1b82.71438443740001-36.6308043556300050.01340.015790O2020yCat.1350....0GNGTS-1b
...........................
NGTS-28Ab212.9294884603658-29.9750468095952730.03810.029490O2018yCat.1345....0GNGTS-28Ab
CD-32 1952b70.99758789631-31.9065005498700030.00840.009490O2020yCat.1350....0GNGTS-29b
NGTS-33b107.83336103924-35.8505465527799960.00950.010990O2020yCat.1350....0GNGTS-33b
NGTS-31b80.42127306748333-38.656802234701940.08510.091290O2020yCat.1350....0GNGTS-31b
NGTS-32b223.85771860788995-18.432310121035830.01270.010190O2020yCat.1350....0GNGTS-32b
NGTS-30b173.71475459885-24.6052678021900030.00870.008590O2020yCat.1350....0GNGTS-30b

Bir ya da daha fazla karakterin yerini tutmak üzere kulanabileceğiniz tüm karakterleri (ing. wildcard) öğrenmek için list_wildcards() metodu kullanılabilir.

In [17]:
Simbad.list_wildcards()
*: Any string of characters (including an empty one)
?: Any character (exactly one character)
[abc]: Exactly one character taken in the list. Can also be defined by a range of characters: [A-Z]
[^0-9]: Any (one) character not in the list.

Bölge sorgularında (query_region) varsayılan yarıçap $20$ yaydakikasıdır ve astropy.units kullanılarak değiştirilebilir.

In [18]:
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)
          main_id                   ra         ...     coo_bibcode    
                                   deg         ...                    
--------------------------- ------------------ ... -------------------
        NVSS J023643+891702            39.1805 ... 1998AJ....115.1693C
                * alf UMi B     37.65035851025 ... 2020yCat.1350....0G
                 AG+88    8     34.08260578251 ... 2020yCat.1350....0G
              UCAC3 359-258     38.80025780523 ... 2020yCat.1350....0G
Gaia DR3 576402619921730176 38.628532389970005 ... 2020yCat.1350....0G
                     PWP  8  38.78766666666667 ...                    
              UCAC3 359-247  37.68476049692999 ... 2020yCat.1350....0G
        NVSS J024928+891637  42.49918000000001 ... 2017A&A...598A..78I
                      RN  6  40.32083333333333 ... 1962MNRAS.125...39R
                  * alf UMi 37.954560670189856 ... 2007A&A...474..653V
            IRAS 02057+8857  42.44204677197136 ... 1988NASAR1190....1B
              UCAC3 359-198      32.5248133477 ... 2020yCat.1350....0G
    2MASX J02341709+8920469     38.56836674833 ... 2020yCat.1350....0G

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.

In [19]:
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)
          main_id                   ra         ...     coo_bibcode    
                                   deg         ...                    
--------------------------- ------------------ ... -------------------
Gaia DR3 576385646213013120     86.82098786546 ... 2020yCat.1350....0G
Gaia DR3 576385508774064896      82.4676383511 ... 2020yCat.1350....0G
    2MASS J05055659+8931147     76.48878618607 ... 2020yCat.1350....0G
Gaia DR3 576385508774065024     82.42077114791 ... 2020yCat.1350....0G
              TYC 4629-45-1     69.24859504112 ... 2020yCat.1350....0G
             TYC 4629-103-1         82.4201875 ... 2016A&A...595A...2G
                        ...                ... ...                 ...
                 LP    1-11    111.28401766364 ... 2020yCat.1350....0G
                BD+89     5    109.54567181862 ... 2020yCat.1350....0G
                BD+89     4    134.07943646285 ... 2020yCat.1350....0G
              TYC 4643-20-1    141.49973527534 ... 2020yCat.1350....0G
                  HD  21070    146.58425759371 ... 2020yCat.1350....0G
                BD+89     1    177.43761821527 ... 2020yCat.1350....0G
   WISE J142952.99+893931.0 217.47188518572162 ... 2020yCat.1350....0G
Length = 84 rows
WARNING: AstropyDeprecationWarning: "equinox" was deprecated in version 0.4.8 and will be removed in a future version.  [warnings]
WARNING: AstropyDeprecationWarning: "epoch" was deprecated in version 0.4.8 and will be removed in a future version.  [warnings]

Görüldüğü gibi uyarı mesajında astroquery 0.4.8 versiyonu itibarı ile epoch ve equinox anahtar kelimelerinin kullanımının desteklenmeyeceği ileri sürümlerde de kaldırılacağı belirtilmektedir.

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.

In [20]:
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
Out[20]:
Table length=36
main_idradeccoo_err_majcoo_err_mincoo_err_anglecoo_wavelengthcoo_bibcode
degdegmasmasdeg
objectfloat64float64float32float32int16str1object
WiggleZ R01J005952967+0104485314.97073451.08012------O2018MNRAS.474.4151D
WiggleZ R01J010007335+0054245915.0306008999999960.906802------O2018MNRAS.474.4151D
WiggleZ R01J010013137+0058517115.0547748999999950.9810019999999998------O2018MNRAS.474.4151D
WiggleZ R01J010013498+0056491415.05627790.946956------O2018MNRAS.474.4151D
WiggleZ R01J010016989+0056531615.0708263999999980.948073------O2018MNRAS.474.4151D
WiggleZ R01J010017320+0058345915.0722049000000040.976247------O2018MNRAS.474.4151D
........................
[PWJ2018] J005953.59+005630.9914.9736017000000010.9419325700000002------O2018MNRAS.480..707P
SDSS J010001.86+010125.515.0077740000000011.0237499999999997------O2020ApJS..249....3A
SDSS J010014.44+010418.315.0602071.071778------O2020ApJS..249....3A
SDSS J235939.56-005818.0359.91485-0.971687------O2018A&A...613A..51P
SDSS J000004.78-005434.60.019943-0.909635------O2018A&A...613A..51P
SDSS J000012.28-010405.50.051175-1.068212------O2018A&A...613A..51P

Bir cismin alternatif isimlerini öğrenmek için aşağıdaki gibi bir sorgu kurgulanabilir.

In [21]:
sorgu = Simbad.query_objectids("TYC 7282-1298-1")
sonuc_tablosu = [isim[0] for isim in sorgu]
print(sonuc_tablosu)
['TIC 125739286', 'TOI-1934', 'Gaia DR3 6220602384081327104', 'GSC 07282-01298', 'TYC 7282-1298-1', '2MASS J14202949-3112074', 'RAVE J142029.5-311208', 'NGTS-2', 'Gaia DR1 6220602379784456320', 'Gaia DR2 6220602384081327104', 'CD-30 11338']

Başa Dön

SIMBAD Veritabanında Kaynakça Sorguları¶

Bibliyografik kodu bilinen herhangi bir yayında veri tabanında aranabilir.

In [22]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_bibcode('2011A&A...535A..17B')
print(sonuc_tablosu)
      bibcode                   doi             journal ... volume year
------------------- --------------------------- ------- ... ------ ----
2011A&A...535A..17B 10.1051/0004-6361/201117740     A&A ...    535 2011

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.

In [23]:
sonuc_tablosu.columns
Out[23]:
<TableColumns names=('bibcode','doi','journal','nbobject','page','last_page','title','volume','year')>
In [24]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_bibobj('2011A&A...535A..17B')
print(sonuc_tablosu)
  main_id           ra         ...       bibcode       obj_freq
                   deg         ...                             
----------- ------------------ ... ------------------- --------
  HD 136713 230.65289577237996 ... 2011A&A...535A..17B        1
  HD  84117  145.5600675122075 ... 2011A&A...535A..17B        1
  * mu. Ara    266.03626308953 ... 2011A&A...535A..17B        1
  HD  21693     51.80200637076 ... 2011A&A...535A..17B        3
* lam02 For  39.24419895574001 ... 2011A&A...535A..17B        1
  HD 134606    228.81268600902 ... 2011A&A...535A..17B        1
        ...                ... ...                 ...      ...
  HD  85859    148.55132004203 ... 2011A&A...535A..17B        1
  * alf CMi 114.82549790798149 ... 2011A&A...535A..17B        3
  *  61 Vir 199.60130827686294 ... 2011A&A...535A..17B        1
  * eps Ind  330.8402234423433 ... 2011A&A...535A..17B        1
  * 140 Pup 115.09671017844005 ... 2011A&A...535A..17B        1
  HD 144585 241.76404023893997 ... 2011A&A...535A..17B        1
  HD 215456    341.53347604872 ... 2011A&A...535A..17B        3
Length = 66 rows
In [25]:
sonuc_tablosu.columns
Out[25]:
<TableColumns names=('main_id','ra','dec','coo_err_maj','coo_err_min','coo_err_angle','coo_wavelength','coo_bibcode','bibcode','obj_freq')>

Başa Dön

SIMBAD Veritabanında Kritere Dayalı Sorgular¶

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. astroquery.simbad bu arayüzün kullanılmasına olanak sağlayan fonksiyonlara da sahiptir. Örneğin Simbad kataloğunda bulunan 12 kadirden daha parlak kataklizmik değişenlerin 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. Ayrıca nesne türü bazında araştırma yapmak için de Simbad'ın nesne sınıflandırma listesini incelemek gerekir.

In [26]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_criteria('Vmag < 12 & maintype = "CV*"')
print(sonuc_tablosu)
WARNING: AstropyDeprecationWarning: 'query_criteria' is deprecated. It uses the former sim-script (SIMBAD specific) syntax (see https://simbad.cds.unistra.fr/simbad/sim-fsam). Possible replacements are the 'criteria' argument in the other query methods or custom 'query_tap' queries. These two replacements use the standard ADQL syntax. [warnings]
Unrecognized character '"' at position 23 for a sim-script criteria.
Unrecognized character '"' at position 27 for a sim-script criteria.
        main_id                 ra         ...     coo_bibcode    
                               deg         ...                    
----------------------- ------------------ ... -------------------
              NSV 12245    294.54255208459 ... 2020yCat.1350....0G
              NSV   786     35.59426354934 ... 2020yCat.1350....0G
            V* V364 Lib    227.44405954228 ... 2020yCat.1350....0G
              V* QU Car    166.42702457245 ... 2020yCat.1350....0G
CXOGlb J002407.7-720527  6.031391345530001 ... 2020yCat.1350....0G
2MASS J00240462-7204462  6.019245510041667 ... 2018yCat.1345....0G
                    ...                ... ...                 ...
            CD-42 14462    296.91887106978 ... 2020yCat.1350....0G
              V* EM Cyg    294.66711207121 ... 2020yCat.1350....0G
               V* V Sge    305.06121294178 ... 2020yCat.1350....0G
           V* V1129 Cen 189.78289530921998 ... 2020yCat.1350....0G
         LF  1 +05  109    292.71149471398 ... 2020yCat.1350....0G
            CD-48  3547     122.5253079903 ... 2020yCat.1350....0G
            BD+08   102     11.00549348787 ... 2020yCat.1350....0G
Length = 29 rows

Uyarı mesajından da anlaşılacağı üzere astroquery 0.4.8 itibarı ile query_criteria kullanımının da desteklenmeyecek ve ileri versiyonlarda kullanımına son verilebilecektir. Bunun yerine tüm sorgu fonksiyonlarına (query_object, query_objects, query_region, query_catalog, query_bibobj, query_bibcode, query_objectids) citeria anahtarı eklenmiş durumdadır. İstenen koşullar bu anahtar için boolean türünde veya boolean sonuç verebilecek koşullar şeklinde sağlanabilir.

In [27]:
Simbad.query_catalog(catalog="ESO").columns
Out[27]:
<TableColumns names=('main_id','ra','dec','coo_err_maj','coo_err_min','coo_err_angle','coo_wavelength','coo_bibcode','catalog_id')>
In [28]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_catalog(catalog="ESO",criteria='(ra > 16) and (dec > -27)')
print(sonuc_tablosu)
   main_id            ra         ...     coo_bibcode     catalog_id
                     deg         ...                               
------------- ------------------ ... ------------------- ----------
   ESO 530-20  317.9216666666666 ... 1996AJ....112..871B ESO 530-20
      IC 4231 200.80761666666666 ... 2006AJ....131.1163S ESO 508-60
MCG-04-30-001 187.14634555430996 ... 2020yCat.1350....0G  ESO 574-2
MCG-04-32-038         203.452425 ... 2006AJ....131.1163S ESO 509-59
    NGC  5757 221.94329713682998 ... 2020yCat.1350....0G ESO 580-33
      IC 1386 322.40592455094003 ... 2020yCat.1350....0G ESO 599-16
          ...                ... ...                 ...        ...
MCG-04-33-040           211.1931 ... 2006AJ....131.1163S ESO 510-59
MCG-04-31-026          196.47158 ... 2020MNRAS.494.1784A  ESO 508-2
   ESO 508-23 197.64579166666667 ... 2009MNRAS.399..683J ESO 508-23
   ESO 508-35 199.44970999999998 ... 2020MNRAS.494.1784A ESO 508-35
   ESO 509-43          202.97317 ... 2020MNRAS.494.1784A ESO 509-43
   ESO 509-96 205.73078999999998 ... 2020MNRAS.494.1784A ESO 509-96
    NGC  2354 108.49666666666667 ... 2023A&A...674A..37G  ESO 492-6
Length = 3778 rows
In [ ]:
Simbad.query_tap('SELECT cat_name, description FROM cat ORDER BY "size" DESC')

Başa Dön

SIMBAD Veritabanı Sorgularındaki Ayarlar¶

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. Bu ayarlar ayrıca astroquery.cfg konfigürasyon dosyasında da yer almaktadır. Bu dosyadan değiştirilerek kalıcı hale de getirilebilir.

Bunun yanı sıra tüm veriyi bir pandas veriçerçevesine alıp, pandas paketi görüntüleme opsiyonları (pandas.options) ile de bu tür ayarlar yapılablir.

In [29]:
Simbad.ROW_LIMIT = 15 
Simbad.TIMEOUT = 60

Başa Dön

Sanal Gözlemevi Alanlarıyla Sorgunun Genişletilmesi¶

Simbad gibi gelişmiş astronomi veritabanları Sanal Gözlemevi (virtual observatory -- VO) yapılarında tanımlı standartlara uydukları için sütun isimlendirme ve yapıları da bu standartlar dahilindedir. Dolayısıyla Simbad sorgularında standart bilgilere (main_id,coo_wavelength gibi) başka ölçüm ve bilgilere de VO alanlarını ekleyerek ulaşmak mümkündür. Simbad'da erişilebilir sanal gözlemevi alanlarının bir listesini elde etmek için votable.fields() fonksiyonu kullanılabilir.

In [30]:
Simbad.get_field_description('velocity')
Out[30]:
'all fields related with radial velocity and redshift'

Örnek olarak EL CVn yıldızı için oluşturulan tabloya sanal gözlemevi alanları add_votable_fields fonksiyonuyla eklenebilir. Bu amaçla standart sütunları döndüren bir Simbad sorgusu yerine yeni bir Simbad sorgusu kurgularken bu sütunların da sorguya dahil edilmesi istenir.

In [31]:
customSimbad = Simbad()
customSimbad.add_votable_fields('otype','mesdistance', 'velocity')
ELCVn = customSimbad.query_object("EL CVn")
ELCVn.pprint(show_unit=True)
ELCVn.colnames
 main_id         ra            dec       ... rvz_err_prec matched_id
                deg            deg       ...                        
--------- --------------- -------------- ... ------------ ----------
V* EL CVn 200.98757818535 43.59873298072 ...            1  V* EL CVn
V* EL CVn 200.98757818535 43.59873298072 ...            1  V* EL CVn
Out[31]:
['main_id',
 'ra',
 'dec',
 'coo_err_maj',
 'coo_err_min',
 'coo_err_angle',
 'coo_wavelength',
 'coo_bibcode',
 'otype',
 'mesdistance.bibcode',
 'mesdistance.dist',
 'mesdistance.dist_prec',
 'mesdistance.mespos',
 'mesdistance.method',
 'mesdistance.minus_err',
 'mesdistance.minus_err_prec',
 'mesdistance.plus_err',
 'mesdistance.plus_err_prec',
 'mesdistance.qual',
 'mesdistance.unit',
 'rvz_radvel_prec',
 'rvz_radvel',
 'rvz_type',
 'rvz_qual',
 'rvz_redshift_prec',
 'rvz_err',
 'rvz_wavelength',
 'rvz_bibcode',
 'rvz_nature',
 'rvz_redshift',
 'rvz_err_prec',
 'matched_id']
In [32]:
print("EL CVn {} turunde bir degisen olup {:.2f} {} uzakliktadir.".
      format(ELCVn['otype'][0], ELCVn['mesdistance.dist'][0], 
             ELCVn['mesdistance.unit'][0]))
EL CVn SB* turunde bir degisen olup 266.46 pc   uzakliktadir.

Bir yıldızın tayf türünü (veritabanında bulunmak şartıyla) elde etmek üzere başka bir örnek aşağıda verilmiştir. Yine öcelikle Simbad() veritabanı nesnesinin bir olgusu (instance) oluşturulur. Daha sonra bu olguya VO tablosu sütunları eklenir (add_votable_fields). Bu durumda eğer bilgi veritabanında varsa ona da sütun adı (sptype) üzerinden erişilebilir.

In [33]:
customSimbad = Simbad()
customSimbad.add_votable_fields('sp_type')
result = customSimbad.query_object('EL CVn')
result
Out[33]:
Table length=1
main_idradeccoo_err_majcoo_err_mincoo_err_anglecoo_wavelengthcoo_bibcodesp_typematched_id
degdegmasmasdeg
objectfloat64float64float32float32int16str1objectobjectobject
V* EL CVn200.9875781853543.598732980720.00920.013690O2020yCat.1350....0GA1VV* EL CVn
In [34]:
result['sp_type']
Out[34]:
<MaskedColumn name='sp_type' dtype='object' description='MK spectral type' length=1>
A1V

Standart sütunlara yenileri eklenebileceği gibi (add_votable_fields()) çıkarılabilir de (remove_votable_fields()). Sanal gözlemevi tabloları eski haline döndürülmek istendiğinde reset_votable_fields fonksiyonu kullanılır.

In [35]:
Simbad.add_votable_fields('velocity')
Simbad.query_objects(['M51', 'Proxima', 'Antares'])
Out[35]:
Table length=3
main_idradeccoo_err_majcoo_err_mincoo_err_anglecoo_wavelengthcoo_bibcodervz_radvel_precrvz_radvelrvz_typervz_qualrvz_redshift_precrvz_errrvz_wavelengthrvz_bibcodervz_naturervz_redshiftrvz_err_precuser_specified_idobject_number_id
degdegmasmasdegkm / skm / s
objectfloat64float64float32float32int16str1objectint16float64str1str1int16float32str1objectobjectfloat64int16objectint64
M 51202.46957547.19525833333333------I2006AJ....131.1163S0522.5438034260235cC66.671282e-06O2022ApJS..261....6K0.00174454021788633526M511
NAME Proxima Centauri217.42894222160578-62.679490189075550.0240.034490O2020yCat.1350....0G6-20.578199vA60.004684N2020AJ....160..120Js-6.863912763754865e-056Proxima2
* alf Sco247.3519154198264-26.43200261195083210.7103946.675245390O2007A&A...474..653V2-3.5vA--0.82006AstL...32..759G-1.1674675182926642e-051Antares3

Başa Dön

astroquery İle VizieR Sorguları¶

VizieR, astronomide sık kullanılan kataloglara ve bilimsel yayınların elektronik verilerine birden çok arabirim aracılığıyla erişim sağlayan büyük bir veritabanıdır. Sorgu araçları, kullanıcının ilgili veri tablolarını seçmesine ve verilen kriterlere uyan kayıtları çıkarmasına ve biçimlendirmesine olanak sağlar. 13 Mart 2023 tarihi itibarı ile 23136 katalog içeren VizieR'in tüm bu katalogları sorgulamak için bir de web arayüzü bulunmaktadır.

VizieR, CDS (Centre de Données astronomiques de Strasbourg) ve ESA-ESRIN'in (Bilgi Sistemleri Bölümü) ortak çabası olarak 1996'da kurulmuş bir servistir ve şu anda sadece CDS tarafından yönetilmektedir. Hal-i hazırda VizieR mevcut tüm çevrimiçi katalogları, bazı kataloglarının yapısının uygun olmaması, bazılarının ise VizieR'e hiç duyurulmayan, az kullanılan kataloglar olması nedeniyle içermemektedir. Bu tür katalogların bulunduğu sonunculara Astronomer's Bazaar FTP sunucusu yoluyla erişilebilir.

Belirli bir nesne hakkında bilgi için Vizier'deki çok sayıda katalog aşağıdaki şekilde taranabilir. Sonuç olarak aranan cismin adının geçtiği ve bir satır olarak içinde bulunduğu kataloglar ve bilimsel yayınların veri tabloları listelenir.

In [39]:
from astroquery.vizier import Vizier
# Hızlı radyo patlaması (Fast radio burst -- FRB)
# 121102 için bir arama aşağıdaki gibi kurgulanabilir.

result = Vizier.query_object("FRB121102")
print("Bu cismin içinde bulunduğu toplam {:d} katalog listelenmiştir".format(len(result)))
WARNING: UnitsWarning: Unit 'meta' not supported by the VOUnit standard.  [astropy.units.format.vounit]
WARNING: UnitsWarning: Unit 'code' not supported by the VOUnit standard.  [astropy.units.format.vounit]
WARNING: UnitsWarning: Unit 'Sun' not supported by the VOUnit standard. Did you mean uN? [astropy.units.format.vounit]
WARNING: UnitsWarning: Unit 'pct' not supported by the VOUnit standard. Did you mean PC, PT, Pct, pC, pT or pc? [astropy.units.format.vounit]
Bu cismin içinde bulunduğu toplam 253 katalog listelenmiştir

Örneğin $\gamma$-ışını gözlemleri yapan Fermi Geniş Alan Teleskobu'nun (Fermi-LAT) kataloğunun kataloğu aşağıdaki şekilde aranabilir.

In [40]:
catalog_list = Vizier.find_catalogs('Gamma', max_catalogs=10000)
In [41]:
print("İçinde Gamma kelimesi geçen toplam {:d} katalog listelenmiştir".format(len(catalog_list)))
İçinde Gamma kelimesi geçen toplam 616 katalog listelenmiştir

Bu kadar geniş bir listede Fermi-LAT kataloğunun hangi yayında yayınlanmış olduğunu belirlemek çok zor olacaktır. Eğer ilgili yayının en azından baş yazarı biliniyorsa ona başvurulabilir.

In [42]:
# Fewer results if we directly search for the author name:
catalog_list = Vizier.find_catalogs('Abdo', max_catalogs=10000)
print({k:v.description for k,v in catalog_list.items()})
{'J/ApJ/700/597': 'FERMI LAT detected blazars (Abdo+, 2009)', 'J/ApJ/715/429': 'First Fermi-LAT AGN catalog (1LAC) (Abdo+, 2010)', 'J/ApJ/716/30': 'SED of Fermi bright blazars (Abdo+, 2010)', 'J/ApJ/722/520': 'Gamma-ray light curves of Fermi blazars (Abdo+, 2010)', 'J/ApJS/183/46': 'Fermi/LAT bright gamma-ray source list (0FGL) (Abdo+, 2009)', 'J/ApJS/188/405': 'Fermi-LAT first source catalog (1FGL) (Abdo+, 2010)', 'J/ApJS/199/31': 'Fermi LAT second source catalog (2FGL) (Nolan+, 2012)', 'J/ApJS/208/17': '2nd Fermi LAT cat. of gamma-ray pulsars (2PC) (Abdo+, 2013)'}

Bu listede seçim yapmak daha kolaydır. Örneğin 2nd Fermi-LAT catalog of gamma-ray pulsars ('J/ApJS/208/17') kataloğu seçilebilir.

In [43]:
catalog = Vizier.get_catalogs('J/ApJS/208/17')
In [44]:
catalog.pprint()
TableList with 3 tables:
	'0:J/ApJS/208/17/psrcat' with 27 column(s) and 50 row(s) 
	'1:J/ApJS/208/17/offpk' with 23 column(s) and 50 row(s) 
	'2:J/ApJS/208/17/refs' with 4 column(s) and 50 row(s) 

Bu yayında yayınlanan 3 tablodan herhangi biri seçilip içeriğine bakılabilir.

In [47]:
catalog[0]
Out[47]:
Table length=50
NameRAJ2000DEJ2000PerEdotpmLumEffS1400NpkXFluxTypeLCSEDparfitsSimbadTS-cpInd1Sc1Ec1FphFergpInd0Sc0Fph0Ferg0
degdegms1e-07 Wmas / yr1e-07 W%mJymW / m2MeVMeVph / (s cm2)mW / m2MeVph / (s cm2)mW / m2
str11float64float64float32float64float32float64float64float64uint8float32str3str2str3str3str4str6int32float32float32float32float32float32float32int16float32float32
J0007+73031.756573.0523315.894.5e+35--9.39e+340.2099--29.8e-14YRQLCSEDparfitsSimbad18841.397727.44662.03.29e-074.01e-101.87110004.16e-078.14e-10
J0023+09235.82039.39003.051.5e+34--4.56e+320.03020.18922.1e-14MSPLCSEDparfitsSimbad161.4051000.01408.01.18e-088.01e-122.36710002.02e-081.14e-11
J0030+04517.61434.86104.873.6e+335.705.76e+320.15890.60022.5e-13MSPLCSEDparfitsSimbad3161.211699.81820.06.6e-086.14e-112.04610009.88e-081.1e-10
J0034-05348.5910-5.57691.881.7e+3431.005.67e+320.03300.6102--MSPLCSEDparfitsSimbad451.436755.71831.02.18e-081.62e-112.21910003.32e-082.44e-11
J0101-642215.2963-64.37502.571e+3415.623.79e+320.03770.2802--MSPLCSEDparfitsSimbad590.6931139.01523.07.51e-091.05e-112.05110001.84e-082.02e-11
J0102+483915.711148.66192.961.7e+34--8.51e+330.48610.2182--MSPLCSEDparfitsSimbad291.4011000.03160.01.32e-081.32e-112.14510002.29e-081.99e-11
.................................................................................
J1231-1411187.7971-14.19553.685.2e+3362.202.36e+330.45870.16134.1e-13MSPLCSEDparfitsSimbad4461.241864.12673.09.2e-081.03e-101.95210001.35e-072.01e-10
J1357-6429209.2601-64.4917166.173.1e+36--2.53e+340.00820.44014.2e-14YRLLCSEDparfitsSimbad201.803949.6908.27.76e-083.39e-112.60910009.06e-083.79e-11
J1410-6132212.5920-61.533150.051e+37--7.66e+350.07666.6002--YRLLCSEDparfitsSimbad91.5646601.04262.02.8e-082.63e-112.15110004.1e-083.51e-11
J1413-6205213.3759-62.0935109.748.2e+35--------21.4e-13YRQLCSEDparfitsSimbad1801.5141429.04074.01.61e-071.57e-102.12810002.66e-072.4e-10
J1418-6058214.6783-60.9667110.584.9e+36--9.24e+340.0187--23.6e-14YRQLCSEDparfitsSimbad1721.7652978.05489.03.82e-073.02e-102.20610004.82e-073.64e-10
J1420-6048215.0343-60.804668.201e+37--6.39e+350.06190.90021.6e-13YRLLCSEDparfitsSimbad511.5112749.01634.02.56e-071.7e-102.22410002.26e-071.64e-10

Başa Dön

VizieR'de Bölge Sorguları¶

Simbad veritabanındakine benzer şekilde VizieR katalogları için de bölge sorguları yazılabilir. Bu amaçla astropy.SkyCoord fonksiyonları kullanılarak sorgu daha da esnek ve verimli hale getirilebilir.

Örneğin NOMAD kataloğunda (Zacharias+2004) (Naval Observatory Merged Astrometric Dataset) Crab Bulutsusu etrafında $2^{\circ}$ yarıçaplı bir alanda yer alan, B-bandında $9^{m}$ kadirden daha parlak kaynakları belirlemek için aşağıdaki bir sorgu yazılabilir. Bu amaçla VizieR modülü başlatılırken B-bandı parlaklığına ($Bmag$) göre bir filtre yapmak üzere column_filters parametresi kullanılabilir. Listelenen kaynak sayısını sınırlamamak amacıyla query nesnesi için satır limiti ROW_LIMIT=-1 'e ayarlanır.

In [48]:
from astroquery.vizier import Vizier
from astropy.coordinates import SkyCoord
from astropy import units as u

# Select only bright stars
v = Vizier(column_filters={"Bmag":"<9"})
v.ROW_LIMIT = -1
crabNebula = SkyCoord.from_name('Crab Nebula')  
result = v.query_region(crabNebula, radius=2.0*u.deg, catalog='NOMAD')
result[0]
Out[48]:
Table length=32
NOMAD1RAJ2000DEJ2000YMrpmRAe_pmRApmDEe_pmDEBmagr_BmagVmagr_VmagRmagr_RmagJmagHmagKmagR
degdegmas / yrmas / yrmas / yrmas / yrmagmagmagmagmagmag
str12float64float64str2str1float64float32float64float32float32str1float32str1float32str1float32float32float32str1
1105-007790582.562753120.5515931YMH-8.81.0-17.70.57.018T7.044T7.050B7.0467.0757.078
1113-008765882.314991121.3158950YMH9.41.2-27.00.58.699T8.166T7.810B7.0816.8846.828
1112-009459985.058468321.2859928YMH-14.31.3-10.10.98.938T8.574T8.320B7.6877.5817.493
1113-009513785.036301121.3400794YMC0.10.6-1.90.68.996T8.872T8.790B8.5618.5508.534
1104-007893983.411825820.4742161YMH2.91.0-7.40.56.153T6.186T6.220B6.1556.1686.177
1107-008319884.260359720.7307878.MH-79.71.3-419.90.88.316T7.659T--6.3586.0205.951
.........................................................
1131-010981284.402420023.1388575YMH0.61.7-7.00.88.733T8.793T8.830B8.7588.8368.838
1131-010984284.409150623.1474531YMH-0.71.8-5.00.98.983T8.960T8.950B8.5638.4748.282
1127-009673482.107106122.7425467YMH-0.41.2-35.60.68.382T7.218T6.510B5.2354.8394.562
1131-010456782.636041723.1894972..B32.010.0-50.01.08.990B--19.090e------
1132-010153081.980866923.2930592YMH-2.02.3-47.01.28.468T8.255T8.130B7.8177.7537.719
1132-010153981.982163123.2926986.MH-2.02.2-47.01.32.938T13.345T13.520B8.6548.5108.570

Listelenen kaynakların sağaçıklık, dikaçıklık ve B-bandı parlaklıklarını listelemek için aşağıdaki gibi bir kod yazılabilir.

In [49]:
nomad_query = result[0]
nomad_query['RAJ2000', 'DEJ2000','Bmag']
Out[49]:
Table length=32
RAJ2000DEJ2000Bmag
degdegmag
float64float64float32
82.562753120.55159317.018
82.314991121.31589508.699
85.058468321.28599288.938
85.036301121.34007948.996
83.411825820.47421616.153
84.260359720.73078788.316
.........
84.402420023.13885758.733
84.409150623.14745318.983
82.107106122.74254678.382
82.636041723.18949728.990
81.980866923.29305928.468
81.982163123.29269862.938

Bu tablo bir astropy.table yapısındadır. type(nomad_query)

In [50]:
type(nomad_query)
Out[50]:
astropy.table.table.Table

Bu kaynaklardan hangisinin gözlem sırasında (astropy.time.Time.now()) problem yaratacağı aşağıdaki gibi bir sorguyla ufuk koordinat sistemine (alt-az) dönüşüm yapılarak denetlenebilir.

In [51]:
from astropy import coordinates as c
from astropy.coordinates import SkyCoord
from astropy import time as t

aukr = c.EarthLocation( lat=39.9055*u.deg, lon=-32.75*u.deg )
star_coord = SkyCoord(ra=nomad_query['RAJ2000'], dec=nomad_query['DEJ2000'], frame='icrs')
star_coord_altAz = star_coord.transform_to( c.AltAz(obstime=t.Time.now(), location=aukr) )
nomad_query['alt'] = star_coord_altAz.alt
nomad_query['az'] = star_coord_altAz.az
In [52]:
nomad_query.sort('Bmag')
nomad_query['Bmag', 'alt', 'az'].pprint()
 Bmag          alt                 az        
 mag           deg                deg        
------ ------------------- ------------------
 2.800  -4.766625955996785 57.186401700121614
 2.938  -1.657031503337436  57.29171561822483
 4.720 -2.5705128619994455 58.296665678946745
 6.153  -4.596150730834444   58.3262253041099
 6.489  -4.609575310268534 56.451068345802575
 7.018 -3.9834568460108364 58.840618966385655
   ...                 ...                ...
 8.938  -5.080308109650398  56.64928980790699
 8.962 -4.2313415369399445  57.91582505130589
 8.983 -3.3190426752672795  55.79548020791816
 8.990  -2.152922774072885  56.93683923895694
 8.990   -4.60130033667906 56.459690456455476
 8.992  -3.975110314491628  56.60188908968883
 8.996  -5.026898333491556  56.62684436436388
Length = 32 rows

Başa Dön

SkyView ve VizieR Kataloglarını Kullanarak Görüntü Üzerinde Kaynak Belirleme¶

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.

In [53]:
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-H')

# 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()

Başa Dön

astroquery İle SAO/NASA ADS Sorguları¶

SAO/NASA Astrophysics Data System astronomların literatür taramak üzere neredeyse her gün, belki defalarca sorguladıkları 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 taranabilir.

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.

In [62]:
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_kullanici_token_bilginiz'

# 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','bibcode']

# 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="^Basturk exoplanet")

# aramanizi istediginiz bir kritere gore sonradan da siralayabilirsiniz
sonuclar.sort(['pubdate'])

#  en son sonucunu basligi
sonsonuc_baslik = sonuclar[-1]['title'][0]
print(sonsonuc_baslik)
print("---")
# en son sonucun yazar listesi
print(sonuclar[-1]['author'])
print("----")
# Kendi terchinize gore bir kaynakca cumlesi olusturabilirsiniz
src = sonuclar[-1]
print("----")
print(src['author'][0] + " et al., " + src['pubdate'][:4] + ", "+ 
      src['pub'] + ", " + src['volume'] + ", " + src['page'])
A detailed study of the physical and orbital characteristics, and eclipse timing variations of the Post Common Envelope Binary DD CrB
---
['Baștürk, Ö.', 'Sertkan, E.', 'Akar, F.', 'Munari, U.', 'Güler, B.', 'Esmer, E. M.', 'Selam, S. O.', 'Kutluay, A. C.', 'Wolf, M.', 'Zasche, P.', 'Kučáková, H.', 'Zejda, M.', 'Şimșir, Ö.']
----
----
['Baștürk, Ö. et al., 2026, Monthly Notices of the Royal Astronomical Society, 547, stag290']
In [55]:
na.ADS.ADS_FIELDS
Out[55]:
['bibcode',
 'title',
 'author',
 'aff',
 'pub',
 'volume',
 'pubdate',
 'page',
 'citation',
 'citation_count',
 'abstract',
 'doi',
 'eid']

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ışılmaktadı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.

Başa Dön

astroquery İle Gaia Veritabanı Sorguları¶

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 yapmaktadı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. Eşzamanlı (senkronize) sorgularda sorgunun sonucu döndürülene kadar uygulamadaki başka hiçbir iş (task) gerçekleştirilmez. Uygulamalar, sorgunun veritabanına ilk gönderildiği andan sonuçların alınıp uygulamaya döndürülmesine kadar tüm gidiş-dönüş boyunca bloke edilirler. Bu nedenle, sorgular bir sıra dahilinde gönderilir; biri bitmeden diğeri başlamaz ve beşer dakika çalışacak üç sorgu toplamda 15 dakikada sonuçlanır. Birinin çıktısı diğerine girdi yapılabilir.

  • 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. bu durumda sorgular aynı anda gönderilip, aynı anda çalışabilir; yukarıdaki örnekten hareketle beşer dakika sürecek üç sorgunun tamamlanması toplamda yine beş dakika sürer.

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.

In [64]:
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(5, u.arcmin)
dec_aralik = u.Quantity(5, u.arcmin)
sorgu = Gaia.query_object_async(coordinate=koor, width=ra_aralik, height=dec_aralik)
sorgu.pprint()
INFO: Query finished. [astroquery.utils.tap.core]
        dist             solution_id     ... libname_gspphot
                                         ...                
-------------------- ------------------- ... ---------------
8.12999932684406e-05 1636148068921376768 ...           MARCS
 0.01063458364251909 1636148068921376768 ...                
0.012981729313519593 1636148068921376768 ...                
 0.01472069092025784 1636148068921376768 ...           MARCS
0.015448912358367255 1636148068921376768 ...           MARCS
0.015718997391186474 1636148068921376768 ...                
                 ...                 ... ...             ...
 0.03991869593579646 1636148068921376768 ...           MARCS
 0.04018281488943359 1636148068921376768 ...                
0.040265345576854114 1636148068921376768 ...           MARCS
 0.04052066805323567 1636148068921376768 ...                
 0.04192214303984556 1636148068921376768 ...                
0.044635447380637634 1636148068921376768 ...                
0.047210242174149215 1636148068921376768 ...                
Length = 34 rows
In [66]:
sorgu['designation'][0]
Out[66]:
'Gaia DR3 365426679516816512'
In [67]:
sorgu_simbad = Simbad.query_objectids(sorgu['designation'][0])
sonuc_tablosu = [isim[0] for isim in sorgu_simbad]
print(sonuc_tablosu)
['TIC 267650535', 'UCAC4 624-001874', 'WISE J003803.98+344241.2', 'LAMOST J003804.01+344241.6', 'LAMOST J003804.01+344241.5', 'Gaia DR3 365426679516816512', 'Gaia DR2 365426679516816512', 'UCAC2  43902188', 'UCAC3 250-4408', '2MASS J00380401+3442416', 'HAT-P-19', 'GSC 02283-00589', 'TOI-3597']

İstenirse böyle bir sorgu isim üzerinden yapılmak üzere SIMBAD sorgularıyla birleştirilebilir.

Başa Dön

astroquery İle NASA Exoplanet Archive Sorguları¶

NASA Exoplanet Archive veritabanı keşfedilen aday ve onaylanmış ötegezegenler ile onların barınak yıldızları hakkında farklı literatür kaynaklarında yayınlanmış bilgi ve parametrelere erişmek için NASA tarafından geliştirilmiş bir veritabanıdır. Veritabanını astroquery fonksyonlarıyla sorgulamak için astroquery.ipac.nexsci.nasa_exoplanet_archive modülü kullanılır. Veritabanının sorgulamalar için bir web arayüzü bulunduğu gibi TAP ve API arayüzleri de bulunmaktadır.

Örneğin WASP-43 b ötegezegenine ilişkin bilgilere erişmek için aşağıdaki gibi bir sorgu yazılabilir. Bu fonksiyonun parametrelerini doğru belirlemek önem taşımaktadır. Zira bir gezegen sisteminin farklı isimlerle de bulunabildiği "aliastable" için API desteği artık bulunmamaktadır. Bu nedenel regularize parametresinin False değerine atanması gerekir. Aksi takdirde fonksiyonu ismi verilen gezegen ya da barınak yıldız için aynı gezegenin farklı isimlerle geçtiği satırları da getirmek için aliastable tablosunu taramaktadır ancak bu tabloya API desteği bulunmamaktadır. Ayrıca, table parametresinin doğru ayarlanması da önemlidir. Bu parametrenin varsayılan değeri olan ps birden fazla yayından parametrelerin alınabildiği ve her bir gezegen için veritabanında parametre alınan yayın sayısı kadar satırın bulunduğu tablodur. Genellikle keşif yayınından ilgili parametrelerin alınıp, diğer parametrelerin de başka yayınlardan tamamlandığı, dolayısıyla her gezegenin tek bir parametre setiyle ve satırla temsil edildiği tablo (Composite Planet Table) kullanılmak istendiğinde bu parametre pscomppars değerine ayarlanır.

In [68]:
from astroquery.ipac.nexsci.nasa_exoplanet_archive import NasaExoplanetArchive
exo_sorgu = NasaExoplanetArchive.query_object(object_name="WASP-43",table="ps", regularize=False)
In [69]:
len(exo_sorgu.colnames)
Out[69]:
356

WASP-43 b örneğinde (bir yarıçap değerinin verildiği) ilgili yayınlardaki yarıçap değerleri Jüpiter yarıçapı cinsinden alınmak istenirse aşağıdaki gibi bir sorgu yazılabilir.

In [70]:
import pandas as pd
for satir in exo_sorgu:
    if not(pd.isna(satir['pl_radj'])):
        print("{:s} gezegeninin {:s} referasindaki yaricapi {:.2f}".
              format(satir['pl_name'], satir['pl_refname'], satir['pl_radj']))
WASP-43 b gezegeninin <a refstr=ESPOSITO_ET_AL__2017 href=https://ui.adsabs.harvard.edu/abs/2017A&A...601A..53E/abstract target=ref>Esposito et al. 2017</a> referasindaki yaricapi 1.01 jupiterRad
WASP-43 b gezegeninin <a refstr=SALZ_ET_AL__2015 href=https://ui.adsabs.harvard.edu/abs/2015A&A...576A..42S/abstract target=ref>Salz et al. 2015</a> referasindaki yaricapi 0.93 jupiterRad
WASP-43 b gezegeninin <a refstr=HELLIER_ET_AL__2011 href=https://ui.adsabs.harvard.edu/abs/2011arXiv1104.2823H/abstract target=ref> Hellier et al. 2011 </a> referasindaki yaricapi 0.93 jupiterRad
WASP-43 b gezegeninin <a refstr=BONOMO_ET_AL__2017 href=https://ui.adsabs.harvard.edu/abs/2017A&A...602A.107B/abstract target=ref>Bonomo et al. 2017</a> referasindaki yaricapi 1.04 jupiterRad
WASP-43 b gezegeninin <a refstr=EXOFOP href=https://exofop.ipac.caltech.edu/tess/view_toi.php target=ref>ExoFOP</a> referasindaki yaricapi 1.17 jupiterRad

query_criteria Simbad sorguları için astroquery'de "Deprecated" uyarısı verse ve gelecekte kaldırılacak olsa da NASA Exoplanet Archive sorgularında çalışmaktadır.

In [74]:
exo_sorgu2 = NasaExoplanetArchive.query_criteria(table="pscomppars",
                                                 where="pl_name = 'WASP-43 b'")
print(exo_sorgu2)
objectid  pl_name  pl_letter ... pl_ndispec       sky_coord       
                             ...                   deg,deg        
-------- --------- --------- ... ---------- ----------------------
 3.11469 WASP-43 b         b ...          0 154.9081869,-9.8064431
In [75]:
exo_sorgu2['sky_coord']
Out[75]:
<SkyCoord (ICRS): (ra, dec) in deg
    [(154.9081869, -9.8064431)]>

Başa Dön

Kaynaklar¶

  • astropy.table Dokümantasyonu
  • astroquery Dokümantasyonu
  • SAO/NASA Astrophysics Data System
  • SIMBAD Veritabanı
  • Gaia Veritabanı
  • SkyView Veritabanı
  • Vizier Veritabanı
  • ads Paketi github sayfası
  • ads Paketi Dokümantasyonu
  • Databases & On-line Data in Astronomy, Eds. Miguel A. Albrecht, Daniel Egret, 1991, Springer
  • Simbad ve VizieR sorgu örnekleri

Başa Dön