Gledatelj konstelacija: Interaktivna karta noćnog neba

Generirajte interaktivnu SVG kartu noćnog neba koja prikazuje vidljive konstelacije na temelju datuma, vremena i lokacije. Sadrži automatsko prepoznavanje ili ručni unos koordinata, imena konstelacija, položaje zvijezda i horizont.

Pregled zviježđa

Karta noćnog neba

📚

Dokumentacija

Aplikacija za prikaz sazviježđa

Uvod

Aplikacija za prikaz sazviježđa je moćan alat za astronomske entuzijaste i promatrače zvijezda. Omogućuje korisnicima vizualizaciju noćnog neba i prepoznavanje vidljivih sazviježđa na temelju njihove lokacije, datuma i vremena. Ova interaktivna aplikacija pruža jednostavnu SVG kartu noćnog neba, prikazujući imena sazviježđa, osnovne pozicije zvijezda i horizont, sve unutar sučelja jedne stranice.

Kako koristiti ovu aplikaciju

  1. Unesite datum i vrijeme (zadano na trenutni datum i vrijeme ako nije navedeno).
  2. Odaberite korištenje svoje trenutne lokacije ili ručno unesite geografske širine i dužine.
  3. Aplikacija će automatski generirati SVG kartu noćnog neba koja prikazuje vidljiva sazviježđa.
  4. Istražite kartu kako biste prepoznali sazviježđa, pozicije zvijezda i horizont.

Nebeske koordinate i izračun vremena

Aplikacija koristi kombinaciju nebeskih koordinata i izračuna vremena kako bi odredila koja su sazviježđa vidljiva na noćnom nebu:

  1. Desna ascenzija (RA) i deklinacija (Dec): Ovo su nebeski ekvivalenti geografske dužine i širine. RA se mjeri u satima (0 do 24), a Dec u stupnjevima (-90° do +90°).

  2. Lokalno sideralno vrijeme (LST): Ovo se izračunava koristeći dužinu promatrača i trenutni datum i vrijeme. LST određuje koji dio nebeske sfere je trenutno iznad promatrača.

  3. Satni kut (HA): Ovo je kutna udaljenost između meridijana i nebeskog objekta, izračunata kao:

    HA=LSTRAHA = LST - RA

  4. Altituda (Alt) i azimut (Az): Ove se vrijednosti izračunavaju koristeći sljedeće formule:

    sin(Alt)=sin(Dec)sin(Lat)+cos(Dec)cos(Lat)cos(HA)\sin(Alt) = \sin(Dec) \cdot \sin(Lat) + \cos(Dec) \cdot \cos(Lat) \cdot \cos(HA)

    tan(Az)=sin(HA)cos(HA)sin(Lat)tan(Dec)cos(Lat)\tan(Az) = \frac{\sin(HA)}{\cos(HA) \cdot \sin(Lat) - \tan(Dec) \cdot \cos(Lat)}

Gdje je Lat geografska širina promatrača.

Proces izračuna

Aplikacija provodi sljedeće korake kako bi odredila vidljiva sazviježđa i prikazala kartu neba:

  1. Pretvorite korisnički unos (datum, vrijeme, lokacija) u Julian Datum i Lokalno Sideralno Vrijeme.
  2. Za svaku zvijezdu u bazi podataka sazviježđa: a. Izračunajte njen Satni Kut. b. Izračunajte njenu Altitudu i Azimut. c. Odredite je li iznad horizonta (Alt > 0).
  3. Za svako sazviježđe: a. Provjerite je li dovoljan broj njegovih zvijezda vidljiv. b. Ako je vidljivo, uključite ga u popis sazviježđa za prikaz.
  4. Generirajte SVG kartu: a. Stvorite kružni svod neba. b. Nacrtajte vidljive zvijezde na temelju njihovog Azimuta i Altitude. c. Nacrtajte linije i oznake sazviježđa. d. Dodajte horizont.

Jedinice i preciznost

  • Datum i Vrijeme: Koristi lokalnu vremensku zonu korisnika, s opcijom za određivanje UTC pomaka.
  • Koordinate: Geografska širina i dužina u decimalnim stupnjevima, precizno do 4 decimalna mjesta.
  • Pozicije zvijezda: Desna ascenzija u satima (0 do 24), deklinacija u stupnjevima (-90 do +90).
  • SVG Renderiranje: Koordinate se skaliraju i transformiraju kako bi se uklopile u viewbox, obično 1000x1000 piksela.

Primjene

Aplikacija za prikaz sazviježđa ima razne primjene:

  1. Amaterska astronomija: Pomaže početnicima da prepoznaju sazviježđa i uče o noćnom nebu.
  2. Obrazovanje: Služi kao alat za podučavanje na satovima astronomije i znanstvenog obrazovanja.
  3. Planiranje astrofotografije: Pomaže u planiranju sesija fotografiranja noćnog neba.
  4. Događaji promatranja zvijezda: Poboljšava javne noćne događaje promatranja zvijezda pružajući vizualni vodič.
  5. Navigacija: Može se koristiti kao osnovni alat za nebesku navigaciju.

Alternativa

Iako naša Aplikacija za prikaz sazviježđa pruža jednostavan i pristupačan način za gledanje noćnog neba, postoje i drugi alati dostupni:

  1. Stellarium: Sveobuhvatni softver planetarija otvorenog koda.
  2. Sky Map: Mobilna aplikacija koja koristi proširenu stvarnost za prikaz neba u stvarnom vremenu.
  3. NASA-ina Oči na nebu: Pruža 3D vizualizaciju Sunčevog sustava i šire.
  4. Celestia: Nudi 3D simulaciju svemira s opsežnom bazom podataka nebeskih objekata.

Povijest

Povijest mapiranja sazviježđa i zvjezdanih karata datira tisućama godina:

  • Antičke civilizacije: Babilonci, Egipćani i Grci razvili su rane zvjezdane kataloge i mitove o sazviježđima.
    1. stoljeće n.e.: Ptolemejev Almagest pružio je sveobuhvatan zvjezdani katalog i popis sazviježđa.
  • 16.-17. stoljeće: Doba istraživanja dovelo je do mapiranja južnih sazviježđa.
  • 1922.: Međunarodna astronomska unija (IAU) standardizirala je 88 modernih sazviježđa.
    1. stoljeće: Razvoj računalnih zvjezdanih kataloga i digitalnog softvera planetarija.
    1. stoljeće: Mobilne aplikacije i web alati čine gledanje sazviježđa dostupnim svima.

Podaci o sazviježđima

Aplikacija koristi pojednostavljenu bazu podataka sazviježđa pohranjenu u TypeScript datoteci:

1export interface Star {
2  ra: number;  // Desna ascenzija u satima
3  dec: number; // Deklinacija u stupnjevima
4  magnitude: number; // Svjetlost zvijezde
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      // ... više zvijezda
19    ]
20  },
21  // ... više sazviježđa
22];
23

Ova struktura podataka omogućuje učinkovito pretraživanje i prikazivanje sazviježđa.

SVG Renderiranje

Aplikacija koristi D3.js za stvaranje SVG karte noćnog neba. Evo pojednostavljenog primjera procesa renderiranja:

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  // Nacrtaj pozadinu neba
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  // Nacrtaj zvijezde i sazviježđa
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    // Dodaj ime sazviježđa
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  // Nacrtaj horizont
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  // Pretvori RA i Dec u x, y koordinate
60  // Ovo je pojednostavljena projekcija i trebala bi biti zamijenjena pravom nebeskom projekcijom
61  const x = (star.ra / 24) * width;
62  const y = ((90 - star.dec) / 180) * height;
63  return { x, y };
64}
65

Vremenske zone i lokacije

Aplikacija obrađuje različite vremenske zone i lokacije tako da:

  • Koristi lokalnu vremensku zonu korisnika prema zadanim postavkama.
  • Omogućuje ručno unošenje UTC pomaka.
  • Pretvara sva vremena u UTC za unutarnje izračune.
  • Koristi geolokacijski API za automatsko otkrivanje lokacije.
  • Pruža ručno unos za geografske širine i dužine.

Razmatranja o svjetlosnom zagađenju

Iako aplikacija ne uzima u obzir svjetlosno zagađenje, korisnici bi trebali biti svjesni da:

  • Urbana područja mogu vidjeti manje zvijezda zbog svjetlosnog zagađenja.
  • Aplikacija prikazuje teoretsku vidljivost, pretpostavljajući savršene uvjete gledanja.
  • Magnituda zvijezda u bazi podataka može pomoći u procjeni vidljivosti u različitim uvjetima.

Izračun horizonta

Horizont se izračunava na temelju lokacije promatrača:

  • Za ravni horizont (npr. na moru), to je ravna linija na 0° altitude.
  • Za uzvišene lokacije, izračunava se nagib horizonta: Dip=0.98×h\text{Dip} = 0.98 \times \sqrt{h} (u stupnjevima) Gdje je h visina iznad razine mora u metrima.

Sezonske varijacije

Aplikacija uzima u obzir sezonske varijacije u vidljivim sazviježđima tako da:

  • Koristi uneseni datum za izračun točne pozicije zvijezda.
  • Prikazuje različita sazviježđa na temelju doba godine.
  • Pruža informacije o cirkumpolarnim sazviježđima koja su uvijek vidljiva s korisnikove lokacije.

Reference

  1. "Sazviježđe." Wikipedia, Wikimedia Foundation, https://hr.wikipedia.org/wiki/Sazviježđe. Pristupljeno 2. kolovoza 2024.
  2. "Nebeška koordinatna sustava." Wikipedia, Wikimedia Foundation, https://hr.wikipedia.org/wiki/Nebeška_koordinatna_sustava. Pristupljeno 2. kolovoza 2024.
  3. "Zvjezdani katalog." Wikipedia, Wikimedia Foundation, https://hr.wikipedia.org/wiki/Zvjezdani_katalog. Pristupljeno 2. kolovoza 2024.
  4. "Povijest sazviježđa." Međunarodna astronomska unija, https://www.iau.org/public/themes/constellations/. Pristupljeno 2. kolovoza 2024.
  5. "D3.js." Data-Driven Documents, https://d3js.org/. Pristupljeno 2. kolovoza 2024.