Der beste Weg, um Sterngrößen in der Himmelskugel maßstabsgetreu zu simulieren

Mit dem Hipparcos-Katalog versuche ich, eine Himmelskugel zu erstellen. Da alle Sterne einen festen Abstand vom Zentrum dieser Kugel haben, besteht die einzige Möglichkeit, die Entfernungen und die Größe zu unterscheiden, in der Größenbestimmung jedes Modells des Sterns.

Mit dem Parallaxenwinkel P und visuelle Größe M v ich S von jedem Stern aus dem Katalog habe ich den folgenden Code erstellt, um den Radius jedes Sterns relativ zum Radius der Sonne zu berechnen. Ich hatte diese Website verwendet , um dies zu berechnen. Das Problem ist, dass einige Sterne zu groß sind, fast größer als die Himmelskugel selbst! Ich versuche, den Radius unter einer bestimmten Schwelle zu halten.

Hier P ist in Bogensekunden und D ist in Parsec.

D = 1 / P

M A B S = M v ich S Protokoll 10 ( D 5 ) + 5

T S u R F = 8540 C ICH + 0,865

R R e l = ( 5800 T S u R F ) 2 ( 2.512 ) 4.83 M A B S

R S u N = 2.5

R = R R e l R S u N

    private void positionStar()
    {
        double radius;
        cartesianPositioningCalc();
        gameObject.transform.position = cartesianPositioning;

        // Convert Plx from milliarcseconds to arcseconds (seconds of arc)
        double PlxSOA = Plx / 1000;
        // Calculate distance from equation d=1/p
        // distance d is measured in parsecs and the parallax angle p is measured in arcseconds.
        double dPC = 1 / PlxSOA;

        double absMag = Vmag - math.log10(math.pow(dPC, 5)) + 5;

        surfaceTemperature = 8540 / (CI + 0.865);

        double relativeRadius = math.pow((5800 / surfaceTemperature), 2) * math.sqrt((math.pow(2.512, (4.83 - absMag))));
        double radiusSun = 2.5f;

        radius = relativeRadius * radiusSun;

        gameObject.transform.localScale = new Vector3((float)radius, (float)radius, (float)radius);
    }

Erstens, benutze ich die richtige Mathematik? Wenn ja, wie kann ich dann sicherstellen, dass der Radius unter einer bestimmten maximalen Schwelle liegt (z. B. 5 Einheiten)?

Wenn die Mathematik falsch ist, helfen Sie mir bitte, wie ich es beheben kann.

Danke!


Mit einer leicht modifizierten Version der Formel von @ Mike G in ihrer Antwort unten:

r(m) = 50 * 10^{(-1,44 - m) / 5}

radius = 50 * math.pow(10, (-1.44 - Vmag) / 5);

Ich konnte dieses Ergebnis erzielen:Sternenfeld

Und wenn ich mich nicht irre, denke ich, dass ich das Sternbild Ursa Major etwas nach links versetzt von der Mitte des Screenshots ausfindig machen kann.

Nach dem Hochladen auf nova.astrometry.net werden die Sterne und Sternbilder jedoch immer noch nicht erfasst. Liegt das daran, dass die Sterngröße immer noch etwas falsch ist, oder liegt dieses Problem auf der Seite der Website?

Ich kann eine andere Website/App wie Stellarium zur Gegenprüfung verwenden. Gibt es eine Möglichkeit, wie die App ein Eingabebild verarbeiten kann, oder versuche ich, es mit meinem Bild in der App neu zu erstellen?

Ich habe mein Bestes getan, um Ihren Computercode mit MathJax in lesbare Gleichungen umzuwandeln . Bitte überprüfen Sie es noch einmal.
@uhoh, sieht toll aus, danke!
Das ist total verwirrt. Ihre Frage fragt nach dem Zeichnen von Sternen nach ihrem Radius, aber jetzt scheinen Sie sie mit einer Größe zeichnen zu wollen, die ihrer Helligkeit entspricht. Die beiden sind nur indirekt miteinander verbunden und die Helligkeit beinhaltet überhaupt keine Parallaxe.
In der Antwort von @ Mike G sprechen sie darüber, wie viel einfacher es ist, den Radius der Sterne stattdessen auf die scheinbare Größe zu stützen - deshalb habe ich diesen Weg eingeschlagen. Wenn es jedoch einen einfacheren Weg gibt, um ihren tatsächlichen Radius einzubeziehen und auch alle Sterne auf eine einheitliche Größe zu bringen, werde ich sie weiter untersuchen. Ich werde den Titel der Frage ändern, um mehr Sinn zu machen
Sieht besser aus! Ich erkenne auch noch ein paar andere Konstellationen, aber sie sind spiegelverkehrt. Auch math.pow(math.E, x) == math.exp(x). Erwägen Sie, mehr Lichtquellen hinzuzufügen, den Umgebungsterm zu erhöhen oder ein emittierendes Material zu verwenden.
@MikeG - In Bezug darauf, wie die Sterne spiegelverkehrt sind, habe ich diese Website fmwriters.com/Visionback/Issue14/wbputtingstars.htm verwendet , um RA und DE in x, y, z zu konvertieren. Wie behebe ich das, um die Sterne richtig zu zeichnen?
Die dortige kartesische Koordinatenumrechnung ist für rechtshändiges x,y,z korrekt. Wenn Ihre Achsen rechtshändig sind und sich Ihre Kamera im Zentrum der Himmelskugel befindet, weiß ich nicht, was falsch ist, aber das Umkehren einer Achse würde dies umgehen.

Antworten (2)

Ihre Mathematik sieht in Ordnung aus, abgesehen davon 1 / Parallaxe ist eine voreingenommene Schätzung der Entfernung (aber das kann verziehen werden, solange Sie Daten verwenden, bei denen die Parallaxenunsicherheiten viel kleiner als die Parallaxe sind).

Ihr Hauptproblem ist, dass Sterne tatsächlich eine große Bandbreite an Größen haben. Wenn Sie also wirklich die relativen Größen der Sterne anzeigen möchten, haben Sie ein Problem mit dem dynamischen Bereich.

Der herkömmliche Weg, damit umzugehen, wäre die Verwendung einer logarithmischen Skala, so dass jedes Größeninkrement einem Vielfachen des darunter liegenden entspricht. Machen Sie zB Ihre aufgetragenen Radien proportional zu Protokoll 10 R R e l .

EDIT: Als Antwort auf die geänderte Betonung der Frage.

Scheinbar möchte man die Sterne nicht mehr nach ihrem tatsächlichen Radius skalieren, sondern nach ihrer Helligkeit. Die logarithmische Skalierung wird also bereits durch die scheinbare Helligkeit (die auf einer logarithmischen Skala liegt) behandelt.

Daher müssen Sie nur entscheiden, was Ihr kleinster und größter Radius ist, und diesen mit den hellsten und schwächsten Größen vergleichen, die Sie darstellen möchten.

zB Wenn Ihr größter Stern 5 Einheiten und Ihr kleinster 0 Einheiten beträgt und Ihre hellen und schwachen Grenzen sind M B R ich G H T Und M F A ich N T bzw. dann die Größe eines beliebigen Sterns der Größenordnung M Ist

R = 5 ( M M F A ich N T ) M B R ich G H T M F A ich N T   .

Und wenn Sie möchten, dass Ihre schwächsten Sterne die Größe 1 und die hellsten 5 haben, ändert sich dies zu

R = 4 ( M M F A ich N T ) M B R ich G H T M F A ich N T + 1   .

Eine weitere Alternative wäre es, die Fläche proportional zur Größe zu machen. Wieder Skalierung zwischen Radien von 5 und 1:

R 2 = 24 ( M M F A ich N T ) M B R ich G H T M F A ich N T + 1   .

Die Mindestgröße sollte nicht Null sein, und eine lineare Funktion von m ist am dunklen Ende zu steil.
@MikeG Ihre Lösung skaliert nur als Quadratwurzel des Flusses und geht für jede Größenordnung um den Faktor 1,6 zurück! Die Mindestgröße kann beliebig eingestellt werden, indem eine Konstante hinzugefügt wird. Mine skaliert linear mit der Größe, so funktioniert das Auge.
Mit der zweiten Formel ist r(0) / r(1) = 1,15 und r(5) / r(6) = 1,54.

Die SDSS-Übung zeigt, wie man den tatsächlichen Radius eines Sterns schätzt. Wenn Sie diesen Radius verwenden, sollten Sie auch unterschiedliche Modellmaterialien für unterschiedliche Farbindexwerte verwenden, da die Leuchtkraft pro Flächeneinheit eine Funktion der Temperatur ist. Wenn Sie diese Komplexität lieber vermeiden möchten, basieren Sie die Radien Ihrer Modellsterne allein auf der visuellen Größe. Wenn Sie die Modellsterne in einem gleichmäßigen Abstand vom Beobachter platzieren, verwenden Sie die scheinbare Helligkeit anstelle der absoluten Helligkeit.

Angenommen, Ihr Himmelskugelradius beträgt 1000 Einheiten, und Sie möchten, dass Sirius (scheinbare Helligkeit m min  = -1,45) einen scheinbaren Winkelradius von 5 Milliradian hat. Dann wäre der Sirius-Modellradius r max 5 Einheiten, und ein Stern der scheinbaren Helligkeit m hätte einen Modellradius

R ( M ) = R M A X × 10 ( M M ich N M ) / 5 = 5 × 10 1.45 / 5 × 10 M / 5 = 2.6   e 0,46   M

Wenn Sie auch einen Mindestradius für das Sternmodell festlegen möchten, versuchen Sie es mit r(m) = be am where

A = ln R M ich N ln R M A X M M A X M M ich N B = R M A X   e A   M M ich N = R ( 0 )

Um beispielsweise r (6,0) = 0,5 mit r (-1,45) = 5 wie oben zu erhalten, könnten Sie verwenden

R ( M ) = 3.2   e 0,31   M

Diese Modellradien sind bei weitem nicht realitätsnah, sollen aber einen erkennbaren Nachthimmel erzeugen. Im wirklichen Leben beträgt der Radius der Sonne etwa 2,3×10 -8 pc.

wofür steht das m tiefgestellt min?
@SidS Die scheinbare Helligkeit des hellsten Sterns.
Ich habe eine leicht modifizierte Version dieser Gleichung implementiert - das Ergebnis sieht fantastisch aus, aber astronomy.net ist immer noch nicht in der Lage, die Sterne und Sternbilder zu erkennen. Weitere Informationen finden Sie in der Bearbeitung, die ich an der Frage vorgenommen habe. Danke!
Der Hipparcos-Katalog hat Sterne zwischen scheinbaren Helligkeiten -1,4 und 8. Ihre Radien würden zwischen 5 und 0,06 liegen (oder 0,16 bei 6. mag). Im Gegensatz zu dem Kommentar, den Sie meiner Antwort beigefügt haben, ist Ihr Rezept bei schwachen Größen zu steil (und quadriert, wenn Sie glauben, dass der Bereich die scheinbare Helligkeit darstellt), meins ist viel flacher. Aus diesem Grund ist es schwierig, Sternbilder zu erkennen, die typischerweise durch Sterne mit einer Reichweite von 3-4 mag definiert sind. In Ihrem Schema ist dies ein Bereich von 16-43 im Punktbereich.
@RobJeffries Hinzugefügter minimaler Radiusparameter unter Beibehaltung von r(0)/r(1) = r(5)/r(6).