Lunar surface

When modeling surfaces of atmosphereless bodies, one needs a realistic crater model. In addition to heavily cratered landscapes, Moon has also quite flat areas where lava has filled the fresh craters. The top layer of the surface is called regolith, which is composed of irregular, gray dust particles. When observing the lunar surface from a satellite, the scattered Sun light depends on both the light scattering properties of the particles, and the scattering geometry. Light scattering can be described by a disk-resolved photometric model: I(ι,ε,α)=ϖF/4 cos ι/(cos ι+cos ε) F_s(ι,ε) P_11(α) + F_m(ιε,α; ϖ, P_11), where ι is the angle of incidence, ε the angle of emergence, α the phase angle, ϖ the single scattering albedo, πF is the incident solar flux, F_s the single scattering function that depends on the surface roughness and porosity, P_11 is the single scattering phase function, and $F_m$ is the multiple scattering function typically approximated by Chandrasekhar's H-functions derived from the radiative transfer theory. I/F is sometimes called the bidirectional reflectance. There have been several semi-empirical models that define F_s and F_m with physically based parameters. The factor 1/(cos ι+cos ε) is called the Lommel-Seeliger scattering law, which holds for isotropic single scattering. It has been shown that the lunar surface obeys this law very closely.

Scattering model

In the lunar surface model, a simplified scattering law is used to speed up computatations. First, any multiple scattering is neglected. For non-icy surfaces, this is a feasible approximation. Second, surface roughness is modeled only in a macroscopic (image pixel) level. A random fractal model is used to produce realistic looking macroscopic roughness. The incident flux density factor πF/4 is set to unity. One parameter is the albedo of the surface element, which is the product of ϖ and P_11. The surface is illuminated for each surface element separately. Before illumination, the surface is triangulated so that each image pixel consists of two triangles. The scattering is computed for each triangle with a simple ray-tracing model that determines, whether the surface element is in shadow. If not, a gray image pixel value is generated according to the local angles of emergence and incidence, which depend on the orientation of the surface normal. Because each image pixel consists of two triangles, these are averaged.

Crater model

There are no two identical craters on the lunar surface, but the craters can be classified into rough categories based on their actual size. The smallest, low-energy impact craters are parabolic or conical in shape, while medium-sized craters can have flat or slumped floors. Large craters can also have a central peak. The largest craters can also have central rings. Several empirical laws have been produced for the lunar craters to relate the diameter of the crater to its depth, or the height of its rim. These are also used in the model. The crater modeling is based on the model by S. M. Parkes and I. Martin (1999), with some additional modifications for large craters.

Lunar surface simulator

The surface engine is coded with Fortran 90. The graphical user interface is a Java application, which uses the Fortran codes as external executables giving the parameters as command-line arguments. The user can control the scattering geometry, surface type, surface resolution (scale), and add additional craters. The application generates the surface, illuminates it, and produces a raw image, a pgm image, and a png image, which is shown in the application window.