.. 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_pixel_used.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_pixel_used.py: Count pixel used ================ Do Geo stat with frequency and compare with center count method: :ref:`sphx_glr_python_module_10_tracking_diagnostics_pet_center_count.py` .. GENERATED FROM PYTHON SOURCE LINES 8-14 .. code-block:: Python from matplotlib import pyplot as plt from matplotlib.colors import LogNorm import py_eddy_tracker_sample from py_eddy_tracker.observations.tracking import TrackEddiesObservations .. GENERATED FROM PYTHON SOURCE LINES 15-16 Load an experimental med atlas over a period of 26 years (1993-2019) .. GENERATED FROM PYTHON SOURCE LINES 16-25 .. code-block:: Python a = TrackEddiesObservations.load_file( py_eddy_tracker_sample.get_demo_path( "eddies_med_adt_allsat_dt2018/Anticyclonic.zarr" ) ) c = TrackEddiesObservations.load_file( py_eddy_tracker_sample.get_demo_path("eddies_med_adt_allsat_dt2018/Cyclonic.zarr") ) .. GENERATED FROM PYTHON SOURCE LINES 26-27 Parameters .. GENERATED FROM PYTHON SOURCE LINES 27-34 .. code-block:: Python step = 0.125 bins = ((-10, 37, step), (30, 46, step)) kwargs_pcolormesh = dict( cmap="terrain_r", vmin=0, vmax=0.75, factor=1 / a.nb_days, name="count" ) .. GENERATED FROM PYTHON SOURCE LINES 35-36 Plot .. GENERATED FROM PYTHON SOURCE LINES 36-75 .. code-block:: Python fig = plt.figure(figsize=(12, 18.5)) ax_a = fig.add_axes([0.03, 0.75, 0.90, 0.25]) ax_a.set_title("Anticyclonic frequency") ax_c = fig.add_axes([0.03, 0.5, 0.90, 0.25]) ax_c.set_title("Cyclonic frequency") ax_all = fig.add_axes([0.03, 0.25, 0.90, 0.25]) ax_all.set_title("All eddies frequency") ax_ratio = fig.add_axes([0.03, 0.0, 0.90, 0.25]) ax_ratio.set_title("Ratio cyclonic / Anticyclonic") # Count pixel used for each contour g_a = a.grid_count(bins, intern=True) g_a.display(ax_a, **kwargs_pcolormesh) g_c = c.grid_count(bins, intern=True) g_c.display(ax_c, **kwargs_pcolormesh) # Compute a ratio Cyclonic / Anticyclonic ratio = g_c.vars["count"] / g_a.vars["count"] # Mask manipulation to be able to sum the 2 grids m_c = g_c.vars["count"].mask m = m_c & g_a.vars["count"].mask g_c.vars["count"][m_c] = 0 g_c.vars["count"] += g_a.vars["count"] g_c.vars["count"].mask = m m = g_c.display(ax_all, **kwargs_pcolormesh) plt.colorbar(m, cax=fig.add_axes([0.95, 0.27, 0.01, 0.7])) g_c.vars["count"] = ratio m = g_c.display( ax_ratio, name="count", norm=LogNorm(vmin=0.1, vmax=10), cmap="coolwarm_r" ) plt.colorbar(m, cax=fig.add_axes([0.95, 0.02, 0.01, 0.2])) for ax in (ax_a, ax_c, ax_all, ax_ratio): ax.set_aspect("equal") ax.set_xlim(-6, 36.5), ax.set_ylim(30, 46) ax.grid() .. image-sg:: /python_module/10_tracking_diagnostics/images/sphx_glr_pet_pixel_used_001.png :alt: Anticyclonic frequency, Cyclonic frequency, All eddies frequency, Ratio cyclonic / Anticyclonic :srcset: /python_module/10_tracking_diagnostics/images/sphx_glr_pet_pixel_used_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 76-78 Count Anticyclones as a function of lifetime -------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 78-92 .. code-block:: Python fig = plt.figure(figsize=(12, 10)) mask = a.lifetime >= 60 ax_long = fig.add_axes([0.03, 0.53, 0.90, 0.45]) g_a = a.grid_count(bins, intern=True, filter=mask) g_a.display(ax_long, **kwargs_pcolormesh) ax_long.set_title(f"Anticyclones with lifetime >= 60 days ({mask.sum()} Obs)") ax_short = fig.add_axes([0.03, 0.03, 0.90, 0.45]) g_a = a.grid_count(bins, intern=True, filter=~mask) m = g_a.display(ax_short, **kwargs_pcolormesh) ax_short.set_title(f"Anticyclones with lifetime < 60 days ({(~mask).sum()} Obs)") for ax in (ax_short, ax_long): ax.set_aspect("equal"), ax.grid() ax.set_xlim(-6, 36.5), ax.set_ylim(30, 46) cb = plt.colorbar(m, cax=fig.add_axes([0.94, 0.05, 0.015, 0.9])) .. image-sg:: /python_module/10_tracking_diagnostics/images/sphx_glr_pet_pixel_used_002.png :alt: Anticyclones with lifetime >= 60 days (238825 Obs), Anticyclones with lifetime < 60 days (234729 Obs) :srcset: /python_module/10_tracking_diagnostics/images/sphx_glr_pet_pixel_used_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 10.880 seconds) .. _sphx_glr_download_python_module_10_tracking_diagnostics_pet_pixel_used.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_pixel_used.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: pet_pixel_used.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: pet_pixel_used.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: pet_pixel_used.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_