craters¶
Impact craters generated from a density and age model, or placed by hand, and cut into the terrain.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
morphometry |
one of lunar, mars |
"lunar" |
Published fits of fresh crater depth, rim height and complex crater shape the craters are shaped with. | ||
generate |
boolean | true |
Generates craters from the density; off places only the manual craters. | ||
seed |
integer | 1 |
Seed the craters are generated with; changing it gives a different crater field of the same statistics. | ||
density |
crater densities | {"type": "power_law", ...} |
Size-frequency distribution of the generated craters: how many of each diameter per unit area. | ||
ages |
crater ages | {"type": "uniform", ...} |
How generated craters are given ages, which the degradation model wears them down by. | ||
min_diameter |
number | 4.0 |
(0, inf) | m | Smallest crater generated, in metres; lower values add many more small craters. |
max_diameter |
number | 250.0 |
(0, inf) | m | Largest crater generated, in metres; above the smallest. |
max_craters |
integer | 0 |
Most generated craters kept, the largest first; 0 keeps all. Manual craters are always kept, and a cap means tiles no longer match the whole grid. | ||
profile |
crater profiles | {"type": "martin_parkes_dunstan", ...} |
Shape of a fresh crater's cross-section, scaled to each crater's diameter. | ||
degradation |
crater degradation | {"type": "freshness", ...} |
How craters wear down from their fresh shape with age. |
spacing: Keeps craters of similar size apart by removing conflicting ones, which lowers the density below the model's.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
diameter_ratio |
number | 1.5 |
[1, inf) | Largest ratio of two craters' diameters, at least 1, for them to count as similar in size and be kept apart. | |
separation |
number | 0.0 |
[0, inf) | Least distance between the centres of similar-size craters, in larger diameters; 0 disables spacing. |
manual[]: Craters placed by hand in the surface's coordinates, added to any generated ones.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
x |
number | 0.0 |
Centre along x in the surface's coordinates; the longitude in degrees on a sphere. | ||
y |
number | 0.0 |
Centre along y in the surface's coordinates; the latitude in degrees on a sphere. | ||
diameter |
number | 0.0 |
(0, inf) | m | Rim-to-rim diameter, in metres. |
age_gyr |
number | 0.0 |
[0, inf) | Gyr | Age in Gyr; older craters are more degraded under a degradation model and are applied earlier in oldest-first order. |
id |
integer | 0 |
Stable ID that seeds the crater's outline; 0 derives one from its position and diameter. |
apply: How craters are cut into the terrain: their order, datum, blending, fading and irregular outlines.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
order |
one of oldest_first, largest_first |
"oldest_first" |
Order in which overlapping craters are applied; later craters overprint earlier ones. | ||
datum |
one of none, plane, mean_height, centre_height |
"none" |
Reference surface each crater's interior is cut relative to, fitted to the ground beneath it; none adds craters onto the terrain everywhere. | ||
datum_fit_radii |
number | 1.0 |
(0, inf) | Radius of the footprint the datum is fitted over, in crater radii. | |
interior_replacement |
number | 1.0 |
[0, 1] | Share of the interior replaced by datum plus profile, from 0 to 1: 1 erases older relief inside the crater, 0 keeps it. |
fade: How craters too small to resolve at the sample spacing fade out.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
start_samples |
number | 2.0 |
[0, inf) | Samples across a feature's diameter up to which it is left out entirely. | |
end_samples |
number | 4.0 |
(0, inf) | Samples across a feature's diameter from which it is applied in full; it fades in between the two counts. | |
shape |
one of linear, smoothstep, smootherstep, gaussian |
"smoothstep" |
Curve of the fade between the start and end sample counts. |
blend: Where and how a crater's replaced interior blends into the surrounding terrain.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
start_radii |
number | 0.8 |
[0, inf) | Distance from the centre, in crater radii, up to which the interior is fully replaced. | |
end_radii |
number | 1.2 |
(0, inf) | Distance from the centre, in crater radii, from which the surrounding terrain is draped unchanged. | |
shape |
one of linear, smoothstep, smootherstep, gaussian |
"smootherstep" |
Curve of the transition from the replaced interior to the exterior. |
irregularity: Irregular, non-circular crater outlines: which craters have them and how their shapes are drawn.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
enabled |
boolean | false |
Gives eligible craters irregular, non-circular outlines; off keeps every crater round. | ||
seed |
integer | 0 |
Seed the outlines are drawn with, along with each crater's ID; changing it reshapes every irregular crater. | ||
min_diameter |
number | 0.0 |
[0, inf) | m | Smallest diameter, in metres, of craters made irregular. |
max_diameter |
number, optional | null |
[0, inf) | m | Largest diameter, in metres, of craters made irregular; unset has no upper limit. |
min_age_gyr |
number | 0.0 |
[0, inf) | Gyr | Youngest age, in Gyr, of craters made irregular. |
max_age_gyr |
number, optional | null |
[0, inf) | Gyr | Oldest age, in Gyr, of craters made irregular; unset has no upper limit. |
manual |
boolean | false |
Makes manual craters irregular too; otherwise only generated craters are. | ||
rough_share |
number | 1.0 |
[0, 1] | Share of eligible craters, from 0 to 1, given rough, wavy rims. | |
model |
one of power_law, du_2024 |
"power_law" |
How rough rims are drawn. | ||
scatter |
boolean | true |
With du_2024, scatters each crater's spectrum by the fits' measured misfits and noise. | ||
max_deviation |
number | 0.3 |
(0, 0.5] | With du_2024, the largest deviation of a rim from a circle, in radii; outlines beyond it are scaled down to it. | |
min_harmonic |
integer | 2 |
[1, 64] | With power_law, the lowest harmonic of the rim's waviness, from 1 to 64. | |
max_harmonic |
integer | 12 |
[1, 64] | With power_law, the highest harmonic of the rim's waviness, at most 64; higher harmonics add finer wiggles. | |
elongated_share |
number | 0.054 |
[0, 1] | Share of eligible craters, from 0 to 1, made elliptical, keeping their area. | |
heading |
number, optional | null |
rad | Heading of elliptical craters' long axes, in radians counter-clockwise from +x; unset gives random headings. | |
heading_spread |
number | 0.0 |
[0, inf) | rad | Largest random turn of a long axis either way from the heading, in radians. |
marks_share |
number | 0.0 |
[0, 1] | Share of eligible craters, from 0 to 1, given radial marks: ridges and grooves down the wall, strongest where it is steepest. | |
marks_knots |
integer | 45 |
[3, 1024] | Random shifts around the crater the marks pass through, from 3 to 1024; more knots give narrower marks. | |
marks_inner_radii |
number | 0.3 |
(0, 1) | Distance from the centre, in crater radii, where the marks reach full strength. | |
marks_outer_radii |
number | 0.9 |
(0, 1) | Distance from the centre, in crater radii, where the marks start to fade; at most 1 minus marks_fade_radii. | |
marks_fade_radii |
number | 0.1 |
(0, 0.5] | Width, in crater radii, over which the marks fade in and out. |
roughness: With power_law, the RMS deviation of a rough rim from a circle, in crater radii, drawn per crater.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
kind |
one of constant, uniform, normal, log_normal |
"constant" |
Kind of distribution the value is drawn from. | ||
a |
number | 0.0 |
The constant value, the uniform's lower bound, the normal's mean or the log-normal's median. | ||
b |
number | 0.0 |
The uniform's upper bound, or the standard deviation (of the natural logarithm for a log-normal); unused for a constant. | ||
min |
number, optional | null |
Lower bound drawn values are clamped to; unset leaves them unbounded below. | ||
max |
number, optional | null |
Upper bound drawn values are clamped to; unset leaves them unbounded above, which normal and log-normal kinds do not allow. |
spectral_slope: With power_law, the exponent s of the rim harmonics' amplitudes, falling as k^-s, drawn per crater; higher values leave less fine waviness.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
kind |
one of constant, uniform, normal, log_normal |
"constant" |
Kind of distribution the value is drawn from. | ||
a |
number | 0.0 |
The constant value, the uniform's lower bound, the normal's mean or the log-normal's median. | ||
b |
number | 0.0 |
The uniform's upper bound, or the standard deviation (of the natural logarithm for a log-normal); unused for a constant. | ||
min |
number, optional | null |
Lower bound drawn values are clamped to; unset leaves them unbounded below. | ||
max |
number, optional | null |
Upper bound drawn values are clamped to; unset leaves them unbounded above, which normal and log-normal kinds do not allow. |
ellipticity: Long over short rim-to-rim diameter of elliptical craters, drawn per crater; at least 1.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
kind |
one of constant, uniform, normal, log_normal |
"constant" |
Kind of distribution the value is drawn from. | ||
a |
number | 0.0 |
The constant value, the uniform's lower bound, the normal's mean or the log-normal's median. | ||
b |
number | 0.0 |
The uniform's upper bound, or the standard deviation (of the natural logarithm for a log-normal); unused for a constant. | ||
min |
number, optional | null |
Lower bound drawn values are clamped to; unset leaves them unbounded below. | ||
max |
number, optional | null |
Upper bound drawn values are clamped to; unset leaves them unbounded above, which normal and log-normal kinds do not allow. |
marks_amplitude: Largest radial shift of the wall by the marks, in crater radii, drawn per crater; below marks_fade_radii / 3.75.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
kind |
one of constant, uniform, normal, log_normal |
"constant" |
Kind of distribution the value is drawn from. | ||
a |
number | 0.0 |
The constant value, the uniform's lower bound, the normal's mean or the log-normal's median. | ||
b |
number | 0.0 |
The uniform's upper bound, or the standard deviation (of the natural logarithm for a log-normal); unused for a constant. | ||
min |
number, optional | null |
Lower bound drawn values are clamped to; unset leaves them unbounded below. | ||
max |
number, optional | null |
Upper bound drawn values are clamped to; unset leaves them unbounded above, which normal and log-normal kinds do not allow. |
rim_smoothing: Rounded rims: each crater's profile smoothed across distance near its rim; off unless sigma_radii is set.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
sigma_radii |
number | 0.0 |
[0, inf) | Deviation of the Gaussian the profile is smoothed with across distance, in crater radii; larger values round rims more, and 0 leaves them sharp. | |
inner_radii |
number | 0.8 |
[0, 1) | Inner edge of the smoothed band around the rim, in crater radii; below 1. | |
outer_radii |
number | 1.2 |
(1, inf) | Outer edge of the smoothed band around the rim, in crater radii; above 1. | |
shape |
one of linear, smoothstep, smootherstep, gaussian |
"smootherstep" |
How the smoothing fades from full at the rim to none at the band's edges. | ||
strength |
number | 1.0 |
[0, 1] | Share of the smoothed height used at the rim, from 0 to 1; lower values keep more of the sharp crest. |
noise: Fractal noise over each crater's footprint and around its rim, keyed to the crater; off unless an amplitude is set.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
amplitude |
number | 0.0 |
[0, inf) | Amplitude of the noise over the whole footprint, as a share of the crater diameter; it fades out beyond the rim to the profile's reach, and 0 adds none. | |
wavelength_radii |
number | 0.5 |
(0, inf) | Wavelength of the footprint noise's first octave, in crater radii. | |
octaves |
integer | 4 |
[1, 12] | Octaves of both noises, from 1 to 12. | |
gain |
number | 0.5 |
(0, inf) | Weight ratio between successive octaves; positive. | |
rim_amplitude |
number | 0.0 |
[0, inf) | Amplitude of the extra noise in the band around the rim, as a share of the crater diameter; 0 adds none. | |
rim_wavelength_radii |
number | 0.1 |
(0, inf) | Wavelength of the rim noise's first octave, in crater radii. | |
rim_inner_radii |
number | 0.8 |
[0, 1) | Inner edge of the rim noise band, in crater radii; below 1. | |
rim_outer_radii |
number | 1.2 |
(1, inf) | Outer edge of the rim noise band, in crater radii; above 1. | |
seed |
integer | 0 |
Varies the noise of every crater. |
texture: Gullies down fresh walls, textured ejecta and older relief buried under the ejecta; off unless an amplitude or mantling is set.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
wall_streaks |
number | 0.0 |
[0, inf) | Amplitude of the radial gullies down a fresh crater's inner wall, as a share of its diameter; 0 adds none. | |
wall_streak_width_radii |
number | 0.15 |
(0, inf) | Width of the gullies across the wall, in crater radii. | |
ejecta |
number | 0.0 |
[0, inf) | Amplitude of the hummocky, radially lineated ejecta around a fresh crater, as a share of the ejecta's thickness (McGetchin et al. 1973); 0 adds none. | |
ejecta_lineation_radii |
number | 0.15 |
(0, inf) | Width of the ejecta's lineations across, in crater radii at the rim. | |
mantling |
number | 0.0 |
[0, 1] | Share of older relief buried under the ejecta at the rim, falling with their thickness, from 0 to 1; needs a datum. | |
ejecta_reach_radii |
number | 3.0 |
(1, inf) | How far ejecta texture and burial reach, in crater radii; above 1. | |
min_freshness |
number | 0.5 |
[0, 1) | Freshness (depth over fresh depth) at or below which gullies and ejecta texture are worn away, from 0 to below 1. | |
seed |
integer | 0 |
Varies the texture of every crater. |
slope: Craters on sloping ground with floors offset downslope and rims lowered upslope; needs the plane datum.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
enabled |
boolean | false |
Shapes craters asymmetrically along the slope of the ground beneath the layer; off keeps them the same on any slope. | ||
seed |
integer | 0 |
Varies how far each crater's floor is offset. | ||
upslope_rim |
number | 0.0 |
[0, 1] | Share of the raised rim and ejecta kept straight upslope, from 0 to 1; the rest returns toward the sides. | |
full_slope |
number | 0.08726646259971647 |
(0, inf) | rad | Slope at which the asymmetry is complete, in radians; it rises from none on level ground. |
critical_gradient |
number, optional | null |
(0, inf) | Critical gradient Sc, rise over run, toward which downslope transport grows without bound: a crater on a regional gradient S wears 1 / (1 - (S / Sc)^2) times as fast (Roering et al. 1999). Unset wears craters alike on any slope; no lunar value is published. | |
max_wear_rate |
number | 10.0 |
[1, inf) | Fastest a slope makes craters wear, over level ground: a numerical cap as S nears Sc. |
floor_offset: How far the deepest point lies downslope of the centre, in diameters, drawn per crater; below 0.23.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
kind |
one of constant, uniform, normal, log_normal |
"constant" |
Kind of distribution the value is drawn from. | ||
a |
number | 0.0 |
The constant value, the uniform's lower bound, the normal's mean or the log-normal's median. | ||
b |
number | 0.0 |
The uniform's upper bound, or the standard deviation (of the natural logarithm for a log-normal); unused for a constant. | ||
min |
number, optional | null |
Lower bound drawn values are clamped to; unset leaves them unbounded below. | ||
max |
number, optional | null |
Upper bound drawn values are clamped to; unset leaves them unbounded above, which normal and log-normal kinds do not allow. |
density_map: Map that sets the crater density point by point, scaling the density's size distribution to what it measures; unset keeps the density the same everywhere.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
measure |
one of scale, count, areal_fraction |
"scale" |
What the map's values measure. | ||
min_diameter |
number | 0.0 |
m | Smallest diameter the map measures, in metres; positive for a count or areal fraction. | |
max_diameter |
number, optional | null |
m | Largest diameter the map measures, in metres, exclusive; unset for no limit. | |
area_unit |
number | 1.0 |
(0, inf) | m^2 | Square metres per area unit of a count: 1 for per m^2, 1e6 for per km^2. |
total |
boolean | true |
The map counts every feature of its kind, including the secondaries thrown from a crater layer's craters and the boulders a layer throws out around craters, which are taken out of it first; off when it counts only what the layer generates. |
field: The map.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
path |
string | "" |
GeoTIFF read in the surface's coordinates, relative to the configuration's folder: metres on a plane, longitude and latitude in degrees on a sphere. Empty uses value. | ||
value |
number | 0.0 |
The field everywhere when no path is given. | ||
band |
integer | 0 |
Band of the GeoTIFF read, from 0. | ||
method |
one of nearest, bilinear, cubic |
"bilinear" |
How the GeoTIFF is interpolated: nearest or bilinear, which stay within the cells read. | ||
scale |
number | 1.0 |
(0, inf) | Multiplies every cell, such as 0.001 for a map stored in thousandths; positive. | |
fallback |
number, optional | null |
Value outside the GeoTIFF and where its cells are no-data or NaN; unset leaves none, and the layer then keeps its own setting there. | ||
periodic_longitude |
boolean | false |
The GeoTIFF's x is longitude repeating every 360 degrees, so a map from 0 to 360 serves -180 to 180. |
completeness: Where the manual craters are a complete catalog: the diameter in metres from which they stand in for generated craters, infinite or no value where there is no catalog. Unset keeps every generated crater.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
path |
string | "" |
GeoTIFF read in the surface's coordinates, relative to the configuration's folder: metres on a plane, longitude and latitude in degrees on a sphere. Empty uses value. | ||
value |
number | 0.0 |
The field everywhere when no path is given. | ||
band |
integer | 0 |
Band of the GeoTIFF read, from 0. | ||
method |
one of nearest, bilinear, cubic |
"bilinear" |
How the GeoTIFF is interpolated: nearest or bilinear, which stay within the cells read. | ||
scale |
number | 1.0 |
(0, inf) | Multiplies every cell, such as 0.001 for a map stored in thousandths; positive. | |
fallback |
number, optional | null |
Value outside the GeoTIFF and where its cells are no-data or NaN; unset leaves none, and the layer then keeps its own setting there. | ||
periodic_longitude |
boolean | false |
The GeoTIFF's x is longitude repeating every 360 degrees, so a map from 0 to 360 serves -180 to 180. |
Every key with its default
{
"type": "craters",
"morphometry": "lunar",
"generate": true,
"seed": 1,
"density": {
"type": "power_law",
"coefficient": 0.1,
"exponent": 2.0
},
"ages": {
"type": "uniform",
"lifetime_gyr": 1.0
},
"min_diameter": 4.0,
"max_diameter": 250.0,
"spacing": {
"diameter_ratio": 1.5,
"separation": 0.0
},
"max_craters": 0,
"manual": [],
"profile": {
"type": "martin_parkes_dunstan"
},
"degradation": {
"type": "freshness",
"cutoff_depth_ratio": 0.04
},
"apply": {
"order": "oldest_first",
"fade": {
"start_samples": 2.0,
"end_samples": 4.0,
"shape": "smoothstep"
},
"datum": "none",
"datum_fit_radii": 1.0,
"interior_replacement": 1.0,
"blend": {
"start_radii": 0.8,
"end_radii": 1.2,
"shape": "smootherstep"
},
"irregularity": {
"enabled": false,
"seed": 0,
"min_diameter": 0.0,
"max_diameter": null,
"min_age_gyr": 0.0,
"max_age_gyr": null,
"manual": false,
"rough_share": 1.0,
"model": "power_law",
"scatter": true,
"max_deviation": 0.3,
"roughness": {
"kind": "uniform",
"a": 0.01,
"b": 0.03,
"min": null,
"max": null
},
"spectral_slope": {
"kind": "constant",
"a": 1.5,
"b": 0.0,
"min": null,
"max": null
},
"min_harmonic": 2,
"max_harmonic": 12,
"elongated_share": 0.054,
"ellipticity": {
"kind": "uniform",
"a": 1.1,
"b": 1.5,
"min": null,
"max": null
},
"heading": null,
"heading_spread": 0.0,
"marks_share": 0.0,
"marks_amplitude": {
"kind": "uniform",
"a": 0.0,
"b": 0.005,
"min": null,
"max": null
},
"marks_knots": 45,
"marks_inner_radii": 0.3,
"marks_outer_radii": 0.9,
"marks_fade_radii": 0.1
},
"rim_smoothing": {
"sigma_radii": 0.0,
"inner_radii": 0.8,
"outer_radii": 1.2,
"shape": "smootherstep",
"strength": 1.0
},
"noise": {
"amplitude": 0.0,
"wavelength_radii": 0.5,
"octaves": 4,
"gain": 0.5,
"rim_amplitude": 0.0,
"rim_wavelength_radii": 0.1,
"rim_inner_radii": 0.8,
"rim_outer_radii": 1.2,
"seed": 0
},
"texture": {
"wall_streaks": 0.0,
"wall_streak_width_radii": 0.15,
"ejecta": 0.0,
"ejecta_lineation_radii": 0.15,
"mantling": 0.0,
"ejecta_reach_radii": 3.0,
"min_freshness": 0.5,
"seed": 0
},
"slope": {
"enabled": false,
"seed": 0,
"floor_offset": {
"kind": "uniform",
"a": 0.045,
"b": 0.194,
"min": null,
"max": null
},
"upslope_rim": 0.0,
"full_slope": 0.08726646259971647,
"critical_gradient": null,
"max_wear_rate": 10.0
}
},
"density_map": null,
"completeness": null
}
Used in: example_ages_fresh, example_ages_steady_state, example_ages_uniform, example_albedo_blast_zone, example_albedo_crater_rays, example_albedo_fresh_crater, example_albedo_moon_site, example_albedo_new_crater and 38 more