# Flux and magnitude conversion¶

In this tutorial we will use the F115W filter of JWST/NIRCam to convert a magnitude into a flux and vice versa. The magnitudes are defined in the Vega System with the magnitude of Vega set to 0.03 for each filter.

## Getting started¶

We start by importing species and initiating the database.

[1]:

import species
species.SpeciesInit()

Initiating species v0.3.1... [DONE]
Creating species_config.ini... [DONE]
Database: /Users/tomasstolker/applications/species/docs/tutorials/species_database.hdf5
Data folder: /Users/tomasstolker/applications/species/docs/tutorials/data
Working folder: /Users/tomasstolker/applications/species/docs/tutorials
Creating species_database.hdf5... [DONE]
Creating data folder... [DONE]

[1]:

<species.core.setup.SpeciesInit at 0x102e23748>


## Magnitude to flux¶

We now create an instance of SyntheticPhotometry with the filter name as listed by the SVO Filter Profile Service.

[2]:

synphot = species.SyntheticPhotometry('JWST/NIRCam.F115W')

Adding filter: JWST/NIRCam.F115W... [DONE]


To covert from apparent magnitude to flux, we use the magnitude_to_flux method. The zero-point flux can be provided but is otherwise calculated from a flux-calibration Vega spectrum. Both the filter profile and the Vega spectrum will be downloaded and stored into the database. Let’s calculate the flux for a magnitude of 15 +/- 0.2.

[3]:

flux, error = synphot.magnitude_to_flux(15., error=0.2, zp_flux=None)
print(f'Flux (W m-2 um-1) = {flux:.2e} +/- {error:.2e}')

Downloading Vega spectrum (270 kB)... [DONE]
Adding Vega spectrum... [DONE]
Flux (W m-2 um-1) = 4.08e-15 +/- 7.56e-16


## Flux to magnitude¶

To convert backwards from flux to magnitude, we use the flux_to_magnitude method. When the distance is provide, both the apparent and absolute magnitude are calculated. The uncertainty on the distance is propagated into the uncertainty of the absolute magnitude

[4]:

app_mag, abs_mag = synphot.flux_to_magnitude(flux, error=error, distance=(30., 5.))
print(f'Apparent magnitude = {app_mag[0]:.2f} +/- {app_mag[1]:.2f}')
print(f'Absolute magnitude = {abs_mag[0]:.2f} +/- {abs_mag[1]:.2f}')

Apparent magnitude = 15.00 +/- 0.20
Absolute magnitude = 12.61 +/- 0.42


As expected, we obtain again the magnitude that we started out with.

## Zero point flux¶

Finally, let’s see what the zero-point flux (i.e. the flux of Vega) is for the JWST/NIRCam.F115W filter.

[5]:

zp_flux = synphot.zero_point()
print(f'Zero point flux (W m-2 um-1) = {zp_flux:.2e}')

Zero point flux (W m-2 um-1) = 3.97e-09


This flux is indeed very similar to the zero point that is provided on the website of the SVO Filter Profile Service: 3.993e-10 erg cm$$^{-2}$$ s$$^{-1}$$ A$$^{-1}$$.