From ca45eb8e15449440c2d15199d0dc74b2bf73c008 Mon Sep 17 00:00:00 2001 From: James Halgren Date: Wed, 21 Sep 2022 15:54:02 +0000 Subject: [PATCH] add plot example --- ...emo-short-range-18files_plot_example.ipynb | 1498 +++++++++++++++++ 1 file changed, 1498 insertions(+) create mode 100644 parquet-demo-short-range-18files_plot_example.ipynb diff --git a/parquet-demo-short-range-18files_plot_example.ipynb b/parquet-demo-short-range-18files_plot_example.ipynb new file mode 100644 index 0000000..9914940 --- /dev/null +++ b/parquet-demo-short-range-18files_plot_example.ipynb @@ -0,0 +1,1498 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "pycharm": { + "name": "#%%\n" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import xarray as xr\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['short_range_18files/input/nwm.t00z.short_range.channel_rt.f016.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f014.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f008.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f012.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f006.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f018.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f009.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f015.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f004.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f010.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f002.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f005.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f017.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f007.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f003.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f011.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f013.conus.nc', 'short_range_18files/input/nwm.t00z.short_range.channel_rt.f001.conus.nc']\n" + ] + } + ], + "source": [ + "dir_files = [os.path.join(\"short_range_18files/input\", files) for files in os.listdir(\"short_range_18files/input\")]\n", + "print(dir_files)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "fds = []\n", + "for f in dir_files:\n", + " fds.append(xr.open_dataset(f))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 7.06 s, sys: 1.58 s, total: 8.64 s\n", + "Wall time: 8.91 s\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:         (time: 18, reference_time: 1, feature_id: 2776738)\n",
+       "Coordinates:\n",
+       "  * time            (time) datetime64[ns] 2022-09-11T16:00:00 ... 2022-09-11T...\n",
+       "  * reference_time  (reference_time) datetime64[ns] 2022-09-11\n",
+       "  * feature_id      (feature_id) int32 101 179 181 ... 1180001803 1180001804\n",
+       "Data variables:\n",
+       "    crs             (time) |S1 b'' b'' b'' b'' b'' b'' ... b'' b'' b'' b'' b''\n",
+       "    streamflow      (time, feature_id) float64 0.18 0.01 0.01 ... 0.0 0.0 0.0\n",
+       "    nudge           (time, feature_id) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n",
+       "    velocity        (time, feature_id) float64 0.08 0.1 0.1 ... 0.02 0.0 0.02\n",
+       "    qSfcLatRunoff   (time, feature_id) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n",
+       "    qBucket         (time, feature_id) float64 0.0034 0.00893 ... 0.00016\n",
+       "    qBtmVertRunoff  (time, feature_id) float64 12.04 26.06 9.118 ... 0.528 0.746\n",
+       "Attributes: (12/19)\n",
+       "    TITLE:                      OUTPUT FROM NWM v2.2\n",
+       "    featureType:                timeSeries\n",
+       "    proj4:                      +proj=lcc +units=m +a=6370000.0 +b=6370000.0 ...\n",
+       "    model_initialization_time:  2022-09-11_00:00:00\n",
+       "    station_dimension:          feature_id\n",
+       "    model_output_valid_time:    2022-09-11_16:00:00\n",
+       "    ...                         ...\n",
+       "    model_configuration:        short_range\n",
+       "    dev_OVRTSWCRT:              1\n",
+       "    dev_NOAH_TIMESTEP:          3600\n",
+       "    dev_channel_only:           0\n",
+       "    dev_channelBucket_only:     0\n",
+       "    dev:                        dev_ prefix indicates development/internal me...
" + ], + "text/plain": [ + "\n", + "Dimensions: (time: 18, reference_time: 1, feature_id: 2776738)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 2022-09-11T16:00:00 ... 2022-09-11T...\n", + " * reference_time (reference_time) datetime64[ns] 2022-09-11\n", + " * feature_id (feature_id) int32 101 179 181 ... 1180001803 1180001804\n", + "Data variables:\n", + " crs (time) |S1 b'' b'' b'' b'' b'' b'' ... b'' b'' b'' b'' b''\n", + " streamflow (time, feature_id) float64 0.18 0.01 0.01 ... 0.0 0.0 0.0\n", + " nudge (time, feature_id) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n", + " velocity (time, feature_id) float64 0.08 0.1 0.1 ... 0.02 0.0 0.02\n", + " qSfcLatRunoff (time, feature_id) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n", + " qBucket (time, feature_id) float64 0.0034 0.00893 ... 0.00016\n", + " qBtmVertRunoff (time, feature_id) float64 12.04 26.06 9.118 ... 0.528 0.746\n", + "Attributes: (12/19)\n", + " TITLE: OUTPUT FROM NWM v2.2\n", + " featureType: timeSeries\n", + " proj4: +proj=lcc +units=m +a=6370000.0 +b=6370000.0 ...\n", + " model_initialization_time: 2022-09-11_00:00:00\n", + " station_dimension: feature_id\n", + " model_output_valid_time: 2022-09-11_16:00:00\n", + " ... ...\n", + " model_configuration: short_range\n", + " dev_OVRTSWCRT: 1\n", + " dev_NOAH_TIMESTEP: 3600\n", + " dev_channel_only: 0\n", + " dev_channelBucket_only: 0\n", + " dev: dev_ prefix indicates development/internal me..." + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%%time\n", + "fds_c_2 = xr.concat(fds,dim=\"time\")\n", + "fds_c_2" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 489 µs, sys: 0 ns, total: 489 µs\n", + "Wall time: 496 µs\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'feature_id' (feature_id: 90000)>\n",
+       "array([ 252768,  252772,  252776, ..., 1122639, 1122641, 1122643], dtype=int32)\n",
+       "Coordinates:\n",
+       "  * feature_id  (feature_id) int32 252768 252772 252776 ... 1122641 1122643\n",
+       "Attributes:\n",
+       "    long_name:  Reach ID\n",
+       "    comment:    NHDPlusv2 ComIDs within CONUS, arbitrary Reach IDs outside of...\n",
+       "    cf_role:    timeseries_id
" + ], + "text/plain": [ + "\n", + "array([ 252768, 252772, 252776, ..., 1122639, 1122641, 1122643], dtype=int32)\n", + "Coordinates:\n", + " * feature_id (feature_id) int32 252768 252772 252776 ... 1122641 1122643\n", + "Attributes:\n", + " long_name: Reach ID\n", + " comment: NHDPlusv2 ComIDs within CONUS, arbitrary Reach IDs outside of...\n", + " cf_role: timeseries_id" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%%time\n", + "vec = fds_c_2.feature_id[10000:100000]\n", + "vec" + ] + }, + { + "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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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fds_c_2.loc[{\"feature_id\": vec}].plot.scatter(\"time\", \"streamflow\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:         (time: 18, reference_time: 1, feature_id: 2776738)\n",
+       "Coordinates:\n",
+       "  * time            (time) datetime64[ns] 2022-09-11T16:00:00 ... 2022-09-11T...\n",
+       "  * reference_time  (reference_time) datetime64[ns] 2022-09-11\n",
+       "  * feature_id      (feature_id) int32 101 179 181 ... 1180001803 1180001804\n",
+       "Data variables:\n",
+       "    crs             (time) |S1 b'' b'' b'' b'' b'' b'' ... b'' b'' b'' b'' b''\n",
+       "    streamflow      (feature_id, time) float64 0.18 0.18 0.18 ... 0.0 0.0 0.0\n",
+       "    nudge           (feature_id, time) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n",
+       "    velocity        (feature_id, time) float64 0.08 0.08 0.08 ... 0.02 0.02 0.02\n",
+       "    qSfcLatRunoff   (feature_id, time) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n",
+       "    qBucket         (feature_id, time) float64 0.0034 0.0034 ... 0.00017 0.00016\n",
+       "    qBtmVertRunoff  (feature_id, time) float64 12.04 12.07 12.14 ... 0.888 0.746\n",
+       "Attributes: (12/19)\n",
+       "    TITLE:                      OUTPUT FROM NWM v2.2\n",
+       "    featureType:                timeSeries\n",
+       "    proj4:                      +proj=lcc +units=m +a=6370000.0 +b=6370000.0 ...\n",
+       "    model_initialization_time:  2022-09-11_00:00:00\n",
+       "    station_dimension:          feature_id\n",
+       "    model_output_valid_time:    2022-09-11_16:00:00\n",
+       "    ...                         ...\n",
+       "    model_configuration:        short_range\n",
+       "    dev_OVRTSWCRT:              1\n",
+       "    dev_NOAH_TIMESTEP:          3600\n",
+       "    dev_channel_only:           0\n",
+       "    dev_channelBucket_only:     0\n",
+       "    dev:                        dev_ prefix indicates development/internal me...
" + ], + "text/plain": [ + "\n", + "Dimensions: (time: 18, reference_time: 1, feature_id: 2776738)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 2022-09-11T16:00:00 ... 2022-09-11T...\n", + " * reference_time (reference_time) datetime64[ns] 2022-09-11\n", + " * feature_id (feature_id) int32 101 179 181 ... 1180001803 1180001804\n", + "Data variables:\n", + " crs (time) |S1 b'' b'' b'' b'' b'' b'' ... b'' b'' b'' b'' b''\n", + " streamflow (feature_id, time) float64 0.18 0.18 0.18 ... 0.0 0.0 0.0\n", + " nudge (feature_id, time) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n", + " velocity (feature_id, time) float64 0.08 0.08 0.08 ... 0.02 0.02 0.02\n", + " qSfcLatRunoff (feature_id, time) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n", + " qBucket (feature_id, time) float64 0.0034 0.0034 ... 0.00017 0.00016\n", + " qBtmVertRunoff (feature_id, time) float64 12.04 12.07 12.14 ... 0.888 0.746\n", + "Attributes: (12/19)\n", + " TITLE: OUTPUT FROM NWM v2.2\n", + " featureType: timeSeries\n", + " proj4: +proj=lcc +units=m +a=6370000.0 +b=6370000.0 ...\n", + " model_initialization_time: 2022-09-11_00:00:00\n", + " station_dimension: feature_id\n", + " model_output_valid_time: 2022-09-11_16:00:00\n", + " ... ...\n", + " model_configuration: short_range\n", + " dev_OVRTSWCRT: 1\n", + " dev_NOAH_TIMESTEP: 3600\n", + " dev_channel_only: 0\n", + " dev_channelBucket_only: 0\n", + " dev: dev_ prefix indicates development/internal me..." + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fds_c_2.transpose(\"feature_id\", \"reference_time\", \"time\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}