from astroquery.gaia import Gaia
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
Gaia
<astroquery.gaia.core.GaiaClass at 0x7fd23f809850>
tables = Gaia.load_tables(only_names=True)
INFO: Retrieving tables... [astroquery.utils.tap.core]
INFO: Parsing tables... [astroquery.utils.tap.core]
INFO: Done. [astroquery.utils.tap.core]
type(tables)
list
for table in tables:
print(table.get_qualified_name())
external.external.apassdr9
external.external.gaiadr2_geometric_distance
external.external.galex_ais
external.external.ravedr5_com
external.external.ravedr5_dr5
external.external.ravedr5_gra
external.external.ravedr5_on
external.external.sdssdr13_photoprimary
external.external.skymapperdr1_master
external.external.tmass_xsc
public.public.hipparcos
public.public.hipparcos_newreduction
public.public.hubble_sc
public.public.igsl_source
public.public.igsl_source_catalog_ids
public.public.tycho2
public.public.dual
tap_config.tap_config.coord_sys
tap_config.tap_config.properties
tap_schema.tap_schema.columns
tap_schema.tap_schema.key_columns
tap_schema.tap_schema.keys
tap_schema.tap_schema.schemas
tap_schema.tap_schema.tables
gaiadr1.gaiadr1.aux_qso_icrf2_match
gaiadr1.gaiadr1.ext_phot_zero_point
gaiadr1.gaiadr1.allwise_best_neighbour
gaiadr1.gaiadr1.allwise_neighbourhood
gaiadr1.gaiadr1.gsc23_best_neighbour
gaiadr1.gaiadr1.gsc23_neighbourhood
gaiadr1.gaiadr1.ppmxl_best_neighbour
gaiadr1.gaiadr1.ppmxl_neighbourhood
gaiadr1.gaiadr1.sdss_dr9_best_neighbour
gaiadr1.gaiadr1.sdss_dr9_neighbourhood
gaiadr1.gaiadr1.tmass_best_neighbour
gaiadr1.gaiadr1.tmass_neighbourhood
gaiadr1.gaiadr1.ucac4_best_neighbour
gaiadr1.gaiadr1.ucac4_neighbourhood
gaiadr1.gaiadr1.urat1_best_neighbour
gaiadr1.gaiadr1.urat1_neighbourhood
gaiadr1.gaiadr1.cepheid
gaiadr1.gaiadr1.phot_variable_time_series_gfov
gaiadr1.gaiadr1.phot_variable_time_series_gfov_statistical_parameters
gaiadr1.gaiadr1.rrlyrae
gaiadr1.gaiadr1.variable_summary
gaiadr1.gaiadr1.allwise_original_valid
gaiadr1.gaiadr1.gsc23_original_valid
gaiadr1.gaiadr1.ppmxl_original_valid
gaiadr1.gaiadr1.sdssdr9_original_valid
gaiadr1.gaiadr1.tmass_original_valid
gaiadr1.gaiadr1.ucac4_original_valid
gaiadr1.gaiadr1.urat1_original_valid
gaiadr1.gaiadr1.gaia_source
gaiadr1.gaiadr1.tgas_source
gaiadr2.gaiadr2.aux_allwise_agn_gdr2_cross_id
gaiadr2.gaiadr2.aux_iers_gdr2_cross_id
gaiadr2.gaiadr2.aux_sso_orbit_residuals
gaiadr2.gaiadr2.aux_sso_orbits
gaiadr2.gaiadr2.dr1_neighbourhood
gaiadr2.gaiadr2.allwise_best_neighbour
gaiadr2.gaiadr2.allwise_neighbourhood
gaiadr2.gaiadr2.apassdr9_best_neighbour
gaiadr2.gaiadr2.apassdr9_neighbourhood
gaiadr2.gaiadr2.gsc23_best_neighbour
gaiadr2.gaiadr2.gsc23_neighbourhood
gaiadr2.gaiadr2.hipparcos2_best_neighbour
gaiadr2.gaiadr2.hipparcos2_neighbourhood
gaiadr2.gaiadr2.panstarrs1_best_neighbour
gaiadr2.gaiadr2.panstarrs1_neighbourhood
gaiadr2.gaiadr2.ppmxl_best_neighbour
gaiadr2.gaiadr2.ppmxl_neighbourhood
gaiadr2.gaiadr2.ravedr5_best_neighbour
gaiadr2.gaiadr2.ravedr5_neighbourhood
gaiadr2.gaiadr2.sdssdr9_best_neighbour
gaiadr2.gaiadr2.sdssdr9_neighbourhood
gaiadr2.gaiadr2.tmass_best_neighbour
gaiadr2.gaiadr2.tmass_neighbourhood
gaiadr2.gaiadr2.tycho2_best_neighbour
gaiadr2.gaiadr2.tycho2_neighbourhood
gaiadr2.gaiadr2.urat1_best_neighbour
gaiadr2.gaiadr2.urat1_neighbourhood
gaiadr2.gaiadr2.sso_observation
gaiadr2.gaiadr2.sso_source
gaiadr2.gaiadr2.vari_cepheid
gaiadr2.gaiadr2.vari_classifier_class_definition
gaiadr2.gaiadr2.vari_classifier_definition
gaiadr2.gaiadr2.vari_classifier_result
gaiadr2.gaiadr2.vari_long_period_variable
gaiadr2.gaiadr2.vari_rotation_modulation
gaiadr2.gaiadr2.vari_rrlyrae
gaiadr2.gaiadr2.vari_short_timescale
gaiadr2.gaiadr2.vari_time_series_statistics
gaiadr2.gaiadr2.panstarrs1_original_valid
gaiadr2.gaiadr2.gaia_source
gaiadr2.gaiadr2.ruwe
meta = Gaia.load_table('gaiadr2.gaia_source')
Retrieving table 'gaiadr2.gaia_source'
Parsing table 'gaiadr2.gaia_source'...
Done.
meta
<astroquery.utils.tap.model.taptable.TapTableMeta at 0x7fd23e840b80>
print(meta)
TAP Table name: gaiadr2.gaiadr2.gaia_source
Description: This table has an entry for every Gaia observed source as listed in the
Main Database accumulating catalogue version from which the catalogue
release has been generated. It contains the basic source parameters,
that is only final data (no epoch data) and no spectra (neither final
nor epoch).
Num. columns: 96
for column in meta.columns:
print(column.name)
solution_id
designation
source_id
random_index
ref_epoch
ra
ra_error
dec
dec_error
parallax
parallax_error
parallax_over_error
pmra
pmra_error
pmdec
pmdec_error
ra_dec_corr
ra_parallax_corr
ra_pmra_corr
ra_pmdec_corr
dec_parallax_corr
dec_pmra_corr
dec_pmdec_corr
parallax_pmra_corr
parallax_pmdec_corr
pmra_pmdec_corr
astrometric_n_obs_al
astrometric_n_obs_ac
astrometric_n_good_obs_al
astrometric_n_bad_obs_al
astrometric_gof_al
astrometric_chi2_al
astrometric_excess_noise
astrometric_excess_noise_sig
astrometric_params_solved
astrometric_primary_flag
astrometric_weight_al
astrometric_pseudo_colour
astrometric_pseudo_colour_error
mean_varpi_factor_al
astrometric_matched_observations
visibility_periods_used
astrometric_sigma5d_max
frame_rotator_object_type
matched_observations
duplicated_source
phot_g_n_obs
phot_g_mean_flux
phot_g_mean_flux_error
phot_g_mean_flux_over_error
phot_g_mean_mag
phot_bp_n_obs
phot_bp_mean_flux
phot_bp_mean_flux_error
phot_bp_mean_flux_over_error
phot_bp_mean_mag
phot_rp_n_obs
phot_rp_mean_flux
phot_rp_mean_flux_error
phot_rp_mean_flux_over_error
phot_rp_mean_mag
phot_bp_rp_excess_factor
phot_proc_mode
bp_rp
bp_g
g_rp
radial_velocity
radial_velocity_error
rv_nb_transits
rv_template_teff
rv_template_logg
rv_template_fe_h
phot_variable_flag
l
b
ecl_lon
ecl_lat
priam_flags
teff_val
teff_percentile_lower
teff_percentile_upper
a_g_val
a_g_percentile_lower
a_g_percentile_upper
e_bp_min_rp_val
e_bp_min_rp_percentile_lower
e_bp_min_rp_percentile_upper
flame_flags
radius_val
radius_percentile_lower
radius_percentile_upper
lum_val
lum_percentile_lower
lum_percentile_upper
datalink_url
epoch_photometry_url
meta2 = Gaia.load_table('gaiadr2.panstarrs1_original_valid')
Retrieving table 'gaiadr2.panstarrs1_original_valid'
Parsing table 'gaiadr2.panstarrs1_original_valid'...
Done.
for column in meta2.columns:
print(column.name)
obj_name
obj_id
ra
dec
ra_error
dec_error
epoch_mean
g_mean_psf_mag
g_mean_psf_mag_error
g_flags
r_mean_psf_mag
r_mean_psf_mag_error
r_flags
i_mean_psf_mag
i_mean_psf_mag_error
i_flags
z_mean_psf_mag
z_mean_psf_mag_error
z_flags
y_mean_psf_mag
y_mean_psf_mag_error
y_flags
n_detections
zone_id
obj_info_flag
quality_flag
Writing queries¶
More text here…
columns = 'source_id, ref_epoch, ra, dec, parallax'
columns2 = 'source_id, ref_epoch, ra, dec, parallax, parallax_error, radial_velocity'
query_base = """SELECT
TOP 30
{columns}
FROM gaiadr2.gaia_source
WHERE parallax < {max_parallax}
AND bp_rp BETWEEN -0.75 AND 2
"""
query = query_base.format(columns=columns2, max_parallax=1)
query
'SELECT\nTOP 30\nsource_id, ref_epoch, ra, dec, parallax, parallax_error, radial_velocity\nFROM gaiadr2.gaia_source\nWHERE parallax < 1\n AND bp_rp BETWEEN -0.75 AND 2\n'
print(query)
SELECT
TOP 30
source_id, ref_epoch, ra, dec, parallax, parallax_error, radial_velocity
FROM gaiadr2.gaia_source
WHERE parallax < 1
AND bp_rp BETWEEN -0.75 AND 2
Add one thing at a time and test as you go¶
job = Gaia.launch_job_async(query)
INFO: Query finished. [astroquery.utils.tap.core]
job
<astroquery.utils.tap.model.job.Job at 0x7fd23e4cb250>
print(job)
<Table length=30>
name dtype unit description n_bad
--------------- ------- ------ ------------------------------------------------------------------ -----
source_id int64 Unique source identifier (unique within a particular Data Release) 0
ref_epoch float64 yr Reference epoch 0
ra float64 deg Right ascension 0
dec float64 deg Declination 0
parallax float64 mas Parallax 0
parallax_error float64 mas Standard error of parallax 0
radial_velocity float64 km / s Radial velocity 30
Jobid: 1605559085364O
Phase: COMPLETED
Owner: None
Output file: async_20201116153805.vot
Results: None
results = job.get_results()
results
Table length=30
| source_id | ref_epoch | ra | dec | parallax | parallax_error | radial_velocity |
|---|---|---|---|---|---|---|
| yr | deg | deg | mas | mas | km / s | |
| int64 | float64 | float64 | float64 | float64 | float64 | float64 |
| 1859772967200548480 | 2015.5 | 311.7716418009337 | 31.60557436984631 | 0.7767665671013428 | 0.27955289399217836 | -- |
| 1859782313041944832 | 2015.5 | 311.17390526154423 | 31.258797158719847 | -0.25450688880064243 | 0.5006522058606456 | -- |
| 1859780869933153280 | 2015.5 | 311.06679375877263 | 31.219207019583653 | 0.34319978848338417 | 0.9313353159918977 | -- |
| 1859815057881369728 | 2015.5 | 311.55787663577127 | 31.62814807023982 | -1.1955122356250545 | 0.7536507995983105 | -- |
| 1859764720853733504 | 2015.5 | 311.6968717764019 | 31.434121014193668 | -2.4116892107687353 | 1.0180585839909577 | -- |
| 1859760494615052672 | 2015.5 | 311.7229144199955 | 31.344728455960162 | 0.33945025045930244 | 0.026879108757164063 | -- |
| 1859773413877146880 | 2015.5 | 311.8239717687711 | 31.5938682761331 | -0.023183552578126928 | 0.05352617574037097 | -- |
| 1859769703016675328 | 2015.5 | 311.9698646366692 | 31.564087117425384 | 0.7133302224741606 | 0.8298725715561183 | -- |
| 1859813168089772032 | 2015.5 | 311.59531018136306 | 31.532982947737132 | 0.3676714937163033 | 0.7347671145224394 | -- |
| ... | ... | ... | ... | ... | ... | ... |
| 1859792341785287808 | 2015.5 | 311.2492437362059 | 31.473206794319317 | 0.3304263088856413 | 0.13675690977806274 | -- |
| 1859783408252461056 | 2015.5 | 311.11804657574396 | 31.297510342315928 | 0.0746539334379134 | 0.37680767316478425 | -- |
| 1859810281870133120 | 2015.5 | 311.13172365620215 | 31.686981863130708 | 0.26853128238207785 | 0.4553883976568405 | -- |
| 1859794815685744640 | 2015.5 | 310.96367939259284 | 31.31718097982628 | -2.992496067633503 | 1.1089042277934307 | -- |
| 1859757677108231424 | 2015.5 | 311.99649307561697 | 31.506728013267534 | 0.7281871916676326 | 0.7765992662451379 | -- |
| 1859771146134503680 | 2015.5 | 311.74605797643176 | 31.485773669678412 | 0.13099351906829404 | 0.6713360113643849 | -- |
| 1859768667930613760 | 2015.5 | 311.81939870908116 | 31.50296753045608 | 0.33351119622751657 | 0.20853032024261492 | -- |
| 1859783687439520384 | 2015.5 | 311.1026531878309 | 31.318830227630794 | 0.36306118566694123 | 0.059633195646531766 | -- |
| 1859813885341735296 | 2015.5 | 311.6205103129279 | 31.569289167922214 | -0.07059528156917382 | 0.14061938403885946 | -- |
| 1859777670175822720 | 2015.5 | 311.12238771094496 | 31.20200621855245 | 0.062101356212957384 | 0.33608219792403937 | -- |
type(results)
astropy.table.table.Table
Exercise¶
Read about SQL operators
https://www.w3schools.com/sql/sql_operators.asp
Then modify the previous query to select rows where
bp_rp is between -0.75 and 2.
You can read about this variable at https://gea.esac.esa.int/archive/documentation/GDR2/Gaia_archive/chap_datamodel/sec_dm_main_tables/ssec_dm_gaia_source.html
import pandas as pd
df1 = pd.DataFrame(index=[0, 1, 2])
df1['a'] = 'a'
df1
| a | |
|---|---|
| 0 | a |
| 1 | a |
| 2 | a |
df2 = pd.DataFrame(index=[0, 2, 4])
df2['b'] = 'b'
df2
| b | |
|---|---|
| 0 | b |
| 2 | b |
| 4 | b |
df1['b'] = df2['b']
df1
| a | b | |
|---|---|---|
| 0 | a | b |
| 1 | a | NaN |
| 2 | a | b |
df1.shape
(3, 2)
df1 is df2
False