diff --git a/jbook/content/alongtrack/AlongTrack.ipynb b/jbook/content/alongtrack/AlongTrack.ipynb index 2199b13..86e07a7 100644 --- a/jbook/content/alongtrack/AlongTrack.ipynb +++ b/jbook/content/alongtrack/AlongTrack.ipynb @@ -10,19 +10,15 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 2, "id": "04a772d4-18da-4809-beb2-238f97d4565b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "metadata": { + "pycharm": { + "is_executing": true + }, + "tags": [] + }, + "outputs": [], "source": [ "import autoroot\n", "import typing as tp\n", @@ -31,16 +27,15 @@ "import numpy as np\n", "import pandas as pd\n", "import xarray as xr\n", - "import einops\n", "from metpy.units import units\n", "import pint_xarray\n", "import xarray_dataclasses as xrdataclass\n", "import matplotlib.pyplot as plt\n", "import matplotlib.colors as colors\n", "import matplotlib.ticker as ticker\n", - "from oceanbench._src.geoprocessing.validation import validate_latlon, validate_time, decode_cf_time, validate_ssh\n", - "from oceanbench._src.preprocessing.alongtrack import alongtrack_ssh\n", - "from oceanbench._src.geoprocessing.subset import where_slice\n", + "from ocn_tools._src.geoprocessing.validation import validate_latlon, validate_time, decode_cf_time, validate_ssh\n", + "from ocn_tools._src.preprocessing.alongtrack import alongtrack_ssh\n", + "from ocn_tools._src.geoprocessing.subset import where_slice\n", "import seaborn as sns\n", "\n", "sns.reset_defaults()\n", @@ -68,58 +63,77 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 65, + "id": "d6305fc1-59ef-4944-98ed-e91e58664407", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "data_registry_dir = \"/Volumes/EMANS_HDD/data/oceanbench-data-registry\"" + ] + }, + { + "cell_type": "code", + "execution_count": 66, "id": "8bad0eff-7498-4356-be09-f4a566bd4da8", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2020a_SSH_mapping_NATL60_envisat.nc\n", - "2020a_SSH_mapping_NATL60_geosat2.nc\n", - "2020a_SSH_mapping_NATL60_jason1.nc\n", - "2020a_SSH_mapping_NATL60_karin_swot.nc\n", - "2020a_SSH_mapping_NATL60_nadir_swot.nc\n", - "2020a_SSH_mapping_NATL60_topex-poseidon_interleaved.nc\n" + "\u001b[35men.nc\u001b[m\u001b[m \u001b[35mg2.nc\u001b[m\u001b[m \u001b[35mj1.nc\u001b[m\u001b[m \u001b[35mswot.nc\u001b[m\u001b[m \u001b[35mtpn.nc\u001b[m\u001b[m\n", + "\u001b[31men.nc.dvc\u001b[m\u001b[m \u001b[31mg2.nc.dvc\u001b[m\u001b[m \u001b[31mj1.nc.dvc\u001b[m\u001b[m \u001b[31mswot.nc.dvc\u001b[m\u001b[m \u001b[31mtpn.nc.dvc\u001b[m\u001b[m\n" ] } ], "source": [ - "!ls \"/gpfswork/rech/yrf/commun/data_challenges/dc20a_osse/raw/dc_obs/\"" + "osse_dc20a_data_dir = f\"{data_registry_dir}/osse_natl60/coord/nadirs\"\n", + "!ls $osse_dc20a_data_dir" ] }, { "cell_type": "code", - "execution_count": 36, - "id": "93bb2ea4-b3a8-475b-811e-071efca07376", - "metadata": {}, + "execution_count": 48, + "id": "45b9c168-1126-4603-b7a0-bab0ac825a2d", + "metadata": { + "tags": [] + }, "outputs": [], "source": [ + "file_dir = \"/Volumes/EMANS_HDD/data/oceanbench-data-registry/osse_natl60/coord/nadirs\"\n", "files_nadir_dc20a = [\n", - " \"/gpfswork/rech/yrf/commun/data_challenges/dc20a_osse/raw/dc_obs/2020a_SSH_mapping_NATL60_jason1.nc\",\n", - " \"/gpfswork/rech/yrf/commun/data_challenges/dc20a_osse/raw/dc_obs/2020a_SSH_mapping_NATL60_envisat.nc\",\n", - " \"/gpfswork/rech/yrf/commun/data_challenges/dc20a_osse/raw/dc_obs/2020a_SSH_mapping_NATL60_geosat2.nc\",\n", - " \"/gpfswork/rech/yrf/commun/data_challenges/dc20a_osse/raw/dc_obs/2020a_SSH_mapping_NATL60_topex-poseidon_interleaved.nc\"\n", + " f\"{file_dir}/en.nc\",\n", + " f\"{file_dir}/g2.nc\",\n", + " f\"{file_dir}/j1.nc\",\n", + " f\"{file_dir}/tpn.nc\",\n", + " \n", "]" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 49, "id": "090a2bbd-4fce-4ca0-bbef-d7addc6a5e31", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "def preprocess_nadir_dc20a(da):\n", " \n", + " # change names\n", + " # da = da.rename({\"latitude\": \"lat\", \"longitude\": \"lon\"})\n", + " \n", " # reorganized\n", " da = da.sortby(\"time\").compute()\n", " \n", " # validate coordinates\n", " da = validate_latlon(da)\n", " da = validate_time(da)\n", - " \n", " # validate variables\n", " da = da.rename({\"ssh_model\": \"ssh\"})\n", " da = validate_ssh(da)\n", @@ -141,10 +155,20 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 50, "id": "0225d0ca-3c5d-4979-859d-b2e069cc56a3", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/eman/miniconda3/envs/oceanbench_311/lib/python3.11/site-packages/xarray/core/concat.py:527: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version.\n", + " common_dims = tuple(pd.unique([d for v in vars for d in v.dims]))\n" + ] + }, { "data": { "text/html": [ @@ -512,70 +536,53 @@ " fill: currentColor;\n", "}\n", "
<xarray.Dataset>\n",
- "Dimensions: (time: 205232)\n",
+ "Dimensions: (time: 6086079)\n",
"Coordinates:\n",
- " * time (time) datetime64[ns] 2012-10-01T00:45:50.676369 ... 2013-09-30T...\n",
- " lon (time) float64 -57.81 -57.83 -57.85 -57.87 ... -58.29 -58.31 -58.33\n",
- " lat (time) float64 42.96 42.9 42.84 42.78 ... 42.82 42.88 42.94 43.0\n",
+ " lat (time) float32 61.2 61.15 61.09 61.04 ... 42.66 42.6 42.54 42.48\n",
+ " lon (time) float32 -48.72 -48.76 -48.8 -48.84 ... 5.301 5.281 5.261\n",
+ " * time (time) datetime64[ns] 2012-10-01T00:40:35.094088 ... 2013-09-30T...\n",
"Data variables:\n",
- " ssh (time) float64 -0.0028 -0.0097 -0.0153 ... 0.244 0.2186 0.1897\n",
- "Attributes: (12/26)\n",
- " description: SWOT fixed grid\n",
- " corresponding_grid: \n",
- " title: Altimeter like data simulated by SWOT simulator\n",
- " keywords: check keywords\n",
- " Conventions: CF-1.6\n",
- " summary: SWOT grid data produced\n",
- " ... ...\n",
- " geospatial_lon_units: degrees_east\n",
- " project: SWOT\n",
- " date_created: 2018-10-12T12:39:50Z\n",
- " date_modified: 2018-10-12T12:39:50Z\n",
- " keywords_vocabulary: NASA\n",
- " references: Gaultier, L., C. Ubelmann, and L.-L. Fu, 2016:...<xarray.Dataset>\n",
- "Dimensions: (time: 1793663)\n",
+ "Dimensions: (time: 2108351)\n",
"Coordinates:\n",
" * time (time) datetime64[ns] 2016-12-01T01:07:08.844252928 ... 2...\n",
- " lon (time) float64 -50.5 -50.51 -50.52 ... -74.96 -74.97 -74.99\n",
- " lat (time) float64 23.03 23.08 23.14 23.2 ... 25.21 25.27 25.33\n",
+ " lon (time) float64 -50.5 -50.51 -50.52 ... -49.52 -49.53 -49.54\n",
+ " lat (time) float64 23.03 23.08 23.14 23.2 ... 23.12 23.06 23.0\n",
"Data variables:\n",
- " cycle (time) float64 11.0 11.0 11.0 11.0 ... 193.0 193.0 193.0\n",
- " track (time) float64 575.0 575.0 575.0 575.0 ... 83.0 83.0 83.0\n",
- " dac (time) float32 -0.0565 -0.0569 -0.0571 ... -0.0842 -0.0847\n",
- " lwe (time) float32 0.003 0.003 0.003 ... -0.005 -0.005 -0.005\n",
- " mdt (time) float32 0.52 0.52 0.521 0.522 ... 0.621 0.622 0.623\n",
- " ocean_tide (time) float64 0.0269 0.0288 0.0307 ... 0.302 0.3033 0.3046\n",
- " sla_filtered (time) float32 0.101 0.103 0.105 0.109 ... 0.039 0.048 0.059\n",
- " sla_unfiltered (time) float32 0.1 0.098 0.104 0.115 ... -0.01 0.069 0.046\n",
- " ssh (time) float32 0.617 0.615 0.622 0.634 ... 0.616 0.696 0.674\n",
+ " cycle (time) float64 11.0 11.0 11.0 11.0 ... 102.0 102.0 102.0\n",
+ " track (time) float64 575.0 575.0 575.0 575.0 ... 396.0 396.0 396.0\n",
+ " dac (time) float32 -0.0565 -0.0569 -0.0571 ... -0.0305 -0.0307\n",
+ " lwe (time) float32 0.003 0.003 0.003 0.003 ... 0.0 0.0 0.0 0.0\n",
+ " mdt (time) float32 0.52 0.52 0.521 0.522 ... 0.505 0.505 0.505\n",
+ " ocean_tide (time) float64 0.0269 0.0288 0.0307 ... 0.054 0.0516 0.0491\n",
+ " sla_filtered (time) float32 0.101 0.103 0.105 0.109 ... 0.11 0.119 0.128\n",
+ " sla_unfiltered (time) float32 0.1 0.098 0.104 0.115 ... 0.099 0.109 0.131\n",
+ " ssh (time) float32 0.617 0.615 0.622 0.634 ... 0.604 0.614 0.636\n",
"Attributes: (12/44)\n",
" Conventions: CF-1.6\n",
" Metadata_Conventions: Unidata Dataset Discovery v1.0\n",
@@ -1112,16 +1142,17 @@
" time_coverage_end: 2016-01-01T23:06:57Z\n",
" time_coverage_resolution: P1S\n",
" time_coverage_start: 2015-12-31T23:50:30Z\n",
- " title: DT Altika Drifting Phase Global Ocean Al...<xarray.Dataset>\n",
- "Dimensions: (nC: 52, time: 188121)\n",
+ "Dimensions: (time: 1676380, cycle: 1)\n",
"Coordinates:\n",
- " * nC (nC) int64 0 1 2 3 4 5 6 7 8 9 ... 43 44 45 46 47 48 49 50 51\n",
- " * time (time) datetime64[ns] 2012-10-02T18:03:42.401288 ... 2013-09...\n",
- "Data variables: (12/14)\n",
- " lon (nC, time) float64 ...\n",
- " lat (nC, time) float64 ...\n",
- " x_al (nC, time) float32 ...\n",
- " x_ac (nC, time) float32 ...\n",
- " lon_nadir (nC, time) float64 ...\n",
- " lat_nadir (nC, time) float64 ...\n",
- " ... ...\n",
- " ssh_obs (nC, time) float64 ...\n",
- " roll_err (nC, time) float64 ...\n",
- " phase_err (nC, time) float64 ...\n",
- " ssh_model (nC, time) float64 ...\n",
- " bd_err (nC, time) float64 ...\n",
- " karin_err (nC, time) float64 ...\n",
- "Attributes: (12/26)\n",
- " description: SWOT fixed grid\n",
- " corresponding_grid: /data/MSA_ETU/mballarotta/ETUDE_BOOST-SWOT/out...\n",
- " title: SWOT-like data simulated by SWOT simulator\n",
- " keywords: SWOT, altimetry, SSH, satellite, remote sensing\n",
- " Conventions: CF-1.6\n",
- " summary: SWOT grid data produced\n",
- " ... ...\n",
- " geospatial_lon_units: degrees_east\n",
- " project: SWOT\n",
- " date_created: 2018-11-27T16:45:37Z\n",
- " date_modified: 2018-11-27T16:45:37Z\n",
- " keywords_vocabulary: NASA\n",
- " references: Gaultier, L., C. Ubelmann, and L.-L. Fu, 2016:...<xarray.Dataset>\n", - "Dimensions: (time: 42468, cycle: 1)\n", - "Coordinates:\n", - " lon (time) float64 -55.03 -55.06 -55.1 ... -64.89 -64.93 -64.97\n", - " lat (time) float64 39.58 39.53 39.47 39.42 ... 42.12 42.17 42.22\n", - " * time (time) datetime64[ns] 2012-10-22T11:16:43.687588 ... 2012-12...\n", - "Dimensions without coordinates: cycle\n", - "Data variables:\n", - " x_al (time) float32 1.008e+06 1.008e+06 ... 5.373e+06 5.373e+06\n", - " ncycle (time, cycle) timedelta64[ns] 17 days 09:34:50.917929600 ......\n", - " model_index (time) float32 515.0 515.0 515.0 ... 1.533e+03 1.533e+03\n", - " ssh_obs (time) float64 0.975 1.008 1.009 ... -0.0774 -0.0679 -0.0703\n", - " ssh (time) float64 0.9958 1.014 1.027 ... -0.0576 -0.0568 -0.051\n", - " nadir_err (time) float64 -0.0208 -0.0061 -0.0182 ... -0.0111 -0.0193\n", - "Attributes: (12/26)\n", - " description: SWOT fixed grid\n", - " corresponding_grid: \n", - " title: Altimeter like data simulated by SWOT simulator\n", - " keywords: check keywords\n", - " Conventions: CF-1.6\n", - " summary: SWOT grid data produced\n", - " ... ...\n", - " geospatial_lon_units: degrees_east\n", - " project: SWOT\n", - " date_created: 2018-10-12T12:39:50Z\n", - " date_modified: 2018-10-12T12:39:50Z\n", - " keywords_vocabulary: NASA\n", - " references: Gaultier, L., C. Ubelmann, and L.-L. Fu, 2016:..." - ], - "text/plain": [ - "
<xarray.Dataset>\n", - "Dimensions: (time: 955000)\n", - "Coordinates:\n", - " lon (time) float64 -55.4 -55.37 -55.39 ... -64.45 -64.47 -64.5\n", - " lat (time) float64 42.99 42.99 42.97 42.97 ... 42.98 42.99 42.99\n", - " * time (time) datetime64[ns] 2012-10-23T18:04:12.393963 ... 2012-11...\n", - "Data variables: (12/13)\n", - " x_al (time) float32 1.001e+06 1.001e+06 ... 1.01e+07 1.01e+07\n", - " x_ac (time) float32 -60.0 -58.0 -60.0 -58.0 ... -60.0 -58.0 -56.0\n", - " lon_nadir (time) float64 305.3 305.3 305.3 305.3 ... 294.8 294.8 294.8\n", - " lat_nadir (time) float64 43.12 43.12 43.1 43.1 ... 43.1 43.12 43.12 43.12\n", - " model_index (time) float32 546.0 546.0 546.0 ... 1.446e+03 1.446e+03\n", - " timing_err (time) float64 0.00496 0.00496 0.004528 ... -0.03043 -0.03043\n", - " ... ...\n", - " roll_err (time) float64 -0.1154 -0.1116 -0.1102 ... 0.07341 0.07088\n", - " phase_err (time) float64 0.06866 0.06637 0.06041 ... 0.04271 0.04124\n", - " ssh (time) float64 -0.0096 -0.0116 -0.0083 ... -0.0444 -0.0518\n", - " bd_err (time) float64 0.009219 0.008615 ... -0.004289 -0.003999\n", - " karin_err (time) float64 -0.0198 0.0012 0.0096 ... 0.0122 -0.0247 -0.0235\n", - " nC (time) float64 0.0 1.0 0.0 1.0 2.0 3.0 ... 5.0 6.0 0.0 1.0 2.0\n", - "Attributes: (12/26)\n", - " description: SWOT fixed grid\n", - " corresponding_grid: /data/MSA_ETU/mballarotta/ETUDE_BOOST-SWOT/out...\n", - " title: SWOT-like data simulated by SWOT simulator\n", - " keywords: SWOT, altimetry, SSH, satellite, remote sensing\n", - " Conventions: CF-1.6\n", - " summary: SWOT grid data produced\n", - " ... ...\n", - " geospatial_lon_units: degrees_east\n", - " project: SWOT\n", - " date_created: 2018-11-27T16:45:37Z\n", - " date_modified: 2018-11-27T16:45:37Z\n", - " keywords_vocabulary: NASA\n", - " references: Gaultier, L., C. Ubelmann, and L.-L. Fu, 2016:...
<xarray.Dataset>\n", - "Dimensions: (time: 42468, cycle: 1)\n", - "Coordinates:\n", - " lon (time) float64 -55.03 -55.06 -55.1 ... -64.89 -64.93 -64.97\n", - " lat (time) float64 39.58 39.53 39.47 39.42 ... 42.12 42.17 42.22\n", - " * time (time) datetime64[ns] 2012-10-22T11:16:43.687588 ... 2012-12...\n", - "Dimensions without coordinates: cycle\n", - "Data variables:\n", - " x_al (time) float32 1.008e+06 1.008e+06 ... 5.373e+06 5.373e+06\n", - " ncycle (time, cycle) timedelta64[ns] 17 days 09:34:50.917929600 ......\n", - " model_index (time) float32 515.0 515.0 515.0 ... 1.533e+03 1.533e+03\n", - " ssh_obs (time) float64 0.975 1.008 1.009 ... -0.0774 -0.0679 -0.0703\n", - " ssh (time) float64 0.9958 1.014 1.027 ... -0.0576 -0.0568 -0.051\n", - " nadir_err (time) float64 -0.0208 -0.0061 -0.0182 ... -0.0111 -0.0193\n", - "Attributes: (12/26)\n", - " description: SWOT fixed grid\n", - " corresponding_grid: \n", - " title: Altimeter like data simulated by SWOT simulator\n", - " keywords: check keywords\n", - " Conventions: CF-1.6\n", - " summary: SWOT grid data produced\n", - " ... ...\n", - " geospatial_lon_units: degrees_east\n", - " project: SWOT\n", - " date_created: 2018-10-12T12:39:50Z\n", - " date_modified: 2018-10-12T12:39:50Z\n", - " keywords_vocabulary: NASA\n", - " references: Gaultier, L., C. Ubelmann, and L.-L. Fu, 2016:...
<xarray.Dataset>\n", - "Dimensions: (time: 955000)\n", - "Coordinates:\n", - " lon (time) float64 -55.4 -55.37 -55.39 ... -64.45 -64.47 -64.5\n", - " lat (time) float64 42.99 42.99 42.97 42.97 ... 42.98 42.99 42.99\n", - " * time (time) datetime64[ns] 2012-10-23T18:04:12.393963 ... 2012-11...\n", - "Data variables: (12/13)\n", - " x_al (time) float32 1.001e+06 1.001e+06 ... 1.01e+07 1.01e+07\n", - " x_ac (time) float32 -60.0 -58.0 -60.0 -58.0 ... -60.0 -58.0 -56.0\n", - " lon_nadir (time) float64 305.3 305.3 305.3 305.3 ... 294.8 294.8 294.8\n", - " lat_nadir (time) float64 43.12 43.12 43.1 43.1 ... 43.1 43.12 43.12 43.12\n", - " model_index (time) float32 546.0 546.0 546.0 ... 1.446e+03 1.446e+03\n", - " timing_err (time) float64 0.00496 0.00496 0.004528 ... -0.03043 -0.03043\n", - " ... ...\n", - " roll_err (time) float64 -0.1154 -0.1116 -0.1102 ... 0.07341 0.07088\n", - " phase_err (time) float64 0.06866 0.06637 0.06041 ... 0.04271 0.04124\n", - " ssh (time) float64 -0.0096 -0.0116 -0.0083 ... -0.0444 -0.0518\n", - " bd_err (time) float64 0.009219 0.008615 ... -0.004289 -0.003999\n", - " karin_err (time) float64 -0.0198 0.0012 0.0096 ... 0.0122 -0.0247 -0.0235\n", - " nC (time) float64 0.0 1.0 0.0 1.0 2.0 3.0 ... 5.0 6.0 0.0 1.0 2.0\n", - "Attributes: (12/26)\n", - " description: SWOT fixed grid\n", - " corresponding_grid: /data/MSA_ETU/mballarotta/ETUDE_BOOST-SWOT/out...\n", - " title: SWOT-like data simulated by SWOT simulator\n", - " keywords: SWOT, altimetry, SSH, satellite, remote sensing\n", - " Conventions: CF-1.6\n", - " summary: SWOT grid data produced\n", - " ... ...\n", - " geospatial_lon_units: degrees_east\n", - " project: SWOT\n", - " date_created: 2018-11-27T16:45:37Z\n", - " date_modified: 2018-11-27T16:45:37Z\n", - " keywords_vocabulary: NASA\n", - " references: Gaultier, L., C. Ubelmann, and L.-L. Fu, 2016:...
<xarray.Dataset>\n", - "Dimensions: (time: 997468)\n", - "Coordinates:\n", - " lon (time) float64 -55.03 -55.06 -55.1 -55.13 ... -64.89 -64.93 -64.97\n", - " lat (time) float64 39.58 39.53 39.47 39.42 ... 42.06 42.12 42.17 42.22\n", - " * time (time) datetime64[ns] 2012-10-22T11:16:43.687588 ... 2012-12-03T...\n", - "Data variables:\n", - " ssh (time) float64 0.9958 1.014 1.027 1.032 ... -0.0576 -0.0568 -0.051\n", - "Attributes: (12/26)\n", - " description: SWOT fixed grid\n", - " corresponding_grid: \n", - " title: Altimeter like data simulated by SWOT simulator\n", - " keywords: check keywords\n", - " Conventions: CF-1.6\n", - " summary: SWOT grid data produced\n", - " ... ...\n", - " geospatial_lon_units: degrees_east\n", - " project: SWOT\n", - " date_created: 2018-10-12T12:39:50Z\n", - " date_modified: 2018-10-12T12:39:50Z\n", - " keywords_vocabulary: NASA\n", - " references: Gaultier, L., C. Ubelmann, and L.-L. Fu, 2016:...
<xarray.Dataset>\n", - "Dimensions: (time: 365, lat: 201, lon: 201)\n", - "Coordinates:\n", - " * lon (lon) float64 -65.0 -64.95 -64.9 -64.85 ... -55.1 -55.05 -55.0\n", - " * lat (lat) float64 33.0 33.05 33.1 33.15 33.2 ... 42.85 42.9 42.95 43.0\n", - " * time (time) datetime64[ns] 2012-10-01 2012-10-02 ... 2013-09-30\n", - "Data variables:\n", - " ssh (time, lat, lon) float64 0.5019 0.5019 0.5097 ... -0.135 -0.135