Please be patient, this operation may take several minutes. Do not close your browser.
This application is specifically designed to generate light curves for small, atmosphere-less bodies in the Solar System, with the primary objective of supporting research in this domain. While alternative tools exist, this application offers a distinctive combination of features: simulations are executed directly on the server, eliminating the need for local installation, and it generates projected images of objects in the sky plane. These functionalities are particularly valuable for validating research in fields such as stellar occultations. Developed in Python with Django as its framework, the tool currently provides two operational modes:
In both modes, users have the option to upload a custom shape model in .obj
format or define
the triaxial axes (a, b, and c) of an ellipsoid.
The following sections provide a detailed explanation of each tool's features.
For a demonstration of its functionality, watch this
video.
Object: In this mode, the user is required to provide the Minor Planet number assigned to the object. This information can be retrieved from the JPL Small-Body Database.
Date: The user must also specify the observation date from which the light curve should be
simulated. The required format is
yyyy-mm-dd hh:mm:ss.ssss
(e.g., 2001-01-01 12:30:12.4320
). If the date provided is
in the
yyyy-mm-dd
format, the tool will automatically assume the time to be
00:00:00.0000
.
Rotation Pole: For known bodies, the rotation pole must be specified in ecliptic coordinates, using decimal degrees.
Longitude is defined in the range 0–360°
, and latitude in the range –90° to +90°
.
If the pole coordinates are known in a different reference frame, you can convert them using
this external tool.
Phase Angle: The phase angle is the angle formed between the vector pointing toward the Sun and the vector pointing toward the observer. In this mode, Earth (observer) is fixed along the X-axis of this arbitrary coordinate system, the object is located at the origin, and the Sun moves according to the angle specified by the user within the XY plane (from the X-axis toward the Y-axis, see Fig. 1). In case the check box Generate Images is selected, the positive Z-axis points upward, while the positive Y-axis is oriented to the right in the image.
Rotation Pole: In this mode, Earth (observer) is fixed at the origin and lies on the XY
plane, with Y = 0
,
as illustrated in Fig. 1. The pole is defined using spherical coordinates in this arbitrary frame. A pole at longitude = 0°
and latitude = 90°
corresponds to an "equator-on" configuration,
while a pole at longitude = 0°
and latitude = 0°
corresponds to a "pole-on" configuration.
LC number of points: This parameter defines the temporal resolution of the rotational light curve. An integer value is required to determine the number of points sampled from the rotational phase.
Rotational phase offset: A rotational phase offset, ranging between 0 and 1, can be applied to adjust the starting point of the light curve. This adjustment ensures that the curve begins at a specific phase, such as a maximum, minimum, or any other desired point.
Custom Shape Model: A custom shape model can be uploaded in .obj
format, with
facets required to be triangular for compatibility.
It is recommended to use Blender, a free and
versatile software, to create and export models in the appropriate format for this tool.
Models with a higher number of facets will result in longer computation times, and it is recommended not to
exceed 3000 facets. In this video, the user can
find a
basic example of how to generate a shape model.
It is important to specify that the forward axis is set to Y and the up axis is set to Z before exporting.
Otherwise, an undesired orientation may occur.
An example of a shape model in the required format can be downloaded at
this link.
Triaxial Ellipsoid: A triaxial ellipsoid composed of 642 triangular facets can be generated by specifying the values of the axes a, b, and c. The shape model generated through this process will be included in the download folder.
Radiance represents the intrinsic brightness of an object, independent of the observation distance or
measurement instrument, but dependent on the photometric angles of phase (α
), emission
(e
), and incidence (i
). It is quantified as energy per unit area, solid angle, and
time. However, for small bodies reflecting sunlight, it is often more practical to consider the ratio
between incident and reflected energy. A commonly used term for this is I/F, which represents the
ratio of reflected light to that of a perfectly Lambertian surface under the same illumination conditions.
In this tool, several photometric models are implemented. On the one hand, we use empirical models, assuming
that radiance can be expressed as the product of two components: a phase function (f(α)
) and a
disk function (d(α,e,i)
). This approach allows the simulation to separately account for the
effects of the Sun-object-observer geometry (phase angle) and the surface scattering properties of the
object.
$$\frac{I}{F} = f(\alpha) \cdot d(\alpha, e, i)$$
On the other hand, we implement the Hapke model (Hapke 2012). This model is significantly more complex than
empirical models but has the advantage that its parameters have a physical meaning (or at least that's what
it's supposed to be), making them more
intuitive and applicable in scientific studies.
For simplicity, the solar irradiance (S) received by the object is normalized to 1 W/m². This
assumption facilitates rescaling of the results if needed.
The currently implemented and functional models are as follows:
Amin
, β
, γ
, and δ
are fitting
parameters (these parameters must be derived using degrees,not radians).
k
:
The Hapke model is based on radiative transfer theory and provides a more intuitive and interpretable approach to surface scattering. The model accounts for multiple scattering, macroscopic roughness, and opposition effects, which improve the accuracy of brightness predictions for irregular and granular surfaces. The reflectance in the Hapke model used in this tool, which depends on 9 parameters, is given by:
$$ \frac{I}{F} = LS(i, e) \cdot K \cdot \frac{w}{4} \left[ p(\alpha)(1 + B_{S0} B_{S}(\alpha)) + M(i, e) \right] \left[ 1 + B_{C0} B_{C}(\alpha) \right] S(i, e, \psi) $$
where:
LS(e, i)
is the Lommel-Seeliger function.K
is the porosity factor, accounting for voids between particles in the
surface.w
is the single-scattering albedo, representing the fraction of incident
light scattered by a single particle.p(α)
is the phase function.BS0
is the amplitude of the Shadow Hiding Opposition Effect (SHOE).BS(g)
is the SHOE function.M(i,e)
is the Isotropic Multiple-Scattering Approximation (IMSA).BC0
is the amplitude of the Coherent Backscatter Opposition Effect (CBOE).BC(α)
is the CBOE function.S(e, i, ψ)
represents the macroscopic roughness correction, accounting for
large-scale variations in the surface slope, where ψ
is the azimuthal angle between the
planes of incidence and emission:$$ \psi = \arccos \left( \frac{\cos(α) - \cos(e) \cos(i)}{\sin(e) \sin(i)} \right) $$
Each term of the above equation is calculated as:
LS(e, i)
):
$$LS(e, i) = \frac{\cos i}{\cos i + \cos e}$$
K
):
$$ K = \frac{-\ln (1 - 1.209\phi^{2/3})}{1.209\phi^{2/3}} $$
whereΦ
is the filling factor, equivalent to 1 - porosity.
p(α)
), we employ the Henyey-Greenstein double-lobed single particle phase
function:
$$ p(α) = \frac{(1 + c_{HG})}{2} \cdot \frac{(1 - b_{HG}^2)}{(1 - 2b_{HG} \cos α + b_{HG}^2)^{3/2}} + \frac{(1 - c_{HG})}{2} \cdot \frac{(1 - b_{HG}^2)}{(1 + 2b_{HG} \cos α + b_{HG}^2)^{3/2}} $$
bHG
(0 ≤ bHG
≤ 1) is the shape-controlling parameter,
and cHG
(−1 ≤ cHG
≤ 1)is the relative strength of backward and
forward lobes.
$$ B_S(α) = \frac{1}{1 + \tan(α/2)/h_S} $$
wherehS
is the angular width parameter of SHOE.
$$ M(i, e) = H\left(\frac{\cos(i)}{K}, w\right) H\left(\frac{\cos(e)}{K}, w\right) - 1 $$
whereH(x,w)
is the Ambartsumian-Chandrasekhar H function, which can be approximated as:
$$ H(x, w) \approx \left\{ 1 - w x \left[ r_0 + \frac{1 - 2 r_0 x}{2} \ln \left(\frac{1 + x}{x}\right) \right] \right\}^{-1} $$
wherer0
is the diffusive reflectance, given by
$$ r_0 = \frac{1 - \sqrt{1 - w}}{1 + \sqrt{1 - w}} $$
$$ B_C(\alpha) = \frac{1 + \frac{1 - \exp(-\tan(\alpha/2) / h_C)}{\tan(\alpha/2) / h_C}}{2 \left[ 1 + \tan(\alpha/2) / h_C \right]^2} $$
wherehC
is the angular width of CBOE.
θp
, the
effective value of the photometric roughness, and given by:
i ≤ e
:
$$ S(i, e, \psi) = \frac{\mu}{\eta(e)} \frac{\mu_0}{\eta(i)} \frac{\chi({\theta}_p)}{1 - f(\psi) + f(\psi) \chi({\theta}_p) [\mu_0 / \eta(i)]} $$
with$$ \mu_{0} = \chi({\theta}_p) \left[ \cos(i) + \sin(i) \tan({\theta}_p) \frac{\cos(\psi) E_2(e) + \sin^2(\psi/2) E_2(i)}{2 - E_1(e) - (\psi/\pi) E_1(i)} \right] $$
$$ \mu = \chi({\theta}_p) \left[ \cos(e) + \sin(e) \tan({\theta}_p) \frac{E_2(e) - \sin^2(\psi/2) E_2(i)}{2 - E_1(i) - (\psi/\pi) E_1(i)} \right] $$
e < i
:
$$ S(i, e, \psi) = \frac{\mu}{\eta(e)} \frac{\mu_0}{\eta(i)} \frac{\chi({\theta}_p)}{1 - f(\psi) + f(\psi) \chi({\theta}_p) [\mu / \eta(e)]} $$
with$$ \mu_{0} = \chi({\theta}_p) \left[ \cos(i) + \sin(i) \tan({\theta}_p) \frac{E_2(i) - \sin^2(\psi/2) E_2(e)}{2 - E_1(i) - (\psi/\pi) E_1(e)} \right] $$
$$ \mu = \chi({\theta}_p) \left[ \cos(e) + \sin(e) \tan({\theta}_p) \frac{\cos(\psi) E_2(i) + \sin^2(\psi/2) E_2(e)}{2 - E_1(i) - (\psi/\pi) E_1(e)} \right] $$
e
and
i
values, as follows:
$$ \chi({\theta}_p) = \frac{1}{\sqrt{1 + \pi \tan^2({\theta}_p)}} $$
$$ \eta(y) = \chi({\theta}_p) \left[ \cos(y) + \sin(y) \tan({\theta}_p) \frac{E_2(y)}{2 - E_1(y)} \right] $$
$$ E_1(y) = \exp \left[ -\frac{2}{\pi} \cot({\theta}_p) \cot(y) \right] $$
$$ E_2(y) = \exp \left[ -\frac{1}{\pi} \cot^2({\theta}_p) \cot^2(y) \right] $$
$$ f(\psi) = \exp \left[ -2 \tan \left( \frac{\psi}{2} \right) \right] $$
To use the Hapke model in this tool, the following 9 parameters are required:
Parameter | Description |
---|---|
w |
Single scattering albedo |
bHG |
Henyey-Greenstein parameter |
cHG |
Henyey-Greenstein parameter |
BC0 |
Amplitude of the Coherent Backscatter Opposition Effect (CBOE) |
hC |
Angular width of CBOE |
BS0 |
Amplitude of the Shadow Hiding Opposition Effect (SHOE) |
hS |
Angular width of SHOE |
θp |
Photometric roughness (degrees) |
Φ |
Filling factor, equivalent to 1 - porosity |
The Albedo Spot checkbox allows users to simulate surface features with different reflectance properties (albedo) on the surface. This feature is particularly useful for studying the effects of localized surface variations on the rotational light curve.
When this checkbox is enabled, the user can define the following parameters:
By adjusting these parameters, users can model and analyze how surface heterogeneities influence the rotational light curve of the object.
The Precession checkbox allows users to simulate the motion of the rotation pole as it precesses over time. Instead of remaining fixed, the rotation pole follows a conical trajectory, modifying its longitude and latitude dynamically during the simulation.
When this checkbox is enabled, the user can define the following parameters:
The precession is modeled using sinusoidal variations for both the longitude and co-latitude of the pole:
lon = lon0 + Alon * cos(2π * ωp * t)
colat = colat0 + Acolat * sin(2π * ωp * t)
Where:
lon0
and colat0
are the initial longitude and colatitude of the
pole.Alon
and Acolat
define the amplitude of the precession in
longitude and colatitude .ωp
is the precession frequency in cycles per body rotation.t
represents the rotational phase, varying from 0 to 1 over a full rotation.By adjusting these parameters, users can simulate different precession behaviors, from small oscillations to large variations where the rotation pole traces a wide circular path over time.
The tool includes the following checkboxes to customize the output:
After pressing the Submit button, the server will perform the necessary calculations and display a summary of the input parameters on the screen. The rotational light curve, representing relative magnitude as a function of rotational phase, will be displayed below.
If the Generate Images checkbox is selected, an animation of the object's projections in the skyplane will also be displayed alongside the light curve.
If the result meets expectations, the generated data can be downloaded by clicking the Download
Data button. This action will prompt the user to save a compressed .zip
file
containing:
0.250_synthetic_LC_g
indicates a rotational
phase of 0.250).
Relative magnitude = -2.5 · np.log10(total_reflectance / np.average(total_reflectance))
.obj
format will also be included.