.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/rgb_iris.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_rgb_iris.py: Convert to RGB format (vector data) =========================== This example demonstrates convertion from wind data to uv rgb format (with HKO earth format). .. GENERATED FROM PYTHON SOURCE LINES 8-11 Definitions -------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 13-14 Import all required modules and methods: .. GENERATED FROM PYTHON SOURCE LINES 14-43 .. code-block:: default # Python package to allow system command line functions import os # Python package to manage warning message import warnings # Python package for time calculations import pandas as pd # Python package for numerical calculations import numpy as np # Python package for image generation from PIL import Image # Python package for image preview import matplotlib.pyplot as plt # swirlspy iris parser function from swirlspy.rad.iris import read_iris_grid # swirlspy regrid function from swirlspy.preprocess import grid_align # swirlspy rgb convertion function from swirlspy.utils.conversion import to_rgb_data, to_hko_earth_format # directory constants from swirlspy.tests.samples import DATA_DIR from swirlspy.tests.outputs import OUTPUT_DIR warnings.filterwarnings("ignore") # Logging start_time = pd.Timestamp.now() .. GENERATED FROM PYTHON SOURCE LINES 44-47 Loading radar data ----------------------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 47-62 .. code-block:: default # Specify the basetime basetime = pd.Timestamp('201902190800') # Reading the wind data reflec = read_iris_grid( os.path.join( DATA_DIR, basetime.strftime("iris/ppi/TMS%y%m%d%H%M02.PPIMK3B") ) ) initialising_time = pd.Timestamp.now() .. GENERATED FROM PYTHON SOURCE LINES 63-66 Reproject to WGS 84, required for HKO earth format ----------------------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 66-80 .. code-block:: default # calculate x, y step size y_step = -0.025 x_step = 0.025 y = np.arange(24.5, 20.5, y_step) x = np.arange(112, 116, x_step) reflec_wgs84 = grid_align( reflec, reflec.attrs['area_def'].proj_str, x, y, '+proj=longlat +datum=WGS84 +no_defs' ) preparation_time = pd.Timestamp.now() .. GENERATED FROM PYTHON SOURCE LINES 81-84 Convert image data into rgb format ----------------------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 84-97 .. code-block:: default # only shape with (y, x) is allowed data = reflec_wgs84.sel(time=basetime) # only allow positive values data = data.where(data >= 0) # this step is not necessary, depends on any meta data and preprocess is required by your platform earth_data = to_hko_earth_format(data, coords_dp=3, y_step=y_step, x_step=x_step) rgb = to_rgb_data(earth_data) convertion_time = pd.Timestamp.now() .. GENERATED FROM PYTHON SOURCE LINES 98-101 Visualisation ----------------------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 101-115 .. code-block:: default path = os.path.join(OUTPUT_DIR, "rgb_wind.png") with Image.fromarray(rgb, 'RGBA') as img: img.save(path, 'png') # preview with Image.open(path) as image: plt.axis('off') plt.imshow(image) plt.plot() plt.show() visualise_time = pd.Timestamp.now() .. image-sg:: /auto_examples/images/sphx_glr_rgb_iris_001.png :alt: rgb iris :srcset: /auto_examples/images/sphx_glr_rgb_iris_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 116-119 Checking run time of each component ----------------------------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 119-132 .. code-block:: default print(f"Start time: {start_time}") print(f"Initialising time: {initialising_time}") print(f"Preparation time: {preparation_time}") print(f"Convertion time: {convertion_time}") print(f"Visualise time: {visualise_time}") print(f"Time to initialise: {initialising_time - start_time}") print(f"Time to prepare information: {preparation_time - initialising_time}") print(f"Time to convertion: {convertion_time - preparation_time}") print(f"Time to visualise: {visualise_time - convertion_time}") print(f"Total: {visualise_time - start_time}") .. rst-class:: sphx-glr-script-out .. code-block:: none Start time: 2024-04-22 03:54:18.735713 Initialising time: 2024-04-22 03:54:18.749012 Preparation time: 2024-04-22 03:54:18.899798 Convertion time: 2024-04-22 03:54:18.906774 Visualise time: 2024-04-22 03:54:18.931439 Time to initialise: 0 days 00:00:00.013299 Time to prepare information: 0 days 00:00:00.150786 Time to convertion: 0 days 00:00:00.006976 Time to visualise: 0 days 00:00:00.024665 Total: 0 days 00:00:00.195726 .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.243 seconds) .. _sphx_glr_download_auto_examples_rgb_iris.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: rgb_iris.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: rgb_iris.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_