diff --git a/notebooks/PBP-NRS11-batch.ipynb b/notebooks/PBP-NRS11-batch.ipynb index dc53a52..125bb1d 100644 --- a/notebooks/PBP-NRS11-batch.ipynb +++ b/notebooks/PBP-NRS11-batch.ipynb @@ -5,7 +5,7 @@ "id": "d087f632", "metadata": {}, "source": [ - "## Exercising PBP/PyPAM on NRS11 data\n", + "# Exercising PBP/PyPAM on NRS11 data\n", "\n", "The main steps in this notebook are:\n", "\n", @@ -19,7 +19,9 @@ "id": "879b81f4-90c6-4910-8f63-f66ae0013afc", "metadata": {}, "source": [ - "## Preparations" + "## Preparations\n", + "\n", + "We start by being located at `/opt/pbp/pypam-based-processing` due to some inputs that are already in place in the PBP image." ] }, { @@ -39,9 +41,7 @@ } ], "source": [ - "## We need to be located here\n", - "%cd /opt/pbp/pypam-based-processing\n", - "## mainly due to some inputs that are already in place." + "%cd /opt/pbp/pypam-based-processing" ] }, { @@ -77,7 +77,7 @@ "id": "9fb10e07-b1dd-4a18-979c-1289730746fa", "metadata": {}, "source": [ - "## Code imports and preparations" + "## Code imports" ] }, { @@ -93,6 +93,7 @@ "import dask\n", "import pandas as pd\n", "import time\n", + "import sys\n", "from google.cloud.storage import Client as GsClient # To handle download of `gs:` resources" ] }, @@ -124,105 +125,37 @@ "id": "421e4acf-b060-40d3-9009-f6c94d1e0d84", "metadata": {}, "source": [ - "# A function to process a given day\n", + "# Supporting functions\n", "\n", "PBP includes these two main modules that we will be using below:\n", "\n", - "- `FileHelper`, which facilitates input file reading (including from gs and s3)\n", - "- `ProcessHelper`, which is the main processing module\n", + "- `FileHelper`: Facilitates input file reading. It supports reading local files as well as from GCP (`gs://` URIs) and AWS (`s3://` URIs).\n", + "- `ProcessHelper`: The main processing module.\n", "\n", - "We will first define a high-level function that takes care of HMB generation for a given date.\n", + "We first define a function that takes care of HMB generation for a given date.\n", "\n", - "Based on that function, we will then define one other function to dispatch multiple dates in parallel.\n" + "Based on that function, we then define one other function to dispatch multiple dates in parallel.\n" ] }, { - "cell_type": "code", - "execution_count": 5, - "id": "9d440360", - "metadata": { - "tags": [] - }, - "outputs": [], + "cell_type": "markdown", + "id": "36f949e2-732a-4e32-a68b-f3e2ea755f6b", + "metadata": {}, "source": [ - "## Supported by those PBP modules, we define a function that\n", - "## takes care of processing a given day:\n", - "\n", - "def process_date(date: str, gen_netcdf: bool = True):\n", - " \"\"\"\n", - " Main function to generate the HMB product for a given day.\n", - "\n", - " It makes use of supporting elements in PBP in terms of logging,\n", - " file handling, and PyPAM based HMB generation.\n", - "\n", - " :param date: Date to process, in YYYYMMDD format.\n", - "\n", - " :param gen_netcdf: Allows caller to skip the `.nc` creation here\n", - " and instead save the datasets after all days have been generated\n", - " (see parallel execution below).\n", - "\n", - " :return: the generated xarray dataset.\n", - " \"\"\"\n", - "\n", - " log_filename = f\"{output_dir}/{output_prefix}{date}.log\"\n", - "\n", - " logger = create_logger(\n", - " log_filename_and_level=(log_filename, logging.INFO),\n", - " console_level=None,\n", - " )\n", - "\n", - " # we are only downloading publicly accessible datasets:\n", - " gs_client = GsClient.create_anonymous_client()\n", + "## A function to process a given day\n", "\n", - " file_helper = FileHelper(\n", - " logger=logger,\n", - " json_base_dir=json_base_dir,\n", - " gs_client=gs_client,\n", - " download_dir=download_dir,\n", - " assume_downloaded_files=True,\n", - " retain_downloaded_files=True,\n", - " )\n", - "\n", - " process_helper = ProcessHelper(\n", - " logger=logger,\n", - " file_helper=file_helper,\n", - " output_dir=output_dir,\n", - " output_prefix=output_prefix,\n", - " global_attrs_uri=global_attrs_uri,\n", - " variable_attrs_uri=variable_attrs_uri,\n", - " voltage_multiplier=voltage_multiplier,\n", - " sensitivity_uri=sensitivity_uri,\n", - " subset_to=subset_to,\n", - " )\n", - "\n", - " ## now, get the HMB result:\n", - " print(f'::: Started processing {date=} {log_filename=}')\n", - " result = process_helper.process_day(date)\n", - "\n", - " if gen_netcdf:\n", - " nc_filename = f\"{output_dir}/{output_prefix}{date}.nc\"\n", - " print(f'::: Ended processing {date=} => {nc_filename=}')\n", - " else:\n", - " print(f'::: Ended processing {date=} => (dataset generated in memory)')\n", - "\n", - " if result is not None:\n", - " return result.dataset\n", - " else:\n", - " print(f'::: UNEXPECTED: no segments were processed for {date=}')" + "Supported by those PBP modules, we define a function that takes care of processing a given day:" ] }, { "cell_type": "code", "execution_count": 5, - "id": "771a0332-9278-4c6b-b72f-3e2cdc5831c4", + "id": "9d440360", "metadata": { "tags": [] }, "outputs": [], "source": [ - "## Supported by those PBP modules, we define a function that\n", - "## takes care of processing a given day:\n", - "\n", "def process_date(date: str, gen_netcdf: bool = True):\n", " \"\"\"\n", " Main function to generate the HMB product for a given day.\n", @@ -288,56 +221,17 @@ }, { "cell_type": "markdown", - "id": "71cee960-d5e4-4574-8dd3-f5f30d772869", - "metadata": { - "tags": [] - }, - "source": [ - "# Generating the HMB products" - ] - }, - { - "cell_type": "markdown", - "id": "e8c33ce9-61ed-4169-a976-cb721d472565", + "id": "218ecb94-c78f-4986-a029-80d2924f1481", "metadata": {}, "source": [ - "### Processing a day\n", + "## A function to process multiple days\n", "\n", - "We can call the `process_date` function defined above directly as follows:" + "We use [Dask](https://examples.dask.org/delayed.html) to dispatch, in parallel, multiple instances of the `process_date` function defined above." ] }, { "cell_type": "code", "execution_count": 6, - "id": "99d7252d-45e2-46e8-9379-f072d5d674c5", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "# start_time = time.time()\n", - "\n", - "# generated_dataset = process_date('20200101')\n", - "\n", - "# elapsed_time = time.time() - start_time\n", - "# print(f'===> date completed. Elapsed time: {elapsed_time:.1f} seconds ({elapsed_time/60:.1f} mins)')\n", - "\n", - "# generated_dataset" - ] - }, - { - "cell_type": "markdown", - "id": "46ac16db-da76-4478-a89c-7d89ee900dc4", - "metadata": {}, - "source": [ - "## Prepare process_date for parallel execution\n", - "\n", - "We will use [Dask](https://examples.dask.org/delayed.html) to dispatch multiple instances of `process_date` in parallel." - ] - }, - { - "cell_type": "code", - "execution_count": 7, "id": "9f820f99-e302-475d-b858-bb5dc806c8c1", "metadata": { "tags": [] @@ -379,14 +273,51 @@ " return aggregation.compute()\n" ] }, + { + "cell_type": "markdown", + "id": "71cee960-d5e4-4574-8dd3-f5f30d772869", + "metadata": { + "tags": [] + }, + "source": [ + "# Generating the HMB products" + ] + }, + { + "cell_type": "markdown", + "id": "16561f4a-cd90-4762-8a1d-9072b436f753", + "metadata": {}, + "source": [ + "## Processing a single day\n", + "\n", + "In general, we are more interested in processing multiple dates, but we can process a single date by just calling `process_date` directly:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "99d7252d-45e2-46e8-9379-f072d5d674c5", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "## Just uncomment the following line:\n", + "# process_date('20200101')" + ] + }, { "cell_type": "markdown", "id": "567e2ffd-6f67-425c-bd2f-dfbd5dd702e9", "metadata": {}, "source": [ - "### Processing multiple days\n", + "## Processing multiple days\n", + "\n", + "We use the `process_multiple_dates` defined above to launch the generation of multiple HMB datasets in parallel.\n", "\n", - "We use the `process_multiple_dates` defined above to launch the generation of multiple HMB datasets in parallel." + "**NOTE**: \n", + "- Included JSON files in the current PBP image only cover Jan 01–31, 2020.\n", + "- Such JSON files could alternatively be located in external buckets." ] }, { @@ -437,11 +368,12 @@ } ], "source": [ - "## Set `dates` as the list of 'YYYYMMDD' dates to process in this demo:\n", + "## Here, we set `dates` as the list of 'YYYYMMDD' dates we want to process:\n", "\n", - "## (note: the included JSONs in the current PBP image only cover Jan 01–31, 2020)\n", + "## For just a few dates, we can define the list explicitly:\n", + "# dates = ['20200110', '20200111', '20200112']\n", "\n", - "## We can use pandas to help us generate the list of desired dates:\n", + "## but in general we can use pandas to help us generate the list:\n", "date_range = pd.date_range(start='2020-01-01', end='2020-01-31')\n", "dates = date_range.strftime('%Y%m%d').tolist()\n", "dates" @@ -460,69 +392,69 @@ "output_type": "stream", "text": [ "Launching HMB generation for 31 dates=['20200101', '20200102', '20200103', '20200104', '20200105', '20200106', '20200107', '20200108', '20200109', '20200110', '20200111', '20200112', '20200113', '20200114', '20200115', '20200116', '20200117', '20200118', '20200119', '20200120', '20200121', '20200122', '20200123', '20200124', '20200125', '20200126', '20200127', '20200128', '20200129', '20200130', '20200131']\n", + "::: Started processing date='20200123' log_filename='NRS11/OUTPUT/NRS11_20200123.log'\n", "::: Started processing date='20200103' log_filename='NRS11/OUTPUT/NRS11_20200103.log'\n", - "::: Started processing date='20200102' log_filename='NRS11/OUTPUT/NRS11_20200102.log'\n", + "::: Started processing date='20200121' log_filename='NRS11/OUTPUT/NRS11_20200121.log'\n", + "::: Started processing date='20200131' log_filename='NRS11/OUTPUT/NRS11_20200131.log'\n", + "::: Started processing date='20200127' log_filename='NRS11/OUTPUT/NRS11_20200127.log'\n", + "::: Started processing date='20200124' log_filename='NRS11/OUTPUT/NRS11_20200124.log'\n", + "::: Started processing date='20200107' log_filename='NRS11/OUTPUT/NRS11_20200107.log'\n", + "::: Started processing date='20200113' log_filename='NRS11/OUTPUT/NRS11_20200113.log'\n", "::: Started processing date='20200109' log_filename='NRS11/OUTPUT/NRS11_20200109.log'\n", - "::: Started processing date='20200106' log_filename='NRS11/OUTPUT/NRS11_20200106.log'\n", + "::: Started processing date='20200125' log_filename='NRS11/OUTPUT/NRS11_20200125.log'\n", "::: Started processing date='20200117' log_filename='NRS11/OUTPUT/NRS11_20200117.log'\n", + "::: Started processing date='20200114' log_filename='NRS11/OUTPUT/NRS11_20200114.log'\n", + "::: Started processing date='20200101' log_filename='NRS11/OUTPUT/NRS11_20200101.log'\n", + "::: Started processing date='20200116' log_filename='NRS11/OUTPUT/NRS11_20200116.log'\n", + "::: Started processing date='20200102' log_filename='NRS11/OUTPUT/NRS11_20200102.log'\n", + "::: Started processing date='20200118' log_filename='NRS11/OUTPUT/NRS11_20200118.log'\n", "::: Started processing date='20200108' log_filename='NRS11/OUTPUT/NRS11_20200108.log'\n", "::: Started processing date='20200104' log_filename='NRS11/OUTPUT/NRS11_20200104.log'\n", - "::: Started processing date='20200116' log_filename='NRS11/OUTPUT/NRS11_20200116.log'\n", - "::: Started processing date='20200124' log_filename='NRS11/OUTPUT/NRS11_20200124.log'\n", - "::: Started processing date='20200121' log_filename='NRS11/OUTPUT/NRS11_20200121.log'\n", + "::: Started processing date='20200106' log_filename='NRS11/OUTPUT/NRS11_20200106.log'\n", "::: Started processing date='20200120' log_filename='NRS11/OUTPUT/NRS11_20200120.log'\n", - "::: Started processing date='20200130' log_filename='NRS11/OUTPUT/NRS11_20200130.log'\n", - "::: Started processing date='20200107' log_filename='NRS11/OUTPUT/NRS11_20200107.log'\n", "::: Started processing date='20200119' log_filename='NRS11/OUTPUT/NRS11_20200119.log'\n", + "::: Started processing date='20200110' log_filename='NRS11/OUTPUT/NRS11_20200110.log'\n", + "::: Started processing date='20200128' log_filename='NRS11/OUTPUT/NRS11_20200128.log'\n", + "::: Started processing date='20200130' log_filename='NRS11/OUTPUT/NRS11_20200130.log'\n", "::: Started processing date='20200129' log_filename='NRS11/OUTPUT/NRS11_20200129.log'\n", - "::: Started processing date='20200113' log_filename='NRS11/OUTPUT/NRS11_20200113.log'\n", - "::: Started processing date='20200126' log_filename='NRS11/OUTPUT/NRS11_20200126.log'\n", - "::: Started processing date='20200125' log_filename='NRS11/OUTPUT/NRS11_20200125.log'\n", - "::: Started processing date='20200101' log_filename='NRS11/OUTPUT/NRS11_20200101.log'\n", - "::: Started processing date='20200105' log_filename='NRS11/OUTPUT/NRS11_20200105.log'\n", + "::: Started processing date='20200112' log_filename='NRS11/OUTPUT/NRS11_20200112.log'\n", "::: Started processing date='20200122' log_filename='NRS11/OUTPUT/NRS11_20200122.log'\n", + "::: Started processing date='20200105' log_filename='NRS11/OUTPUT/NRS11_20200105.log'\n", "::: Started processing date='20200115' log_filename='NRS11/OUTPUT/NRS11_20200115.log'\n", - "::: Started processing date='20200128' log_filename='NRS11/OUTPUT/NRS11_20200128.log'\n", - "::: Started processing date='20200131' log_filename='NRS11/OUTPUT/NRS11_20200131.log'\n", - "::: Started processing date='20200123' log_filename='NRS11/OUTPUT/NRS11_20200123.log'\n", - "::: Started processing date='20200114' log_filename='NRS11/OUTPUT/NRS11_20200114.log'\n", - "::: Started processing date='20200118' log_filename='NRS11/OUTPUT/NRS11_20200118.log'\n", - "::: Started processing date='20200127' log_filename='NRS11/OUTPUT/NRS11_20200127.log'\n", - "::: Started processing date='20200112' log_filename='NRS11/OUTPUT/NRS11_20200112.log'\n", - "::: Started processing date='20200110' log_filename='NRS11/OUTPUT/NRS11_20200110.log'\n", + "::: Started processing date='20200126' log_filename='NRS11/OUTPUT/NRS11_20200126.log'\n", "::: Started processing date='20200111' log_filename='NRS11/OUTPUT/NRS11_20200111.log'\n", - "::: Ended processing date='20200117' => (dataset generated in memory)\n", + "::: Ended processing date='20200101' => (dataset generated in memory)\n", + "::: Ended processing date='20200110' => (dataset generated in memory)\n", "::: Ended processing date='20200130' => (dataset generated in memory)\n", "::: Ended processing date='20200103' => (dataset generated in memory)\n", + "::: Ended processing date='20200123' => (dataset generated in memory)\n", + "::: Ended processing date='20200119' => (dataset generated in memory)\n", + "::: Ended processing date='20200131' => (dataset generated in memory)\n", + "::: Ended processing date='20200120' => (dataset generated in memory)\n", + "::: Ended processing date='20200117' => (dataset generated in memory)\n", "::: Ended processing date='20200102' => (dataset generated in memory)\n", "::: Ended processing date='20200116' => (dataset generated in memory)\n", - "::: Ended processing date='20200110' => (dataset generated in memory)\n", + "::: Ended processing date='20200113' => (dataset generated in memory)\n", "::: Ended processing date='20200107' => (dataset generated in memory)\n", - "::: Ended processing date='20200118' => (dataset generated in memory)\n", - "::: Ended processing date='20200123' => (dataset generated in memory)\n", + "::: Ended processing date='20200128' => (dataset generated in memory)\n", "::: Ended processing date='20200127' => (dataset generated in memory)\n", - "::: Ended processing date='20200105' => (dataset generated in memory)\n", - "::: Ended processing date='20200113' => (dataset generated in memory)\n", - "::: Ended processing date='20200115' => (dataset generated in memory)\n", "::: Ended processing date='20200109' => (dataset generated in memory)\n", - "::: Ended processing date='20200104' => (dataset generated in memory)\n", - "::: Ended processing date='20200119' => (dataset generated in memory)\n", - "::: Ended processing date='20200129' => (dataset generated in memory)\n", - "::: Ended processing date='20200124' => (dataset generated in memory)\n", - "::: Ended processing date='20200114' => (dataset generated in memory)\n", - "::: Ended processing date='20200112' => (dataset generated in memory)\n", - "::: Ended processing date='20200121' => (dataset generated in memory)\n", - "::: Ended processing date='20200108' => (dataset generated in memory)\n", "::: Ended processing date='20200122' => (dataset generated in memory)\n", - "::: Ended processing date='20200128' => (dataset generated in memory)\n", - "::: Ended processing date='20200111' => (dataset generated in memory)\n", - "::: Ended processing date='20200101' => (dataset generated in memory)\n", "::: Ended processing date='20200126' => (dataset generated in memory)\n", + "::: Ended processing date='20200112' => (dataset generated in memory)\n", + "::: Ended processing date='20200118' => (dataset generated in memory)\n", "::: Ended processing date='20200106' => (dataset generated in memory)\n", + "::: Ended processing date='20200121' => (dataset generated in memory)\n", + "::: Ended processing date='20200105' => (dataset generated in memory)\n", + "::: Ended processing date='20200104' => (dataset generated in memory)\n", + "::: Ended processing date='20200111' => (dataset generated in memory)\n", + "::: Ended processing date='20200114' => (dataset generated in memory)\n", + "::: Ended processing date='20200108' => (dataset generated in memory)\n", + "::: Ended processing date='20200124' => (dataset generated in memory)\n", + "::: Ended processing date='20200115' => (dataset generated in memory)\n", "::: Ended processing date='20200125' => (dataset generated in memory)\n", - "::: Ended processing date='20200131' => (dataset generated in memory)\n", - "::: Ended processing date='20200120' => (dataset generated in memory)\n", - "===> All 31 dates completed. Elapsed time: 689.1 seconds (11.5 mins)\n", + "::: Ended processing date='20200129' => (dataset generated in memory)\n", + "===> All 31 dates completed. Elapsed time: 684.4 seconds (11.4 mins)\n", "Generated datasets: 31\n", "\n", "Saving generated datasets...\n", @@ -606,37 +538,37 @@ "text": [ "\n", "Listing *.nc in OUTPUT folder:\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200101.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200102.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200103.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200104.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200105.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200106.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200107.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200108.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200109.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200110.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200111.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200112.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200113.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200114.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200115.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200116.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200117.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200118.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200119.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200120.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200121.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200122.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200123.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200124.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200125.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200126.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200127.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200128.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200129.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200130.nc\n", - "-rw-r--r-- 1 jovyan users 6316372 Feb 8 19:07 NRS11/OUTPUT/NRS11_20200131.nc\n" + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200101.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200102.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200103.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200104.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200105.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200106.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200107.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200108.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200109.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200110.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200111.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200112.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200113.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200114.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200115.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200116.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200117.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200118.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200119.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200120.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200121.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200122.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200123.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200124.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200125.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200126.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200127.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200128.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200129.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200130.nc\n", + "-rw-r--r-- 1 jovyan users 6316372 Feb 12 19:39 NRS11/OUTPUT/NRS11_20200131.nc\n" ] } ],