API Client utility package for the ATLAS Transient Server
Project description
ATLAS API Client
This Python client facilitates the use of the ATLAS API. Some general use cases are shown below - feel free to reach out to request additional documentation or features.
Installation
Pypi
UPCOMING
Clone Github
git clone git@github.com:HeloiseS/atlasapiclient.git
Configuration
The client requires a config ile that contains the base url of the ATLAS transient web servers and your token for the ATLAS API.
In the directory atlasapiclient/config_files you will find the api_config_template.yaml file.
- Copy it in the same directory to a file named
api_config_MINE.yaml. YES - THE NAME MATTERS
cd atlasapiclient/config_files
cp api_config_template.yaml api_config_MINE.yaml
- Update your token (if you don't have a token see below)
- Update the url to "https://psweb.mp.qub.ac.uk/sne/atlas4/api/"
How do I get a token?
For now, you ask Ken, the wizard in charge the ATLAS transient servers. Email: k.w.smith@qub.ac.uk
User Cheat Sheet
Cone Search
The cone search requires four parameters:
- RA
- Dec
- Search radius in arcseconds
- Request type: All, Nearest or Count (case insensitive)
from atlasapiclient import client as atlaspaiclient
client = atlaspaiclient.ConeSearch(payload={'ra': 150,
'dec': 60,
'radius': 60,
'requestType': 'nearest'},
get_response=True)
Get data for one or more ATLAS_IDs
Get a Single object data
from atlasapiclient import client as atlaspaiclient
atlas_id = '1121846241331952000'
client = atlaspaiclient.RequestSingleSourceData(atlas_id=atlas_id, get_response=True)
Note: Here we don't parse the config file because we assume you have named yours api_config_MINE.yaml.
The path to that file is encoded in the API_CONFIG_FILE variable in the atlasapiclient/utils.py file and parsed by default to the classes.
If you feel fancy and want to name your config file differently you have to keep track of its location and parse it with the argument api_config_file.
Your data can be found in the client.response attribute. Note that it is a list so if you only have one object you
want to do client.response[0] to get the JSON data.
Get Multiple objects
If you want to query the ATLAS API for multiple objects you're going to encounter the rate limit, which is 100 per query. To handle this, there is a class to chunk stuff for you:
from atlasapiclient import client as atlaspaiclient
client = RequestMultipleSourceData(atlas_ids=MY_LIST_OF_IDS, mjdthreshold = LOWER_MJD_THRESHOLD)
client.chunk_get_response() # Chunks the list of IDs into a bunch of payloads and colates the responses.
You can then get the data just as you would for a single object.
Data Structure
The ATLAS API gives you back everything (or nearly). The schema can be explored on this page: ATLAS Json Schema
Here is a couple of handy recipes...
Getting the lightcurves
The detections and non-detections are in separate dictionaries with different columns names so we put them in two separate dictionaries.
import pandas as pd
detections = pd.DataFrame(client.response[0]['lc'])
non_detections = pd.DataFrame(client.response[0]['lcnondets'])
If concatenate them together we recommend ordering by mjd .
[Should the JsonData object from atlasvras actually live in this package so people cna use it?]
Getting the Sherlock crossmatches
The first crossmatch (if any) is a merged entry which cherry picks the best information from all catalogues (so if a galaxy has info in 3 catalogues it will be cross matched 3 times and the info from these catalogues will appear as separate entries in our list of dictionaries - the first entry in the list will be the combination of all the best info in those 3 entries) The following entries are the individual crossmatches.
summary_crossmatch = client.response[0]['sherlock_crossmatches'][0]
Is that ATLAS_ID object in TNS?
You can check the crossmatches using:
client.response[0]['tns_crossmatches']
FAQ
- Can I query by TNS/ZTF name?:
No. Do a cone search.
- WHY?: Because it's too low on our priority list and we don't have the time. If it's a really big deal for you and you might have working hours to help us with this, get in touch.
- Can I do a cone search? : Not yet. Poke us if we've not done it by February 2025.
- Why does the API return so much data?: Because it'd take forever to refactor and it's low on the priority list. If it's a big deal for you talk to us, it might bump it further up the to-do list.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atlasapiclient-0.2.0.tar.gz.
File metadata
- Download URL: atlasapiclient-0.2.0.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af0fdf8f08e88f7bd15bae3aec5f1bbebcd1ebf027257eb788ed80e3dc0ff7c6
|
|
| MD5 |
9ccb6ba29a1d9a87b828a0db089cb047
|
|
| BLAKE2b-256 |
cbe99bf5467e6feaf646c2bfee1f792280c92cbe6321e48b4cadfd57df681e1f
|
Provenance
The following attestation bundles were made for atlasapiclient-0.2.0.tar.gz:
Publisher:
publish.yml on HeloiseS/atlasapiclient
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atlasapiclient-0.2.0.tar.gz -
Subject digest:
af0fdf8f08e88f7bd15bae3aec5f1bbebcd1ebf027257eb788ed80e3dc0ff7c6 - Sigstore transparency entry: 153624831
- Sigstore integration time:
-
Permalink:
HeloiseS/atlasapiclient@53442a60bbc1e542c1707c5d4b35488538215fd7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/HeloiseS
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53442a60bbc1e542c1707c5d4b35488538215fd7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file atlasapiclient-0.2.0-py3-none-any.whl.
File metadata
- Download URL: atlasapiclient-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3caf00bc470c19d9fbabfec2a65612fb0e3e94bc31aed924b46d1b5e6d489bea
|
|
| MD5 |
fcf67e9a4e8fe6160f25ff8dc6eaf452
|
|
| BLAKE2b-256 |
f8f80c6285502ece95446409753063cec8960bc939c5b1000e0e625eb378b678
|
Provenance
The following attestation bundles were made for atlasapiclient-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on HeloiseS/atlasapiclient
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atlasapiclient-0.2.0-py3-none-any.whl -
Subject digest:
3caf00bc470c19d9fbabfec2a65612fb0e3e94bc31aed924b46d1b5e6d489bea - Sigstore transparency entry: 153624832
- Sigstore integration time:
-
Permalink:
HeloiseS/atlasapiclient@53442a60bbc1e542c1707c5d4b35488538215fd7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/HeloiseS
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@53442a60bbc1e542c1707c5d4b35488538215fd7 -
Trigger Event:
push
-
Statement type: