vOs4OVirtual Observatory Solar System Scaling Service for Outreach

Le systèmesolaireà l'échelle

Présentation

Si le soleil était un ballon de foot, de quelle taille serait la Terre ? À quelle distance serait Jupiter ? Quelle doit être la taille des planètes pour que le système solaire entier tienne dans mon jardin ? Ma salle de classe ?

VOS4O propose une solution simple à toutes les questions de mise à l'échelle de notre système solaire. À partir d'une référence (diamètre, distance, ou échelle), VOS4O liste les diamètres et les distances mises à l'échelle de toutes les planètes, l'excentricité de leur orbite, ainsi que leurs positions respectives autour du Soleil à une date donnée (longitude héliocentrique).

Comment faire ?

Comment faire ?

Pour composer votre système solaire, utilisez le formulaire en ligne ou interrogez directement le service à travers son API. Les résultats sont retournés sous la forme d'une table et de deux images.

Formulaire

La page du formulaire présente, par défaut, les diamètres et les distances des planètes mises à l'échelle telle que la distance Terre-Soleil égale 1 mètre. Leurs positions respectives autour du Soleil sont également calculées pour la date courante (longitudes moyennes héliocentriques). Pour modifier l'échelle ou changer la date, déployez l'onglet  Définir les paramètres et composez votre système solaire en définissant les paramètres suivants :

Échelle
Distance
Permet de rapporter l'échelle à la valeur donnée de la distance d'une planète choisie. Par exemple, si le paramètre unité est le mètre alors l'échelle 7.22 pour la distance de Neptune permet de composer un système solaire dans lequel la distance Soleil – Neptune vaut 7.22 mètres.
Diamètre
Permet de rapporter l'échelle à la valeur donnée du diamètre d'une planète choisie. Par exemple, si le paramètre unité est le mètre alors l'échelle 1 pour le diamètre de la Terre permet de composer un système solaire dans lequel le diamètre de la Terre vaut 1 mètre.
Proportion
Permet de spécifier un coefficient multiplicateur X/Y à appliquer à toutes les unités de longueurs. Par exemple, l'échelle 1:1000000 (un millionième) permet de diviser par un million les distances et les diamètres des planètes.
Unité
Permet de spécifier l'unité de longueur de la mise à l'échelle : unité astronomique (149597870 km), kilomètre, mètre, centimètre, millimètre.

Pour définir les paramètres optionnels, cliquer sur le bouton ... :

Ajuster les unités
Permet de changer automatiquement l'unité des distances et des diamètres quand les valeurs sont trop petites ou trop grandes par rapport à l'échelle et l'unité sélectionnées. Par exemple, une longueur de 1234 mètres sera écrite 1.23 kilomètre, et une longueur de 0.123 mètre sera écrite 12.30 centimètres.
Multiplie les diamètres par
Permet d'utiliser deux échelles différentes entre les distances et les diamètres. Les diamètres sont multipliés par la valeur donnée si l'échelle sélectionnée est distance ou proportion.
Divise les distances par
Permet d'utiliser deux échelles différentes entre les distances et les diamètres. Les distances sont divisées par la valeur donnée si l'échelle sélectionnée est diamètre.
Date
Permet de spécifier la date de calcul des positions respectives des planètes autour du Soleil (longitudes héliocentriques). Cliquer sur la zone de saisie de la date ou de l'heure pour ouvrir le selecteur de date ou d'heure, ou saisir une date au format ISO 8601 arrondie à la minute.
Langue
Permet de spécifier la langue d'affichage des résultats.

Cliquer sur le bouton Calcul pour mettre à l'échelle le système solaire en fonction des informations fournies. A l'issu des calculs, la table des valeurs et les images sont automatiquement affichées.

Pour télécharger les résultats, déployez l'onglet  Télécharger les résultats. Pour télécharger une image, sélectionnez le format souhaité (SVG, PNG, PDF, TIFF), puis cliquez sur le bouton Télécharger l'image. Pour télécharger la table, sélectionnez le format souhaité (CSV, VOTABLE), puis cliquez sur le bouton Télécharger la table.

API

L'API (interface de programmation applicative) permet d'interroger directement VOS4O depuis une application ou un logiciel tiers. Il est ainsi possible de créer une page Web personnelle de mise à l'échelle du système solaire, mais aussi de scripter l'interrogation du service et de récupérer la table et les images générées dans un programme dédié. En savoir plus...

API - Web Service

A propos

L'API (interface de programmation applicative) permet d'interroger directement VOS4O depuis une application ou un logiciel tiers. Il est ainsi possible de créer une page Web personnelle de mise à l'échelle du système solaire, mais aussi de scripter l'interrogation du service et de récupérer la table et les images générées dans un programme dédié. Deux méthodes sont disponibles pour interroger le service :

  • Requête HTTP : interroger simplement le service avec un programme de téléchargement Internet non interactif tels que wget, curl ou un objet XMLHttpRequest du langage Javascript.
  • Service Web : interroger le service via son service Web (WS) basé sur les protocoles SOAP+WSDL+HTTP.

L'utilisation de l'API est libre et gratuite pour un usage personnel ou pédagogique et non commercial. Il est fortement recommandé de nous contacter si vous développez une application utilisant le service VOS4O afin d'être informé des évolutions.

Veuillez utiliser notre système de rapport d'incident pour signaler un disfonctionnement ou pour faire des demandes d'amélioration du service.

Définition de l'échelle

La définition de l'échelle peut se faire de 3 manières :

x:y
pour spécifier un coefficient multiplicateur X/Y à appliquer à toutes les unités de longueurs. Par exemple, l'échelle 1:1000000 (un millionième) permet de diviser par un million les distances et les diamètres des planètes.
a(planete):x
pour rapporter l'échelle à la valeur x donnée de la distance d'une planète donnée. Par exemple, si le paramètre unite=m (mètre) alors l'échelle a(neptune):7.22 permet de composer un système solaire dans lequel la distance Soleil – Neptune vaut 7.22 mètres.
d(planete):x
pour rapporter l'échelle à la valeur x donnée du diamètre d'une planète donnée. Par exemple, si le paramètre unite=m (mètre) alors l'échelle d(terre):1 permet de composer un système solaire dans lequel le diamètre de la Terre vaut 1 mètre.

Description de la table et des images fournies

La table générée par le service VOS4O fournie le diamètre du Soleil, les diamètres des planètes et leurs distances au Soleil mises à l'échelle dans l'unité choisie. Les excentricités des orbites des planètes sont également fournies, ainsi que leurs longitudes moyennes héliocentriques à une époque donnée, exprimées en degrés.

La première image générée par le service VOS4O présente graphiquement le système solaire mis à l'échelle en fonction des paramètres choisis. A côté de chaque planète, disposée le long d'un axe gradué en échelle logarithmique respectant leurs distances relatives, figure son diamètre et sa distance au Soleil calculés en fonction de l'échelle et de l'unité choisies.

La deuxième image présente le système solaire vu du dessus. Chaque planète est positionnée sur son orbite en fonction de sa longitude moyenne héliocentrique calculée pour la date donnée. La référence des longitudes est la direction du point vernal moyen (ou équinoxe moyen), matérialisé par le symbole γ.

Requête HTTP

A l'aide d'un programme de téléchargement Internet non interactif (wget, curl), ou à l'aide d'un navigateur Internet, appeler le service à travers son point d'accès HTTP :

https://ssp.imcce.fr/webservices/vos4o/scale.php?[parameters]

[parameters] est une liste de paramètres, définis dans la table 1, séparés par le caractère &. Si tous les paramètres sont omis alors le service renvoie le système solaire mis à l'échelle d'après les valeurs par défaut indiquées dans la table 1.

Table 1 : Paramètres d'une requête HTTP
ParamètreDéfinitionFormat
-echelle=<string> Défini la mise à l'échelle du système solaire. Défaut: 1:1 X:Y ou a|d(planete):x
-echelleauto=<int> Change automatiquement l'unité des distances et des diamètres quand les valeurs sont trop petites ou trop grandes par rapport à l'échelle et l'unité sélectionnées. Défaut: 1* 0 ou 1
-facteurechelle=<double> Multiplie les diamètres par la valeur donnée si l'échelle sélectionnée est X:Y ou distance, ou divise les distances par la valeur donnée si l'échelle sélectionnée est diamètre. Défaut: 1.0 > 0.0
-unite=<string> Défini l'unité de longueur de la mise à l'échelle : unité astronomique (149597870 km), kilomètre, mètre, centimètre, millimètre. Défaut: au au, km, m, cm, mm
-lang=<string> Défini la langue d'affichage des résultats. Défaut: en-us de-de, el-el, en-us, es-es, fi-fi, fr-fr, hi-hi, it-it, pl-pl, pt-pt, ro-ro, zh-hans
-mime=<string> Défini le type MIME des résultats. Défaut: html html, votable, text/csv, text
-date=<string> Défini l'époque de calcul des longitudes héliocentriques au format ISO 8601. Défaut: now now, aaaa:mm:jj hh:mi:ss

* Si le type MIME demandé est VOTABLE alors le paramètre echelleauto vaut 0 quelque soit la valeur fournie.

La réponse d'une requête HTTP est composée d'une table et d'une image, formatée en HTML, VOTable/XML ou en texte simple selon le type MIME choisi (argument -mime).

Exemples de requêtes :

Web service

Le service VOS4O peut être interroger via un Web service basé sur les protocoles SOAP+WSDL+HTTP permettant une interaction directe entre sa propre application et le service.

Web Service URI :
https://ssp.imcce.fr/webservices/vos4o/vos4o.php
Espace de nom :
https://ssp.imcce.fr/webservices/vos4o
WSDL:
https://ssp.imcce.fr/webservices/vos4o/vos4o.php?wsdl
Entête SOAP :
nom de l'element de l'entête SOAP : clientID
contenu de l'entête SOAP : array('from' => 'NomProjet', 'hostip'=>'')
Méthode :
scale (inputArray)

Paramètres d'entrée

Les paramètres d'entrée de la méthode scale sont regroupés dans un tableau et doivent définir les variables décrites dans la table 2.

Table 2 : Definition des variables d'entrée de la méthode 'scale'
ParamètreTypeDéfinitionDéfautValeur
scale string Défini la mise à l'échelle du système solaire 1:1 X:Y ou a|d(<p>):x
autoscale boolean Change automatiquement l'unité des distances et des diamètres quand les valeurs sont trop petites ou trop grandes par rapport à l'échelle et l'unité true* true | false
scalefactor double Multiplie les diamètres par la valeur si l'échelle est X:Y ou distance, ou divise les distances par la valeur si l'échelle est diamètre 1.0 > 0.0
unit string Unité de longueur de la mise à l'échelle au au, km, m, cm, mm
lang string Langue d'affichage des résultats en-us de-de, el-el, en-us, es-es, fi-fi, fr-fr, hi-hi, it-it, pl-pl, pt-pt, ro-ro, zh-hans
mime string Type MIME des résultats html html, votable, text/csv, text
epoch string Époque de calcul des longitudes héliocentriques au format ISO 8601 now now, aaaa:mm:jj hh:mi:ss

* Si le type MIME demandé est VOTABLE alors le paramètre autoscale est false quelque soit la valeur fournie.

Paramètres de sortie

La réponse de la méthode 'scale' est un objet contenant les attributs suivants :

'status'
le statut de la réponse, basé sur les codes HTTP : 200 = ok, 400 = mauvaise requête, 404 = non trouvé, 500 = erreur interne.
'ticket'
Horodatage de la réponse.
'result'
Une chaine de caractères contenant la table et les images du système solaire mis à l'échelle.

Type mime

Selon le type MIME sélectionné, la réponse est retournée au format :

votable
les données sont écrites dans un document XML suivant le standard VOTable de l'IVOA
html
les données sont fournies dans un document HTML5
text
les données sont écrites dans un document plein texte.

Comment faire ?

Il y a deux manières d'utiliser le service de mise à l'échelle du système solaire : écrire un client pour envoyer une requête au serveur VOS4O puis recevoir et exploiter la réponse, ou utiliser un navigateur Web ou un programme de transfert de données tels que curl ou wget. Dans ce cas, exécuter dans une console la commande :

$> curl "<URL>"

ou

$> wget "<URL>"

<URL> est décrit dans la section requête HTTP.

Pour écrire un programme client pour invoquer le service VOS4O, il faut choisir un langage qui implémente le protocole de communication SOAP. Voici un exemple de client écrit en PHP:

1/ Définir les paramètres d'entrée du service:

// Client's ID: provide the name of your project or organisation
$from = 'MyName';
// Input parameters
$param = array('scale' => 'd(Terre)=1.0',
               'autoscale' => true,
               'scalefactor' => 1.0,
               'unit' => 'm',
               'axis' => 'log',
               'lang' => 'fr-fr',
               'mime' => 'html',
               'epoch' => 'now');

2/ Définir les paramètres SOAP, l'espace de nom, et l'URI du WSDL du service :

// Enables or disables the WSDL caching feature
ini_set('soap.wsdl_cache_enabled', 1);
// VOS4O name space
$namespace = 'https://ssp.imcce.fr/webservices/vos4o';
// VOS4O WSDL
$uriwsdl = $namespace.'/vos4o.wsdl';

3/ Instancier l'objet SoapClient, définir l'en-tête SOAP, puis appeler la méthode et gérer les exceptions :

try {
  // Instantiate the client
  $client = new SoapClient($uriwsdl, array('exceptions'=>1));
  // SOAP header
  $header = array('from'=>$from, 'hostip'=>'');
  $client->__setSoapHeaders(array(
     new SOAPHeader($namespace, 'clientID', $header)
  ));  
  // Call the resolver method
  $response = $client->__soapCall('scale',array($param));
  // Display the results
  if ($param['mime'] == 'text') {
    header("HTTP/1.0 ".$response->status);
    header("Content-Type: text/plain");
    $res = split(';', $response->result);
    $nbr = count($res);
    $newkey = array_keys($res);
    for ($i=0; $i<$nbr; $i++) { echo $res[$newkey[$i]],"\n"; };
  } else if ($param['mime'] == 'html') {
    header("HTTP/1.0 ".$response->status);
    header("Content-Type: text/html");
    echo $response->result;
  } else {
    header("HTTP/1.0 ".$response->status);
    header("Content-Type: text/xml");
    echo $response->result."\n";
  }
} catch (SoapFault $fault) {
  trigger_error("SOAP Fault: {$fault->getTraceAsString()} 
      (faultcode: {$fault->faultcode}, 
       faultstring: {$fault->faultstring})", E_USER_ERROR);
}

Crédits

Concept : B. Carry (OCA)
Réalisation : J. Berthier (IMCCE)
Webdesign : Y. Gominet (IMCCE)

Traductions :

N'hésitez pas à nous contacter pour proposer une traduction dans votre langue.

Ce service de diffusion de la connaissance scientifique est libre de droit pour toute utilisation non commerciale (voir mention légale). Les figures du système solaire à l'échelle sont mises à disposition sous licence Creative Commons BY-NC-SA 2.0 France.

Ce service est développé et maintenu par le Service des éphémérides de l'IMCCE et l'équipe TOP du laboratoire Lagrange de l'Observatoire de la Côte d'Azur, avec le support technique et financier de l'Observatoire de Paris, du Centre National de la Recherche Scientifique (CNRS) et du Ministère de l'Education Nationale.

Sources des données numériques :

Pour plus d'information, se référer à l'ouvrage Introduction aux éphémérides astronomiques, Supplément explicatif à la Connaissance des temps, EDP Sciences, 1998.

Sources des images utilisées :

  • Image de fond : création originale de Y. Gominet.
  • Image de fond pour les medias ≤ 1025px : qygjxz.com, retouchée par nos soins.
  • Textures des planètes :
    • Mercure : Messenger, NASA/Johns Hopkins University Applied Physics Laboratory/Carnegie Institution of Washington.
    • Vénus : Mariner 10, Mattias Malmer / NASA.
    • Terre : Image Meteosat-2, ESA.
    • Mars : HST, S. Lee (University of Colorado), J. Bell (Cornell University), M. Wolff (Space Science Institute), and NASA.
    • Jupiter : HST, NASA/ESA/A. Simon (Goddard Space Flight Center).
    • Saturn : Voyager 1, NASA/JPL.
    • Uranus : Voyager 2, NASA/JPL-Caltech.
    • Neptune : Voyager 2, NASA/JPL.

Polices de caractère :

Définir les paramètres
Télécharger les résultats

Choix des paramètres

 

Choix du format des résultats

Choisir les paramètres d'échelle puis cliquer sur le bouton Calcul...
Figure du système solaire à l'échelle
Figure de la vue du dessus du système solaire