Overview
ZodiPy is an Astropy affiliated package for simulating zodiacal light in intensity for arbitrary Solar system observers.
A simple example
import astropy.units as u
from astropy.time import Time
from zodipy import Zodipy
model = Zodipy("dirbe")
emission = model.get_emission_ang(
25 * u.micron,
theta=[10, 10.1, 10.2] * u.deg,
phi=[90, 89, 88] * u.deg,
obs_time=Time("2022-01-01 12:00:00"),
obs="earth",
lonlat=True,
)
print(emission)
#> [15.53095493 15.52883577 15.53121942] MJy / sr
What's going on here:
- We start by initializing the
Zodipy
class, which is our interface, where we specify that we want to use the DIRBE interplanetary dust model. - We use the
get_emission_ang
method which is a method to simulate emission from angular sky coordinates (see the reference for other available simulation methods). - The first argument to the
get_emission_ang
method,25 * u.micron
, specifies the wavelength of the simulated observation. Note that we use Astropy units for many of the input arguments. theta
andphi
represent the pointing of the observation (co-latitude and longitude, following the healpy convention). In this example we observe three sky coordinates.obs_time
represents the time of observation, which we need to compute the position of the observer and all other required solar system bodies.obs
represents the observer, and must be an solar system observer supported by the Astropy ephemeris used internally. If we wish to be more specific about the observer position, we can use theobs_pos
keyword instead ofobs
, which takes in a heliocentric cartesian position in units of AU.- Finally,
lonlat
is a boolean which converts the convention oftheta
andphi
from co-latitude and longitude to longitude and latitude.
For more information on using ZodiPy, see the usage section.