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#

jy_to_photons_per_nm_per_m2(flux_jy, wavelength_nm)

Convert flux density from Janskys to photons/s/nm/m².

photons_per_nm_per_m2_to_jy(flux_phot, wavelength_nm)

Convert flux density from photons/s/nm/m² to Janskys.

mag_per_arcsec2_to_jy_per_arcsec2(mag_per_arcsec2)

Convert surface brightness from mag/arcsec² to Jy/arcsec² (AB).

nm_to_um(length_nm)

Convert nanometers to micrometers.

um_to_nm(length_um)

Convert micrometers to nanometers.

nm_to_wavenumber_cm(wavelength_nm)

Convert wavelength [nm] to wavenumber [cm^-1] (nu = 1 / lambda).

wavenumber_cm_to_nm(wavenumber_cm)

Convert wavenumber [cm^-1] to wavelength [nm].

au_to_m(length_au)

Convert AU to meters.

m_to_au(length_m)

Convert meters to AU.

Rearth_to_m(length_Rearth)

Convert Earth radii to meters.

au_per_yr_to_m_per_s(velocity_au_per_yr)

Convert AU/yr to m/s.

arcsec_to_rad(angle_arcsec)

Convert arcseconds to radians.

rad_to_arcsec(angle_rad)

Convert radians to arcseconds.

mas_to_arcsec(angle_mas)

Convert milliarcseconds to arcseconds.

arcsec_to_mas(angle_arcsec)

Convert arcseconds to milliarcseconds.

arcsec_to_lambda_d(angle_arcsec, wavelength_nm, diameter_m)

Convert angular separation to lambda/D units.

lambda_d_to_arcsec(angle_lambda_d, wavelength_nm, ...)

Convert lambda/D units to angular separation in arcseconds.

Msun_to_kg(mass_solar)

Convert solar masses to kilograms.

Mearth_to_kg(mass_earth)

Convert Earth masses to kilograms.

au_to_arcsec(distance_au, distance_pc)

Convert physical distance in AU to angular separation.

arcsec_to_au(angle_arcsec, distance_pc)

Convert angular separation to physical distance.

years_to_days(time_years)

Convert years to days.

days_to_years(time_days)

Convert days to years.

is_leap_year(year)

Determine if a year is a leap year.

days_in_year(year)

Return the number of days in a year (365 or 366).

gregorian_to_jd(year, month, day)

Convert a Gregorian date to a Julian day.

jd_to_decimal_year(jd)

Convert a Julian day to a decimal year.

decimal_year_to_jd(decimal_year)

Convert a decimal year to a Julian day.

spherical_to_geometric_albedo(A_S)

Convert spherical albedo to geometric albedo (Lambertian sphere).

geometric_to_spherical_albedo(A_g)

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_um(length_nm)[source]#

Convert nanometers to micrometers.

hwoutils.conversions.um_to_nm(length_um)[source]#

Convert micrometers to nanometers.

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.au_to_m(length_au)[source]#

Convert AU to meters.

hwoutils.conversions.m_to_au(length_m)[source]#

Convert meters to AU.

hwoutils.conversions.Rearth_to_m(length_Rearth)[source]#

Convert Earth radii to meters.

hwoutils.conversions.au_per_yr_to_m_per_s(velocity_au_per_yr)[source]#

Convert AU/yr to m/s.

hwoutils.conversions.arcsec_to_rad(angle_arcsec)[source]#

Convert arcseconds to radians.

hwoutils.conversions.rad_to_arcsec(angle_rad)[source]#

Convert radians to arcseconds.

hwoutils.conversions.mas_to_arcsec(angle_mas)[source]#

Convert milliarcseconds to arcseconds.

hwoutils.conversions.arcsec_to_mas(angle_arcsec)[source]#

Convert arcseconds to milliarcseconds.

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.Msun_to_kg(mass_solar)[source]#

Convert solar masses to kilograms.

hwoutils.conversions.Mearth_to_kg(mass_earth)[source]#

Convert Earth masses to kilograms.

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.years_to_days(time_years)[source]#

Convert years to days.

hwoutils.conversions.days_to_years(time_days)[source]#

Convert days to years.

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.