hwoutils.conversions#
Unit conversion functions using centralized constants.
Pure JAX implementations — no astropy dependency. Functions are intentionally NOT JIT-compiled so JAX can fuse them into larger computation graphs.
Attributes#
Functions#
|
Convert flux density from Janskys to photons/s/nm/m². |
|
Convert flux density from photons/s/nm/m² to Janskys. |
|
Convert surface brightness from mag/arcsec² to Jy/arcsec² (AB). |
|
Convert nanometers to micrometers. |
|
Convert micrometers to nanometers. |
|
Convert wavelength [nm] to wavenumber [cm^-1] (nu = 1 / lambda). |
|
Convert wavenumber [cm^-1] to wavelength [nm]. |
|
Convert AU to meters. |
|
Convert meters to AU. |
|
Convert Earth radii to meters. |
|
Convert AU/yr to m/s. |
|
Convert arcseconds to radians. |
|
Convert radians to arcseconds. |
|
Convert milliarcseconds to arcseconds. |
|
Convert arcseconds to milliarcseconds. |
|
Convert angular separation to lambda/D units. |
|
Convert lambda/D units to angular separation in arcseconds. |
|
Convert solar masses to kilograms. |
|
Convert Earth masses to kilograms. |
|
Convert physical distance in AU to angular separation. |
|
Convert angular separation to physical distance. |
|
Convert years to days. |
|
Convert days to years. |
|
Determine if a year is a leap year. |
|
Return the number of days in a year (365 or 366). |
|
Convert a Gregorian date to a Julian day. |
Convert a Julian day to a decimal year. |
|
|
Convert a decimal year to a Julian day. |
Convert spherical albedo to geometric albedo (Lambertian sphere). |
|
Convert geometric albedo to spherical albedo (Lambertian sphere). |
Module Contents#
- hwoutils.conversions.jy_to_photons_per_nm_per_m2(flux_jy, wavelength_nm)[source]#
Convert flux density from Janskys to photons/s/nm/m².
- Args:
flux_jy: Flux density in Janskys. wavelength_nm: Wavelength in nanometers.
- Returns:
Flux density in photons/s/nm/m².
- hwoutils.conversions.photons_per_nm_per_m2_to_jy(flux_phot, wavelength_nm)[source]#
Convert flux density from photons/s/nm/m² to Janskys.
- Args:
flux_phot: Flux density in photons/s/nm/m². wavelength_nm: Wavelength in nanometers.
- Returns:
Flux density in Janskys.
- hwoutils.conversions.mag_per_arcsec2_to_jy_per_arcsec2(mag_per_arcsec2)[source]#
Convert surface brightness from mag/arcsec² to Jy/arcsec² (AB).
- Args:
mag_per_arcsec2: Surface brightness in magnitudes per arcsec².
- Returns:
Surface brightness in Jy/arcsec².
- hwoutils.conversions.nm_to_wavenumber_cm(wavelength_nm)[source]#
Convert wavelength [nm] to wavenumber [cm^-1] (nu = 1 / lambda).
- Args:
wavelength_nm: Wavelength in nanometers.
- Returns:
Wavenumber in inverse centimeters.
- hwoutils.conversions.wavenumber_cm_to_nm(wavenumber_cm)[source]#
Convert wavenumber [cm^-1] to wavelength [nm].
- Args:
wavenumber_cm: Wavenumber in inverse centimeters.
- Returns:
Wavelength in nanometers.
- hwoutils.conversions.arcsec_to_lambda_d(angle_arcsec, wavelength_nm, diameter_m)[source]#
Convert angular separation to lambda/D units.
- Args:
angle_arcsec: Angular separation in arcseconds. wavelength_nm: Wavelength in nanometers. diameter_m: Telescope diameter in meters.
- Returns:
Angular separation in lambda/D.
- hwoutils.conversions.lambda_d_to_arcsec(angle_lambda_d, wavelength_nm, diameter_m)[source]#
Convert lambda/D units to angular separation in arcseconds.
- Args:
angle_lambda_d: Angular separation in lambda/D. wavelength_nm: Wavelength in nanometers. diameter_m: Telescope diameter in meters.
- Returns:
Angular separation in arcseconds.
- hwoutils.conversions.au_to_arcsec(distance_au, distance_pc)[source]#
Convert physical distance in AU to angular separation.
- Args:
distance_au: Physical distance in AU. distance_pc: Distance to system in parsecs.
- Returns:
Angular separation in arcseconds.
- hwoutils.conversions.arcsec_to_au(angle_arcsec, distance_pc)[source]#
Convert angular separation to physical distance.
- Args:
angle_arcsec: Angular separation in arcseconds. distance_pc: Distance to system in parsecs.
- Returns:
Physical distance in AU.
- hwoutils.conversions.is_leap_year(year)[source]#
Determine if a year is a leap year.
- Args:
year: The year to check.
- Returns:
True if the year is a leap year.
- hwoutils.conversions.days_in_year(year)[source]#
Return the number of days in a year (365 or 366).
- Args:
year: The year to check.
- Returns:
Number of days.
- hwoutils.conversions.gregorian_to_jd(year, month, day)[source]#
Convert a Gregorian date to a Julian day.
- Args:
year: The year. month: The month. day: The day.
- Returns:
The Julian day.
- hwoutils.conversions.jd_to_decimal_year(jd)[source]#
Convert a Julian day to a decimal year.
- Args:
jd: The Julian day.
- Returns:
The decimal year.
- hwoutils.conversions.decimal_year_to_jd(decimal_year)[source]#
Convert a decimal year to a Julian day.
- Args:
decimal_year: The decimal year.
- Returns:
The Julian day.
- hwoutils.conversions.SPHERICAL_TO_GEOMETRIC_ALBEDO_LAMBERTIAN: float = 0.6666666666666666#
- hwoutils.conversions.spherical_to_geometric_albedo(A_S)[source]#
Convert spherical albedo to geometric albedo (Lambertian sphere).
- Args:
A_S: Spherical (Bond) albedo, dimensionless.
- Returns:
Geometric albedo A_g, dimensionless.
- Notes:
Exact for a uniformly Lambertian-reflecting sphere (Seager 2010, eq 3.36): A_g = (2/3) * A_S. For atmospheres with anisotropic scattering (Mie clouds, etc.) the actual A_g / A_S ratio depends on the scattering phase function; this is the leading-order approximation that the ExoJaxPhysicalModel uses to convert its 2-stream plane-parallel reflectivity to a disk-integrated geometric albedo.
- hwoutils.conversions.geometric_to_spherical_albedo(A_g)[source]#
Convert geometric albedo to spherical albedo (Lambertian sphere).
Inverse of
spherical_to_geometric_albedo(): A_S = (3/2) * A_g.