Morphology Morphology

Morphology#

The Morphology component is used to alter the topography of a Surface object using a Crater object. The available morphology models (currently only “basicmoon”) determine how crater geometry and ejecta are emplaced. Like other components, a Morphology model is generated using the Morphology.maker() method:

In [1]: from cratermaker import Morphology

In [2]: morphology = Morphology.maker("basicmoon")
Creating a new grid
Generating a mesh with icosphere level 8.

In [3]: print(morphology)
<Morphology: basicmoon>

None
Do slope collapse: True
Do subpixel degradation: True

<Production: neukum>
Generator type: crater
Version: Moon
Valid Time Range: 0 My - 4.500 Gy
Valid Diameter Range: 10.00 m - 1000.0 km

Ejecta Truncation: Off
Ejecta Rays: False

Crater Emplacement#

The main purpose of a Morphology model is to emplace craters on a surface. This can now be done using the queue-aware emplace() method, which automatically handles crater preparation, overlap resolution, and surface modification. If you do not provide a surface object, the method will create a default one for you (see Surface for more details).

In [4]: from cratermaker import Crater

In [5]: crater = Crater.maker(diameter=25e3)

In [6]: morphology.emplace(crater)
Out[6]: [<cratermaker.components.morphology.basicmoon.BasicMoonCrater at 0x77788d795550>]

Internally, a morphology model maintains a queue of craters that can be processed in parallel batches, provided they do not affect overlapping regions of the surface mesh. This allows for physically plausible yet efficient crater emplacement across geologic timescales.

Batch Emplacement#

You can enqueue multiple craters using emplace(). Craters are emplaced in chronological order in batches of non-overlapping ejecta.

In [7]: craters = [Crater.maker(diameter=d) for d in (5e3, 10e3, 15e3)]

In [8]: morphology.emplace(craters)
Out[8]: 
[<cratermaker.components.morphology.basicmoon.BasicMoonCrater at 0x77788c8bddf0>,
 <cratermaker.components.morphology.basicmoon.BasicMoonCrater at 0x77788c8be150>,
 <cratermaker.components.morphology.basicmoon.BasicMoonCrater at 0x77788c8bd010>]

More Morphology Examples#

See more advanced usage examples in the gallery: Topography