.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "python_module/10_tracking_diagnostics/pet_normalised_lifetime.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_python_module_10_tracking_diagnostics_pet_normalised_lifetime.py: Normalised Eddy Lifetimes ========================= Example from Evan Mason .. GENERATED FROM PYTHON SOURCE LINES 7-15 .. code-block:: Python from matplotlib import pyplot as plt from numba import njit from numpy import interp, linspace, zeros from py_eddy_tracker_sample import get_demo_path from py_eddy_tracker.observations.tracking import TrackEddiesObservations .. GENERATED FROM PYTHON SOURCE LINES 16-42 .. code-block:: Python @njit(cache=True) def sum_profile(x_new, y, out): """Will sum all interpolated given array""" out += interp(x_new, linspace(0, 1, y.size), y) class MyObs(TrackEddiesObservations): def eddy_norm_lifetime(self, name, nb, factor=1): """ :param str,array name: Array or field name :param int nb: size of output array """ y = self.parse_varname(name) x = linspace(0, 1, nb) out = zeros(nb, dtype=y.dtype) nb_track = 0 for i, b0, b1 in self.iter_on("track"): y_ = y[i] size_ = y_.size if size_ == 0: continue sum_profile(x, y_, out) nb_track += 1 return x, out / nb_track * factor .. GENERATED FROM PYTHON SOURCE LINES 43-45 Load atlas ---------- .. GENERATED FROM PYTHON SOURCE LINES 45-54 .. code-block:: Python kw = dict(include_vars=("speed_radius", "amplitude", "track")) a = MyObs.load_file( get_demo_path("eddies_med_adt_allsat_dt2018/Anticyclonic.zarr"), **kw ) c = MyObs.load_file(get_demo_path("eddies_med_adt_allsat_dt2018/Cyclonic.zarr"), **kw) nb_max_a = a.nb_obs_by_track.max() nb_max_c = c.nb_obs_by_track.max() .. GENERATED FROM PYTHON SOURCE LINES 55-57 Compute normalised lifetime --------------------------- .. GENERATED FROM PYTHON SOURCE LINES 57-65 .. code-block:: Python # Radius AC_radius = a.eddy_norm_lifetime("speed_radius", nb=nb_max_a, factor=1e-3) CC_radius = c.eddy_norm_lifetime("speed_radius", nb=nb_max_c, factor=1e-3) # Amplitude AC_amplitude = a.eddy_norm_lifetime("amplitude", nb=nb_max_a, factor=1e2) CC_amplitude = c.eddy_norm_lifetime("amplitude", nb=nb_max_c, factor=1e2) .. GENERATED FROM PYTHON SOURCE LINES 66-68 Figure ------ .. GENERATED FROM PYTHON SOURCE LINES 68-79 .. code-block:: Python fig, (ax0, ax1) = plt.subplots(nrows=2, figsize=(8, 6)) ax0.set_title("Normalised Mean Radius") ax0.plot(*AC_radius), ax0.plot(*CC_radius) ax0.set_ylabel("Radius (km)"), ax0.grid() ax0.set_xlim(0, 1), ax0.set_ylim(0, None) ax1.set_title("Normalised Mean Amplitude") ax1.plot(*AC_amplitude, label="AC"), ax1.plot(*CC_amplitude, label="CC") ax1.set_ylabel("Amplitude (cm)"), ax1.grid(), ax1.legend() _ = ax1.set_xlim(0, 1), ax1.set_ylim(0, None) .. image-sg:: /python_module/10_tracking_diagnostics/images/sphx_glr_pet_normalised_lifetime_001.png :alt: Normalised Mean Radius, Normalised Mean Amplitude :srcset: /python_module/10_tracking_diagnostics/images/sphx_glr_pet_normalised_lifetime_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 3.791 seconds) .. _sphx_glr_download_python_module_10_tracking_diagnostics_pet_normalised_lifetime.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/AntSimi/py-eddy-tracker/master?urlpath=lab/tree/notebooks/python_module/10_tracking_diagnostics/pet_normalised_lifetime.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: pet_normalised_lifetime.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: pet_normalised_lifetime.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: pet_normalised_lifetime.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_