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

.. only:: html

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

        :ref:`Go to the end <sphx_glr_download_intro_scipy_summary-exercises_auto_examples_plot_gumbell_wind_speed_prediction.py>`
        to download the full example code.

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

.. _sphx_glr_intro_scipy_summary-exercises_auto_examples_plot_gumbell_wind_speed_prediction.py:


The Gumbell distribution
=========================

Generate the exercise results on the Gumbell distribution

.. GENERATED FROM PYTHON SOURCE LINES 7-40



.. image-sg:: /intro/scipy/summary-exercises/auto_examples/images/sphx_glr_plot_gumbell_wind_speed_prediction_001.png
   :alt: plot gumbell wind speed prediction
   :srcset: /intro/scipy/summary-exercises/auto_examples/images/sphx_glr_plot_gumbell_wind_speed_prediction_001.png
   :class: sphx-glr-single-img





.. code-block:: Python


    import numpy as np
    import scipy as sp
    import matplotlib.pyplot as plt


    def gumbell_dist(arr):
        return -np.log(-np.log(arr))


    years_nb = 21
    wspeeds = np.load("sprog-windspeeds.npy")
    max_speeds = np.array([arr.max() for arr in np.array_split(wspeeds, years_nb)])
    sorted_max_speeds = np.sort(max_speeds)

    cprob = (np.arange(years_nb, dtype=np.float32) + 1) / (years_nb + 1)
    gprob = gumbell_dist(cprob)
    speed_spline = sp.interpolate.UnivariateSpline(gprob, sorted_max_speeds, k=1)
    nprob = gumbell_dist(np.linspace(1e-3, 1 - 1e-3, 100))
    fitted_max_speeds = speed_spline(nprob)

    fifty_prob = gumbell_dist(49.0 / 50.0)
    fifty_wind = speed_spline(fifty_prob)

    plt.figure()
    plt.plot(sorted_max_speeds, gprob, "o")
    plt.plot(fitted_max_speeds, nprob, "g--")
    plt.plot([fifty_wind], [fifty_prob], "o", ms=8.0, mfc="y", mec="y")
    plt.plot([fifty_wind, fifty_wind], [plt.axis()[2], fifty_prob], "k--")
    plt.text(35, -1, rf"$V_{{50}} = {fifty_wind:.2f} \, m/s$")
    plt.xlabel("Annual wind speed maxima [$m/s$]")
    plt.ylabel("Gumbell cumulative probability")
    plt.show()


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

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


.. _sphx_glr_download_intro_scipy_summary-exercises_auto_examples_plot_gumbell_wind_speed_prediction.py:

.. only:: html

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

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

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

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

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

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

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


.. only:: html

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

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