You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sdap.apache.org by le...@apache.org on 2017/10/27 22:40:01 UTC

[24/51] [partial] incubator-sdap-nexus git commit: SDAP-1 Import all code under the SDAP SGA

http://git-wip-us.apache.org/repos/asf/incubator-sdap-nexus/blob/ff98fa34/esip-workshop/ec2/startup.sh
----------------------------------------------------------------------
diff --git a/esip-workshop/ec2/startup.sh b/esip-workshop/ec2/startup.sh
new file mode 100755
index 0000000..9fc6a9a
--- /dev/null
+++ b/esip-workshop/ec2/startup.sh
@@ -0,0 +1,31 @@
+#! /bin/bash
+
+# Start infrastructure
+cd /home/ndeploy/nexus/esip-workshop/docker/infrastructure
+docker-compose up -d cassandra1
+
+sleep 15
+
+docker-compose up -d
+
+sleep 30
+
+# Try warming up Solr cache
+source /home/ndeploy/nexus/esip-workshop/docker/infrastructure/.env
+find $HOST_DATA_DIR/solr1/nexustiles_shard2_replica1/data/ -type f -exec cat {} \; > /dev/null
+find $HOST_DATA_DIR/solr2/nexustiles_shard1_replica1/data/ -type f -exec cat {} \; > /dev/null
+find $HOST_DATA_DIR/solr1/nexustiles_shard3_replica1/data/ -type f -exec cat {} \; > /dev/null
+
+docker exec -it solr1 curl -g 'http://localhost:8983/solr/nexustiles/select?q=dataset_s:AVHRR_OI_L4_GHRSST_NCEI&fq=geo:[40.0,-150.0+TO+55.0,-120.0]&fq={!frange+l%3D0+u%3D0}ms(tile_min_time_dt,tile_max_time_dt)&fq=tile_count_i:[1+TO+*]&fq=tile_min_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+&fl=solr_id_s&fl=score&facet=true&facet.field=tile_min_time_dt&facet.limit=-1&f.tile_min_time_dt.facet.mincount=1&f.tile_min_time_dt.facet.limit=-1&start=0&rows=0' > /dev/null
+docker exec -it solr1 curl -g 'http://localhost:8983/solr/nexustiles/select?q=dataset_s:TRMM_3B42_daily&fq=geo:[40.0,-150.0+TO+55.0,-120.0]&fq={!frange+l%3D0+u%3D0}ms(tile_min_time_dt,tile_max_time_dt)&fq=tile_count_i:[1+TO+*]&fq=tile_min_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+&fl=solr_id_s&fl=score&facet=true&facet.field=tile_min_time_dt&facet.limit=-1&f.tile_min_time_dt.facet.mincount=1&f.tile_min_time_dt.facet.limit=-1&start=0&rows=0' > /dev/null
+docker exec -it solr1 curl -g 'http://localhost:8983/solr/nexustiles/select?q=dataset_s:AVHRR_OI_L4_GHRSST_NCEI&fq={!field+f%3Dgeo}Intersects(POLYGON+((-150+40,+-120+40,+-120+55,+-150+55,+-150+40)))&fq=tile_count_i:[1+TO+*]&fq=(tile_min_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+OR+tile_max_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+OR+(tile_min_time_dt:[*+TO+2013-01-01T00:00:00Z]+AND+tile_max_time_dt:[2016-12-31T00:00:00Z+TO+*]))&fl=*&sort=tile_min_time_dt+asc,tile_max_time_dt+asc' > /dev/null
+docker exec -it solr1 curl -g 'http://localhost:8983/solr/nexustiles/select?q=dataset_s:TRMM_3B42_daily&fq={!field+f%3Dgeo}Intersects(POLYGON+((-150+40,+-120+40,+-120+55,+-150+55,+-150+40)))&fq=tile_count_i:[1+TO+*]&fq=(tile_min_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+OR+tile_max_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+OR+(tile_min_time_dt:[*+TO+2013-01-01T00:00:00Z]+AND+tile_max_time_dt:[2016-12-31T00:00:00Z+TO+*]))&fl=*&sort=tile_min_time_dt+asc,tile_max_time_dt+asc' > /dev/null
+docker exec -it solr1 curl -g 'http://localhost:8983/solr/nexustiles/select?q=dataset_s:AVHRR_OI_L4_GHRSST_NCEI&fq={!field+f%3Dgeo}Intersects(POLYGON+((-150+40,+-120+40,+-120+55,+-150+55,+-150+40)))&fq=tile_count_i:[1+TO+*]&fq=(tile_min_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+OR+tile_max_time_dt:[2013-01-01T00:00:00Z+TO+2016-12-31T00:00:00Z]+OR+(tile_min_time_dt:[*+TO+2013-01-01T00:00:00Z]+AND+tile_max_time_dt:[2016-12-31T00:00:00Z+TO+*]))&fl=id&sort=tile_min_time_dt+asc,tile_min_lon+asc,tile_min_lat+asc' > /dev/null
+docker exec -it solr1 curl -g 'http://localhost:8983/solr/nexustiles/select?q=dataset_s:AVHRR_OI_L4_GHRSST_NCEI_CLIM&fq={!field+f%3Dgeo}Intersects(POLYGON+((-150+40,+-120+40,+-120+55,+-150+55,+-150+40)))&fq=tile_count_i:[1+TO+*]&fl=solr_id_s&fl=score&sort=day_of_year_i+desc' > /dev/null
+
+# Start analysis
+cd /home/ndeploy/nexus/esip-workshop/docker/analysis
+docker-compose up -d
+
+# Start Jupyter
+docker run -d -p 8000:8888 -v /home/ndeploy/nexus/esip-workshop/student-material:/home/jovyan --network infrastructure_nexus --name jupyter nexusjpl/jupyter start-notebook.sh --NotebookApp.password='sha1:1b994085c83b:05d658b3866739ee07f5cb52a67474cdc898840e' --NotebookApp.allow_origin='*'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-sdap-nexus/blob/ff98fa34/esip-workshop/other-notebooks/Nexus Deployment and Ingestion.ipynb
----------------------------------------------------------------------
diff --git a/esip-workshop/other-notebooks/Nexus Deployment and Ingestion.ipynb b/esip-workshop/other-notebooks/Nexus Deployment and Ingestion.ipynb
new file mode 100644
index 0000000..4a79d5b
--- /dev/null
+++ b/esip-workshop/other-notebooks/Nexus Deployment and Ingestion.ipynb	
@@ -0,0 +1,198 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Step 1: Sign up / get assigned EC2 instance <br>\n",
+    "Step 2: SSH into EC2 instance <br>\n",
+    "Step 3: Start up the cluster by running the following commands <br>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "cd ~/nexus/esip-workshop/docker/infrastructure\n",
+    "docker-compose up -d cassandra1\n",
+    "docker logs -f cassandra1"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Step 4: Wait to see \"INFO  01:57:02 Starting listening for CQL clients on /0.0.0.0:9042…\" and then run"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "docker-compose up -d"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Step 5: Verify services are running using"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "docker ps"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "There should be 9 containers running: 3 solr, 3 zookeeper, and 3 cassandra. If they are not all running, run docker-compose up -d again."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Step 6: Start the analysis cluster"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "cd ~/nexus/esip-workshop/docker/analysis\n",
+    "docker-compose up -d"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Step 7: Verify services are running using"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "docker ps"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "There should be an additional 5 containers running: 3 mesos-agent, 1 mesos-master, 1 nexus-webapp"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Step 8: Start the ingestion cluster"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "cd ~/nexus/esip-workshop/docker/ingest\n",
+    "docker-compose up -d"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Step 9: Verify services are running using"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "docker ps"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "There should be an additional 9 containers running: 3 kafka, 3 xd-container, 1 redis, 1 mysqldb, 1 xd-admin"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Ingest 2017 AVHRR data that has been staged under /home/ndeploy/ingest/data/avhrr/2017 <br>\n",
+    "<br>\n",
+    "Step 10: Deploy the stream to Spring XD using nx-deploy-stream.sh available inside xd-admin container"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "docker exec -it xd-admin /usr/local/nx-deploy-stream.sh --datasetName AVHRR_OI_L4_GHRSST_NCEI --dataDirectory /usr/local/data/nexus/avhrr/2017 --variableName analysed_sst --tilesDesired 1296"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3.0
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.1"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-sdap-nexus/blob/ff98fa34/esip-workshop/other-notebooks/Nexus Monitoring.ipynb
----------------------------------------------------------------------
diff --git a/esip-workshop/other-notebooks/Nexus Monitoring.ipynb b/esip-workshop/other-notebooks/Nexus Monitoring.ipynb
new file mode 100644
index 0000000..3db5c9e
--- /dev/null
+++ b/esip-workshop/other-notebooks/Nexus Monitoring.ipynb	
@@ -0,0 +1,1159 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Get Solr cluster status"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 63,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{\n",
+      "  \"cluster\": {\n",
+      "    \"collections\": {\n",
+      "      \"nexustiles\": {\n",
+      "        \"replicationFactor\": \"1\", \n",
+      "        \"configName\": \"nexustiles\", \n",
+      "        \"maxShardsPerNode\": \"1\", \n",
+      "        \"shards\": {\n",
+      "          \"shard2\": {\n",
+      "            \"range\": \"d5550000-2aa9ffff\", \n",
+      "            \"state\": \"active\", \n",
+      "            \"replicas\": {\n",
+      "              \"core_node3\": {\n",
+      "                \"core\": \"nexustiles_shard2_replica1\", \n",
+      "                \"state\": \"active\", \n",
+      "                \"base_url\": \"http://172.20.0.12:8983/solr\", \n",
+      "                \"leader\": \"true\", \n",
+      "                \"node_name\": \"172.20.0.12:8983_solr\"\n",
+      "              }\n",
+      "            }\n",
+      "          }, \n",
+      "          \"shard3\": {\n",
+      "            \"range\": \"2aaa0000-7fffffff\", \n",
+      "            \"state\": \"active\", \n",
+      "            \"replicas\": {\n",
+      "              \"core_node2\": {\n",
+      "                \"core\": \"nexustiles_shard3_replica1\", \n",
+      "                \"state\": \"active\", \n",
+      "                \"base_url\": \"http://172.20.0.13:8983/solr\", \n",
+      "                \"leader\": \"true\", \n",
+      "                \"node_name\": \"172.20.0.13:8983_solr\"\n",
+      "              }\n",
+      "            }\n",
+      "          }, \n",
+      "          \"shard1\": {\n",
+      "            \"range\": \"80000000-d554ffff\", \n",
+      "            \"state\": \"active\", \n",
+      "            \"replicas\": {\n",
+      "              \"core_node1\": {\n",
+      "                \"core\": \"nexustiles_shard1_replica1\", \n",
+      "                \"state\": \"active\", \n",
+      "                \"base_url\": \"http://172.20.0.5:8983/solr\", \n",
+      "                \"leader\": \"true\", \n",
+      "                \"node_name\": \"172.20.0.5:8983_solr\"\n",
+      "              }\n",
+      "            }\n",
+      "          }\n",
+      "        }, \n",
+      "        \"autoAddReplicas\": \"false\", \n",
+      "        \"router\": {\n",
+      "          \"name\": \"compositeId\"\n",
+      "        }, \n",
+      "        \"znodeVersion\": 37\n",
+      "      }\n",
+      "    }, \n",
+      "    \"live_nodes\": [\n",
+      "      \"172.20.0.5:8983_solr\", \n",
+      "      \"172.20.0.13:8983_solr\", \n",
+      "      \"172.20.0.12:8983_solr\"\n",
+      "    ]\n",
+      "  }, \n",
+      "  \"responseHeader\": {\n",
+      "    \"status\": 0, \n",
+      "    \"QTime\": 23\n",
+      "  }\n",
+      "}\n"
+     ]
+    }
+   ],
+   "source": [
+    "import requests\n",
+    "import json\n",
+    "\n",
+    "response = requests.get('http://solr1:8983/solr/admin/collections?action=clusterstatus&wt=json')\n",
+    "print(json.dumps(response.json(), indent=2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Get number of documents in Solr"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of documents found: 7584417\n"
+     ]
+    }
+   ],
+   "source": [
+    "import requests\n",
+    "\n",
+    "response = requests.get('http://solr1:8983/solr/nexustiles/select?q=*:*&wt=json&rows=0')\n",
+    "data = response.json()\n",
+    "print(\"Number of documents found: %d\" % data['response']['numFound'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Get Cassandra cluster status"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Connected to Cassandra cluster successfully.\n"
+     ]
+    }
+   ],
+   "source": [
+    "from cassandra.cluster import Cluster\n",
+    "\n",
+    "cluster = Cluster(['cassandra1', 'cassandra2', 'cassandra3'])\n",
+    "session = cluster.connect(keyspace=\"nexustiles\")\n",
+    "print(\"Connected to Cassandra cluster successfully.\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Get Mesos cluster status"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[\n",
+      "  {\n",
+      "    \"id\": \"cc739ad7-2db8-424c-9272-ce42ad00bfbb-S2\",\n",
+      "    \"hostname\": \"18e682b9af0e\",\n",
+      "    \"port\": 5051,\n",
+      "    \"attributes\": {},\n",
+      "    \"pid\": \"slave(1)@172.18.0.14:5051\",\n",
+      "    \"registered_time\": 1500675598.34831,\n",
+      "    \"resources\": {\n",
+      "      \"disk\": 506862.0,\n",
+      "      \"mem\": 242608.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0,\n",
+      "      \"ports\": \"[31000-32000]\"\n",
+      "    },\n",
+      "    \"used_resources\": {\n",
+      "      \"disk\": 0.0,\n",
+      "      \"mem\": 6758.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0\n",
+      "    },\n",
+      "    \"offered_resources\": {\n",
+      "      \"disk\": 0.0,\n",
+      "      \"mem\": 0.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 0.0\n",
+      "    },\n",
+      "    \"reserved_resources\": {},\n",
+      "    \"unreserved_resources\": {\n",
+      "      \"disk\": 506862.0,\n",
+      "      \"mem\": 242608.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0,\n",
+      "      \"ports\": \"[31000-32000]\"\n",
+      "    },\n",
+      "    \"active\": true,\n",
+      "    \"version\": \"1.2.0\"\n",
+      "  },\n",
+      "  {\n",
+      "    \"id\": \"cc739ad7-2db8-424c-9272-ce42ad00bfbb-S1\",\n",
+      "    \"hostname\": \"8951841d1da6\",\n",
+      "    \"port\": 5051,\n",
+      "    \"attributes\": {},\n",
+      "    \"pid\": \"slave(1)@172.18.0.13:5051\",\n",
+      "    \"registered_time\": 1500675597.3287,\n",
+      "    \"resources\": {\n",
+      "      \"disk\": 506862.0,\n",
+      "      \"mem\": 242608.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0,\n",
+      "      \"ports\": \"[31000-32000]\"\n",
+      "    },\n",
+      "    \"used_resources\": {\n",
+      "      \"disk\": 0.0,\n",
+      "      \"mem\": 6758.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0\n",
+      "    },\n",
+      "    \"offered_resources\": {\n",
+      "      \"disk\": 0.0,\n",
+      "      \"mem\": 0.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 0.0\n",
+      "    },\n",
+      "    \"reserved_resources\": {},\n",
+      "    \"unreserved_resources\": {\n",
+      "      \"disk\": 506862.0,\n",
+      "      \"mem\": 242608.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0,\n",
+      "      \"ports\": \"[31000-32000]\"\n",
+      "    },\n",
+      "    \"active\": true,\n",
+      "    \"version\": \"1.2.0\"\n",
+      "  },\n",
+      "  {\n",
+      "    \"id\": \"cc739ad7-2db8-424c-9272-ce42ad00bfbb-S0\",\n",
+      "    \"hostname\": \"c0240926a4a2\",\n",
+      "    \"port\": 5051,\n",
+      "    \"attributes\": {},\n",
+      "    \"pid\": \"slave(1)@172.18.0.12:5051\",\n",
+      "    \"registered_time\": 1500675597.23425,\n",
+      "    \"resources\": {\n",
+      "      \"disk\": 506862.0,\n",
+      "      \"mem\": 242608.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0,\n",
+      "      \"ports\": \"[31000-32000]\"\n",
+      "    },\n",
+      "    \"used_resources\": {\n",
+      "      \"disk\": 0.0,\n",
+      "      \"mem\": 6758.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0\n",
+      "    },\n",
+      "    \"offered_resources\": {\n",
+      "      \"disk\": 0.0,\n",
+      "      \"mem\": 0.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 0.0\n",
+      "    },\n",
+      "    \"reserved_resources\": {},\n",
+      "    \"unreserved_resources\": {\n",
+      "      \"disk\": 506862.0,\n",
+      "      \"mem\": 242608.0,\n",
+      "      \"gpus\": 0.0,\n",
+      "      \"cpus\": 32.0,\n",
+      "      \"ports\": \"[31000-32000]\"\n",
+      "    },\n",
+      "    \"active\": true,\n",
+      "    \"version\": \"1.2.0\"\n",
+      "  }\n",
+      "]\n"
+     ]
+    }
+   ],
+   "source": [
+    "import requests\n",
+    "import json\n",
+    "\n",
+    "response = requests.get('http://mesos-master:5050/state.json')\n",
+    "print(json.dumps(response.json()['slaves'], indent=2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "collapsed": true
+   },
+   "source": [
+    "# Get Spark cluster job status"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "import requests\n",
+    "\n",
+    "response = requests.get('http://nexus-webapp:4040/api/v1/applications')\n",
+    "appId = response.json()[0]['id']\n",
+    "response = requests.get(\"http://nexus-webapp:4040/api/v1/applications/%s/jobs\" % appId)\n",
+    "for job in response.json():\n",
+    "    print(job['name'])\n",
+    "    print('\\t' + job['status'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Get Nexus dataset list"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "import requests\n",
+    "from datetime import datetime\n",
+    "\n",
+    "response = requests.get('http://nexus-webapp:8083/list')\n",
+    "data = response.json()\n",
+    "for dataset in data:\n",
+    "    print(dataset['shortName'])\n",
+    "    print('\\t' + datetime.utcfromtimestamp(dataset['start']/1000).strftime('%Y-%m-%dT%H:%M:%SZ'))\n",
+    "    print('\\t' + datetime.utcfromtimestamp(dataset['end']/1000).strftime('%Y-%m-%dT%H:%M:%SZ'))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Get listing of granules and tile count"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "20160101120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160102120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160103120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160104120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160105120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160106120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160107120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160108120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160109120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160110120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160111120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160112120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160113120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160114120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160115120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160116120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160117120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160118120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160119120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160120120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160121120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160122120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160123120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160124120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160125120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160126120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160127120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160128120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160129120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160130120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160131120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160201120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160202120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160203120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160204120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160205120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160206120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160207120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160208120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160209120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160210120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160211120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160212120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160213120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160214120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160215120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160216120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160217120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160218120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160219120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160220120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160221120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160222120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160223120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160224120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160225120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160226120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160227120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160228120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160229120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160301120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160302120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160303120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160304120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160305120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160306120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160307120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160308120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160309120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160310120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160311120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160312120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160313120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160314120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160315120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160316120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160317120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160318120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160319120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160320120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160321120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160322120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160323120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160324120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160325120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160326120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160327120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160328120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160329120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160330120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160331120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160401120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160402120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160403120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160404120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160405120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160407120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160408120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160409120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160410120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160411120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160412120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160413120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160414120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160415120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160416120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160417120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160418120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160419120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160420120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160421120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160422120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160423120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160424120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160425120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160426120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160427120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160428120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160429120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160430120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160501120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160502120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160503120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160504120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160505120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160506120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160507120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160508120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160509120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160510120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160511120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160512120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160513120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160514120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160515120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160516120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160517120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160518120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160519120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160520120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160521120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160522120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160523120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160524120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160525120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160526120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160527120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160528120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160529120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160530120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160531120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160601120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160602120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160603120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160604120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160605120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160606120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160607120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160608120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160609120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160610120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160611120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160612120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160613120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160614120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160615120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160616120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160617120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160618120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160619120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160620120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160621120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160622120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160623120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160624120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160625120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160626120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160627120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160628120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160629120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160630120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160701120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160702120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160703120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160704120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160705120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160706120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160707120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160708120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160709120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160710120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160711120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160712120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160713120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160714120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160715120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160716120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160717120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160718120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160719120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160720120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160721120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160722120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160723120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160724120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160725120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160726120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160727120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160728120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160729120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160730120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160731120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160801120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160802120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160803120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160804120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160805120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160806120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160807120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160808120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160809120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160810120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160811120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160812120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160813120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160814120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160815120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160816120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160817120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160818120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160819120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160820120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160821120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160822120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160823120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160824120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160825120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160826120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160827120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160828120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160829120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160830120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160831120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160901120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160902120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160903120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160904120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160905120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160906120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160907120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160908120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160909120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160910120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160911120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160912120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160913120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160914120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160915120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160916120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160917120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160918120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160919120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160920120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160921120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160922120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160923120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160924120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160925120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160926120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160927120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160928120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160929120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20160930120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161001120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161002120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161003120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161004120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161005120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161006120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161007120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161008120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161009120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161010120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161011120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161012120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161013120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161014120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161015120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161016120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161017120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161018120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161019120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161020120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161021120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161022120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161023120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161024120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161025120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161026120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161027120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161028120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161029120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161030120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161031120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161101120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161102120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161103120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161104120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161105120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161106120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161107120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161108120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161109120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161110120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161111120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161112120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161113120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161114120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161115120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161116120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161117120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161118120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161119120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161120120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161121120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161122120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161123120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161124120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161125120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161126120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161127120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161128120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161129120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161130120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161201120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161202120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161203120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161204120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161205120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161206120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161207120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161208120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161209120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161210120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161211120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161212120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161213120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161214120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161215120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161216120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161217120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161218120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161219120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161220120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161221120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161222120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161223120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161224120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161225120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161226120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161227120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161228120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161229120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161230120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n",
+      "20161231120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc\n",
+      "1053\n"
+     ]
+    }
+   ],
+   "source": [
+    "import requests\n",
+    "\n",
+    "dataset = 'AVHRR_OI_L4_GHRSST_NCEI'\n",
+    "year = 2016\n",
+    "\n",
+    "response = requests.get(\"http://solr1:8983/solr/nexustiles/query?q=granule_s:%d*&rows=0&fq=dataset_s:%s&facet.field=granule_s&facet=true&facet.mincount=1&facet.limit=-1&facet.sort=index\" % (year, dataset))\n",
+    "data = response.json()\n",
+    "for k in data['facet_counts'][\"facet_fields\"]['granule_s']:\n",
+    "    print(k)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Get number of granules ingested"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Number of granules for AVHRR_OI_L4_GHRSST_NCEI : 365\n"
+     ]
+    }
+   ],
+   "source": [
+    "import requests\n",
+    "\n",
+    "dataset = 'AVHRR_OI_L4_GHRSST_NCEI'\n",
+    "year = 2016\n",
+    "\n",
+    "response = requests.get(\"http://solr1:8983/solr/nexustiles/query?q=granule_s:%d*&json.facet={granule_s:'unique(granule_s)'}&rows=0&fq=dataset_s:%s\" % (year, dataset))\n",
+    "data = response.json()\n",
+    "print(\"Number of granules for %s : %d\" % (dataset, data['facets']['granule_s']))"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.1"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}

http://git-wip-us.apache.org/repos/asf/incubator-sdap-nexus/blob/ff98fa34/esip-workshop/student-material/workshop1/1 - Introduction.ipynb
----------------------------------------------------------------------
diff --git a/esip-workshop/student-material/workshop1/1 - Introduction.ipynb b/esip-workshop/student-material/workshop1/1 - Introduction.ipynb
new file mode 100644
index 0000000..b4f2c3c
--- /dev/null
+++ b/esip-workshop/student-material/workshop1/1 - Introduction.ipynb	
@@ -0,0 +1,75 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Introduction\n",
+    "\n",
+    "In this workshop you will learn how to interact with the NEXUS system and its `nexuscli` python client module.  \n",
+    "\n",
+    "\n",
+    "## Jupyter\n",
+    "\n",
+    "If you are unfamiliar with Jupyter Notebooks, it is recommended that you read through some of the basic commands by following this link:  \n",
+    "\n",
+    "[Jupyter Notebook Basics](http://nbviewer.jupyter.org/github/jupyter/notebook/blob/master/docs/source/examples/Notebook/Notebook%20Basics.ipynb)  \n",
+    "\n",
+    "Additionally, the [2 - Running Code](2 - Running Code.ipynb) notebook provides a short walkthrough on how to use Jupyter Notebook.\n",
+    "\n",
+    "Important hints:\n",
+    "  - Clicking in a cell and pressing `ctrl + enter` will run that cell\n",
+    "  - A cell is running as long as there is an asterisk `*` next to that cell. When the cell is finished running, a number will appear\n",
+    "  - All cells in a Jupyter notebook are part of the same \"program\". Variables and methods defined in cells are available to other cells in the same notebook as long as you run the cell.\n",
+    "\n",
+    "\n",
+    "## Python 3\n",
+    "\n",
+    "All of the notebooks in this workshop run using the Python 3 kernel. The expectation is that you have basic python programming skills or are able to understand simple python code.\n",
+    "\n",
+    "If needed, an introduction to Python 3 (Courtesy of [Twisted Hardware](https://github.com/TwistedHardware/mltutorial/blob/b90fb1983221a2b53666d92a908dac015cf230b2/notebooks/jupyter/3.%20Python%20Basics.ipynb)) is provided in the [3 - Python Basics](3 - Python Basics.ipynb) notebook.\n",
+    "\n",
+    "Important hints:\n",
+    " - In python `datetime` objects can be created using the constructor `datetime(int: year, int: month, int: day)`. For example: `a_date = datetime(2016, 11, 1)`\n",
+    " - Lists are considered sequences. To construct a list in python use square brackets. For example: `my_list = [\"This list contains one string\"]`\n",
+    " \n",
+    "\n",
+    "## nexuscli Python Client\n",
+    "\n",
+    "This workshop uses the `nexuscli` python client module. The source code for this module can be found on [GitHub](https://github.com/dataplumber/nexus/tree/master/client). Documentation is available [as html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/dataplumber/nexus/a033052f3113c377b95361e3ad05ce07f5ecd41d/client/docs/nexuscli/nexuscli.m.html) and can also be viewed directly in Jupyter notebook by importing the module, running the cell, typing `nexuscli`, and then pressing `shift + tab`.\n",
+    "\n",
+    "## Dataset Descriptions\n",
+    "\n",
+    "There are two datasets available for analysis during this workshop:\n",
+    "\n",
+    "1. AVHRR_OI-NCEI-L4-GLOB-v2.0\n",
+    "  - Timeframe available: 2005 - 2016\n",
+    "  - [Dataset Description](http://podaac.jpl.nasa.gov/dataset/AVHRR_OI-NCEI-L4-GLOB-v2.0)\n",
+    "2. TRMM_3B42_V7\n",
+    "  - Timeframe available: 2005 - 2015\n",
+    "  - [Dataset Description](https://disc.gsfc.nasa.gov/datasets/TRMM_3B42_V7/summary)\n"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.1"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}

http://git-wip-us.apache.org/repos/asf/incubator-sdap-nexus/blob/ff98fa34/esip-workshop/student-material/workshop1/2 - Running Code.ipynb
----------------------------------------------------------------------
diff --git a/esip-workshop/student-material/workshop1/2 - Running Code.ipynb b/esip-workshop/student-material/workshop1/2 - Running Code.ipynb
new file mode 100644
index 0000000..6e1a6fd
--- /dev/null
+++ b/esip-workshop/student-material/workshop1/2 - Running Code.ipynb	
@@ -0,0 +1,271 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Running Code"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "First and foremost, the Jupyter Notebook is an interactive environment for writing and running code. The notebook is capable of running code in a wide range of languages. However, each notebook is associated with a single kernel.  This notebook is associated with the IPython kernel, therefor runs Python code."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Code cells allow you to enter and run code"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Run a code cell using `Shift-Enter` or pressing the <button class='btn btn-default btn-xs'><i class=\"icon-step-forward fa fa-step-forward\"></i></button> button in the toolbar above:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "a = 10"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(a)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "There are two other keyboard shortcuts for running code:\n",
+    "\n",
+    "* `Alt-Enter` runs the current cell and inserts a new one below.\n",
+    "* `Ctrl-Enter` run the current cell and enters command mode."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Managing the Kernel"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Code is run in a separate process called the Kernel.  The Kernel can be interrupted or restarted.  Try running the following cell and then hit the <button class='btn btn-default btn-xs'><i class='icon-stop fa fa-stop'></i></button> button in the toolbar above."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "import time\n",
+    "time.sleep(10)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "If the Kernel dies you will be prompted to restart it. Here we call the low-level system libc.time routine with the wrong argument via\n",
+    "ctypes to segfault the Python interpreter:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "import sys\n",
+    "from ctypes import CDLL\n",
+    "# This will crash a Linux or Mac system\n",
+    "# equivalent calls can be made on Windows\n",
+    "\n",
+    "# Uncomment these lines if you would like to see the segfault\n",
+    "\n",
+    "# dll = 'dylib' if sys.platform == 'darwin' else 'so.6'\n",
+    "# libc = CDLL(\"libc.%s\" % dll) \n",
+    "# libc.time(-1)  # BOOM!!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Cell menu"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The \"Cell\" menu has a number of menu items for running code in different ways. These includes:\n",
+    "\n",
+    "* Run and Select Below\n",
+    "* Run and Insert Below\n",
+    "* Run All\n",
+    "* Run All Above\n",
+    "* Run All Below"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Restarting the kernels"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The kernel maintains the state of a notebook's computations. You can reset this state by restarting the kernel. This is done by clicking on the <button class='btn btn-default btn-xs'><i class='fa fa-repeat icon-repeat'></i></button> in the toolbar above."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## sys.stdout and sys.stderr"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The stdout and stderr streams are displayed as text in the output area."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"hi, stdout\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from __future__ import print_function\n",
+    "print('hi, stderr', file=sys.stderr)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Output is asynchronous"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "All output is displayed asynchronously as it is generated in the Kernel. If you execute the next cell, you will see the output one piece at a time, not all at the end."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import time, sys\n",
+    "for i in range(8):\n",
+    "    print(i)\n",
+    "    time.sleep(0.5)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Large outputs"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "To better handle large outputs, the output area can be collapsed. Run the following cell and then single- or double- click on the active area to the left of the output:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for i in range(50):\n",
+    "    print(i)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Beyond a certain point, output will scroll automatically:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for i in range(500):\n",
+    "    print(2**i - 1)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.1"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}