Skip to main content

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.

  1. 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
  1. Update your token (if you don't have a token see below)
  2. 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

atlasapiclient-0.2.0.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atlasapiclient-0.2.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

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

Hashes for atlasapiclient-0.2.0.tar.gz
Algorithm Hash digest
SHA256 af0fdf8f08e88f7bd15bae3aec5f1bbebcd1ebf027257eb788ed80e3dc0ff7c6
MD5 9ccb6ba29a1d9a87b828a0db089cb047
BLAKE2b-256 cbe99bf5467e6feaf646c2bfee1f792280c92cbe6321e48b4cadfd57df681e1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasapiclient-0.2.0.tar.gz:

Publisher: publish.yml on HeloiseS/atlasapiclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for atlasapiclient-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3caf00bc470c19d9fbabfec2a65612fb0e3e94bc31aed924b46d1b5e6d489bea
MD5 fcf67e9a4e8fe6160f25ff8dc6eaf452
BLAKE2b-256 f8f80c6285502ece95446409753063cec8960bc939c5b1000e0e625eb378b678

See more details on using hashes here.

Provenance

The following attestation bundles were made for atlasapiclient-0.2.0-py3-none-any.whl:

Publisher: publish.yml on HeloiseS/atlasapiclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page