800100715151 Astronomide Veritabanları

Ders - 04 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

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.

astropy.astroquery İle Veritabanlarına Erişim

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.

In [1]:
from astroquery.simbad import Simbad
BBPeg = Simbad.query_object('BB Peg')
BBPeg.pprint()
 MAIN_ID        RA           DEC      ... COO_WAVELENGTH     COO_BIBCODE    
             "h:m:s"       "d:m:s"    ...                                   
--------- ------------- ------------- ... -------------- -------------------
V* BB Peg 22 22 56.8918 +16 19 27.858 ...              O 2018yCat.1345....0G

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.

In [2]:
BBPeg.columns
Out[2]:
<TableColumns names=('MAIN_ID','RA','DEC','RA_PREC','DEC_PREC','COO_ERR_MAJA','COO_ERR_MINA','COO_ERR_ANGLE','COO_QUAL','COO_WAVELENGTH','COO_BIBCODE')>

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 [3]:
print(BBPeg['COO_WAVELENGTH'])
COO_WAVELENGTH
--------------
             O
In [4]:
BBPeg['COO_BIBCODE']
Out[4]:
<MaskedColumn name='COO_BIBCODE' dtype='object' description='Coordinate reference' length=1>
2018yCat.1345....0G

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.

In [5]:
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)
        MAIN_ID                RA      ... COO_WAVELENGTH     COO_BIBCODE    
                            "h:m:s"    ...                                   
------------------------ ------------- ... -------------- -------------------
               V* BB Peg 22 22 56.8918 ...              O 2018yCat.1345....0G
            LEDA 1505483    22 22 45.2 ...              O 2003A&A...412...45P
                     ...           ... ...            ...                 ...
SDSS J222205.50+162455.4 22 22 05.5015 ...              O 2018yCat.1345....0G
         TYC 1682-1330-1 22 23 33.5845 ...              O 2018yCat.1345....0G
         LSPM J2223+1618 22 23 42.4734 ...              O 2018yCat.1345....0G
Length = 13 rows

astropy.astroquery API Kullanımı

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.

In [6]:
from astroquery.simbad import Simbad
Simbad.query_object("M 31")
Out[6]:
Table masked=True length=1
MAIN_IDRADECRA_PRECDEC_PRECCOO_ERR_MAJACOO_ERR_MINACOO_ERR_ANGLECOO_QUALCOO_WAVELENGTHCOO_BIBCODE
"h:m:s""d:m:s"masmasdeg
objectstr13str13int16int16float32float32int16str1str1object
M 3100 42 44.330+41 16 07.5077----0CI2006AJ....131.1163S

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 [7]:
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
Out[7]:
Table masked=True length=4
MAIN_IDRADECRA_PRECDEC_PRECCOO_ERR_MAJACOO_ERR_MINACOO_ERR_ANGLECOO_QUALCOO_WAVELENGTHCOO_BIBCODE
"h:m:s""d:m:s"masmasdeg
objectstr13str13int16int16float32float32int16str1str1object
HAT-P-19b00 38 04.0136+34 42 41.55214140.0290.02590CO2018yCat.1345....0G
HAT-P-1900 38 04.0136+34 42 41.55214140.0290.02590AO2018yCat.1345....0G
GSC 02283-0119700 38 09.3713+34 41 37.19014140.0290.02290AO2018yCat.1345....0G
TYC 2283-664-100 38 16.2616+34 45 03.40914140.0300.02290AO2018yCat.1345....0G

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

astropy.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 [8]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_object("NGTS-*", wildcard=True)
print(sonuc_tablosu)
          MAIN_ID                  RA      ...     COO_BIBCODE    
                                "h:m:s"    ...                    
---------------------------- ------------- ... -------------------
             UCAC2  16099071 05 30 51.4522 ... 2018yCat.1345....0G
             TYC 7282-1298-1 14 20 29.4890 ... 2018yCat.1345....0G
NAME NGTS J061746.7-354222.9 06 17 46.7535 ... 2018yCat.1345....0G
                     NGTS-3b 06 17 46.7535 ... 2018yCat.1345....0G
     2MASS J05582375-3048424 05 58 23.7549 ... 2018yCat.1345....0G
     2MASS J14441396+0536195 14 44 13.9704 ... 2018yCat.1345....0G
     2MASS J21555419-1404062 21 55 54.1981 ... 2018yCat.1345....0G
     2MASS J09274096-1920515 09 27 40.9610 ... 2018yCat.1345....0G
     2MASS J06072933-2535417 06 07 29.3498 ... 2018yCat.1345....0G
                     NGTS-2b 14 20 29.4890 ... 2018yCat.1345....0G
                     NGTS-5b 14 44 13.9704 ... 2018yCat.1345....0G
     2MASS J05031090-3023576 05 03 10.9028 ... 2018yCat.1345....0G
                     NGTS-6b 05 03 10.9028 ... 2018yCat.1345....0G
                      NGTS-7 23 30 05.2624 ... 2003yCat.2246....0C
                     NGTS-7A 23 30 05.2358 ... 2018yCat.1345....0G
                    NGTS-7Ab 23 30 05.2358 ... 2018yCat.1345....0G
                     NGTS-7B 23 30 05.3239 ... 2018yCat.1345....0G
                     NGTS-8b 21 55 54.1981 ... 2018yCat.1345....0G
                     NGTS-9b 09 27 40.9610 ... 2018yCat.1345....0G
                     NGTS-1b 05 30 51.4522 ... 2018yCat.1345....0G
                     NGTS-4b 05 58 23.7549 ... 2018yCat.1345....0G

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.

In [9]:
sonuc_tablosu = Simbad.query_object("NGTS-*[b-i]", wildcard=True)
sonuc_tablosu
Out[9]:
Table masked=True length=10
MAIN_IDRADECRA_PRECDEC_PRECCOO_ERR_MAJACOO_ERR_MINACOO_ERR_ANGLECOO_QUALCOO_WAVELENGTHCOO_BIBCODE
"h:m:s""d:m:s"masmasdeg
objectstr13str13int16int16float32float32int16str1str1object
NGTS-3b06 17 46.7535-35 42 23.04614140.0160.01790AO2018yCat.1345....0G
NGTS-2b14 20 29.4890-31 12 07.43714140.0530.04090AO2018yCat.1345....0G
NGTS-5b14 44 13.9704+05 36 19.41714140.0220.02190AO2018yCat.1345....0G
NGTS-6b05 03 10.9028-30 23 57.71914140.0110.01390AO2018yCat.1345....0G
NGTS-7Ab23 30 05.2358-38 58 11.46214140.0680.10190AO2018yCat.1345....0G
NGTS-7B23 30 05.3239-38 58 12.00814140.0650.21190AO2018yCat.1345....0G
NGTS-8b21 55 54.1981-14 04 06.22514140.0270.02790AO2018yCat.1345....0G
NGTS-9b09 27 40.9610-19 20 51.55814140.0320.03790AO2018yCat.1345....0G
NGTS-1b05 30 51.4522-36 37 50.89614140.0160.02090CO2018yCat.1345....0G
NGTS-4b05 58 23.7549-30 48 42.36214140.0170.01990AO2018yCat.1345....0G

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 [10]:
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 [11]:
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_WAVELENGTH     COO_BIBCODE    
                           "h:m:s"    ...                                   
----------------------- ------------- ... -------------- -------------------
              * alf UMi 02 31 49.0945 ...              O 2007A&A...474..653V
            * alf UMi B  02 30 33.534 ...              O 2008AJ....136..735L
            * alf UMi C 02 35 12.0586 ...              O 2018yCat.1345....0G
            * alf UMi D 02 30 44.3499 ...              O 2018yCat.1345....0G
                 PWP  8   02 35 09.04 ...                                   
                  RN  6      02 41 17 ...                1962MNRAS.125...39R
          UCAC3 359-198 02 10 05.9317 ...              O 2018yCat.1345....0G
2MASX J02341709+8920469  02 34 17.093 ...              I 2006AJ....131.1163S
             AG+88    8 02 16 19.8222 ...              O 2018yCat.1345....0G
        IRAS 02057+8857    02 49 46.1 ...              F 1988NASAR1190....1B

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 [12]:
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_WAVELENGTH     COO_BIBCODE    
                               "h:m:s"    ...                                   
--------------------------- ------------- ... -------------- -------------------
               TYC 4644-6-1 11 35 12.6610 ...              O 2018yCat.1345....0G
              TYC 4643-26-1 08 12 13.9447 ...              O 2018yCat.1345....0G
               TYC 4645-2-1 13 38 05.8424 ...              O 2018yCat.1345....0G
                   NAME NCP      00 00 00 ...                                   
                BD+89     1 11 49 45.0492 ...              O 2018yCat.1345....0G
              TYC 4630-19-1 07 17 18.0560 ...              O 2018yCat.1345....0G
                  HD  21070 09 46 20.4944 ...              O 2018yCat.1345....0G
                BD+89     4 08 56 19.0596 ...              O 2018yCat.1345....0G
            LSPM J0727+8941 07 27 58.7263 ...              O 2018yCat.1345....0G
            LSPM J0725+8941 07 25 08.1468 ...              O 2018yCat.1345....0G
                        ...           ... ...            ...                 ...
                  Shk 172-3    15 37 27.8 ...                                   
                  Shk 172-1    15 33 24.4 ...                                   
        NVSS J163150+893352    16 31 50.1 ...              R 1998AJ....115.1693C
                  Shk 172-4    15 36 41.2 ...                                   
            IRAS 00110+8927    00 26 17.5 ...              F 1988NASAR1190....1B
                  Shk 172-5    15 42 52.8 ...                                   
                  Shk 172-2    15 40 42.3 ...                                   
      1RXS J050421.1+893321  05 04 21.101 ...                2000IAUC.7432R...1V
Gaia DR2 576439316121957888 04 03 47.6770 ...              O 2018yCat.1345....0G
              TYC 4644-20-1 10 49 28.3690 ...              O 2018yCat.1345....0G
Length = 57 rows

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 [13]:
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[13]:
Table masked=True length=14
MAIN_IDRADECRA_PRECDEC_PRECCOO_ERR_MAJACOO_ERR_MINACOO_ERR_ANGLECOO_QUALCOO_WAVELENGTHCOO_BIBCODE
"h:m:s""d:m:s"masmasdeg
objectstr13str13int16int16float32float32int16str1str1object
NVSS J235956-01012523 59 56.40-01 01 25.066500.000500.00090D1997ApJ...475..479W
2SLAQ J000006.80-010135.100 00 06.800-01 01 35.167765.00063.0000CO2009yCat.2294....0A
PB 566423 59 46-00 58.344----0E1980A&AS...39...39B
2SLAQ J000015.84-005941.600 00 15.8519-00 59 41.65114141.7830.83590CO2018yCat.1345....0G
[VV2006] J235945.5-00581923 59 45.4962-00 58 19.70914140.2350.10990AO2018yCat.1345....0G
[VV2006] J235944.2-00573823 59 44.1356-00 57 38.26614140.2920.17690AO2018yCat.1345....0G
NVSS J235946-00560523 59 46.10-00 55 59.066500.000500.00090D1997ApJ...475..479W
SDSS J000022.56-005918.400 00 22.561-00 59 18.467742.00045.00090CO2015ApJS..219...12A
TYC 5253-239-123 59 36.4742-01 00 18.72314140.0440.02390AO2018yCat.1345....0G
[VV2003c] J010009.3+01011501 00 09.3163+01 01 15.20914140.7030.54390AO2018yCat.1345....0G
2MASX J01000755+005753101 00 07.5328+00 57 53.36514141.7711.38490CO2018yCat.1345....0G
SDSS J010005.78+010444.401 00 05.780+01 04 44.46778000.00058.00090CO2009yCat.2294....0A
2MASS J01000980+005540601 00 09.8014+00 55 40.40214140.5460.44790AO2018yCat.1345....0G
SDSS J010018.10+010226.701 00 18.104+01 02 26.747723.00017.00090CO2012ApJS..203...21A

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

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

SIMBAD Veritabanında Kaynakça Sorguları

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

In [15]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_bibcode('2011A&A...535A..17B')
print(sonuc_tablosu)
                                                                                                                                                    References                                                                                                                                                    
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2011A&A...535A..17B = DOI 10.1051/0004-6361/201117740
Astronomy and Astrophysics, volume 535A, 17-17 (2011/11-1)
BASTURK O., DALL T.H., COLLET R., LO CURTO G. and SELAM S.O.
Bisectors of the HARPS cross-correlation function. The dependence on  stellar atmospheric parameters.
Status:  \\ 
Files: (abstract)

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 [16]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_bibobj('2011A&A...535A..17B')
print(sonuc_tablosu)
  MAIN_ID         RA           DEC      ... COO_WAVELENGTH     COO_BIBCODE    
               "h:m:s"       "d:m:s"    ...                                   
----------- ------------- ------------- ... -------------- -------------------
  HD   1461 00 18 41.8673 -08 03 10.805 ...              O 2018yCat.1345....0G
  HD   4915 00 51 10.8480 -05 02 21.402 ...              O 2018yCat.1345....0G
  HD   7449 01 14 29.3222 -05 02 50.614 ...              O 2018yCat.1345....0G
  * tau Cet 01 44 04.0834 -15 56 14.926 ...              O 2007A&A...474..653V
* lam02 For 02 36 58.6079 -34 34 40.713 ...              O 2018yCat.1345....0G
* zet02 Ret 03 18 12.8185 -62 30 22.917 ...              O 2018yCat.1345....0G
    * e Eri 03 19 55.6509 -43 04 11.217 ...              O 2007A&A...474..653V
  HD  21019 03 23 17.7006 -07 47 38.751 ...              O 2018yCat.1345....0G
  HD  21693 03 27 12.4819 -58 19 25.248 ...              O 2018yCat.1345....0G
  * eps Eri 03 32 55.8449 -09 27 29.731 ...              O 2007A&A...474..653V
        ...           ...           ... ...            ...                 ...
  HD 162396 17 52 52.5828 -41 59 47.487 ...              O 2018yCat.1345....0G
  HD 171990 18 47 49.1311 -77 52 05.702 ...              O 2018yCat.1345....0G
  HD 176986 19 03 05.8729 -11 02 38.131 ...              O 2018yCat.1345....0G
  HD 179949 19 15 33.2300 -24 10 45.673 ...              O 2018yCat.1345....0G
  * del Pav 20 08 43.6094 -66 10 55.443 ...              O 2007A&A...474..653V
  HD 207129 21 48 15.7510 -47 18 13.020 ...              O 2018yCat.1345....0G
  * eps Ind 22 03 21.6542 -56 47 09.537 ...              O 2018yCat.1345....0G
  HD 210918 22 14 38.6533 -41 22 53.986 ...              O 2007A&A...474..653V
  HD 215456 22 46 08.0342 -48 58 43.762 ...              O 2018yCat.1345....0G
  HD 221420 23 33 19.5788 -77 23 07.195 ...              O 2018yCat.1345....0G
Length = 66 rows

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

In [17]:
from astroquery.simbad import Simbad
sonuc_tablosu = Simbad.query_criteria('Vmag < 6 & maintype = "EB*betLyr"')
print(sonuc_tablosu)
  MAIN_ID         RA           DEC      ... COO_WAVELENGTH     COO_BIBCODE    
               "h:m:s"       "d:m:s"    ...                                   
----------- ------------- ------------- ... -------------- -------------------
  *  31 Cam 05 54 57.8248 +59 53 18.131 ...              O 2018yCat.1345....0G
* tau01 Ari 03 21 13.6241 +21 08 49.515 ...              O 2007A&A...474..653V
  V* LZ CMa 07 09 43.0228 -25 13 51.716 ...              O 2018yCat.1345....0G
  *  29 CMa 07 18 40.3796 -24 33 31.311 ...              O 2018yCat.1345....0G
  * tau CMa 07 18 42.4864 -24 57 15.741 ...              O 2007A&A...474..653V
    * m Pup 07 38 18.0454 -25 21 53.301 ...              O 2007A&A...474..653V
  V* XY Pyx 08 27 59.4209 -35 06 49.539 ...              O 2018yCat.1345....0G
  *  75 Peg 23 37 56.8025 +18 24 02.396 ...              O 2018yCat.1345....0G
  *  14 Lac 22 50 21.7772 +41 57 12.179 ...              O 2018yCat.1345....0G
  *   9 And 23 18 23.3220 +41 46 25.203 ...              O 2018yCat.1345....0G
* chi02 Hya 11 05 57.5701 -27 17 16.268 ...              O 2018yCat.1345....0G
* mu.01 Sco 16 51 52.2156 -38 02 50.635 ...              O 2018yCat.1345....0G
  * pi. Sco 15 58 51.1132 -26 06 50.788 ...              O 2007A&A...474..653V
  V* DV Aqr 20 58 41.8400 -14 28 59.252 ...              O 2018yCat.1345....0G
  * sig Aql 19 39 11.6427 +05 23 51.973 ...              O 2018yCat.1345....0G
  * bet Lyr 18 50 04.7952 +33 21 45.609 ...              O 2007A&A...474..653V
  V* NO Vel 08 13 36.1533 -46 59 29.845 ...              O 2018yCat.1345....0G
   V* V Pup 07 58 14.4391 -49 14 41.680 ...              O 2007A&A...474..653V
  * del Pic 06 10 17.9080 -54 58 07.113 ...              O 2007A&A...474..653V
  * alf Oct 21 04 43.0634 -77 01 25.573 ...              O 2018yCat.1345....0G
V* V964 Cen 13 20 37.8256 -52 44 52.169 ...              O 2018yCat.1345....0G

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.

In [18]:
#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.

In [19]:
Simbad.list_votable_fields()
--NOTES--

1. The parameter filtername must correspond to an existing filter. Filters include: B,V,R,I,J,K.  They are checked by SIMBAD but not astroquery.simbad

2. Fields beginning with rvz display the data as it is in the database. Fields beginning with rv force the display as a radial velocity. Fields beginning with z force the display as a redshift

3. For each measurement catalog, the VOTable contains all fields of the first measurement. When applicable, the first measurement is the mean one. 

Available VOTABLE fields:

bibcodelist(y1-y2)
biblio
cel
cl.g
coo(opt)
coo_bibcode
coo_err_angle
coo_err_maja
coo_err_mina
coo_qual
coo_wavelength
coordinates
dec(opt)
dec_prec
diameter
dim
dim_angle
dim_bibcode
dim_incl
dim_majaxis
dim_minaxis
dim_qual
dim_wavelength
dimensions
distance
distance_result
einstein
fe_h
flux(filtername)
flux_bibcode(filtername)
flux_error(filtername)
flux_name(filtername)
flux_qual(filtername)
flux_system(filtername)
flux_unit(filtername)
fluxdata(filtername)
gcrv
gen
gj
hbet
hbet1
hgam
id(opt)
ids
iras
irc
iso
iue
jp11
link_bibcode
main_id
measurements
membership
mesplx
mespm
mk
morphtype
mt
mt_bibcode
mt_qual
otype
otype(opt)
otypes
parallax
plx
plx_bibcode
plx_error
plx_prec
plx_qual
pm
pm_bibcode
pm_err_angle
pm_err_maja
pm_err_mina
pm_qual
pmdec
pmdec_prec
pmra
pmra_prec
pos
posa
propermotions
ra(opt)
ra_prec
rot
rv_value
rvz_bibcode
rvz_error
rvz_qual
rvz_radvel
rvz_type
rvz_wavelength
sao
sp
sp_bibcode
sp_nature
sp_qual
sptype
td1
typed_id
ubv
uvby
uvby1
v*
velocity
xmm
z_value
For more information on a field:
Simbad.get_field_description ('field_name') 
Currently active VOTABLE fields:
 ['main_id', 'coordinates']
In [20]:
Simbad.add_votable_fields('typed_id')
Simbad.query_objects(['M51', 'Proxima', 'Antares'])
Out[20]:
Table masked=True length=3
MAIN_IDRADECRA_PRECDEC_PRECCOO_ERR_MAJACOO_ERR_MINACOO_ERR_ANGLECOO_QUALCOO_WAVELENGTHCOO_BIBCODETYPED_ID
"h:m:s""d:m:s"masmasdeg
objectstr13str13int16int16float32float32int16str1str1objectobject
M 5113 29 52.698+47 11 42.9377----0CI2006AJ....131.1163SM51
V* V645 Cen14 29 42.9451-62 40 46.17014140.0580.10590AO2018yCat.1345....0GProxima
* alf Sco16 29 24.4597-26 25 55.2099910.7106.68090AO2007A&A...474..653VAntares

Herhangi bir alanla (sütunla) ilgili açıklayıcı bilgi alınabilir (get_field_description).

In [21]:
Simbad.table.colnames
Out[21]:
['MAIN_ID',
 'RA',
 'DEC',
 'RA_PREC',
 'DEC_PREC',
 'COO_ERR_MAJA',
 'COO_ERR_MINA',
 'COO_ERR_ANGLE',
 'COO_QUAL',
 'COO_WAVELENGTH',
 'COO_BIBCODE']

Ancak bu açıklamalar her zaman güvenilir ve yeterli olmayabilir! Bu durumda Simbad'ın ana dokümantasyonuna başvurmakta fayda vardır.

In [22]:
Simbad.get_field_description('coo_qual')
quality (A:astrometric, .., E:unknown)

astropy.astroquery ile SAO/NASA ADS Sorguları

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.

In [50]:
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'])
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-50-470d74d6d96b> in <module>()
     23 # (bu durum ADS arama sayfasinda da aynidir)
     24 # Bu yapisiyla query_simple yeni ADS arama kutusuyla ayni sekilde calisir
---> 25 sonuclar = na.ADS.query_simple(query_string="^Borucki Kepler project")
     26 
     27 # aramanizi istediginiz bir kritere gore sonradan da siralayabilirsiniz

/usr/local/lib/python3.5/dist-packages/astroquery/utils/class_or_instance.py in f(*args, **kwds)
     23         def f(*args, **kwds):
     24             if obj is not None:
---> 25                 return self.fn(obj, *args, **kwds)
     26             else:
     27                 return self.fn(cls, *args, **kwds)

/usr/local/lib/python3.5/dist-packages/astroquery/nasa_ads/core.py in query_simple(self, query_string, get_query_payload, get_raw_response, cache)
     68             return response
     69         # parse the XML response into AstroPy Table
---> 70         resulttable = self._parse_response(response.json())
     71 
     72         return resulttable

/usr/local/lib/python3.5/dist-packages/astroquery/nasa_ads/core.py in _parse_response(self, response)
     75 
     76         try:
---> 77             response['response']['docs'][0]['bibcode']
     78         except IndexError:
     79             raise RuntimeError('No results returned!')

KeyError: 'bibcode'

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 Paketiyle SAO/NASA ADS Sorguları

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.

In [52]:
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)
Obliquities of Hot Jupiter Host Stars: Evidence for Tidal Interactions and Primordial Misalignments 2012ApJ...757...18A
Starspots, Spin-Orbit Misalignment, and Active Latitudes in the HAT-P-11 Exoplanetary System 2011ApJ...743...61S
HST hot Jupiter transmission spectral survey: detection of water in HAT-P-1b from WFC3 near-IR spatial scan observations 2013MNRAS.435.3481W
The HAT-P-13 Exoplanetary System: Evidence for Spin-Orbit Alignment and a Third Companion 2010ApJ...718..575W
Adaptive Optics Images. II. 12 Kepler Objects of Interest and 15 Confirmed Transiting Planets 2013AJ....146....9A
Observational constraints on tidal effects using orbital eccentricities 2012MNRAS.422.3151H
3.6 and 4.5 μm Spitzer Phase Curves of the Highly Irradiated Hot Jupiters WASP-19b and HAT-P-7b 2016ApJ...823..122W
HAT-P-18b and HAT-P-19b: Two Low-density Saturn-mass Planets Transiting Metal-rich K Stars 2011ApJ...726...52H
HAT-P-25b: A Hot-Jupiter Transiting a Moderately Faint G Star 2012ApJ...745...80Q
System Parameters, Transit Times, and Secondary Eclipse Constraints of the Exoplanet Systems HAT-P-4, TrES-2, TrES-3, and WASP-3 from the NASA EPOXI Mission of Opportunity 2011ApJ...726...94C
Transmission spectroscopy of the inflated exo-Saturn HAT-P-19b 2015A&A...580A..60M
The Stellar Obliquity and the Long-period Planet in the HAT-P-17 Exoplanetary System 2013ApJ...772...80F
Low albedos of hot to ultra-hot Jupiters in the optical to near-infrared transition regime 2019A&A...624A..62M
Clear and Cloudy Exoplanet Forecasts for JWST: Maps, Retrieved Composition, and Constraints on Formation with MIRI and NIRCam 2018AJ....156...40S
The Refined Physical Properties of Transiting Exoplanetary System WASP-11/HAT-P-10 2014AJ....147...92W
Reassessing Exoplanet Light Curves with a Thermal Model 2018AJ....156...28A
Ground-based transit observations of the HAT-P-18, HAT-P-19, HAT-P-27/WASP40 and WASP-21 systems 2015MNRAS.451.4060S
New transit timing observations for GJ 436 b, HAT-P-3 b, HAT-P-19 b, WASP-3 b, and XO-2 b 2018IBVS.6243....1M
The Continuing Search for Evidence of Tidal Orbital Decay of Hot Jupiters 2020AJ....159..150P
Atmospheric mass-loss of extrasolar planets orbiting magnetically active host stars 2018MNRAS.477..808L
Two stacked tandem white organic light-emitting diodes employing WO<SUB>3</SUB> as a charge generation layer 2016SPIE.9941E..1TB
Probing Giant Planet Formation with MOSFIRE Exoplanet Transmission Spectroscopy 2014koa..prop..511M
An X-ray survey of ultra-active planet hosts 2013xmm..prop..123S
VizieR Online Data Catalog: Spectroscopy and photometry for HAT-P-50--HAT-P-53 (Hartman+, 2015) 2016yCat..51500168H
A Bayesian Atmospheric Retrieval Performed on HAT-P-16b and WASP-11b/HAT-P-10b 2016DPS....4821207M
Near UV Observation of HAT-P-16b 2013AAS...22221709P
In Pursuit of New Worlds: Searches for and Studies of Transiting Exoplanets from Three Space-Based Observatories 2012PhDT.......138B
A Holistic and Probabilistic Approach to the Ground-based Data of HAT-P-19 System 2019arXiv191107903B
VizieR Online Data Catalog: Differential photometry &amp; RVs of HAT-P-69 &amp; HAT-P-70 (Zhou+, 2019) 2019yCat..51580141Z
Investigating Trends in Atmospheric Composition of Gas Giant Planets Using Spitzer Secondary Eclipses 2019ESS.....432640W
Transit Spectroscopy of Mature Planets 2017jwst.prop.1185G
MIRI observations of transiting exoplanets 2017jwst.prop.1177G
Clear and Cloudy Exoplanet Forecasts for JWST: Maps, Retrieved Composition, and Constraints on Formation with MIRI and NIRCam 2019AAS...23320507S
VizieR Online Data Catalog: Differential photometry of the F-subgiant HAT-P-67 (Zhou+, 2017) 2018yCat..51530211Z
Atmospheric Retrievals of HAT-P-16b and WASP-11b/HAT-P-10b 2018AAS...23114802M
HAT-P-16b: A Bayesian Atmospheric Retrieval 2017DPS....4941601M

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 'a basarak olası diğer metot seçeneklerini inceleyebilirsiniz.

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.

In [53]:
sonuclar = list(ads.SearchQuery(author="Basturk, O"))
for sonuc in sonuclar:
    print(sonuc.title)
['The KELT Follow-up Network and Transit False-positive Catalog: Pre-vetted False Positives for TESS']
["KPS-1b: The First Transiting Exoplanet Discovered Using an Amateur Astronomer's Wide-field CCD Data"]
['Benchmarking the power of amateur observatories for TTV exoplanets detection']
['A simultaneous spectroscopic and photometric study of two eclipsing binaries: V566 Oph and V972 Her']
['KELT-18b: Puffy Planet, Hot Host, Probably Perturbed']
['Orbital Period Variations in the NY Vir System, Revisited in the Light of New Data']
['Photometric Analysis of Overcontact Binaries AK Her, HI Dra, V1128 Tau, and V2612 Oph']
['Physical parameters of close binaries QX Andromedae, RW Comae Berenices, MR Delphini, and BD +079° 3142']
['Photometric, Spectroscopic, and Orbital Period Study of Three Early-type Semi-detached Systems: XZ Aql, UX Her, and AT Peg']
['Photoelectric Minima of Some Eclipsing Binary Stars']
['First results of the Kourovka Planet Search: discovery of transiting exoplanet candidates in the first three target fields']
['Physical parameters of some close binaries: ET Boo, V1123 Tau, V1191 Cyg, V1073 Cyg and V357 Peg']
['Photometric Analysis of HS Aqr, EG Cep, VW LMi, and du Boo']
['New Times of Minima of Some Eclipsing Binary Stars and Maxima of Pulsating Stars']
['Times of Minima of Eclipsing Binaries and Mid-Transit Times of Transiting Exoplanets']
['High-precision multiband time series photometry of exoplanets Qatar-1b and TrES-5b']
['Times of Minima of Some Eclipsing Binaries']
['BI CVn - A spotted, overcontact, type-W eclipsing binary']
['The stable isotope composition of waters of the eastern Mediterranean Sea']
['Changes in the hydrochemistry of the Black Sea inferred from water density profiles']
['The absolute parameters of the detached eclipsing binary V482 Per']
['Photoelectric Minima of Some Eclipsing Binary Stars']
['The absolute parameters of two W UMa type binaries in Ursa Majoris']
['A Tale on Two Close Binaries in Pegasus']
['A Python-based GUI Software to Calculate Times of Maximum and Minimum: Xtrema']
['Photoelectric Minima of Some Eclipsing Binary Stars']
['Long-term variations of surface chlorophyll a and primary production in the open Black Sea']
['High precision defocused observations of planetary transits']
['Bisectors of the HARPS cross-correlation function. The dependence on stellar atmospheric parameters']
['Homogeneously derived transit timings for 17 exoplanets and reassessed TTV trends for WASP-12 and WASP-4']
['Abundance analysis of the supergiant stars HD 80057 and HD 80404 based on their UVES Spectra']
['Defocused Observations of Selected Exoplanet Transits with T100 at the TÜBİTAK National Observatory of Turkey (TUG)']
['How amateur observations can be used in the exoplanetary science?']
['Modeling and Period Study of the Overcontact Binary V1128 Tau']
['VizieR Online Data Catalog: KELT transit false positive catalog for TESS (Collins+, 2018)']
['Heavy metal concentrations in surface sediments from the two coastal inlets (Golden Horn Estuary and İzmit Bay) of the northeastern Sea of Marmara']
['Surface chlorophyll in the Black Sea over 1978 1986 derived from satellite and in situ data']
['Identification of the oxic/anoxic interface by isopycnal surfaces in the black sea']
['Identification of unique neoantigen qualities in long-term survivors of pancreatic cancer']
['GRB 150910A: T100 observations.']
['GRB 140518A: T100 observations.']
['The distribution of man-made and naturally produced halocarbons in a double layer flow strait system']
['Mining the Kepler Mission Database: Rotations, Starspots, Ages and Possible Tidal Interactions of Stars with Close-in Planets']
['Characterisation of humic acids by mass spectrometry']
['Discovery of a pre-cataclysmic binary with unusual chromaticity of the eclipsed white dwarf by the GPX survey']
['Light curve analysis of ground-based data from exoplanets transit database']
['A list of minima times of some eclipsing binaries']
['Transit timing variations of five transiting planets']
['5 Years of Defocused Observations of Exoplanet Transits with T100: Timing Perspective']
['A Holistic and Probabilistic Approach to the Ground-based Data of HAT-P-19 System']

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.

In [54]:
en_son_yayin = sonuclar[-1]
# Yayinla ilgili bazı özet bilgiler
print(en_son_yayin)
print(en_son_yayin.author)
print(en_son_yayin.bibtex) 
<Basturk, Ozgur et al. 2019, 2019arXiv191107903B>
['Basturk, Ozgur', 'Yalcinkaya, Selcuk', 'Esmer, Ekrem M.', 'Tanriverdi, Taner', 'Keten, Burak']
/usr/local/lib/python3.5/dist-packages/ads/utils.py:31: UserWarning: You are lazy loading attributes via 'bibtex', and so are making multiple calls to the API. This will impact your overall rate limits.
  UserWarning,
/usr/local/lib/python3.5/dist-packages/ads/search.py:295: UserWarning: bibtex should be queried with ads.ExportQuery(); You will hit API ratelimits very quickly otherwise.
  "hit API ratelimits very quickly otherwise.", UserWarning)
@ARTICLE{2019arXiv191107903B,
       author = {{Basturk}, Ozgur and {Yalcinkaya}, Selcuk and {Esmer}, Ekrem M. and
         {Tanriverdi}, Taner and {Keten}, Burak},
        title = "{A Holistic and Probabilistic Approach to the Ground-based Data of HAT-P-19 System}",
      journal = {arXiv e-prints},
     keywords = {Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Solar and Stellar Astrophysics},
         year = 2019,
        month = nov,
          eid = {arXiv:1911.07903},
        pages = {arXiv:1911.07903},
archivePrefix = {arXiv},
       eprint = {1911.07903},
 primaryClass = {astro-ph.EP},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv191107903B},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}


astropy.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 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.

In [55]:
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()
Created TAP+ (v1.2.1) - Connection:
	Host: gea.esac.esa.int
	Use HTTPS: True
	Port: 443
	SSL Port: 443
Created TAP+ (v1.2.1) - Connection:
	Host: geadata.esac.esa.int
	Use HTTPS: True
	Port: 443
	SSL Port: 443
INFO: Query finished. [astroquery.utils.tap.core]
         dist             solution_id     ... epoch_photometry_url
                                          ...                     
--------------------- ------------------- ... --------------------
7.814272017258781e-05 1635721458409799680 ...                   --

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

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 [56]:
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()

Ödev 4

Teslim Tarihi: 15 Nisan 2020, Perşembe 11:30

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