dace-query

Description

The dace-query lets easily query DACE and access public and private data using a simple utility tool.

Installation

The dace-query is available on PyPi and can be installed using pip or conda :

# Install using pip
pip install dace-query

# Update using pip
pip install dace-query --upgrade
# Install using conda
# First, create a conda environment
conda create -n <env_name> python=3.9 # python version equal or upper than 3.9
# Second, activate the environment
conda activate <env_name>
# Finally, install using anaconda pip
pip install dace-query

Make sure the API is installed correctly :

# Import dace
import dace_query

# List content of the dace package
help(dace_query)

Authentication

In order to access the private data of DACE, an authentication system has been implemented. This one works very simply, it just requires three things detailed in the following subsections:

Create an account

Register on the DACE web portal with the university email address.

_images/create-account.png

Generate the DACE API key

To obtain an API key:

  1. Login on DACE (https://dace.unige.ch)

  2. Go to the user profile

  3. Click on [Generate a new API key]

    _images/generate-api-key.png
  4. Copy this new API key into the .dacerc file

The .dacerc file

The .dacerc file, (you have to create it), located by default in the home directory (~/.dacerc) and in TOML format, defines a user section with a key-value pair specifying the user’s API key (see below).

[user]
key = apiKey:<xxx-xxx-xxx>

For example, if your API key is 12345678-1234-5678-1234-567812345678, then the .dacerc file will be :

[user]
key = apiKey:12345678-1234-5678-1234-567812345678

To create the .dacerc file on Linux or macOs, open a terminal window and type :

printf '[user]\nkey = apiKey:%s\n' "your-api-key-here" > ~/.dacerc

Quickstart

# Import the ready-to-use exoplanet instance
from dace_query.exoplanet import Exoplanet

# Retrieve data from the exoplanet database
result: dict = Exoplanet.query_database(limit=10, output_format='dict')

# Get the planet names
planet_names: list = result.get('obj_id_catname')

# Print the planet names
print(planet_names)

For more examples of uses, such as filtering bad quality data (see Usage examples)

Contact

In case of questions, proposals or problems, feel free to contact the DACE support .

Changelogs