- Notifications
You must be signed in to change notification settings - Fork5
The ASAS-SN Sky Patrol python client
License
asas-sn/skypatrol
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The SkyPatrol pyasassn client allows users to query the ASAS-SN input catalog and retrieve light curves from our photometry database. These light curves are regularly updated with continuous photometry run on nightly images. Read the docshere.
The easiest way to get started is with pip, using Python 3.6+:
python -m pip install skypatrol
To build from source:
git clone https://github.com/asas-sn/skypatrol.gitpip3 install skypatrol/
The SkyPatrolClient will automatically ping the server for the most recent catalog data, allowing us to query through different methods.
frompyasassn.clientimportSkyPatrolClientclient=SkyPatrolClient()client.catalogs
Table Name: stellar_mainNum Columns: 47Table Name: master_listNum Columns: 4Table Name: cometsNum Columns: 1Table Name: swiftNum Columns: 56Table Name: allwiseagnNum Columns: 15Table Name: mdwarfNum Columns: 32Table Name: milliquasNum Columns: 21Table Name: fermiNum Columns: 67Table Name: aavsovsxNum Columns: 28Table Name: morxNum Columns: 38Table Name: chandraNum Columns: 516Table Name: asteroidsNum Columns: 1
Thestellar_main catalog contains the bulk of our targets. It was built off of ATLAS REFCAT2 and contains GAIA, TESS, SDSS, and ALLWISE identifiers where available.
client.catalogs.stellar_main.head(15)
col_names | dtypes | |
---|---|---|
0 | asas_sn_id | bigint |
1 | ra_deg | double |
2 | dec_deg | double |
3 | refcat_id | bigint |
4 | gaia_id | bigint |
5 | hip_id | string |
6 | tyc_id | string |
7 | tmass_id | string |
8 | sdss_id | string |
9 | allwise_id | string |
10 | tic_id | bigint |
11 | plx | float |
12 | plx_d | float |
13 | pm_ra | float |
14 | pm_ra_d | float |
The remaining catalogs were sourced from NASA's HEASARC archive. Each of these retains its original columnar data, though we have appended anasas_sn_id for all of them.
client.catalogs.aavsovsx.head(12)
col_names | dtypes | |
---|---|---|
0 | asas_sn_id | bigint |
1 | ra_deg | double |
2 | dec_deg | double |
3 | source_number | bigint |
4 | name | string |
5 | variability_flag | bigint |
6 | lii | double |
7 | bii | double |
8 | variability_type | string |
9 | max_mag_type | double |
10 | max_mag_limit | string |
11 | max_mag | double |
Themaster_list containsasas_sn_ids coordinates and catalog sources for all of our targets. All of our catalogs are cross-matched on the master list with a 2-arcsecond cone.
client.catalogs.master_list
col_names | dtypes | |
---|---|---|
0 | asas_sn_id | bigint |
1 | ra_deg | double |
2 | dec_deg | double |
3 | catalog_sources | array<string> |
Lets run a simple cone-search on the master list.
client.cone_search(ra_deg=270,dec_deg=88,radius=4,catalog='master_list')
asas_sn_id | ra_deg | dec_deg | catalog_sources | |
---|---|---|---|---|
0 | 8590494153 | 270.508480 | 84.120395 | [stellar_main, tic] |
1 | 8590493551 | 257.333476 | 84.119978 | [stellar_main, tic] |
2 | 8590494160 | 273.628334 | 84.120183 | [stellar_main, tic] |
3 | 8590494620 | 282.208531 | 84.120019 | [stellar_main, tic] |
4 | 8590493763 | 257.575614 | 84.119906 | [stellar_main, tic] |
... | ... | ... | ... | ... |
82247 | 317828630672 | 272.518828 | 89.284092 | [stellar_main, tic] |
82248 | 317828630205 | 0.339976 | 89.284143 | [stellar_main, tic] |
82249 | 317828630428 | 142.968424 | 89.283984 | [stellar_main, tic] |
82250 | 317828630825 | 353.474920 | 89.284470 | [stellar_main, tic] |
82251 | 317828648971 | 71.616242 | 89.752714 | [stellar_main, tic] |
82252 rows × 4 columns
For whatever reason, if you are interested in random targets from a given catalog, we can give you those too.
client.random_sample(1000,catalog="aavsovsx")
asas_sn_id | ra_deg | dec_deg | name | |
---|---|---|---|---|
0 | 661427528626 | 11.36008 | -88.53342 | MASTER OT J004526.42-883200.3 |
1 | 17181143984 | 113.42148 | -87.67768 | WISE J073341.1-874039 |
2 | 17181129184 | 276.53493 | -86.82375 | ASASSN-V J182608.32-864925.1 |
3 | 661427528887 | 294.50733 | -86.65919 | ASASSN-14ft |
4 | 1118197 | 313.27013 | -85.89292 | ASASSN-V J205304.83-855334.5 |
... | ... | ... | ... | ... |
995 | 515397078518 | 265.46100 | -41.78668 | ASASSN-V J174150.64-414712.0 |
996 | 515397087473 | 210.81929 | -41.72133 | ASASSN-V J140316.63-414316.8 |
997 | 412316933534 | 8.80896 | -41.72128 | ASAS J003514-4143.2 |
998 | 515397087308 | 210.42030 | -41.72102 | SSS_J140141.0-414314 |
999 | 412316939243 | 106.25032 | -41.72086 | SSS_J070500.0-414314 |
1000 rows × 4 columns
If you have a list of external identifiers you can query our catalogs using these.For thestellar_main catalog, use theid_col parameter.For other catalogs you can search by name.
my_tic_ids= [6658326,46783395,1021890]client.query_list(my_tic_ids,catalog='stellar_main',id_col='tic_id')
asas_sn_id | ra_deg | dec_deg | |
---|---|---|---|
0 | 309238124040 | 329.260377 | -8.035864 |
1 | 335007699083 | 97.045759 | 18.214838 |
2 | 335007693701 | 81.164422 | 18.222147 |
my_vso_id='ASASSN-V J182608.32-864925.1'client.query_list(my_vso_id,catalog='aavsovsx')
asas_sn_id | ra_deg | dec_deg | name | |
---|---|---|---|---|
0 | 17181129184 | 276.53493 | -86.82375 | ASASSN-V J182608.32-864925.1 |
We have inculded a custom ADQL parser. That will allow users to query targets using this familiar SQL-like language.First, take note how we can use this to perform a cone-search.
query="""SELECT *FROM stellar_mainWHERE DISTANCE(ra_deg, dec_deg, 270, -88) <= 5.1"""client.adql_query(query)
asas_sn_id | ra_deg | dec_deg | refcat_id | gaia_id | hip_id | tyc_id | tmass_id | sdss_id | allwise_id | ... | pstarrs_r_mag_contrib | pstarrs_i_mag | pstarrs_i_mag_d | pstarrs_i_mag_chi | pstarrs_i_mag_contrib | pstarrs_z_mag | pstarrs_z_mag_d | pstarrs_z_mag_chi | pstarrs_z_mag_contrib | nstat | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1094902 | 14.059417 | -89.846361 | 180140594164367 | 4611690901807713792 | None | None | None | None | None | ... | 1 | 16.174999 | 0.100 | 0.00 | 1 | 15.810000 | 0.100 | 0.00 | 1 | 0 |
1 | 1099017 | 182.038926 | -89.804971 | 231820389264035 | 5764625115221143040 | None | None | None | None | None | ... | 1 | 17.544001 | 0.100 | 0.00 | 1 | 17.448000 | 0.100 | 0.00 | 1 | 0 |
2 | 1105675 | 309.260296 | -89.743042 | 303092602958351 | 6341076010576210432 | None | None | None | None | None | ... | 33 | 12.147000 | 0.021 | 0.03 | 33 | 11.933000 | 0.100 | 0.01 | 1 | 0 |
3 | 1109079 | 39.243573 | -89.709996 | 340392435728006 | 4611694161685666944 | None | None | None | None | None | ... | 1 | 17.083000 | 0.100 | 0.00 | 1 | 16.879000 | 0.100 | 0.00 | 1 | 0 |
4 | 1110860 | 281.009406 | -89.701636 | 352810094058038 | 6341087418009385600 | None | None | None | None | None | ... | 33 | 16.521000 | 0.100 | 0.00 | 1 | 16.492001 | 0.100 | 0.00 | 1 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
245123 | 77310219747 | 256.853379 | -83.001130 | 8392568533788677 | 5773920596978196224 | None | None | None | None | None | ... | 41 | 16.059000 | 0.022 | 3.28 | 41 | 15.903000 | 0.028 | 0.00 | 9 | 1 |
245124 | 77310248925 | 260.635568 | -82.997364 | 8402606355683196 | 5773744258504279552 | None | None | None | None | None | ... | 1 | 16.035999 | 0.090 | 0.02 | 1 | 15.943000 | 0.090 | 0.00 | 1 | 0 |
245125 | 266288894288 | 276.533820 | -82.974527 | 8432765338190601 | 6359213240854465280 | None | None | None | None | None | ... | 41 | 16.825001 | 0.053 | 0.36 | 9 | 16.875000 | 0.024 | 1.32 | 9 | 0 |
245126 | 77310240409 | 278.626894 | -82.946876 | 8462786268933782 | 6359204964453699328 | None | None | None | None | None | ... | 9 | 16.986000 | 0.025 | 0.31 | 9 | 16.709000 | 0.046 | 0.43 | 9 | 0 |
245127 | 77310268049 | 263.648603 | -82.935546 | 8472636486037378 | 5773736699361849344 | None | None | None | None | None | ... | 9 | 17.495001 | 0.059 | 0.46 | 9 | 17.431000 | 0.025 | 0.25 | 9 | 0 |
245128 rows × 47 columns
Since we have cross matched all of our catalogs. We can use ADQL to explore targets accross catalogs.
query="""SELECT asas_sn_id, chandra.name AS c_name, swift.name AS s_nameFROM chandraJOIN swift USING(asas_sn_id)"""client.adql_query(query)
asas_sn_id | c_name | s_name | |
---|---|---|---|
0 | 661430542782 | 2CXO J165358.5-395225 | GROJ1655-40 |
1 | 661430564327 | 2CXO J174544.4-285744 | GALACTICCENTER |
2 | 661430563309 | 2CXO J174538.4-285744 | GALACTICCENTER |
3 | 661430490720 | 2CXO J132524.3-430110 | CenA |
4 | 661430501688 | 2CXO J140304.7+541924 | PTF11kly |
... | ... | ... | ... |
472 | 661430562283 | 2CXO J174532.1-290054 | GALACTICCENTER |
473 | 661430562286 | 2CXO J174545.7-290054 | GALACTICCENTER |
474 | 661430561004 | 2CXO J174547.5-290053 | GALACTICCENTER |
475 | 661430562813 | 2CXO J174547.4-290052 | GALACTICCENTER |
476 | 661430468363 | 2CXO J121900.0+472049 | NGC4258 |
477 rows × 3 columns
Lets say we were searching for white dwarfs that crossmatched in the VSO catalog.
query="""SELECT asas_sn_id, gaia_id, pstarrs_g_mag, (gaia_mag - (5 * LOG10(plx) - 10)) AS g_mag_abs, nameFROM stellar_mainJOIN aavsovsx USING(asas_sn_id)WHERE 1=1 AND pstarrs_g_mag < 14 AND (gaia_mag - (5 * LOG10(plx) - 10)) > 10 AND (gaia_b_mag - gaia_r_mag) < 1.5"""client.adql_query(query)
asas_sn_id | gaia_id | pstarrs_g_mag | g_mag_abs | name | |
---|---|---|---|---|---|
0 | 81666 | 5775496815616520960 | 11.407 | 19.708543 | ASAS J170324-7937.2 |
1 | 118602 | 5785843769793058048 | 10.258 | 16.563561 | ASAS J142524-7758.4 |
2 | 588857 | 1055430973963102848 | 11.696 | 15.816850 | NSV 5012 |
3 | 728404 | 2286601456945437952 | 8.677 | 16.979321 | V0462 Cep |
4 | 882997 | 2296982083661854592 | 13.810 | 25.175794 | WISE J211009.8+791037 |
... | ... | ... | ... | ... | ... |
86597 | 652835029334 | 5923382022937143680 | 13.345 | 24.216244 | ASASSN-V J171026.75-553046.2 |
86598 | 652835270742 | 5894443632805934976 | 9.793 | 17.875823 | HD 127021 |
86599 | 652835624417 | 5334925216491199360 | 12.149 | 24.397192 | GDS_J1142208-613045 |
86600 | 661425088337 | 5258317985093107072 | 11.683 | 21.799361 | IV Car |
86601 | 661425544613 | 5335409796224181376 | 11.922 | 22.474754 | ASASSN-V J114927.29-601925.8 |
86602 rows × 5 columns
Any of the previous functions can takemode='download_curves' as a parameter to download the lightcurves coresponding to these targets.
The client will return a LightCurveCollection object which can be used for further analysis and plotting.
# Should take about 1-2 minuteslcs=client.adql_query(query,mode="download_curves",threads=2)lcs.data
jd | flux | flux_err | mag | mag_err | limit | fwhm | asas_sn_id | cam | |
---|---|---|---|---|---|---|---|---|---|
0 | 2.458829e+06 | 20.342858 | 0.088424 | 13.129036 | 0.004725 | 17.286221 | 1.44 | 8590141875 | bC |
1 | 2.458799e+06 | 18.665619 | 0.087248 | 13.222460 | 0.005081 | 17.300755 | 1.43 | 8590141875 | bC |
2 | 2.458828e+06 | 19.152875 | 0.076590 | 13.194481 | 0.004347 | 17.442213 | 1.46 | 8590141875 | bC |
3 | 2.458486e+06 | 20.587438 | 0.018324 | 13.116060 | 0.000967 | 18.995069 | 1.66 | 8590141875 | bC |
4 | 2.458676e+06 | 19.333177 | 0.089922 | 13.184308 | 0.005056 | 17.267982 | 1.50 | 8590141875 | bC |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
67 | 2.458767e+06 | 11.306272 | 0.104996 | 13.766767 | 0.010094 | 17.099706 | 2.09 | 627065865626 | bF |
68 | 2.458735e+06 | 11.481891 | 0.097641 | 13.750032 | 0.009243 | 17.178560 | 2.05 | 627065865626 | bF |
69 | 2.458728e+06 | 11.532006 | 0.087781 | 13.745303 | 0.008274 | 17.294142 | 1.98 | 627065865626 | bF |
70 | 2.458690e+06 | 8.161064 | 0.085658 | 14.120699 | 0.011409 | 17.320725 | 1.98 | 627065865626 | bF |
71 | 2.458608e+06 | 11.419176 | 0.054434 | 13.755979 | 0.005181 | 17.812959 | 1.45 | 627065865626 | bF |
10357650 rows × 9 columns
lcs.stats()
mean_mag | std_mag | epochs | |
---|---|---|---|
asas_sn_id | |||
6722 | 13.713655 | 0.143119 | 557 |
7205 | 9.354485 | 0.433855 | 243 |
10138 | 11.980529 | 0.032530 | 410 |
12702 | 13.071251 | 0.166151 | 547 |
15055 | 12.448167 | 0.345866 | 235 |
... | ... | ... | ... |
661425547786 | 13.487700 | 0.105852 | 137 |
661425547969 | 13.287609 | 0.141784 | 54 |
661425548441 | 13.690842 | 0.124418 | 157 |
661425548470 | 11.917627 | 0.024326 | 143 |
661425548591 | 13.108276 | 0.067760 | 157 |
86539 rows × 3 columns
lightcurve=lcs[15055]lightcurve.meta
asas_sn_id | gaia_id | pstarrs_g_mag | g_mag_abs | name | |
---|---|---|---|---|---|
67265 | 15055 | 5784674881551467392 | 12.351 | 24.402487 | BV Cha |
lightcurve.plot()
client.adql_query("SELECT * FROM aavsovsx WHERE asas_sn_id = 15055")
asas_sn_id | ra_deg | dec_deg | source_number | name | variability_flag | lii | bii | variability_type | max_mag_type | ... | min_mag_system | epoch | epoch_flag | period_limit | period | period_flag | ref_bibcode_1 | ref_bibcode_2 | ref_bibcode_others | class | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 15055 | 195.58829 | -79.75731 | 9336 | BV Cha | 0 | 303.438856 | -16.896307 | CWB | NaN | ... | V | 2451872.85 | None | None | 1.23804 | None | 1963VeSon...6....1H | 2009yCat....102025S | None | 2900 |
1 rows × 28 columns