hoffe es geht euch allen gut.
Ich bin nicht sehr vertraut mit AstroPy
und habe ein Problem bei der Berechnung der Umrechnung zwischen Drehimpulseinheiten .
Wenn ich die abs definiere. Wert Drehimpuls
aus der Bewegung eines Körpers interagieren mit , unter der Annahme einer Keplerschen Bewegung, werde ich schreiben:
dann ein generischer abs. ang. Mutter. , sagen wir
J1 = u.m * u.kg * u.m * (1/u.s)
sollte äquivalente Abmessungen im Vergleich zu haben
. Also sollte ich in der Lage sein, die Verwendung zu überprüfen
J2.decompose()
oder J2.to(J1)
, aber alles, was ich bekomme, istUnitConversionError: 'AU(1/2) earthMass G(1/2) solMass(1/2)' and 'kg m2 / s' (angular momentum) are not convertible
J1 = angular_momentum(1* u.Msun, 3*u.Mearth, 0.1*u.au)
J2 = u.m * u.kg * u.m * (1/u.s)
J1.to(J2)
---> UnitConversionError
oder
angular_momentum(1*u.Msun, 3*u.Mearth, 0.1*u.au).decompose() #why?
das sieht so aus, als ob * u.au
es nicht wie erwartet funktioniert. Wie auch immer, das Übergeben von Einheiten, z. B. in, u.m
behebt das Problem nicht.
Frage: Weiß jemand, was hier passiert?
Bearbeiten: Dies ist die Funktion, die ich zum Berechnen verwende def Winkel_Impuls(ms, mp, a):
#from Lp = r x p ~~ a * (mp (G ms / a)^1/2) keplerian rot ~~ mp (g ms a)^1/2
Lp = mp * (u.G * ms * a)**(1./2.) #This MUST! have L units
return Lp
Stellt in der Astropie u.G
ein Gauß dar , nicht die Gravitationskonstante. Deshalb erhalten Sie in einer der Fehlermeldungen das "A"; es repräsentiert ein Ampere. Um die Gravitationskonstante in Ihrem Code zu verwenden, müssen Sie in Ihrem Code verwendenastropy.constants
und durch ersetzen (oder einfach hinzufügen und verwenden , wenn Sie dies bevorzugen).u.G
constants.G
import astropy.constants as c
c.G
äh