L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

units-constants

units-constants

Use Astropy units, quantities, equivalencies, custom units, physical types, and physical constants safely in astronomy calculations.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: units-constants description: "Use Astropy units, quantities, equivalencies, custom units, physical types, and physical constants safely in astronomy calculations." metadata: disco-role: operating disable-model-invocation: true license: BSD 3-Clause

Units and Constants Router

Use this sub-skill when a task centers on Astropy physical units, unit-aware arrays, conversions, equivalencies, constants, or unit validation.

Load This When

  • The user asks for Quantity, Unit, u.Quantity, .to(), .to_value(), .decompose(), .si, .cgs, or unit arithmetic.
  • A value must carry units through NumPy operations or an astronomy formula.
  • A conversion needs an equivalency: spectral wavelength/frequency/energy, Doppler velocity, temperature, parallax, brightness temperature, or dimensionless angles.
  • The task defines custom units, parses unit strings, validates physical types, or needs VOUnit/FITS/CDS formatting.
  • Constants such as c, G, h, M_sun, or versioned CODATA/IAU constants are involved.

Route Away When

  • Coordinate frames, SkyCoord, Time, or observation locations dominate; use ../time-coordinates/SKILL.md.
  • Unit-bearing table serialization is the main issue; use ../tables-io/SKILL.md.
  • Cosmological units or built-in cosmology realizations dominate; use ../cosmology/SKILL.md.
  • The problem is installation or optional dependency setup; use ../cli-config-data/SKILL.md or the root troubleshooting reference.

First Actions

  1. Identify whether each input is a scalar, NumPy array, Quantity, Unit, string unit, or constant.
  2. Convert to a Quantity early: value * u.unit or u.Quantity(value, unit).
  3. Keep quantities unit-aware until an external package requires raw values.
  4. Use .to(target_unit, equivalencies=...) for conversion and .to_value(...) only at boundaries.
  5. If .to() fails, decide whether an equivalency is scientifically justified.
  6. For constants, inspect the attached unit and whether SI/CGS ambiguity exists before using a raw .value.
  7. Validate output with a dimensional check: quantity.unit.is_equivalent(...) or quantity.physical_type.

References

  • references/api-reference.md lists the verified constructors and key APIs for units, quantities, equivalencies, and constants.
  • references/workflows.md gives self-contained recipes for unit-aware calculations, equivalencies, custom units, NumPy interop, and constants.
  • references/troubleshooting.md covers conversion errors, cgs electromagnetic ambiguity, lost units, parser strictness, and formatting pitfalls.

Safety and Validation

  • Never silently strip units for convenience. If a raw number is required, state the target unit used for .to_value().
  • Do not apply an equivalency unless the science context warrants it; record which equivalency was used.
  • Avoid comparing raw .value across quantities with different but compatible units.
  • Use constants as quantities (const.c, const.G) rather than copying numeric values into code.
  • For publication or reproducibility, mention the constants version if a result depends sensitively on CODATA/IAU revisions.

Native-Backed Validation Ideas

  • Convert 42 * u.km / u.s to u.m / u.s and assert 42000.
  • Convert wavelength to frequency with u.spectral() and assert the output unit is equivalent to Hz.
  • Use a constant in an expression and assert the resulting unit is physically expected.
Skills enregistrées