
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/01-simulation_and_visualization/1.3-mars_simulation_pyvista.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_auto_examples_01-simulation_and_visualization_1.3-mars_simulation_pyvista.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_01-simulation_and_visualization_1.3-mars_simulation_pyvista.py:


Run a simulation of a local region on Mars.
===========================================

.. rubric:: By David Minton and Dennise Valadez

This example demonstrates how to use the HiResLocal Surface to run a crater population over a small region of a planet, in this case Mars.

For this example, we will The simulation uses the default Mars configuration and runs for 1 billion years on a local region with a radius of 20 km and resolution of 100 m/pix.  We then visualize the surface using PyVista and a Mars-like colormap.
We also pass an option that will automatically generate hillshade plots each time the surface is saved. You can also pass in "elevation" to generate elevation plots instead of hillshade plots.

.. GENERATED FROM PYTHON SOURCE LINES 14-55







.. tab-set::



   .. tab-item:: Static Scene



            
     .. image-sg:: /auto_examples/01-simulation_and_visualization/images/sphx_glr_1.3-mars_simulation_pyvista_001.png
        :alt: 1.3 mars simulation pyvista
        :srcset: /auto_examples/01-simulation_and_visualization/images/sphx_glr_1.3-mars_simulation_pyvista_001.png
        :class: sphx-glr-single-img
     


   .. tab-item:: Interactive Scene



       .. offlineviewer:: /home/docs/checkouts/readthedocs.org/user_builds/cratermaker/checkouts/latest/docs/auto_examples/01-simulation_and_visualization/images/sphx_glr_1.3-mars_simulation_pyvista_001.vtksz



.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    Generating a new grid.
    Creating a new grid
    Center of local region: (0.0, 0.0)
    Radius of local region: 20.00 km
    Local region pixel size: 200.0 m
    Generated 31425 points in the local region.
    Generated 31478 points in the superdomain region.



      0%|          | 0/1 [00:00<?, ?interval/s]


    Current: 1.000 Gy bp; Elapsed: 0 My:   0%|          | 0/1 [00:00<?, ?interval/s]    Generating crater population:   0%|          | 0/365 [00:00<?, ?crater/s]    Generating crater population:   8%|▊         | 29/365 [00:00<00:01, 283.95crater/s]    Generating crater population:  16%|█▌        | 58/365 [00:00<00:01, 262.48crater/s]    Generating crater population:  23%|██▎       | 85/365 [00:00<00:01, 253.33crater/s]    Generating crater population:  30%|███       | 111/365 [00:00<00:01, 232.77crater/s]    Generating crater population:  37%|███▋      | 135/365 [00:00<00:01, 221.13crater/s]    Generating crater population:  43%|████▎     | 158/365 [00:00<00:00, 213.00crater/s]    Generating crater population:  49%|████▉     | 180/365 [00:00<00:00, 209.61crater/s]    Generating crater population:  55%|█████▌    | 202/365 [00:00<00:00, 210.18crater/s]    Generating crater population:  61%|██████▏   | 224/365 [00:01<00:00, 211.86crater/s]    Generating crater population:  67%|██████▋   | 246/365 [00:01<00:00, 208.52crater/s]    Generating crater population:  73%|███████▎  | 267/365 [00:01<00:00, 206.54crater/s]    Generating crater population:  79%|███████▉  | 288/365 [00:01<00:00, 206.22crater/s]    Generating crater population:  85%|████████▍ | 309/365 [00:01<00:00, 202.90crater/s]    Generating crater population:  90%|█████████ | 330/365 [00:01<00:00, 204.03crater/s]    Generating crater population:  97%|█████████▋| 353/365 [00:01<00:00, 208.95crater/s]                                                                                        Preparing craters for emplacement:   0%|          | 0/365 [00:00<?, ?crater/s]                                                                                  Queueing craters for emplacement:   0%|          | 0/365 [00:00<?, ?crater/s]    Queueing craters for emplacement:  29%|██▉       | 106/365 [00:00<00:00, 1057.10crater/s]    Queueing craters for emplacement:  59%|█████▊    | 214/365 [00:00<00:00, 1061.23crater/s]    Queueing craters for emplacement:  88%|████████▊ | 323/365 [00:00<00:00, 1070.74crater/s]                                                                                             Emplacing craters:   0%|          | 0/365 [00:00<?, ?craters/s]    Emplacing craters:   1%|▏         | 5/365 [00:00<00:07, 47.25craters/s]    Emplacing craters:   3%|▎         | 10/365 [00:01<00:39,  8.98craters/s]    Emplacing craters:   4%|▍         | 15/365 [00:01<00:28, 12.47craters/s]    Emplacing craters:   5%|▌         | 19/365 [00:03<01:09,  5.01craters/s]    Emplacing craters:   6%|▋         | 23/365 [00:04<01:13,  4.67craters/s]    Emplacing craters:   8%|▊         | 30/365 [00:06<01:08,  4.86craters/s]    Emplacing craters:   9%|▉         | 32/365 [00:06<01:06,  5.01craters/s]    Emplacing craters:  10%|▉         | 35/365 [00:07<01:12,  4.56craters/s]    Emplacing craters:  10%|█         | 38/365 [00:08<01:15,  4.31craters/s]    Emplacing craters:  12%|█▏        | 42/365 [00:09<01:15,  4.29craters/s]    Emplacing craters:  12%|█▏        | 45/365 [00:10<01:14,  4.27craters/s]    Emplacing craters:  14%|█▎        | 50/365 [00:11<01:12,  4.37craters/s]    Emplacing craters:  16%|█▌        | 57/365 [00:12<01:07,  4.54craters/s]    Emplacing craters:  17%|█▋        | 62/365 [00:13<01:04,  4.71craters/s]    Emplacing craters:  18%|█▊        | 67/365 [00:13<01:00,  4.92craters/s]    Emplacing craters:  21%|██        | 75/365 [00:14<00:54,  5.30craters/s]    Emplacing craters:  21%|██▏       | 78/365 [00:14<00:52,  5.51craters/s]    Emplacing craters:  22%|██▏       | 81/365 [00:15<00:51,  5.52craters/s]    Emplacing craters:  25%|██▍       | 90/365 [00:15<00:46,  5.96craters/s]    Emplacing craters:  27%|██▋       | 100/365 [00:15<00:39,  6.75craters/s]    Emplacing craters:  29%|██▉       | 105/365 [00:16<00:38,  6.82craters/s]    Emplacing craters:  30%|██▉       | 108/365 [00:16<00:37,  6.78craters/s]    Emplacing craters:  32%|███▏      | 116/365 [00:17<00:35,  7.00craters/s]    Emplacing craters:  33%|███▎      | 119/365 [00:18<00:35,  6.97craters/s]    Emplacing craters:  35%|███▍      | 126/365 [00:18<00:33,  7.18craters/s]    Emplacing craters:  35%|███▌      | 128/365 [00:19<00:33,  7.13craters/s]    Emplacing craters:  36%|███▋      | 133/365 [00:19<00:32,  7.21craters/s]    Emplacing craters:  38%|███▊      | 138/365 [00:20<00:31,  7.29craters/s]    Emplacing craters:  40%|████      | 146/365 [00:20<00:29,  7.53craters/s]    Emplacing craters:  42%|████▏     | 153/365 [00:21<00:27,  7.70craters/s]    Emplacing craters:  44%|████▍     | 162/365 [00:22<00:25,  7.99craters/s]    Emplacing craters:  45%|████▌     | 166/365 [00:22<00:24,  7.99craters/s]    Emplacing craters:  46%|████▋     | 169/365 [00:23<00:24,  7.89craters/s]    Emplacing craters:  48%|████▊     | 176/365 [00:23<00:23,  8.05craters/s]    Emplacing craters:  51%|█████     | 186/365 [00:23<00:20,  8.69craters/s]    Emplacing craters:  52%|█████▏    | 191/365 [00:24<00:20,  8.58craters/s]    Emplacing craters:  53%|█████▎    | 195/365 [00:25<00:19,  8.51craters/s]    Emplacing craters:  54%|█████▍    | 198/365 [00:25<00:19,  8.42craters/s]    Emplacing craters:  55%|█████▌    | 202/365 [00:26<00:19,  8.36craters/s]    Emplacing craters:  57%|█████▋    | 209/365 [00:26<00:18,  8.50craters/s]    Emplacing craters:  59%|█████▊    | 214/365 [00:27<00:17,  8.51craters/s]    Emplacing craters:  61%|██████    | 223/365 [00:28<00:16,  8.74craters/s]    Emplacing craters:  62%|██████▏   | 225/365 [00:28<00:16,  8.59craters/s]    Emplacing craters:  64%|██████▍   | 235/365 [00:29<00:14,  8.86craters/s]    Emplacing craters:  66%|██████▋   | 242/365 [00:29<00:13,  8.95craters/s]    Emplacing craters:  67%|██████▋   | 245/365 [00:30<00:13,  8.84craters/s]    Emplacing craters:  68%|██████▊   | 249/365 [00:31<00:13,  8.69craters/s]    Emplacing craters:  70%|██████▉   | 255/365 [00:31<00:12,  8.68craters/s]    Emplacing craters:  72%|███████▏  | 264/365 [00:32<00:11,  8.87craters/s]    Emplacing craters:  75%|███████▍  | 273/365 [00:33<00:10,  9.06craters/s]    Emplacing craters:  77%|███████▋  | 280/365 [00:33<00:09,  9.07craters/s]    Emplacing craters:  78%|███████▊  | 286/365 [00:34<00:08,  9.08craters/s]    Emplacing craters:  79%|███████▉  | 288/365 [00:34<00:08,  9.10craters/s]    Emplacing craters:  80%|███████▉  | 291/365 [00:35<00:08,  8.94craters/s]    Emplacing craters:  81%|████████  | 294/365 [00:36<00:08,  8.81craters/s]    Emplacing craters:  82%|████████▏ | 299/365 [00:36<00:07,  8.78craters/s]    Emplacing craters:  85%|████████▍ | 309/365 [00:36<00:06,  9.31craters/s]    Emplacing craters:  86%|████████▋ | 315/365 [00:37<00:05,  9.29craters/s]    Emplacing craters:  88%|████████▊ | 322/365 [00:38<00:04,  9.33craters/s]    Emplacing craters:  91%|█████████ | 331/365 [00:38<00:03,  9.41craters/s]    Emplacing craters:  91%|█████████ | 333/365 [00:39<00:03,  9.26craters/s]    Emplacing craters:  92%|█████████▏| 337/365 [00:39<00:03,  9.17craters/s]    Emplacing craters:  95%|█████████▌| 347/365 [00:40<00:01,  9.36craters/s]    Emplacing craters:  97%|█████████▋| 353/365 [00:41<00:01,  9.36craters/s]    Emplacing craters:  99%|█████████▊| 360/365 [00:42<00:00,  9.39craters/s]    Emplacing craters:  99%|█████████▉| 363/365 [00:42<00:00,  9.29craters/s]                                                                         
    Counting craters: 0craters [00:00, ?craters/s]
                                                  


    Current: 1.000 Gy bp; Elapsed: 0 My: 100%|██████████| 1/1 [00:49<00:00, 49.64s/interval]    Current: 1.000 Gy bp; Elapsed: 0 My: 100%|██████████| 1/1 [00:49<00:00, 49.64s/interval]
    Converting xarray Dataset to Crater objects:   0%|          | 0/365 [00:00<?, ?crater/s]    Converting xarray Dataset to Crater objects:  12%|█▏        | 43/365 [00:00<00:00, 421.79crater/s]    Converting xarray Dataset to Crater objects:  24%|██▎       | 86/365 [00:00<00:00, 423.50crater/s]    Converting xarray Dataset to Crater objects:  35%|███▌      | 129/365 [00:00<00:00, 423.86crater/s]    Converting xarray Dataset to Crater objects:  47%|████▋     | 172/365 [00:00<00:00, 424.32crater/s]    Converting xarray Dataset to Crater objects:  59%|█████▉    | 215/365 [00:00<00:00, 424.40crater/s]    Converting xarray Dataset to Crater objects:  71%|███████   | 258/365 [00:00<00:00, 422.11crater/s]    Converting xarray Dataset to Crater objects:  82%|████████▏ | 301/365 [00:00<00:00, 419.85crater/s]    Converting xarray Dataset to Crater objects:  94%|█████████▍| 344/365 [00:00<00:00, 421.46crater/s]                                                                                                   
    <IPython.core.display.Image object>





|

.. code-block:: Python


    from IPython.display import Image

    from cratermaker import Simulation

    simdir = "simdata-1_3"

    # Note, that for these examples we pass ask_overwrite=False and reset=True to the Simulation constructor. This will suppress
    # prompts that ask the user if they want to overwrite existing files, which would would prevent these examples from running on their
    # own when building the documentation pages. Alternatively, calling cm.cleanup(simdir) will remove all pre-existing output files.

    # Run a simple Mars sim
    sim = Simulation(
        target="Mars",
        surface="hireslocal",
        local_location=(0, 0),
        pix=200.0,
        local_radius=20.0e3,
        rng_seed=86186233405,  # This will ensure we get the same crater population each time we run the example
        simdir=simdir,
        ask_overwrite=False,
        reset=True,
    )
    # This will automatically generate a hillshade plot every time the simulation is saved. All components of Cratermaker have a save_actions property that can be used to specify actions to be performed when the save function is called. This is useful for automatically generating plots or other outputs at specified intervals during the simulation.
    sim.save_actions = [
        {
            "plot": {
                "plot_style": "hillshade",
                "cmap": "pink",
                "scalebar": True,
                "label": "Mars region simulation",
                "show": True,
                "save": True,
            }
        }
    ]
    sim.run(age=1000)
    sim.show3d(variable_name="face_elevation", cmap="pink")

    # We can also display the saved image directly. The name will depend on the plot_style option used above.
    Image(filename=sim.surface.plot_dir / "local_surface_hillshade000001.png")


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (1 minutes 20.274 seconds)


.. _sphx_glr_download_auto_examples_01-simulation_and_visualization_1.3-mars_simulation_pyvista.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: 1.3-mars_simulation_pyvista.ipynb <1.3-mars_simulation_pyvista.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: 1.3-mars_simulation_pyvista.py <1.3-mars_simulation_pyvista.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: 1.3-mars_simulation_pyvista.zip <1.3-mars_simulation_pyvista.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
