Skip to content

Universe Viewer

Universe Viewer est un logiciel interactif de visualisation et de traitement géodésique d'objets astronomiques à grand décalage spectral (redshift).

AperçuAperçu

Il permet de produire une cartographie conforme de structures cosmologiques, plus particulièrement des quasars, en prenant en compte la courbure de l'univers.
Reposant sur des concepts d'astronomie et de relativité générale, il est conçu pour être un outil de travail pour la recherche en cosmologie, facilitant l'identification de structures à grande échelle dans l'espace comobile ou dans un espace de référence.

Ce projet repose sur les concepts développés dans la publication Framework for cosmography at high redshift, par R. Triay, L. Spinelli, R. Lafaye.

ScreenshotScreenshot

C'est un logiciel libre, et son code source est disponible sur sa page GitHub.

Cette version web du logiciel a été portée à partir de la version Java (qui n'est plus maintenue aujourd'hui), avec l'aide de l'intelligence artificielle pour accélérer les séquences fastidieuses de conversion de code de Java / Swing / JOGL vers JavaScript / Vue.js / Vuetify / Three.js.

Je remercie particulièrement le Pr. Roland Triay pour son aide lors de la conception de la version Java du logiciel, réalisée dans le cadre de ma formation en Master lors d'un travail d'étude et de recherche (TER), réalisé en binôme avec Julie Fontaine, en 2008.

Des versions encore plus anciennes d'un logiciel similaire ont existé, en Fortran et en C, basées sur la même publication de recherche, mais elles souffraient de problèmes de portabilité.

Projection de la carte des objets

Le Framework for cosmography at high redshift présente un cadre de travail pour projeter les objets étudiés sur un plan, en fonction des paramètres cosmologiques choisies et du point de vue.

Ces objets sont définis par trois caractéristiques principales:

  • l'ascension droite, le premier terme associé au système de coordonnées équatoriales, c'est l'azimut, l'équivalent sur la sphère céleste de la longitude terrestre,
  • la déclinaison, le second terme, qui mesure l'angle d'un objet de l'équateur céleste, c'est l'élévation, l'équivalent de la latitude terrestre,
  • et le décalage vers le rouge du spectre de l'objet, qui est un effet relativiste permettant d’estimer sa distance par rapport à l'observateur.

C'est donc à partir de ces données que sont représentés les objets à l'écran. Dans un premier temps, la projection sur l'espace de référence a été développée pour le cas d'une courbure positive de l'univers, puis ce travail a été généralisé à la courbure négative.
Les calculs ont finalement été étendus pour la représentation en espace comobile, qui fait abstraction de l'expansion de l'univers.

Calcul de la distance comobile

La distance comobile (sans unité) est notée τ, elle dépend du décalage vers le rouge z de l'objet concerné et on la calcule de la manière suivante:

τ(z)=(1+z)11daP(a)

avec:

P(a)=λ0a4κ0a2+Ω0a+α0P(1)=1

λ0, κ0, α0, Ω0 sont les paramètres cosmologiques:

  • λ0, une constante cosmologique représentant l'énergie du vide,
  • κ0, le paramètre de courbure, qui définit la géométrie globale de l'univers,
  • α0, qui quantifie la présence de photons du fond diffus cosmologique comme source de gravitation,
  • Ω0, le paramètre de densité de matière gravitationnelle,

et a représente le facteur d'échelle cosmologique. Pour un objet observé avec un décalage vers le rouge z, il vaut:

a(t)=11+z

Ce facteur d'échelle décrit l'état d'expansion de l'Univers au moment où la lumière a été émise. Aujourd'hui, on a a0=1.

Normalisation de la distance comobile en géométrie courbe

Lorsque l'espace comobile n'est pas plat (κ00), on introduit la distance angulaire:

τ^=τ|κ0|avecκ00

Cette variable apparaît naturellement dans la métrique spatiale à courbure non nulle:

{R=sin(τ^)κ0κ0>0R=sinh(τ^)κ0κ0<0

Dans le cas particulier de l'espace plat (κ0=0):

R=τ

R est utilisé pour placer les points dans la géométrie courbe.

Calcul de la projection sur le plan d'observation

Chaque objet cosmologique est représenté par un vecteur 4D dans l'espace-temps homogène du modèle:

X=(x,y,z,t)

Les trois premières coordonnées (x, y, z) représentent la position spatiale de l'objet dans l'espace 3D d'immersion correspondant à la géométrie choisie (sphérique si κ0 > 0, hyperbolique si κ0 < 0, ou plate si κ0 = 0).
La quatrième coordonnée t représente la composante temporelle conforme (associée à la distance comobile τ) dans l'espace-temps homogène.

Les coordonnées x, y et z sont calculées de la façon suivante:

x=Rcos(Decobj)cos(RAobj)y=Rcos(Decobj)sin(RAobj)z=Rsin(Decobj)

RAobj et Decobj sont l'ascension droite et la déclinaison de l'objet.

Dans l'espace de référence, t=τ, et dans l'espace comobile:

t=τ|κ0|

L'affichage 2D nécessite de projeter ce vecteur 4D sur un plan image, qui représente le plan du ciel selon le point de vue.

Construction de la base locale d'observation

L'utilisateur définit son orientation dans l'univers à l'aide de trois angles:

  • RA1, l'ascension droite (azimut),
  • Dec1, la déclinaison (élévation),
  • Beta, la rotation autour de l'axe de visée (roulis).

À partir de ces angles, on construit trois vecteurs orthonormés dans l'espace 3D euclidien:

  • P1: direction du regard (centre de la projection),
  • P2: direction horizontale locale,
  • P3: direction verticale locale.

Ces trois vecteurs forment une base orthonormée spatiale.
Dans l'espace-temps 4D du modèle, cette base devient:

E1=(P10),E2=(P20),E3=(P30)

Le quatrième vecteur de base est défini comme:

E0=(0s)

où:

s={1dans l’espace de référence|κ0|dans l’espace comobile

Ce vecteur encode la composante temporelle du repère. Sa normalisation dépend de l'espace choisi (référence ou comobile), car cela garantit que les projections respectent la métrique du modèle.

Projection sur le plan image

Pour un objet dont le vecteur 4D est X, ses coordonnées projetées sur le plan 2D sont:

xproj=XE1=XxE1x+XyE1y+XzE1z+XtE1typroj=XE2=XxE2x+XyE2y+XzE2z+XtE2t

Exemples de projections

Hewitt & Burbidge QSO Catalog

Voici quelques projections obtenues sur le catalogue de quasars Hewitt & Burbidge, composé de 7 236 objets.

La zone bleue représente l'univers visible, la ligne grise qui l'entoure l'horizon cosmologique.

La zone blanche représente l'univers visible, la ligne noire qui l'entoure l'horizon cosmologique.

Vue de face, courbure positive

Vue de face, K > 0Vue de face, K > 0 Notre galaxie se trouve au centre.

Vue de côté, courbure positive

Vue de côté, K > 0Vue de côté, K > 0 Notre galaxie se trouve tout à droite.

Vue de côté, courbure négative

Vue de côté, K < 0Vue de côté, K < 0 Notre galaxie se trouve tout à gauche.

Vue du ciel

Vue du cielVue du ciel Nous voyons ici ce que les radiotélescopes ont observé depuis la terre.

Sélection d'objets

SélectionSélection On peut sélectionner des objets avec une sélection additive ou d'intersection, qui permet de sélectionner précisément des zones.

Les objets sélectionnés apparaîssent en vert.

Les objets sélectionnés apparaîssent en rouge.

6dF Galaxy Survey

Le catalogue 6dF Galaxy Survey est composé de 124 646 objets.

Zoom

ZoomZoom

Ici nous sommes en vue de face n°2, et la projection est zoomée avec notre galaxie approximativement en son centre.

Quasars (13th Ed.) (Veron-Cetty+)

Ce catalogue est composé de 133 335 objets.

Coloration en dégradé du redshift

Dégradé redshiftDégradé redshift

Pour mieux apprécier le redshift des objets affichés, il est possible de leur appliquer une coloration.

Les objets les plus proches de notre galaxie sont en bleu, les plus éloignés en rouge.

Les objets les plus proches de notre galaxie sont en vert, les plus éloignés en bleu.

Calcul de la distance entre deux objets

Soient x1 et x2 les directions dans le ciel de deux objets, on peut calculer l'angle apparent entre eux:

cosθ12=x1,x23

qui se traduit par:

cosθ12=cos(RAobj1RAobj2)cos(Decobj1)cos(Decobj2)+sin(Decobj1)sin(Decobj2)

Pour calculer la distance géodésique entre ces objets dans un espace de courbure non nulle, nous avons deux cas à considérer:

pour k0>0 (sphérique),

cosτ^12=cosθ12sinτ^1sinτ^2+cosτ^1cosτ^2τ^12=arccos(cosτ^12),

pour k0<0 (hyperbolique),

coshτ^12=coshτ^1coshτ^2cosθ12sinhτ^1sinhτ^2τ^12=arccosh(coshτ^12),

τ^1 et τ^2 sont les distances angulaires des objets par rapport à la Terre.

Nous pouvons obtenir la distance comobile sans unité avec:

τ12=τ^12|k0|

Pour le cas particulier k0=0 (espace plat), on applique la loi des cosinus en géométrie euclidienne:

τ12=τ12+τ222τ1τ2cosθ12,

Il est alors possible d'exprimer la distance en Mpc:

r=τ12cH0

c est la vitesse de la lumière en km/s, soit 299792.458 km/s, et H0 la constante de Hubble.

Implémentation

Voici quelques choix techniques concernant l'implémentation.

Calcul d'intégrales

Deux façons de calculer les intégrales ont été implémentées:

Parallélisation des traitements

Par défaut, dans un navigateur web le JavaScript s'exécute dans la boucle principale, qui s'occupe également du code de rendu de la page. Non seulement cette boucle n'utilise qu'un seul cœur du processeur, mais les calculs intensifs figent l'interface utilisateur.

Nous avons une grande quantité d'objets pour lesquels nous calculons la projection en fonction des paramètres cosmologiques. Cet ensemble d'objets peut très facilement être découpé en plusieurs morceaux pour que les traitements soient effectués sur plusieurs cœurs en même temps.

Cette parallélisation dans Universe Viewer utilise les web workers, qui nous permettent de découper le travail en fonction du nombre de cœurs disponibles sur le processeur.
Ce processus est réalisé dans les fichiers suivants:

  • workerPool.js, qui gère la pool de workers, leur cycle de vie et leur exécution pour le calcul des projections,
  • projectionWorker.js, le code des tâches des workers, qui réalise les traitements sur un sous-ensemble des objets,
  • projection.js, les fonctions de calcul des projections.

Si le nombre d'objets à traiter se trouve en-dessous d'un certain seuil, le calcul n'est pas parallélisé car le surcoût engendré par gestion des processus serait contre performant.

Pour rendre la parallélisation encore plus pertinente, nous utilisons de la mémoire partagée entre les processus de calcul et le rendu graphique, via un SharedArrayBuffer: nous évitons toute recopie de données dès lors qu'un catalogue a été chargé.

Si SharedArrayBuffer est indisponible, par exemple à cause d'une contrainte de sécurité non respectée, les calculs ne sont pas parallélisés.

Ces optimisations rendent UniverseViewer capable de gérer des catalogues de millions d'objets, comme AGN/QSO Value-Added Catalog for DESI DR1, ou Million Quasars Catalog, Version 8.


Site officiel
Page GitHub
Framework for cosmography at high redshift - R. Triay, L. Spinelli, R. Lafaye (1996), version HTML, et version PDF textuelle
Calcul d'intégrales avec la méthode de Romberg
Calcul d'intégrales avec la méthode des trapèzes
Ancienne version Java

Fait avec ❤️