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

.. only:: html

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

        Click :ref:`here <sphx_glr_download_auto_examples_plot_postprocessing_isoscan.py>`
        to download the full example code

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

.. _sphx_glr_auto_examples_plot_postprocessing_isoscan.py:


Postprocessing on isoscan
====================================

Example of isoscan postprocessing procedures.
The data are a deflector scan on graphene as simulated from a third nearest
neighbor tight binding model. The same workflow can be applied to any
tilt-, polar-, deflector- or hv-scan.

.. GENERATED FROM PYTHON SOURCE LINES 13-14

Import the "fundamental" python libraries for a generic data analysis:

.. GENERATED FROM PYTHON SOURCE LINES 14-17

.. code-block:: default


    import numpy as np








.. GENERATED FROM PYTHON SOURCE LINES 18-19

Instead of loading the file as for example:

.. GENERATED FROM PYTHON SOURCE LINES 19-24

.. code-block:: default


    # from navarp.utils import navfile
    # file_name = r"nxarpes_simulated_cone.nxs"
    # entry = navfile.load(file_name)








.. GENERATED FROM PYTHON SOURCE LINES 25-27

Here we build the simulated graphene signal with a dedicated function defined
just for this purpose:

.. GENERATED FROM PYTHON SOURCE LINES 27-39

.. code-block:: default

    from navarp.extras.simulation import get_tbgraphene_deflector

    entry = get_tbgraphene_deflector(
        scans=np.linspace(-0.1, 0.1, 3),
        angles=np.linspace(-25, 6, 400),
        ebins=np.linspace(-13, 0.4, 700),
        tht_an=-18,
        phi_an=0,
        hv=120,
        gamma=0.05
    )








.. GENERATED FROM PYTHON SOURCE LINES 40-42

Fermi level autoset
^^^^^^^^^^^^^^^^^^^^^^^^^

.. GENERATED FROM PYTHON SOURCE LINES 42-49

.. code-block:: default


    entry.autoset_efermi(scan_range=[-2, 2], energy_range=[115.2, 115.8])
    print("Energy of the Fermi level = {:.0f} eV".format(entry.efermi))
    print("Energy resolution = {:.0f} meV".format(entry.efermi_fwhm*1000))

    entry.plt_efermi_fit()




.. image-sg:: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_001.png
   :alt: plot postprocessing isoscan
   :srcset: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_001.png
   :class: sphx-glr-single-img


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

 Out:

 .. code-block:: none

    Fermi level at 115.4071 eV
    Energy resolution = 141.9 meV (i.e. FWHM of the Gaussian shape which, convoluted with a step function, fits the Fermi edge)
    Photon energy is now set to 120.0071 eV (instead of 120.0000 eV)
    Energy of the Fermi level = 115 eV
    Energy resolution = 142 meV




.. GENERATED FROM PYTHON SOURCE LINES 50-52

Set the k-space for the transformation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. GENERATED FROM PYTHON SOURCE LINES 52-61

.. code-block:: default


    entry.set_kspace(
        tht_p=0.1,
        k_along_slit_p=1.7,
        scan_p=0,
        ks_p=0,
        e_kin_p=114.3,
    )





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

 Out:

 .. code-block:: none

    tht_an = -17.979
    scan_type =  deflector
    inn_pot = 14.000
    scans_0 = 0.000
    phi_an = 0.000
    kspace transformation ready




.. GENERATED FROM PYTHON SOURCE LINES 62-65

Post processing on the isoscan:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
First of all let's show it:

.. GENERATED FROM PYTHON SOURCE LINES 65-68

.. code-block:: default


    entry.isoscan(0).show()




.. image-sg:: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_002.png
   :alt: plot postprocessing isoscan
   :srcset: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_002.png
   :class: sphx-glr-single-img


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

 Out:

 .. code-block:: none


    <matplotlib.collections.QuadMesh object at 0x7f750c679e20>



.. GENERATED FROM PYTHON SOURCE LINES 69-75

The second derivative can be obtained using sigma in the definition, which
define the extension in points of the Gaussian filter used to then get the
second derivative. In this case the sigma is different from zero only on the
second element, meaning that the derivative will be performed only along the
energy axis:
sphinx_gallery_thumbnail_number = 3

.. GENERATED FROM PYTHON SOURCE LINES 75-78

.. code-block:: default


    entry.isoscan(0, sigma=[3, 5]).show()




.. image-sg:: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_003.png
   :alt: plot postprocessing isoscan
   :srcset: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_003.png
   :class: sphx-glr-single-img


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

 Out:

 .. code-block:: none


    <matplotlib.collections.QuadMesh object at 0x7f750c661d30>



.. GENERATED FROM PYTHON SOURCE LINES 79-82

Only the Gaussian filtered image can be obtained using again sigma but also
specifying the order=0, which by default is equal to 2 giving the second
derivative as before.:

.. GENERATED FROM PYTHON SOURCE LINES 82-85

.. code-block:: default


    entry.isoscan(0, sigma=[10, 10], order=0).show()




.. image-sg:: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_004.png
   :alt: plot postprocessing isoscan
   :srcset: /auto_examples/images/sphx_glr_plot_postprocessing_isoscan_004.png
   :class: sphx-glr-single-img


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

 Out:

 .. code-block:: none


    <matplotlib.collections.QuadMesh object at 0x7f750c6fc550>



.. GENERATED FROM PYTHON SOURCE LINES 86-87

To export it as NXdata class of the nexus format uncomment this line:

.. GENERATED FROM PYTHON SOURCE LINES 87-90

.. code-block:: default


    # entry.isoscan(0, 0, sigma=[3, 5], order=0).export_as_nxs('fermimap.nxs')








.. GENERATED FROM PYTHON SOURCE LINES 91-92

To export it as igor-pro text file (itx) uncomment this line:

.. GENERATED FROM PYTHON SOURCE LINES 92-94

.. code-block:: default


    # entry.isoscan(0, 0, sigma=[3, 5], order=0).export_as_itx('fermimap.itx')








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

   **Total running time of the script:** ( 0 minutes  1.337 seconds)


.. _sphx_glr_download_auto_examples_plot_postprocessing_isoscan.py:


.. only :: html

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



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

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



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

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


.. only:: html

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

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