Générez une carte céleste interactive en SVG montrant les constellations visibles en fonction de la date, de l'heure et de l'emplacement. Comprend une détection automatique ou une saisie manuelle des coordonnées, les noms des constellations, les positions des étoiles et la ligne d'horizon.
L'application de visualisation des constellations est un outil puissant pour les passionnés d'astronomie et les amateurs d'observation des étoiles. Elle permet aux utilisateurs de visualiser le ciel nocturne et d'identifier les constellations visibles en fonction de leur emplacement, de la date et de l'heure. Cette application interactive fournit une simple carte du ciel nocturne en SVG, affichant les noms des constellations, les positions de base des étoiles et une ligne d'horizon, le tout dans une interface à page unique.
L'application utilise une combinaison de coordonnées célestes et de calculs temporels pour déterminer quelles constellations sont visibles dans le ciel nocturne :
Ascension droite (RA) et déclinaison (Dec) : Ce sont les équivalents célestes de la longitude et de la latitude, respectivement. La RA est mesurée en heures (0 à 24), et la Dec est mesurée en degrés (-90° à +90°).
Temps sidéral local (LST) : Ceci est calculé en utilisant la longitude de l'observateur et la date et l'heure actuelles. Le LST détermine quelle partie de la sphère céleste est actuellement au-dessus de l'observateur.
Angle horaire (HA) : C'est la distance angulaire entre le méridien et un objet céleste, calculée comme :
Altitude (Alt) et azimut (Az) : Ceux-ci sont calculés en utilisant les formules suivantes :
Où Lat est la latitude de l'observateur.
L'application effectue les étapes suivantes pour déterminer les constellations visibles et rendre la carte du ciel :
L'application de visualisation des constellations a diverses applications :
Bien que notre application de visualisation des constellations fournisse un moyen simple et accessible de voir le ciel nocturne, d'autres outils sont disponibles :
L'histoire de la cartographie des constellations et des cartes stellaires remonte à des milliers d'années :
L'application utilise une base de données simplifiée des constellations stockée dans un fichier TypeScript :
1export interface Star {
2 ra: number; // Ascension droite en heures
3 dec: number; // Déclinaison en degrés
4 magnitude: number; // Brillance de l'étoile
5}
6
7export interface Constellation {
8 name: string;
9 stars: Star[];
10}
11
12export const constellations: Constellation[] = [
13 {
14 name: "Ursa Major",
15 stars: [
16 { ra: 11.062, dec: 61.751, magnitude: 1.79 },
17 { ra: 10.229, dec: 60.718, magnitude: 2.37 },
18 // ... plus d'étoiles
19 ]
20 },
21 // ... plus de constellations
22];
23
Cette structure de données permet une recherche et un rendu efficaces des constellations.
L'application utilise D3.js pour créer la carte du ciel nocturne en SVG. Voici un exemple simplifié du processus de rendu :
1import * as d3 from 'd3';
2
3function renderSkyMap(visibleConstellations, width, height) {
4 const svg = d3.create("svg")
5 .attr("width", width)
6 .attr("height", height)
7 .attr("viewBox", [0, 0, width, height]);
8
9 // Dessiner l'arrière-plan du ciel
10 svg.append("circle")
11 .attr("cx", width / 2)
12 .attr("cy", height / 2)
13 .attr("r", Math.min(width, height) / 2)
14 .attr("fill", "navy");
15
16 // Dessiner les étoiles et les constellations
17 visibleConstellations.forEach(constellation => {
18 const lineGenerator = d3.line()
19 .x(d => projectStar(d).x)
20 .y(d => projectStar(d).y);
21
22 svg.append("path")
23 .attr("d", lineGenerator(constellation.stars))
24 .attr("stroke", "white")
25 .attr("fill", "none");
26
27 constellation.stars.forEach(star => {
28 const { x, y } = projectStar(star);
29 svg.append("circle")
30 .attr("cx", x)
31 .attr("cy", y)
32 .attr("r", 5 - star.magnitude)
33 .attr("fill", "white");
34 });
35
36 // Ajouter le nom de la constellation
37 const firstStar = projectStar(constellation.stars[0]);
38 svg.append("text")
39 .attr("x", firstStar.x)
40 .attr("y", firstStar.y - 10)
41 .text(constellation.name)
42 .attr("fill", "white")
43 .attr("font-size", "12px");
44 });
45
46 // Dessiner la ligne d'horizon
47 svg.append("line")
48 .attr("x1", 0)
49 .attr("y1", height / 2)
50 .attr("x2", width)
51 .attr("y2", height / 2)
52 .attr("stroke", "green")
53 .attr("stroke-width", 2);
54
55 return svg.node();
56}
57
58function projectStar(star) {
59 // Convertir RA et Dec en coordonnées x, y
60 // Ceci est une projection simplifiée et doit être remplacée par une projection céleste appropriée
61 const x = (star.ra / 24) * width;
62 const y = ((90 - star.dec) / 180) * height;
63 return { x, y };
64}
65
L'application gère différents fuseaux horaires et emplacements en :
Bien que l'application ne prenne pas directement en compte la pollution lumineuse, les utilisateurs doivent être conscients que :
La ligne d'horizon est calculée en fonction de l'emplacement de l'observateur :
L'application prend en compte les variations saisonnières des constellations visibles en :
Découvrez plus d'outils qui pourraient être utiles pour votre flux de travail