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