
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "generated/gallery/vector_data/vectors.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

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

        :ref:`Go to the end <sphx_glr_download_generated_gallery_vector_data_vectors.py>`
        to download the full example code.

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

.. _sphx_glr_generated_gallery_vector_data_vectors.py:


Arrows
------

This example demonstrates how to render glyph arrows of a simple vector field.

📋 Summary
^^^^^^^^^^

The vector field is generated based on the cartesian ``XYZ`` vertices of a
regular quad-cell sample grid.

A Natural Earth base layer is also rendered for geolocation context.

.. tags:: Globe, Lighting, Texture, Vectors

----

.. GENERATED FROM PYTHON SOURCE LINES 26-69







.. tab-set::



   .. tab-item:: Static Scene



            
     .. image-sg:: /generated/gallery/vector_data/images/sphx_glr_vectors_001.png
        :alt: vectors
        :srcset: /generated/gallery/vector_data/images/sphx_glr_vectors_001.png
        :class: sphx-glr-single-img
     


   .. tab-item:: Interactive Scene



       .. offlineviewer:: /home/docs/checkouts/readthedocs.org/user_builds/geovista/checkouts/v0.5.3/docs/src/generated/gallery/vector_data/images/sphx_glr_vectors_001.vtksz






.. code-block:: Python


    from __future__ import annotations

    import numpy as np

    import geovista as gv
    from geovista.pantry.meshes import regular_grid
    import geovista.theme


    def main() -> None:
        """Plot a simple synthetic vector field.

        Notes
        -----
        .. versionadded:: 0.4.0

        """
        # Generate a regular (rN) YX grid of (N, 1.5N) cells.
        mesh = regular_grid(resolution="r25")

        # Attach synthetic vectors.
        vectors = np.vstack(
            (
                -mesh.points[:, 1],
                mesh.points[:, 0],
                mesh.points[:, 2] * 0,
            )
        ).T
        mesh["vectors"] = vectors * 0.1
        mesh.set_active_vectors("vectors")

        # Plot the vectors.
        plotter = gv.GeoPlotter()
        plotter.add_base_layer(texture=gv.natural_earth_1(), zlevel=0, lighting=False)
        plotter.add_mesh(mesh.arrows, lighting=False)
        plotter.add_axes()
        plotter.camera.zoom(1.3)
        plotter.show()


    if __name__ == "__main__":
        main()


.. _sphx_glr_download_generated_gallery_vector_data_vectors.py:

.. only:: html

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

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

      :download:`Download Jupyter notebook: vectors.ipynb <vectors.ipynb>`

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

      :download:`Download Python source code: vectors.py <vectors.py>`

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

      :download:`Download zipped: vectors.zip <vectors.zip>`


.. only:: html

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

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