Aller au contenu

Sélection de langue

Sélection de langue

Rechercher dans Canada.ca

Guide de l'API

Cette page vous permettra de vous familiariser avec l'API (interface de protocole d'application) en fournissant une explication rapide de celui-ci ainsi qu'un exemple permettant d'accéder aux données de ce site web et de les télécharger.

L’agence spatiale canadienne utilise un système de gestion des données à code source ouvert appelé CKAN (« Comprehensive Knowledge Archive Network ») pour gérer ce site web et ses ensembles de données. Puisque celui-ci est largement utilisé, il existe de nombreuses ressources et scripts en ligne qui montrent comment utiliser son API. Un exemple, écrit en Python, vous est fourni ci-dessous :

# -*- coding: utf-8 -*-
import json
import requests
import pandas as pd
import numpy as np
import time
'''
Tips/Astuces
Dans la terminologie CKAN, un package/dataset est une liste comme celle-ci : https://donnees-data.asc-csa.gc.ca/dataset/02969436-8c0b-4e6e-ad40-781cdb43cf24. Chaque élément que vous pouvez télécharger ou auquel vous pouvez accéder sur une page d'ensemble de données est une ressource.
In CKAN terminology, a package/dataset is a listing like this: https://donnees-data.asc-csa.gc.ca/dataset/02969436-8c0b-4e6e-ad40-781cdb43cf24. Every item that you can download or access on a dataset page is a resource.
Obtenez des listes formatées en JSON de tous les ensembles de données.
Get JSON-formatted lists of all datasets
https://donnees-data.asc-csa.gc.ca/api/3/action/package_list
Obtenez une représentation JSON complète d'un ensemble de données ou d'une ressource.
Get a full JSON representation of a dataset or resource.
https://donnees-data.asc-csa.gc.ca/api/3/action/package_show?id=02969436-8c0b-4e6e-ad40-781cdb43cf24
Recherche de jeux de données ou de ressources correspondant à une requête.
Search for dataset or resources matching a query.
https://donnees-data.asc-csa.gc.ca/api/3/action/package_search?q=astronomy
Get an activity stream of recently changed datasets on the site.
Obtenez un profil d'activité des ensembles de données récemment modifiés sur le site.
https://donnees-data.asc-csa.gc.ca/api/3/action/recently_changed_packages_activity_list
'''
'''
Exemple/Example: get_data
Obtenir toutes les métadonnées pour les ensembles de données où project = project_cat. Les options disponibles sont les suivantes :
Get all metadata for datasets where project = project_cat. Options include:
Valeur/Value
'atmospheric_sci' : Science atmosphérique/Atmospheric science
'earth_observation' : Observation terrestre/Earth observation
'life_sciences' : Science de la vie/Life sciences
'space_astronomy' : Astronomie spatiale/Space astronomy
'space_environment' : Environnement spatiale/météo spatiale/ Space environment/Space weather
'space_exploration' : Exploration spatiale/Space exploration
'telemetry' : Télémétrie/Telemetry
Pour plus d'informations sur les métadonnées utilisées dans ce portail, voir:
For more information about the metadata used in this portal, see:
https://github.com/asc-csa/ckanext-asc-csa-scheming/blob/master/ckanext/scheming/ckan_dataset.json
https://github.com/asc-csa/ckanext-asc-csa-scheming/blob/python3/ckanext/scheming/presets.json.
'''
def get_data(project_cat):
# Demander une liste des ensembles de données dans la catégorie de votre choix.
# Request a list of datasets in the category of your choice.
response = requests.get('https://donnees-data.asc-csa.gc.ca/api/action/package_search?fq=project:'+ project_cat)
response.encoding = "utf-8"
datasets= json.loads(response.text)
# Créez un objet dataframe de pandas pour faciliter l'analyse.
# Create a pandas dataframe object for easy analysis.
df = pd.DataFrame(datasets['result']['results'])
# Sauvegarder les données demandées dans un fichier .json
# Save the data that was requested into a .json file
with open('%s_datasets_raw.json'%project_cat, 'w') as f:
json.dump(datasets, f)
print("Succès ! | Success!")
return df
# Appliquer la fonction/Apply the function
space_df = get_data('space_astronomy')
print(space_df)
# Obtenir tous les noms de colonnes/Get all of the column names
for col in space_df.columns:
print(col)
# Visualisez les valeurs d'une colonne qui vous intéresse.
# View the values for a column you're interested in.
print(space_df['title'])
#Visualisez les valeurs d'une colonne qui vous intéresse si elle contient un objet dictionnaire avec des valeurs anglais-français.# View the values for a column you're interested in.
# View the values for a column you're interested in if it contains a dictionnary object with values in english and french.
print(space_df['title_translated'].apply(pd.Series))
view raw Harvester_example.py delivered with ❤ by emgithub

D'autres ressources disponibles pour l'API de CKAN :