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
+}