From c8d598ab545de896589d0548851bc1319fff0c38 Mon Sep 17 00:00:00 2001 From: Jiwoo Lee Date: Wed, 15 Jan 2025 11:16:26 -0800 Subject: [PATCH 1/5] add note for the function --- pcmdi_metrics/utils/land_sea_mask.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pcmdi_metrics/utils/land_sea_mask.py b/pcmdi_metrics/utils/land_sea_mask.py index 9255d1a6d..38836c91f 100644 --- a/pcmdi_metrics/utils/land_sea_mask.py +++ b/pcmdi_metrics/utils/land_sea_mask.py @@ -34,12 +34,17 @@ def create_land_sea_mask( as_boolean : bool, optional Set mask value to True (land) or False (ocean), by default False, thus 1 (land) and 0 (ocean). method : str, optional - Method to use for creating the mask, either 'regionmask' or 'pcmdi', by default 'regionmask'. + Method to use for creating the mask, either `regionmask` or `pcmdi`, by default `regionmask`. Returns ------- xr.DataArray A DataArray of land-sea mask (1 or 0 for land or sea, or True or False for land or sea). + + Notes + ----- + - The `regionmask` method uses the regionmask package to generate the mask. + - The `pcmdi` method uses the PCMDI method developed by Taylor and Doutriaux (2000) (https://pcmdi.llnl.gov/report/ab58.html). Examples -------- From fdd952a51edf747e32f6a001b99938e10500f380 Mon Sep 17 00:00:00 2001 From: Jiwoo Lee Date: Wed, 15 Jan 2025 11:17:37 -0800 Subject: [PATCH 2/5] add note for the function --- pcmdi_metrics/utils/land_sea_mask.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pcmdi_metrics/utils/land_sea_mask.py b/pcmdi_metrics/utils/land_sea_mask.py index 38836c91f..da32421ed 100644 --- a/pcmdi_metrics/utils/land_sea_mask.py +++ b/pcmdi_metrics/utils/land_sea_mask.py @@ -40,10 +40,10 @@ def create_land_sea_mask( ------- xr.DataArray A DataArray of land-sea mask (1 or 0 for land or sea, or True or False for land or sea). - + Notes ----- - - The `regionmask` method uses the regionmask package to generate the mask. + - The `regionmask` method uses the regionmask package (https://regionmask.readthedocs.io/) to generate the mask. - The `pcmdi` method uses the PCMDI method developed by Taylor and Doutriaux (2000) (https://pcmdi.llnl.gov/report/ab58.html). Examples From 922db0b4e3743a0b7b77fce36117e52caa715536 Mon Sep 17 00:00:00 2001 From: Jiwoo Lee Date: Wed, 15 Jan 2025 22:06:33 -0800 Subject: [PATCH 3/5] update --- docs/conf.py | 2 +- docs/demo-notebooks.rst | 10 +- docs/examples/landmask.ipynb | 1179 ++++++++++++++++++++++++++++++++++ 3 files changed, 1189 insertions(+), 2 deletions(-) create mode 100644 docs/examples/landmask.ipynb diff --git a/docs/conf.py b/docs/conf.py index 43983f6d4..d0f84d1fd 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -24,7 +24,7 @@ # -- Project information ----------------------------------------------------- # General information about the project. project = "PCMDI Metrics Package (PMP)" -copyright = "2024, PMP Developers" +copyright = "2025, PMP Developers" author = "PMP Developers" # The version info for the project you're documenting, acts as replacement diff --git a/docs/demo-notebooks.rst b/docs/demo-notebooks.rst index fdb69c1fe..5376256f1 100644 --- a/docs/demo-notebooks.rst +++ b/docs/demo-notebooks.rst @@ -66,4 +66,12 @@ Practical Use Cases examples/taylor_diagram_multiple_CMIPs examples/mean_clim_plots_test_model examples/variability_modes_plots_all-stats - examples/return_value_portrait_plot_demo \ No newline at end of file + examples/return_value_portrait_plot_demo + + +Data analysis support +~~~~~~~~~~~~~~~~~~~~~ + +.. nbgallery:: + + examples/landmask \ No newline at end of file diff --git a/docs/examples/landmask.ipynb b/docs/examples/landmask.ipynb new file mode 100644 index 000000000..07a52de6f --- /dev/null +++ b/docs/examples/landmask.ipynb @@ -0,0 +1,1179 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generate land sea mask" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook provides a method to generate a landmask for lat-lon grid using the PMP's [create_target_grid](http://pcmdi.github.io/pcmdi_metrics/generated/pcmdi_metrics.utils.create_target_grid.html) and [create_land_sea_mask](http://pcmdi.github.io/pcmdi_metrics/generated/pcmdi_metrics.utils.create_land_sea_mask.html#pcmdi_metrics.utils.create_land_sea_mask) functions.\n", + "\n", + "Jiwoo Lee (LLNL), 2025-1-15" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pcmdi_metrics.utils import create_target_grid\n", + "from pcmdi_metrics.utils import create_land_sea_mask" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate your grid\n", + "\n", + "Define your resolution in degree." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#resolution = '2.5x2.5'\n", + "resolution = '1x1'\n", + "#resolution = '0.5x0.5'" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "grid = create_target_grid(target_grid_resolution=resolution)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 13kB\n",
+       "Dimensions:   (lon: 360, bnds: 2, lat: 180)\n",
+       "Coordinates:\n",
+       "  * lon       (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5\n",
+       "  * lat       (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n",
+       "Dimensions without coordinates: bnds\n",
+       "Data variables:\n",
+       "    lon_bnds  (lon, bnds) float64 6kB 0.0 1.0 1.0 2.0 ... 359.0 359.0 360.0\n",
+       "    lat_bnds  (lat, bnds) float64 3kB -90.0 -89.0 -89.0 -88.0 ... 89.0 89.0 90.0
" + ], + "text/plain": [ + " Size: 13kB\n", + "Dimensions: (lon: 360, bnds: 2, lat: 180)\n", + "Coordinates:\n", + " * lon (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5\n", + " * lat (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n", + "Dimensions without coordinates: bnds\n", + "Data variables:\n", + " lon_bnds (lon, bnds) float64 6kB 0.0 1.0 1.0 2.0 ... 359.0 359.0 360.0\n", + " lat_bnds (lat, bnds) float64 3kB -90.0 -89.0 -89.0 -88.0 ... 89.0 89.0 90.0" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate land sea mask for the grid" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "mask = create_land_sea_mask(grid)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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97K1KSh4b5O3ktRG5+bNm2jRooXFxshERETkHFW9rhxdvJGkua58fX3xww8/uGUiz/T0dHzyySf4+eefERAQgG7duuG1115D27ZtjdsIITBr1iysXLkSly9fRteuXfHmm2/irrvucnl5nUVKGxpHuLP258xjV6/p2nsc1oRJSfZkdRxpF2ZtiAhX/XZohZba5wCA+O/i6D68keReV2PHjsW7777rjLLYtGvXLkyaNAlff/01srOzUVFRgfj4eJSWlhq3mT9/PjIyMrB06VJ8++23CAsLQ79+/VBSUuLy8hIRESmFGR35JM9eXl5ejnfeeQfZ2dmIjY1F/fr1TV7PyMhQrHDVbd261eTvVatWoWnTpsjJycEDDzwAIQQWL16M6dOnY/jw4QCANWvWIDQ0FGvXrsVTTz3llHK5m1p6ctgahFCp/Tu6XymDIRI5ixLfDzntb8zb03n790Atv53kfJIDnR9++AFdunQBAJw4ccLkNVc+0ioqKgIA40zqp0+fRkFBAeLj443b6PV69OzZE/v27bMa6JSVlaGsrMz4d3FxsRNLTUREJAOfXckm+dHVjh07rC7bt293RhlrEEIgJSUF999/Pzp06AAAKCgoAACEhoaabBsaGmp8zZL09HQEBwcbl8jISOcV3EmUrpm5o6ZXNWGprWM7Ui7zjBNrcurmydfH3vvY2megRGbT0vfBkz9zj6DEYysZj66WLVuG6Oho+Pv7IyYmBnv27LG5fVlZGaZPn46oqCjo9XrccccdeO+99+SetSIkZ3Sq++2336DT6dCsWTOlymOXyZMn4/vvv8fevXtrvGaeVRJC2Mw0paamIiUlxfh3cXGxJoMdIiIiJa1fvx7JyclYtmwZunfvjhUrVmDAgAH46aef0Lx5c4vvGTFiBH7//Xe8++67aNWqFQoLC1FRUeHikpuSnNExGAyYPXs2goODERUVhebNm6Nhw4Z45ZVXjGPtONPTTz+NTZs2YceOHbj99tuN68PCwgCgRvamsLCwRpanOr1ej6CgIJNFC5xV+3JXNscbjkn28/TrIyerYy3r4shnZb4/8+wOszzqUTUysqOLFBkZGZgwYQKefPJJtGvXDosXL0ZkZCSWL19ucfutW7di165dyMzMRN++fdGiRQvcd9996NatmwKfgHySA53p06dj6dKlePXVV3H48GEcOnQI8+bNw5Il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xo3IysrCzp07kZOTY7LN448/jq+++grr1q3D999/j0cffRT9+/c3Bl9fffUVEhMT8cwzz+DIkSPo168f5s6dW+NYv/zyC/71r39hw4YNOHLkCABg0KBBKCgoQGZmJnJyctClSxc8+OCDuHTpEgBg27Zt+Otf/4opU6bgp59+wooVK7B69Wrj/j/++GO8/vrrWLFiBU6ePIn//Oc/6Nixo13nXtt53bhxAzExMdi8eTN++OEH/O1vf8OYMWNw4MABALceQf3lL3/BE088gWPHjmHnzp0YPnw4hBCYOnUqRowYYQxA8/Pz0a1bN8nXh4hUyq1zpxNpTM+ePcUzzzwjhBDixIkTAoD46quvjK9fuHBBBAQEiH/9619CCCFWrVolAIhffvnFuM2bb74pQkNDrR5jx44dAoC4fPmycV1JSYnw8/MT69atM667ePGiCAgIMJbnl19+ETqdTpw7d85kfw8++KBITU0VQggxcuRIMWjQIJPXR48eLYKDg41/z5w5U/j6+orCwkLjui+//FIEBQWJGzdumLz3jjvuECtWrBBCCNGjRw8xb948k9c/+OADER4eLoQQYtGiRaJNmzaivLzc6rlbYs95WTJw4EDx3HPPCSGEyMnJEQDEmTNnLG47btw4MXToUIuvrVq1yuTzISJtqeveMItIu44dO4a6deuia9euxnWNGzdG27ZtcezYMeO6evXq4Y477jD+HR4ejsLCQknH+vXXX1FeXo64uDjjuttuuw1t27Y1/n3o0CEIIdCmTRuT95aVlaFx48YAbjVwfvjhh01ev++++7B582aTdVFRUWjSpInx75ycHFy9etW4nyrXr1/Hr7/+atzm22+/NckQVVZW4saNG7h27RoeffRRLF68GC1btkT//v0xcOBADBkyBHXr2v4Zsue8Kisr8eqrr2L9+vU4d+4cysrKUFZWhvr16wMAOnXqhAcffBAdO3ZEQkIC4uPj8ec//xmNGjWyeWwi0j4GOkQyCSGsrtfpdMa/fX19TV7X6XRW3yv1WNUZDAb4+PggJycHPj4+Jq81aNDAYtms7bsqQKi+7/DwcIttV6ra9xgMBsyaNQvDhw+vsY2/vz8iIyNx/PhxZGdn44svvkBSUhIWLFiAXbt21fiMpJ7XokWL8Prrr2Px4sXo2LEj6tevj+TkZJSXlwMAfHx8kJ2djX379iErKwtLlizB9OnTceDAAURHR1s9NhFpHwMdIpnat2+PiooKHDhwwNim4+LFizhx4gTatWun6LFatWoFX19ffP3112jevDmAWw2hT5w4gZ49ewIAOnfujMrKShQWFqJHjx4W93PnnXfim2++MVl38ODBWo/fpUsXFBQUoG7dumjRooXVbY4fP45WrVpZ3U9AQAAeeughPPTQQ5g0aRLuvPNOHD16FF26dLH6HnvOa8+ePRg6dCj++te/ArgVHJ08edLkOuh0OnTv3h3du3fHyy+/jKioKGzcuBEpKSnw8/NDZWVlrZ8DEWkPAx0imVq3bo2hQ4di4sSJWLFiBQIDA/HCCy+gWbNmGDp0qKLHatCgASZMmIBp06ahcePGCA0NxfTp01Gnzv/6E7Rp0wajR4/G2LFjsWjRInTu3BkXLlzA9u3b0bFjRwwcOBBPP/00HnjgAWRkZGDIkCHYvn07tmzZUiPLY65v376Ii4vDsGHD8Nprr6Ft27Y4f/48MjMzMWzYMMTGxuLll1/G4MGDERkZiUcffRR16tTB999/j6NHj2LOnDlYvXo1Kisr0bVrV9SrVw8ffPABAgICEBUVZfPY9pxXq1atsGHDBuzbtw+NGjVCRkYGCgoKjIHOgQMH8OWXXyI+Ph5NmzbFgQMH8Mcffxhfb9GiBbZt24bjx4+jcePGCA4OtpllIiLtYK8rIgesWrUKMTExGDx4MOLi4iCEQGZmplP+k1ywYAEeeOABPPTQQ+jbty/uv/9+xMTE1CjP2LFj8dxzz6Ft27Z46KGHcODAAURGRgIAunfvjrfeegsZGRno1KkTtm7dimeffRb+/v42j63T6ZCZmYkHHngATzzxBNq0aYPHHnsMZ86cQWhoKAAgISEBmzdvRnZ2Nu6991786U9/QkZGhjGQadiwId5++210794dd999N7788kt89tlnNdr9WFLbeb300kvo0qULEhIS0KtXL4SFhZkMABgUFITdu3dj4MCBaNOmDWbMmIFFixZhwIABAICJEyeibdu2iI2NRZMmTfDVV1/Zd1GISPV0QmpjASJyqp07d6J37964fPmySwYMnDhxIn7++Wfs2bPH6cfSotWrVyM5ORlXrlxxd1GISAY+uiJSqdtvvx1DhgypMfCdoxYuXIh+/fqhfv362LJlC9asWYNly5YpegxP0aBBA1RUVNSa8SIi9WJGh0hlrl+/jnPnzgG49R9tWFiYovsfMWIEdu7ciZKSErRs2RJPP/00EhMTFT2GFHv27DE+QrLk6tWrLiyNqV9++QXArV5b7J1FpE0MdIjIraoHdpbY6sVFRFQbBjpERETksdjrioiIiDwWAx0iIiLyWAx0iIiIyGMx0CEiIiKPxUCHiIiIPBYDHSIiIvJYDHSIiIjIY/0/eU1vlhRXzbQAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mask.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### _Optional_: Apply different landsea mask generation method\n", + "\n", + "This option uses the PCMDI method developed by Taylor and Doutriaux (2000) (https://pcmdi.llnl.gov/report/ab58.html)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "mask2 = create_land_sea_mask(grid, method=\"pcmdi\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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hYWFNaI2VUJDQy0eX69ePTRt2tRhea0LR10RERGRCV9fX8TExCA7O9tkf3Z2Nrp162bxPXFxcTWOz8rKQmxsrMv65wAs6BAREZEFKSkp+Oijj/DJJ5/g6NGjePHFF5Gbm4vExEQAQGpqKkaOHGk8PjExEWfOnEFKSgqOHj2KTz75BB9//DEmTpzoqksAwKarGvR6PaZMmVJrm6VW8dq0idemTbw27XL367PV0KFDceHCBUybNg35+fmIjo5GZmYmIiMjAQD5+fkmc+pERUUhMzMTL774It577z2Eh4fj3XffxeOPP+6qSwDAeXSIiIjIjbHpioiIiNwWCzpERETktljQISIiIrfFgg4RERG5LRZ0qpG6HL0apaWlQafTmWyhoaHG14UQSEtLQ3h4OPz9/dGrVy8cPnzYhTm2buvWrRg4cCDCw8Oh0+nwn//8x+R1W66lrKwMzz//PIKDg9GgQQM88sgj+P333514FZbVdW2jR4+ucR/vvfdek2PUem3p6em4++67ERAQgObNm2Pw4ME4duyYyTFavXe2XJtW792iRYtw5513GifJi4uLw7p164yva/WeAXVfm1bvGdmGBZ3/krocvZrdcccdyM/PN24HDx40vjZr1ixkZGRgwYIF2L17N0JDQ9G3b1+UlJS4MMeWlZaWolOnTliwYIHF1225luTkZKxevRorVqzA9u3bceXKFTz88MOorKx01mVYVNe1AUC/fv1M7mNmpulaN2q9ti1btmDcuHH48ccfkZ2djYqKCsTHx6O0tNR4jFbvnS3XBmjz3rVs2RJvvfUW9uzZgz179qB3794YNGiQsTCj1XsG1H1tgDbvGdlIkBBCiHvuuUckJiaa7Lv99tvFK6+84qIcyTNlyhTRqVMni68ZDAYRGhoq3nrrLeO+69evi6CgIPH+++87KYfyABCrV682/m3LtVy+fFn4+PiIFStWGI85e/as8PLyEuvXr3da3utifm1CCDFq1CgxaNAgq+/RyrUJIURhYaEAILZs2SKEcK97Z35tQrjXvWvcuLH46KOP3OqeVam6NiHc655RTYzo4H/L0ZsvL1/bcvRqduLECYSHhyMqKgpPPvkkTp48CQA4deoUCgoKTK5Tr9ejZ8+emrtOW64lJycHN27cMDkmPDwc0dHRmrjezZs3o3nz5mjbti3Gjh2LwsJC42tauraioiIA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uRo2bIgxY8Zg0qRJaNq0KUJCQjB58mR4ef1vPEHbtm0xfPhwjBw5EnPnzkXnzp1x/vx5bNy4ER07dsRDDz2E559/Hvfffz8yMjIwcOBAbNy4EevWrasR5THXp08fxMXFYfDgwXj77bfRrl07nDt3DpmZmRg8eDBiY2Pxxhtv4OGHH0ZERASeeOIJeHl54eeff8bBgwcxffp0LF26FJWVlejatSvq16+Pzz77DP7+/oiMjKz13LZc16233opVq1Zhx44daNy4MTIyMlBQUGAs6OzatQvff/894uPj0bx5c+zatQt//vmn8fXWrVtjw4YNOHbsGJo2bYqgoKBao0xEpB0cdUVkhyVLliAmJgYPP/ww4uLiIIRAZmamQ/6RnD17Nu6//3488sgj6NOnD+677z7ExMTUyM/IkSPx0ksvoV27dnjkkUewa9cuREREAAC6d++O999/HxkZGejUqRPWr1+PF198EX5+frWeW6fTITMzE/fffz+eeeYZtG3bFk8++SROnz6NkJAQAEBCQgLWrl2L7Oxs3H333bj33nuRkZFhLMg0atQIH374Ibp3744777wT33//Pb755psa/X4sqeu6Xn/9dXTp0gUJCQno1asXQkNDTSYADAwMxNatW/HQQw+hbdu2eO211zB37lz0798fADB27Fi0a9cOsbGxaNasGX744QfbbgoRqZ5OSO0sQEQOtXnzZjzwwAO4dOmSUyYMHDt2LH755Rds27bN4efSoqVLlyI5ORmXL192dVaISAY2XRGpVMuWLTFw4MAaE9/Za86cOejbty8aNGiAdevWYdmyZVi4cKGi53AXDRs2REVFRZ0RLyJSL0Z0iFTm2rVrOHv2LICb/9CGhoYqmv6QIUOwefNmlJSUoE2bNnj++eeRmJio6Dmk2LZtm7EJyZIrV644MTemfv31VwA3R21xdBaRNrGgQ0QuVb1gZ0lto7iIiOrCgg4RERG5LY66IiIiIrfFgg4RERG5LRZ0iIiIyG2xoENERERuiwUdIiIiclss6BAREZHbYkGHiIiI3Nb/A3IdMBZp+dTSAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mask2.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Save to a netCDF file" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "ncfile = f\"landmask_{resolution}_regionmask.nc\"\n", + "ncfile2 = f\"landmask_{resolution}_pcmdi.nc\"\n", + "\n", + "mask.to_netcdf(ncfile)\n", + "mask2.to_netcdf(ncfile2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Quick check for the saved file" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import xarray as xr\n", + "ds = xr.open_dataset(ncfile)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 523kB\n",
+       "Dimensions:  (lat: 180, lon: 360)\n",
+       "Coordinates:\n",
+       "  * lat      (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n",
+       "  * lon      (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5\n",
+       "Data variables:\n",
+       "    mask     (lat, lon) int64 518kB ...
" + ], + "text/plain": [ + " Size: 523kB\n", + "Dimensions: (lat: 180, lon: 360)\n", + "Coordinates:\n", + " * lat (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5\n", + " * lon (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5\n", + "Data variables:\n", + " mask (lat, lon) int64 518kB ..." + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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97K1KSh4b5O3ktRG5+bNm2jRooXFxshERETkHFW9rhxdvJGkua58fX3xww8/uGUiz/T0dHzyySf4+eefERAQgG7duuG1115D27ZtjdsIITBr1iysXLkSly9fRteuXfHmm2/irrvucnl5nUVKGxpHuLP258xjV6/p2nsc1oRJSfZkdRxpF2ZtiAhX/XZohZba5wCA+O/i6D68keReV2PHjsW7777rjLLYtGvXLkyaNAlff/01srOzUVFRgfj4eJSWlhq3mT9/PjIyMrB06VJ8++23CAsLQ79+/VBSUuLy8hIRESmFGR35JM9eXl5ejnfeeQfZ2dmIjY1F/fr1TV7PyMhQrHDVbd261eTvVatWoWnTpsjJycEDDzwAIQQWL16M6dOnY/jw4QCANWvWIDQ0FGvXrsVTTz3llHK5m1p6ctgahFCp/Tu6XymDIRI5ixLfDzntb8zb03n790Atv53kfJIDnR9++AFdunQBAJw4ccLkNVc+0ioqKgIA40zqp0+fRkFBAeLj443b6PV69OzZE/v27bMa6JSVlaGsrMz4d3FxsRNLTUREJAOfXckm+dHVjh07rC7bt293RhlrEEIgJSUF999/Pzp06AAAKCgoAACEhoaabBsaGmp8zZL09HQEBwcbl8jISOcV3EmUrpm5o6ZXNWGprWM7Ui7zjBNrcurmydfH3vvY2megRGbT0vfBkz9zj6DEYysZj66WLVuG6Oho+Pv7IyYmBnv27LG5fVlZGaZPn46oqCjo9XrccccdeO+99+SetSIkZ3Sq++2336DT6dCsWTOlymOXyZMn4/vvv8fevXtrvGaeVRJC2Mw0paamIiUlxfh3cXGxJoMdIiIiJa1fvx7JyclYtmwZunfvjhUrVmDAgAH46aef0Lx5c4vvGTFiBH7//Xe8++67aNWqFQoLC1FRUeHikpuSnNExGAyYPXs2goODERUVhebNm6Nhw4Z45ZVXjGPtONPTTz+NTZs2YceOHbj99tuN68PCwgCgRvamsLCwRpanOr1ej6CgIJNFC5xV+3JXNscbjkn28/TrIyerYy3r4shnZb4/8+wOszzqUTUysqOLFBkZGZgwYQKefPJJtGvXDosXL0ZkZCSWL19ucfutW7di165dyMzMRN++fdGiRQvcd9996NatmwKfgHySA53p06dj6dKlePXVV3H48GEcOnQI8+bNw5Il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xo3IysrCzp07kZOTY7LN448/jq+++grr1q3D999/j0cffRT9+/c3Bl9fffUVEhMT8cwzz+DIkSPo168f5s6dW+NYv/zyC/71r39hw4YNOHLkCABg0KBBKCgoQGZmJnJyctClSxc8+OCDuHTpEgBg27Zt+Otf/4opU6bgp59+wooVK7B69Wrj/j/++GO8/vrrWLFiBU6ePIn//Oc/6Nixo13nXtt53bhxAzExMdi8eTN++OEH/O1vf8OYMWNw4MABALceQf3lL3/BE088gWPHjmHnzp0YPnw4hBCYOnUqRowYYQxA8/Pz0a1bN8nXh4hUyq1zpxNpTM+ePcUzzzwjhBDixIkTAoD46quvjK9fuHBBBAQEiH/9619CCCFWrVolAIhffvnFuM2bb74pQkNDrR5jx44dAoC4fPmycV1JSYnw8/MT69atM667ePGiCAgIMJbnl19+ETqdTpw7d85kfw8++KBITU0VQggxcuRIMWjQIJPXR48eLYKDg41/z5w5U/j6+orCwkLjui+//FIEBQWJGzdumLz3jjvuECtWrBBCCNGjRw8xb948k9c/+OADER4eLoQQYtGiRaJNmzaivLzc6rlbYs95WTJw4EDx3HPPCSGEyMnJEQDEmTNnLG47btw4MXToUIuvrVq1yuTzISJtqeveMItIu44dO4a6deuia9euxnWNGzdG27ZtcezYMeO6evXq4Y477jD+HR4ejsLCQknH+vXXX1FeXo64uDjjuttuuw1t27Y1/n3o0CEIIdCmTRuT95aVlaFx48YAbjVwfvjhh01ev++++7B582aTdVFRUWjSpInx75ycHFy9etW4nyrXr1/Hr7/+atzm22+/NckQVVZW4saNG7h27RoeffRRLF68GC1btkT//v0xcOBADBkyBHXr2v4Zsue8Kisr8eqrr2L9+vU4d+4cysrKUFZWhvr16wMAOnXqhAcffBAdO3ZEQkIC4uPj8ec//xmNGjWyeWwi0j4GOkQyCSGsrtfpdMa/fX19TV7X6XRW3yv1WNUZDAb4+PggJycHPj4+Jq81aNDAYtms7bsqQKi+7/DwcIttV6ra9xgMBsyaNQvDhw+vsY2/vz8iIyNx/PhxZGdn44svvkBSUhIWLFiAXbt21fiMpJ7XokWL8Prrr2Px4sXo2LEj6tevj+TkZJSXlwMAfHx8kJ2djX379iErKwtLlizB9OnTceDAAURHR1s9NhFpHwMdIpnat2+PiooKHDhwwNim4+LFizhx4gTatWun6LFatWoFX19ffP3112jevDmAWw2hT5w4gZ49ewIAOnfujMrKShQWFqJHjx4W93PnnXfim2++MVl38ODBWo/fpUsXFBQUoG7dumjRooXVbY4fP45WrVpZ3U9AQAAeeughPPTQQ5g0aRLuvPNOHD16FF26dLH6HnvOa8+ePRg6dCj++te/ArgVHJ08edLkOuh0OnTv3h3du3fHyy+/jKioKGzcuBEpKSnw8/NDZWVlrZ8DEWkPAx0imVq3bo2hQ4di4sSJWLFiBQIDA/HCCy+gWbNmGDp0qKLHatCgASZMmIBp06ahcePGCA0NxfTp01Gnzv/6E7Rp0wajR4/G2LFjsWjRInTu3BkXLlzA9u3b0bFjRwwcOBBPP/00HnjgAWRkZGDIkCHYvn07tmzZUiPLY65v376Ii4vDsGHD8Nprr6Ft27Y4f/48MjMzMWzYMMTGxuLll1/G4MGDERkZiUcffRR16tTB999/j6NHj2LOnDlYvXo1Kisr0bVrV9SrVw8ffPABAgICEBUVZfPY9pxXq1atsGHDBuzbtw+NGjVCRkYGCgoKjIHOgQMH8OWXXyI+Ph5NmzbFgQMH8Mcffxhfb9GiBbZt24bjx4+jcePGCA4OtpllIiLtYK8rIgesWrUKMTExGDx4MOLi4iCEQGZmplP+k1ywYAEeeOABPPTQQ+jbty/uv/9+xMTE1CjP2LFj8dxzz6Ft27Z46KGHcODAAURGRgIAunfvjrfeegsZGRno1KkTtm7dimeffRb+/v42j63T6ZCZmYkHHngATzzxBNq0aYPHHnsMZ86cQWhoKAAgISEBmzdvRnZ2Nu6991786U9/QkZGhjGQadiwId5++210794dd999N7788kt89tlnNdr9WFLbeb300kvo0qULEhIS0KtXL4SFhZkMABgUFITdu3dj4MCBaNOmDWbMmIFFixZhwIABAICJEyeibdu2iI2NRZMmTfDVV1/Zd1GISPV0QmpjASJyqp07d6J37964fPmySwYMnDhxIn7++Wfs2bPH6cfSotWrVyM5ORlXrlxxd1GISAY+uiJSqdtvvx1DhgypMfCdoxYuXIh+/fqhfv362LJlC9asWYNly5YpegxP0aBBA1RUVNSa8SIi9WJGh0hlrl+/jnPnzgG49R9tWFiYovsfMWIEdu7ciZKSErRs2RJPP/00EhMTFT2GFHv27DE+QrLk6tWrLiyNqV9++QXArV5b7J1FpE0MdIjIraoHdpbY6sVFRFQbBjpERETksdjrioiIiDwWAx0iIiLyWAx0iIiIyGMx0CEiIiKPxUCHiIiIPBYDHSIiIvJYDHSIiIjIY/0/eU1vlhRXzbQAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds[\"mask\"].plot()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pmp_devel_20241202", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.10" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 76ad1f3bf5f7bb0117f0e5ebf46559639a11483a Mon Sep 17 00:00:00 2001 From: Jiwoo Lee Date: Wed, 15 Jan 2025 22:11:11 -0800 Subject: [PATCH 4/5] clean up --- .../return_value_portrait_plot_demo.ipynb | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/pcmdi_metrics/graphics/portrait_plot/return_value_portrait_plot_demo.ipynb b/pcmdi_metrics/graphics/portrait_plot/return_value_portrait_plot_demo.ipynb index e719b7ceb..2bcc56c0a 100644 --- a/pcmdi_metrics/graphics/portrait_plot/return_value_portrait_plot_demo.ipynb +++ b/pcmdi_metrics/graphics/portrait_plot/return_value_portrait_plot_demo.ipynb @@ -58,7 +58,7 @@ "id": "8d2d85e0", "metadata": {}, "source": [ - "# Part 1: Process data" + "## Part 1: Process data" ] }, { @@ -66,7 +66,7 @@ "id": "c3179b90", "metadata": {}, "source": [ - "## Option 1: Create random data for demo only\n", + "### Option 1: Create random data for demo only\n", "\n", "If you do not have run results to plot but want to see how to generate a portrait plot, use this randomly generated array instead.\n", "\n", @@ -90,7 +90,7 @@ "id": "d23f2369", "metadata": {}, "source": [ - "## Option 2: Use Extremes Driver Output" + "### Option 2: Use Extremes Driver Output" ] }, { @@ -112,7 +112,7 @@ "id": "804d7cf1", "metadata": {}, "source": [ - "### Global settings\n", + "#### Global settings\n", "\n", "Provide the list of models (they will appear in this order in the figure). Also provide the region of the results." ] @@ -134,7 +134,7 @@ "id": "608ab579", "metadata": {}, "source": [ - "### Precipitation\n", + "#### Precipitation\n", "\n", "Provide the path to the JSON file containing precipitation (Rx1day and Rx5day) return value metrics in the first cell and run. Then run the following cell." ] @@ -197,7 +197,7 @@ "id": "4f1a63cf", "metadata": {}, "source": [ - "### Max Temperature\n", + "#### Max Temperature\n", "\n", "Provide the path to the JSON file containing maximum temperature (TXx and TXn) return value metrics in the first cell and run. Then run the following cell." ] @@ -257,7 +257,7 @@ "id": "514310b7", "metadata": {}, "source": [ - "### Min Temperature\n", + "#### Min Temperature\n", "\n", "Provide the path to the JSON file containing minimum temperature (TNx and TNn) return value metrics in the first cell and run. Then run the following cell." ] @@ -352,7 +352,7 @@ "id": "bd0af793", "metadata": {}, "source": [ - "# Part 2: Create figure" + "## Part 2: Create figure" ] }, { @@ -436,14 +436,6 @@ "fig.text(1.25, 0.4, 'Data version\\n'+data_version, transform=ax.transAxes,\n", " fontsize=12, color='black', alpha=0.6, ha='left', va='top',)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "efd8bee0", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From a6319c38ef7bfc786afb374c0e6e0a16ce51190c Mon Sep 17 00:00:00 2001 From: Jiwoo Lee Date: Wed, 15 Jan 2025 22:20:41 -0800 Subject: [PATCH 5/5] clean up --- docs/metrics_monsoon.rst | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/docs/metrics_monsoon.rst b/docs/metrics_monsoon.rst index 194c29c05..2b424da1b 100644 --- a/docs/metrics_monsoon.rst +++ b/docs/metrics_monsoon.rst @@ -9,17 +9,38 @@ Monsoon Overview ======== -The PMP currently can be used to produce baseline metrics on the overall evolution and pattern of regional monsoons. +The PMP currently can be used to produce baseline metrics on the overall pattern and evolution of regional monsoons. -These evolution results are based on the work of Sperber and Annamalai (2014). Climatological pentads of precipitation in observations and CMIP5 for six monsoon-related domains (AIR: All-India Rainfall, AUS: Australian Monsoon, GoG: Gulf of Guinea, NAM: North American Monsoon, SAM: South American Monsoon, and Sahel). In the Northern Hemisphere the 73 climatological pentads run from January-December, while in the Southern Hemisphere the climatological pentads run from July-June. For each domain the precipitation is accumulated at each subsequent pentad and then divided by the total precipitation to give the fractional accumulation of precipitation as a function of pentad. Except for GoG, onset (decay) of monsoon occurs for a fractional accumulation of 0.2 (0.8). Between these fractional accumulations the accumulation of precipitation is nearly linear as the monsoon season progresses. +Spatial pattern +~~~~~~~~~~~~~~~ + +These pattern results are based on the work of Wang et al. (2011), examining the annual cycle of precipitation in observations +and CMIP for six monsoon-related domains. + + +Temporal evolution +~~~~~~~~~~~~~~~~~~ + +These evolution results are based on the work of Sperber and Annamalai (2014). +Climatological pentads of precipitation in observations and CMIP5 for six monsoon-related domains +(AIR: All-India Rainfall, AUS: Australian Monsoon, GoG: Gulf of Guinea, NAM: North American Monsoon, +SAM: South American Monsoon, and Sahel). In the Northern Hemisphere the 73 climatological pentads run +from January-December, while in the Southern Hemisphere the climatological pentads run from July-June. +For each domain the precipitation is accumulated at each subsequent pentad and then divided by the total +precipitation to give the fractional accumulation of precipitation as a function of pentad. +Except for GoG, onset (decay) of monsoon occurs for a fractional accumulation of 0.2 (0.8). +Between these fractional accumulations the accumulation of precipitation is nearly linear as the monsoon season progresses. Demo ==== -* `PMP demo Jupyter notebook`_ +* `PMP demo Jupyter notebook (spatial pattern)`_ (Wang et al. 2011) +* `PMP demo Jupyter notebook (temporal evolution)`_ (Sperber and Annamalai 2014) References ========== -* Sperber, K.R. and Annamalai, H., 2014. The use of fractional accumulated precipitation for the evaluation of the annual cycle of monsoons. Climate Dynamics, 43, 3219-3244, doi:10.1007/s00382-014-2099-3 +* Wang, B., Kim, HJ., Kikuchi, K. et al. 2011. Diagnostic metrics for evaluation of annual and diurnal cycles. Clim Dyn 37, 941–955. https://doi.org/10.1007/s00382-010-0877-0 +* Sperber, K.R. and Annamalai, H., 2014. The use of fractional accumulated precipitation for the evaluation of the annual cycle of monsoons. Climate Dynamics, 43, 3219-3244, https://doi.org/10.1007/s00382-014-2099-3 -.. _PMP demo Jupyter notebook: examples/Demo_2b_monsoon_sperber.html +.. _PMP demo Jupyter notebook (spatial pattern): examples/Demo_2a_monsoon_wang.html +.. _PMP demo Jupyter notebook (temporal evolution): examples/Demo_2b_monsoon_sperber.html