SymPy ist ein großes Werkzeug für die Einheitenumwandlungen in Python zu tun:Umwandlung Einheiten in Python
>>> from sympy.physics import units
>>> 12. * units.inch/units.m
0.304800000000000
Sie können ganz einfach Ihre eigene Rolle:
>>> units.BTU = 1055.05585 * units.J
>>> units.BTU
1055.05585*m**2*kg/s**2
Allerdings kann ich nicht in meine Anwendung implementieren, es sei denn Ich kann Grad C (absolut) in K in Grad F in Grad R oder in eine beliebige Kombination davon umwandeln.
Ich dachte, vielleicht so etwas wie dies funktionieren würde:
units.degC = <<somefunc of units.K>>
Aber klar, dass ist der falsche Weg nach unten zu gehen. Irgendwelche Vorschläge für die saubere Implementierung von "Offset" -Typ-Conversions in SymPy?
Hinweis: Ich bin offen für den Versuch, andere Einheiten Umrechnungsmodule, aber kenne keine anderen neben Unum, und fand es umständlich.
Bearbeiten: OK, jetzt ist klar, dass ich zuerst feststellen möchte, ob die beiden zu vergleichenden Größen im selben Koordinatensystem liegen. (wie Zeiteinheiten Bezug auf verschiedene Epochen oder Zeitzonen oder dB zu geraden Amplitude), machen Sie die entsprechende Transformation, dann machen Sie die Umwandlung. Gibt es allgemeine Tools zur Verwaltung des Koordinatensystems? Das wäre großartig.
Ich würde die Annahme machen, dass sich ° F und ° C immer auf Δ ° F Δ ° C innerhalb eines Ausdrucks beziehen, sich aber auf absolut beziehen, wenn sie alleine stehen. Ich habe mich nur gefragt, ob es eine Möglichkeit gibt, units.degF
eine Funktion zu machen und einen Dekorateur property()
darauf zu schlagen, um mit diesen beiden Bedingungen umzugehen.
Aber jetzt werde ich units.C == units.K
und versuchen, setzen es sehr deutlich in der Dokumentation Funktionen nutzen convertCtoK(...)
und convertFtoR(...)
zu machen, wenn sie mit absoluten Einheiten handelt. (Nur ein Scherz Nein, werde ich nicht..)
Schade 'sympy.physics.units' hat keine Dokumentation. –
GNU Units trennt sie in 'degF' und' tempF (x) ': https://www.gnu.org/software/units/manual/units.html#Temperature-Conversions – endolith