{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Investigate outliers in WST/WCT comparisons with in situ" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the satellite data from the MDB files, using the ``s3analysis`` helper functions which avoid explicitely looping over files (read_satellite_data)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reading file 44 over 44\n", "Nb match-ups 22380\n" ] } ], "source": [ "from s3analysis.slstr.mdb.slstrmdb import SLSTRMDB\n", "import datetime\n", "import numpy\n", "\n", "# define match-up configuration\n", "mdb = SLSTRMDB(config={\n", " 'mdb_output_root': \"/home/cercache/project/s3vt/\",\n", " 'reference': 'S3A_SL_2_WCT'\n", "})\n", "\n", "start = datetime.datetime(2016, 11, 20)\n", "end = datetime.datetime(2016, 11, 30)\n", "\n", "# define match-ups fields to read and use later\n", "slstr_fields = {\n", " 'S3A_SL_2_WST': ['sea_surface_temperature',\n", " 'quality_level',\n", " 'time',\n", " 'lat',\n", " 'lon',\n", " 'origin',\n", " 'dynamic_target_center_index'\n", " ],\n", " 'S3A_SL_2_WCT': ['cloud_in'],\n", " 'S3A_SL_1_RBT_IR': []\n", "}\n", "\n", "felyx_fields = ['lat', 'lon']\n", "\n", "# define source of in situ data\n", "source = 'cmems_drifter'\n", "\n", "# perform the satellite (WST/WCT) data selection with the s3analysis helper functions\n", "# by default, takes the closest pixel to insitu measurement (most of the time = the center pixel of the box)\n", "res_slstr = mdb.read_satellite_data(source, start,\n", " dataset_fields=slstr_fields,\n", " felyx_fields=felyx_fields,\n", " end=end)\n", "\n", "print \"Nb match-ups \", len(res_slstr['S3A_SL_2_WST']['time'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the in situ data using the corresponding function in s3mdbreader package (read_insitu_data)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "File: /home/cercache/project/s3vt/2016/325/S3A_SL_2_WCT_cmems_drifter_20161120180000_20161121000000.nc\n", "File: /home/cercache/project/s3vt/2016/325/S3A_SL_2_WCT_cmems_drifter_20161120120000_20161120180000.nc\n", "File: /home/cercache/project/s3vt/2016/325/S3A_SL_2_WCT_cmems_drifter_20161120060000_20161120120000.nc\n", "File: /home/cercache/project/s3vt/2016/325/S3A_SL_2_WCT_cmems_drifter_20161120000000_20161120060000.nc\n", "File: /home/cercache/project/s3vt/2016/326/S3A_SL_2_WCT_cmems_drifter_20161121180000_20161122000000.nc\n", "File: /home/cercache/project/s3vt/2016/326/S3A_SL_2_WCT_cmems_drifter_20161121120000_20161121180000.nc\n", "File: /home/cercache/project/s3vt/2016/326/S3A_SL_2_WCT_cmems_drifter_20161121060000_20161121120000.nc\n", "File: /home/cercache/project/s3vt/2016/326/S3A_SL_2_WCT_cmems_drifter_20161121000000_20161121060000.nc\n", "File: /home/cercache/project/s3vt/2016/327/S3A_SL_2_WCT_cmems_drifter_20161122180000_20161123000000.nc\n", "File: /home/cercache/project/s3vt/2016/327/S3A_SL_2_WCT_cmems_drifter_20161122120000_20161122180000.nc\n", "File: /home/cercache/project/s3vt/2016/327/S3A_SL_2_WCT_cmems_drifter_20161122060000_20161122120000.nc\n", "File: /home/cercache/project/s3vt/2016/327/S3A_SL_2_WCT_cmems_drifter_20161122000000_20161122060000.nc\n", "File: /home/cercache/project/s3vt/2016/328/S3A_SL_2_WCT_cmems_drifter_20161123180000_20161124000000.nc\n", "File: /home/cercache/project/s3vt/2016/328/S3A_SL_2_WCT_cmems_drifter_20161123120000_20161123180000.nc\n", "File: /home/cercache/project/s3vt/2016/328/S3A_SL_2_WCT_cmems_drifter_20161123060000_20161123120000.nc\n", "File: /home/cercache/project/s3vt/2016/328/S3A_SL_2_WCT_cmems_drifter_20161123000000_20161123060000.nc\n", "File: /home/cercache/project/s3vt/2016/329/S3A_SL_2_WCT_cmems_drifter_20161124180000_20161125000000.nc\n", "File: /home/cercache/project/s3vt/2016/329/S3A_SL_2_WCT_cmems_drifter_20161124120000_20161124180000.nc\n", "File: /home/cercache/project/s3vt/2016/329/S3A_SL_2_WCT_cmems_drifter_20161124060000_20161124120000.nc\n", "File: /home/cercache/project/s3vt/2016/329/S3A_SL_2_WCT_cmems_drifter_20161124000000_20161124060000.nc\n", "File: /home/cercache/project/s3vt/2016/330/S3A_SL_2_WCT_cmems_drifter_20161125180000_20161126000000.nc\n", "File: /home/cercache/project/s3vt/2016/330/S3A_SL_2_WCT_cmems_drifter_20161125120000_20161125180000.nc\n", "File: /home/cercache/project/s3vt/2016/330/S3A_SL_2_WCT_cmems_drifter_20161125060000_20161125120000.nc\n", "File: /home/cercache/project/s3vt/2016/330/S3A_SL_2_WCT_cmems_drifter_20161125000000_20161125060000.nc\n", "File: /home/cercache/project/s3vt/2016/331/S3A_SL_2_WCT_cmems_drifter_20161126180000_20161127000000.nc\n", "File: /home/cercache/project/s3vt/2016/331/S3A_SL_2_WCT_cmems_drifter_20161126120000_20161126180000.nc\n", "File: /home/cercache/project/s3vt/2016/331/S3A_SL_2_WCT_cmems_drifter_20161126060000_20161126120000.nc\n", "File: /home/cercache/project/s3vt/2016/331/S3A_SL_2_WCT_cmems_drifter_20161126000000_20161126060000.nc\n", "File: /home/cercache/project/s3vt/2016/332/S3A_SL_2_WCT_cmems_drifter_20161127180000_20161128000000.nc\n", "File: /home/cercache/project/s3vt/2016/332/S3A_SL_2_WCT_cmems_drifter_20161127120000_20161127180000.nc\n", "File: /home/cercache/project/s3vt/2016/332/S3A_SL_2_WCT_cmems_drifter_20161127060000_20161127120000.nc\n", "File: /home/cercache/project/s3vt/2016/332/S3A_SL_2_WCT_cmems_drifter_20161127000000_20161127060000.nc\n", "File: /home/cercache/project/s3vt/2016/333/S3A_SL_2_WCT_cmems_drifter_20161128180000_20161129000000.nc\n", "File: /home/cercache/project/s3vt/2016/333/S3A_SL_2_WCT_cmems_drifter_20161128120000_20161128180000.nc\n", "File: /home/cercache/project/s3vt/2016/333/S3A_SL_2_WCT_cmems_drifter_20161128060000_20161128120000.nc\n", "File: /home/cercache/project/s3vt/2016/333/S3A_SL_2_WCT_cmems_drifter_20161128000000_20161128060000.nc\n", "File: /home/cercache/project/s3vt/2016/334/S3A_SL_2_WCT_cmems_drifter_20161129180000_20161130000000.nc\n", "File: /home/cercache/project/s3vt/2016/334/S3A_SL_2_WCT_cmems_drifter_20161129120000_20161129180000.nc\n", "File: /home/cercache/project/s3vt/2016/334/S3A_SL_2_WCT_cmems_drifter_20161129060000_20161129120000.nc\n", "File: /home/cercache/project/s3vt/2016/334/S3A_SL_2_WCT_cmems_drifter_20161129000000_20161129060000.nc\n", "File: /home/cercache/project/s3vt/2016/335/S3A_SL_2_WCT_cmems_drifter_20161130180000_20161201000000.nc\n", "File: /home/cercache/project/s3vt/2016/335/S3A_SL_2_WCT_cmems_drifter_20161130120000_20161130180000.nc\n", "File: /home/cercache/project/s3vt/2016/335/S3A_SL_2_WCT_cmems_drifter_20161130060000_20161130120000.nc\n", "File: /home/cercache/project/s3vt/2016/335/S3A_SL_2_WCT_cmems_drifter_20161130000000_20161130060000.nc\n" ] } ], "source": [ "# Read in situ data\n", "insitu_fields = ['water_temperature', 'solar_zenith_angle',\n", " 'quality_level']\n", "res_insitu = mdb.read_insitu_data(source, start, insitu_fields, end=end)\n" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nb match-ups 18349\n" ] } ], "source": [ "# prune matchups where no WST values (probably a missing WST file corresponding to the WCT file)\n", "valid_wst_matchups = ~res_slstr['S3A_SL_2_WST']['time'].mask\n", "mdb.reduce(res_insitu, res_slstr, valid_wst_matchups)\n", "\n", "print \"Nb match-ups \", len(res_slstr['S3A_SL_2_WST']['time'])" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of cloudy pixels : 15045 (81 percent)\n", "Number of clear sky pixels : 3304\n", "Nb match-ups 3304\n" ] } ], "source": [ "# calculate WCT cloud mask, using the s3analysis helper function (use the recommended flag combination)\n", "from s3analysis.slstr.cloud import cloud_mask, cloud_summary\n", "\n", "cloudy = cloud_mask(res_slstr['S3A_SL_2_WCT']['cloud_in'])\n", "\n", "nbcloudy = numpy.count_nonzero(cloudy)\n", "nbmatchups = cloudy.size\n", "print \"Number of cloudy pixels : %d (%d percent)\" % (nbcloudy, nbcloudy * 100 / nbmatchups)\n", "print \"Number of clear sky pixels : %d\" % (nbmatchups - nbcloudy)\n", "\n", "# reduce to non cloudy match-ups\n", "mdb.reduce(res_insitu, res_slstr, ~cloudy)\n", "\n", "print \"Nb match-ups \", len(res_slstr['S3A_SL_2_WST']['time'])" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reading file 44 over 44\n" ] } ], "source": [ "# read box data for a few parameters and apply the same selections as above to remove the same invalid match-ups\n", "box_fields = {\n", " 'S3A_SL_2_WST': ['sea_surface_temperature', 'quality_level'],\n", " 'S3A_SL_2_WCT': ['cloud_in', 'confidence_in'],\n", " 'S3A_SL_1_RBT_IR': []\n", "}\n", "resbox = mdb.read_satellite_data(source, start, dataset_fields=box_fields, end=end, full_box=True)\n", "mdb.reduce({}, resbox, valid_wst_matchups)\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(18349, 21, 21)\n" ] } ], "source": [ "print resbox['S3A_SL_2_WST']['quality_level'].shape" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(3304, 21, 21)\n" ] } ], "source": [ "mdb.reduce({}, resbox, ~cloudy)\n", "print resbox['S3A_SL_2_WST']['quality_level'].shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## interactive display" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First define a plot function for miniprod display of SST and cloud mask" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "from matplotlib import pyplot \n", "from mpl_toolkits.axes_grid1 import make_axes_locatable\n", "\n", "def plot_mask(choice):\n", " f, axarr = pyplot.subplots(nrows=1, ncols=5, figsize=(15, 7))\n", "\n", " im0 = axarr[0].imshow(resbox['S3A_SL_2_WST']['sea_surface_temperature'][choice, :, :], interpolation='nearest')\n", " divider0 = make_axes_locatable(axarr[0])\n", " cax0 = divider0.append_axes(\"right\", size=\"20%\", pad=0.05)\n", " axarr[0].set_title('SST')\n", " pyplot.colorbar(im0, cax=cax0)\n", "\n", " im1 = axarr[1].imshow(resbox['S3A_SL_2_WST']['quality_level'][choice, :, :], interpolation='nearest', vmin=0, vmax=5)\n", " divider1 = make_axes_locatable(axarr[1])\n", " cax1 = divider1.append_axes(\"right\", size=\"20%\", pad=0.05)\n", " axarr[1].set_title('Quality level')\n", " pyplot.colorbar(im1, cax=cax1)\n", "\n", " im2 = axarr[2].imshow(cloud_mask(resbox['S3A_SL_2_WCT']['cloud_in'][choice, :, :]), interpolation='nearest', vmin=0, vmax=1)\n", " axarr[2].set_title('Cloud mask')\n", " divider2 = make_axes_locatable(axarr[2])\n", " cax2 = divider2.append_axes(\"right\", size=\"20%\", pad=0.05)\n", " pyplot.colorbar(im2, cax=cax2)\n", "\n", " im3 = axarr[3].imshow(resbox['S3A_SL_2_WCT']['cloud_in'][choice, :, :], interpolation='nearest')\n", " divider3 = make_axes_locatable(axarr[3])\n", " print \"cloud_in min/max : \", resbox['S3A_SL_2_WCT']['cloud_in'][choice, :, :].min(), \\\n", " resbox['S3A_SL_2_WCT']['cloud_in'][choice, :, :].max()\n", " cax3 = divider3.append_axes(\"right\", size=\"20%\", pad=0.05)\n", " axarr[3].set_title('Cloud flags')\n", " pyplot.colorbar(im3, cax=cax3)\n", "\n", " im4 = axarr[4].imshow(resbox['S3A_SL_2_WCT']['confidence_in'][choice, :, :], interpolation='nearest')\n", " divider4 = make_axes_locatable(axarr[4])\n", " cax4 = divider4.append_axes(\"right\", size=\"20%\", pad=0.05)\n", " axarr[4].set_title('Summary flag')\n", " pyplot.colorbar(im4, cax=cax4)\n", " \n", " pyplot.show()\n", " \n", " # show all individual cloud masks\n", " all_cloudbox = cloud_summary(resbox['S3A_SL_2_WCT']['cloud_in'][choice, :, :])\n", " \n", " print \"Used mask flags : \", all_cloudbox.keys()\n", " nbmasks = len(all_cloudbox.keys())\n", " f, axarr = pyplot.subplots(nrows=nbmasks / 4 + 1, ncols=4, figsize=(15, 7))\n", " for _, flag in enumerate(all_cloudbox.keys()):\n", " lin = _ / 4\n", " col = _ % 4\n", " im0 = axarr[lin, col].imshow(all_cloudbox[flag], interpolation='nearest', vmin=0, vmax=1)\n", " axarr[lin, col].set_title(flag)\n", " pyplot.show()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reading file 44 over 44\n", "(3304, 3, 3)\n" ] } ], "source": [ "# use additional coherence filters on brightness temperature (S8 and S9) to remove outliers\n", "# we apply this filter only on a 3x3 box around the pixel matching the in situ measurement\n", "\n", "# read the 3x3 BTs for S8 and S9\n", "bt_fields = {\n", " 'S3A_SL_2_WCT': [],\n", " 'S3A_SL_2_WST': [],\n", " 'S3A_SL_1_RBT_IR': ['S8_BT_in', 'S9_BT_in']\n", "}\n", "l1_subboxres = mdb.read_satellite_data(\n", " source, start, \n", " dataset_fields=bt_fields,\n", " end=end,\n", " full_box=True,\n", " subbox=3\n", " )\n", "\n", "# prune macth-ups which don't have any WST info or cloudy\n", "mdb.reduce({}, l1_subboxres, valid_wst_matchups)\n", "mdb.reduce({}, l1_subboxres, ~cloudy)\n", "print l1_subboxres['S3A_SL_1_RBT_IR']['S8_BT_in'].shape\n" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(3304, 3, 3)\n" ] } ], "source": [ "slstr_sst = res_slstr['S3A_SL_2_WST']['sea_surface_temperature']\n", "insitu_sst = res_insitu['water_temperature'] + 273.15\n", "\n", "print l1_subboxres['S3A_SL_1_RBT_IR']['S8_BT_in'].shape\n", "\n", "# coherence test on brightness temperature\n", "threshold = 0.05\n", "coherent = ~((l1_subboxres['S3A_SL_1_RBT_IR']['S8_BT_in'][:].std(axis=(1,2)) > threshold) |\n", " (l1_subboxres['S3A_SL_1_RBT_IR']['S9_BT_in'][:].std(axis=(1,2)) > threshold))\n", "filledbox = (l1_subboxres['S3A_SL_1_RBT_IR']['S8_BT_in'][:].count(axis=(1,2)) == 9)\n", "\n", "# additional filter to keep only nighttime data\n", "night = (res_insitu['solar_zenith_angle'] > 90.) & (~slstr_sst.mask & ~insitu_sst.mask) & coherent & filledbox\n" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "data": [ { "marker": { "color": "FFBAD2", "line": { "width": 1 } }, "mode": "markers", "text": [ 1, 2, 5, 6, 15, 29, 32, 57, 67, 69, 75, 77, 84, 89, 123, 125, 134, 136, 137, 138, 139, 140, 142, 143, 144, 162, 171, 177, 178, 179, 184, 197, 204, 206, 209, 213, 221, 222, 230, 232, 250, 251, 255, 259, 261, 264, 268, 274, 275, 292, 308, 311, 313, 315, 322, 330, 357, 369, 373, 374, 375, 384, 388, 389, 390, 392, 394, 396, 404, 405, 407, 409, 411, 440, 448, 456, 462, 464, 465, 467, 477, 478, 517, 521, 522, 526, 531, 532, 533, 543, 544, 545, 577, 578, 579, 582, 583, 594, 598, 600, 624, 631, 634, 636, 637, 642, 644, 646, 647, 650, 652, 653, 663, 675, 676, 679, 706, 712, 717, 720, 722, 736, 737, 768, 774, 777, 780, 809, 832, 833, 834, 859, 867, 871, 874, 883, 884, 887, 891, 892, 898, 900, 918, 924, 926, 928, 929, 931, 932, 933, 937, 938, 960, 985, 987, 990, 992, 993, 1053, 1057, 1066, 1089, 1103, 1104, 1108, 1114, 1118, 1122, 1139, 1152, 1156, 1166, 1176, 1195, 1213, 1217, 1223, 1224, 1226, 1227, 1235, 1248, 1249, 1250, 1304, 1319, 1348, 1377, 1378, 1389, 1390, 1397, 1399, 1426, 1439, 1441, 1444, 1445, 1446, 1458, 1473, 1474, 1475, 1476, 1484, 1487, 1499, 1517, 1520, 1521, 1522, 1523, 1524, 1527, 1534, 1535, 1537, 1538, 1551, 1558, 1563, 1566, 1567, 1568, 1572, 1580, 1582, 1600, 1601, 1640, 1641, 1642, 1643, 1644, 1651, 1654, 1675, 1691, 1692, 1713, 1715, 1716, 1722, 1730, 1739, 1741, 1746, 1753, 1759, 1764, 1766, 1767, 1770, 1772, 1774, 1775, 1776, 1783, 1784, 1802, 1804, 1808, 1811, 1812, 1813, 1815, 1816, 1817, 1819, 1821, 1823, 1835, 1836, 1863, 1903, 1908, 1918, 1919, 1920, 1921, 1951, 1963, 1966, 1970, 1991, 1995, 2002, 2009, 2010, 2015, 2019, 2021, 2023, 2025, 2026, 2027, 2030, 2038, 2050, 2054, 2056, 2058, 2060, 2069, 2071, 2078, 2079, 2081, 2083, 2087, 2103, 2107, 2108, 2128, 2135, 2141, 2170, 2174, 2175, 2176, 2180, 2195, 2259, 2260, 2261, 2268, 2269, 2271, 2288, 2296, 2314, 2334, 2339, 2340, 2352, 2355, 2368, 2370, 2371, 2373, 2383, 2386, 2387, 2388, 2391, 2392, 2393, 2421, 2423, 2426, 2427, 2445, 2451, 2452, 2489, 2490, 2491, 2510, 2547, 2548, 2558, 2561, 2563, 2578, 2589, 2590, 2598, 2607, 2610, 2611, 2613, 2624, 2625, 2627, 2629, 2633, 2634, 2679, 2691, 2708, 2717, 2724, 2725, 2726, 2749, 2755, 2803, 2811, 2850, 2861, 2880, 2881, 2884, 2886, 2894, 2895, 2901, 2910, 2912, 2920, 2924, 2925, 2932, 2936, 2941, 2958, 2961, 2962, 2966, 2974, 2985, 2995, 2998, 2999, 3000, 3005, 3006, 3008, 3010, 3013, 3014, 3016, 3023, 3026, 3035, 3039, 3092, 3143, 3151, 3153, 3165, 3167, 3168, 3169, 3194, 3197, 3198, 3212, 3213, 3220, 3226, 3231, 3232, 3233, 3235, 3244, 3246, 3249, 3252, 3257, 3258, 3259, 3261, 3264, 3266, 3272, 3277, 3278, 3284, 3289 ], "type": "scattergl", "x": [ 301.8500007629, 301.77000083919995, 290.63999977109995, 292.4799999237, 300.7199996948, 282.18999996185, 272.289999985695, 286.2699998856, 294.0000003815, 296.4799999237, 280.20000019072995, 277.78000011444, 287.88999977109995, 301.5900005341, 298.6000007629, 297.0900005341, 294.9100002289, 294.88999977109995, 287.25999965669996, 288.38999977109995, 289.7500003815, 287.28000011439997, 290.4799999237, 302.9400009155, 295.01000061039997, 287.4100002289, 288.2299999237, 296.82000007629995, 299.6600002289, 295.93000068659995, 296.1000007629, 295.29999961849995, 301.9499992371, 301.29999961849995, 299.9, 290.1900009155, 280.22000017166, 277.84999980927, 291.65, 298.04999961849995, 298.93000068659995, 298.8699993134, 282.70000019072995, 273.35000000298, 296.3599990845, 300.13999977109995, 296.7500003815, 274.36000003814996, 274.18999996185, 279.57999982833996, 301.88999977109995, 288.4500001907, 293.5399993896, 296.9900001526, 301.51000061039997, 296.3099998474, 286.4699996948, 295.9499992371, 297.8500007629, 280.18999996185, 282.57000007629, 288.65, 287.2400001526, 284.15, 281.26999988555997, 287.0800003052, 300.8699993134, 301.1099990845, 286.04999961849995, 285.4, 284.38999977109995, 293.5000003815, 292.65, 309.1000007629, 301.5399993896, 301.9499992371, 287.3600000381, 292.63999977109995, 293.76000061039997, 290.3099998474, 284.54999961849995, 282.20000019072995, 280.16000022888, 302.1199993134, 298.2899993896, 299.8500007629, 287.4200004578, 287.7699998856, 294.6700004578, 280.38000001907, 280.20999994278, 280.18999996185, 295.77000083919995, 296.8799995422, 296.8300003052, 297.0900005341, 290.2500003815, 297.8599990845, 296.6099990845, 301.5399993896, 288.2000001907, 301.3300003052, 298.6000007629, 297.2500003815, 290.4900001526, 301.0800003052, 290.1000007629, 291.7500003815, 296.3099998474, 298.6999992371, 294.76000061039997, 288.3600000381, 291.0299991608, 290.8099998474, 290.04999961849995, 284.9699996948, 295.9200004578, 287.38999977109995, 290.9799999237, 281.71999969482, 301.4400009155, 285.7000001907, 286.4, 298.5000003815, 292.1000007629, 285.0000003815, 286.3099998474, 290.1199993134, 289.5299991608, 288.5199998856, 284.46000041959996, 292.54999961849995, 292.0800003052, 296.9799999237, 302.70999946589995, 274.00000002384195, 294.6999992371, 293.4499992371, 302.8799995422, 296.3099998474, 293.3599990845, 277.51999988555997, 285.9500001907, 277.53999986648995, 277.66999998092996, 296.0900005341, 299.5000003815, 291.9, 296.2199996948, 299.52000083919995, 281.54000034332, 281.30999984741, 291.0800003052, 296.3500007629, 294.8300003052, 298.8099998474, 277.03000011444, 281.43999996185, 302.88999977109995, 301.6999992371, 281.72999992370995, 293.6999992371, 296.27000083919995, 299.0299991608, 279.18999996185, 298.3500007629, 289.1900009155, 281.41000022888, 298.9799999237, 290.0000003815, 295.07000007629995, 296.1700004578, 300.0399993896, 287.13999977109995, 293.70999946589995, 293.79999961849995, 294.0599998474, 293.5900005341, 294.7799991608, 277.59000005722, 291.8099998474, 288.7000001907, 276.4, 277.59999980927, 294.8699993134, 279.32000007629, 284.8300003052, 301.45999946589995, 299.79999961849995, 294.4900001526, 304.27000083919995, 296.9400009155, 303.2500003815, 292.9900001526, 301.9100002289, 296.4799999237, 296.7299999237, 299.8099998474, 296.4100002289, 280.9, 294.3099998474, 300.04999961849995, 292.82000007629995, 288.429999733, 278.28999986648995, 278.03999986648995, 299.3400005341, 291.9, 290.0399993896, 293.6900009155, 295.6299995422, 292.9100002289, 293.2199996948, 293.02000083919995, 283.679999733, 296.7799991608, 282.58000030517996, 279.63000001907, 276.36000003814996, 302.45999946589995, 296.1999992371, 300.0800003052, 300.9400009155, 300.38999977109995, 297.26000061039997, 300.2299999237, 300.4, 293.0299991608, 284.9799999237, 291.9200004578, 296.1000007629, 296.1999992371, 294.6000007629, 285.71000041959996, 286.59999980929996, 287.4799999237, 286.2500003815, 292.5000003815, 292.45999946589995, 300.4400009155, 295.1099990845, 294.2899993896, 276.21999993324, 297.65, 300.4799999237, 299.9, 281.42999973297, 294.7500003815, 296.8500007629, 292.70999946589995, 295.1999992371, 297.6999992371, 273.25000000149, 296.6099990845, 296.1999992371, 300.0299991608, 295.9499992371, 300.5900005341, 284.929999733, 301.6700004578, 296.63999977109995, 292.65, 300.4100002289, 301.7500003815, 295.0599998474, 291.6000007629, 291.1099990845, 294.15, 298.88999977109995, 292.6099990845, 297.3799995422, 297.9900001526, 300.8699993134, 286.5199998856, 298.6999992371, 282.68999996185, 290.4900001526, 283.54999961849995, 296.02000083919995, 301.8300003052, 275.85000004768, 301.9100002289, 297.9100002289, 291.4400009155, 286.38999977109995, 291.7799991608, 297.3500007629, 297.5599998474, 296.65, 294.57000007629995, 294.5000003815, 293.5599998474, 302.6900009155, 301.2299999237, 295.8300003052, 294.5599998474, 294.2400001526, 279.78999986648995, 293.79999961849995, 295.45999946589995, 296.51000061039997, 294.9400009155, 295.1999992371, 296.1700004578, 301.3400005341, 300.82000007629995, 300.7199996948, 300.8099998474, 286.5400003433, 300.8099998474, 301.3099998474, 292.15, 297.43000068659995, 300.8099998474, 294.04999961849995, 287.62000026699997, 284.71000041959996, 295.9100002289, 295.6099990845, 294.2899993896, 298.6700004578, 288.1299995422, 301.5399993896, 301.8400005341, 301.2500003815, 287.50999965669996, 287.79999961849995, 304.5800003052, 281.87000026703, 290.77000083919995, 299.3799995422, 296.07000007629995, 289.2400001526, 287.5199998856, 300.4699996948, 300.4799999237, 291.9, 300.5599998474, 293.0000003815, 294.15, 301.4, 297.9900001526, 297.76000061039997, 294.6999992371, 274.53999998569, 274.080000007153, 273.439999991655, 295.15, 300.9100002289, 292.57000007629995, 302.0399993896, 299.8699993134, 283.4799999237, 281.74000015258997, 295.68000068659995, 295.7500003815, 295.4699996948, 288.71000041959996, 297.88999977109995, 301.5299991608, 294.9699996948, 295.4900001526, 295.9799999237, 288.1700004578, 286.7299999237, 286.4699996948, 294.1000007629, 300.43000068659995, 298.6000007629, 278.63999977111996, 278.26999988555997, 302.2199996948, 301.3300003052, 299.4900001526, 288.8600000381, 294.6900009155, 284.0899995804, 277.22000017166, 272.33999999761596, 292.7799991608, 277.51999988555997, 300.9699996948, 301.57000007629995, 301.5399993896, 288.4500001907, 284.9900001526, 294.70999946589995, 301.0299991608, 301.8500007629, 291.8799995422, 288.8399995804, 278.59000005722, 291.43000068659995, 286.46000041959996, 298.6000007629, 297.8099998474, 296.07000007629995, 302.7899993896, 303.2299999237, 297.15, 281.47999992370995, 284.429999733, 277.65, 297.26000061039997, 300.3500007629, 295.65, 301.0599998474, 298.1199993134, 300.43000068659995, 300.9400009155, 275.20999994278, 300.57000007629995, 291.07000007629995, 290.7299999237, 301.9699996948, 295.8099998474, 295.2500003815, 294.54999961849995, 292.6999992371, 291.79999961849995, 295.51000061039997, 294.4499992371, 300.18000068659995, 298.1600002289, 288.84999980929996, 291.68000068659995, 294.1099990845, 301.7299999237, 302.27000083919995, 301.4499992371, 295.9100002289, 296.5800003052, 295.38999977109995, 295.3099998474, 296.88999977109995, 292.45999946589995, 279.13999977111996, 297.1900009155, 298.77000083919995, 303.38999977109995, 280.95000019072995, 284.3300003052, 279.22999992370995, 279.51999988555997, 295.1999992371, 301.7799991608, 295.2899993896, 294.5399993896, 282.95000019072995, 294.4499992371, 294.04999961849995, 293.7500003815, 299.3799995422, 280.59999980927, 297.57000007629995, 296.79999961849995, 294.95999946589995, 295.01000061039997, 294.88999977109995, 273.04000000059597 ], "y": [ 301.489990234375, 301.1999816894531, 290.67999267578125, 292.1600036621094, 300.7799987792969, 282.17999267578125, 272.44000244140625, 286.3299865722656, 293.739990234375, 296.1499938964844, 280.1099853515625, 277.2099914550781, 287.3599853515625, 300.1399841308594, 298.3299865722656, 297.2699890136719, 294.739990234375, 294.7799987792969, 287.17999267578125, 288.2200012207031, 289.53997802734375, 287.25, 290.1600036621094, 303.3699951171875, 294.94000244140625, 287.04998779296875, 288.28997802734375, 297.1499938964844, 299.3299865722656, 295.9100036621094, 296.16998291015625, 294.67999267578125, 301.5899963378906, 301.0099792480469, 300.0899963378906, 289.91998291015625, 280.0199890136719, 277.3399963378906, 291.3899841308594, 298.3599853515625, 298.8999938964844, 298.72998046875, 282.7699890136719, 273.6999816894531, 296.3599853515625, 299.79998779296875, 296.7099914550781, 274.5299987792969, 274.41998291015625, 279.7799987792969, 301.4100036621094, 288.28997802734375, 293.55999755859375, 297.2200012207031, 301.32000732421875, 296.25, 286.54998779296875, 295.8699951171875, 297.66998291015625, 280.22998046875, 282.5299987792969, 288.55999755859375, 287.1199951171875, 284.2200012207031, 281.2200012207031, 286.8800048828125, 300.75, 300.9700012207031, 285.989990234375, 285.3699951171875, 284.29998779296875, 293.57000732421875, 292.55999755859375, 300.2099914550781, 301.4599914550781, 300.2799987792969, 287.2099914550781, 292.28997802734375, 293.5, 290.3899841308594, 284.54998779296875, 282.42999267578125, 278.92999267578125, 301.79998779296875, 298.239990234375, 299.8500061035156, 287.30999755859375, 287.69000244140625, 294.6099853515625, 280.42999267578125, 279.9700012207031, 280.1300048828125, 282.6399841308594, 296.92999267578125, 296.82000732421875, 297.03997802734375, 290.3299865722656, 297.7200012207031, 296.7200012207031, 301.5899963378906, 287.9700012207031, 300.97998046875, 298.3800048828125, 297.17999267578125, 290.6300048828125, 300.8399963378906, 289.8399963378906, 292.1600036621094, 296.25, 298.7799987792969, 295.0299987792969, 288.3299865722656, 290.8399963378906, 290.6600036621094, 289.72998046875, 284.91998291015625, 295.8299865722656, 287.30999755859375, 290.6499938964844, 281.4499816894531, 301.9599914550781, 285.57000732421875, 286.2099914550781, 298.5899963378906, 292.1499938964844, 284.6600036621094, 286.2699890136719, 290.1199951171875, 289.3299865722656, 288.5299987792969, 284.4100036621094, 292.30999755859375, 292.1600036621094, 296.91998291015625, 302.66998291015625, 274.16998291015625, 294.6000061035156, 293.489990234375, 302.6000061035156, 296.4700012207031, 293.30999755859375, 277.57000732421875, 286.0099792480469, 277.3699951171875, 277.3699951171875, 296.3899841308594, 300.239990234375, 291.8800048828125, 296.4100036621094, 298.9100036621094, 281.3800048828125, 280.94000244140625, 291.1499938964844, 295.55999755859375, 294.8699951171875, 298.7799987792969, 276.7200012207031, 281.3500061035156, 303.57000732421875, 300.7699890136719, 281.6099853515625, 293.3999938964844, 296.2699890136719, 299.3899841308594, 279.1000061035156, 298.489990234375, 288.97998046875, 281.05999755859375, 298.79998779296875, 290.04998779296875, 295.0199890136719, 295.8699951171875, 299.75, 287.3999938964844, 293.8299865722656, 293.8299865722656, 294.1000061035156, 293.6499938964844, 294.8999938964844, 277.66998291015625, 291.78997802734375, 288.8299865722656, 276.3800048828125, 277.6499938964844, 294.80999755859375, 279.41998291015625, 284.29998779296875, 301.47998046875, 299.3500061035156, 294.75, 304.28997802734375, 297.1499938964844, 303.05999755859375, 293, 301.75, 296.6300048828125, 296.6099853515625, 299.6999816894531, 296.4100036621094, 280.66998291015625, 294.0799865722656, 299.94000244140625, 292.8599853515625, 288.07000732421875, 278.1300048828125, 277.82000732421875, 299.2599792480469, 291.80999755859375, 290.03997802734375, 293.6000061035156, 295.67999267578125, 292.79998779296875, 293.1199951171875, 292.989990234375, 283.69000244140625, 296.7799987792969, 282.4700012207031, 279.66998291015625, 276.2900085449219, 302.1499938964844, 296.1399841308594, 300.03997802734375, 300.32000732421875, 299.8699951171875, 297.2799987792969, 300.25, 300.55999755859375, 292.8500061035156, 284.8899841308594, 291.7099914550781, 296.1099853515625, 294.97998046875, 294.82000732421875, 285.8299865722656, 286.5799865722656, 287.3399963378906, 286.2699890136719, 292.66998291015625, 292.57000732421875, 300.739990234375, 295.19000244140625, 294.4100036621094, 276.04998779296875, 297.6099853515625, 299.6499938964844, 298.1099853515625, 281.3399963378906, 294.7799987792969, 296.8800048828125, 292.6000061035156, 295.0799865722656, 297.92999267578125, 273.4100036621094, 296.6199951171875, 295.7599792480469, 300.0299987792969, 295.91998291015625, 300.7200012207031, 284.7099914550781, 301.3800048828125, 297.1300048828125, 292.69000244140625, 300.3699951171875, 301.3500061035156, 287.8699951171875, 291.5099792480469, 291.03997802734375, 293.9499816894531, 298.66998291015625, 292.489990234375, 297.28997802734375, 298.04998779296875, 300.42999267578125, 286.29998779296875, 298.5199890136719, 282.3800048828125, 290.91998291015625, 272.44000244140625, 295.8500061035156, 302, 275.72998046875, 300.97998046875, 297.79998779296875, 291.3800048828125, 286.17999267578125, 291.82000732421875, 297.29998779296875, 297.489990234375, 296.239990234375, 294.3399963378906, 294.4599914550781, 293.28997802734375, 301.8699951171875, 301.22998046875, 295.55999755859375, 294.47998046875, 294.19000244140625, 279.7699890136719, 293.66998291015625, 295.2200012207031, 294.9700012207031, 294.8899841308594, 295.1600036621094, 296.03997802734375, 300.55999755859375, 301.0899963378906, 300.80999755859375, 300.82000732421875, 286.25, 300.66998291015625, 300.5, 292.04998779296875, 297.54998779296875, 300.78997802734375, 294.07000732421875, 287.6300048828125, 293.3699951171875, 295.25, 295.0899963378906, 294.2200012207031, 298.5099792480469, 288.1399841308594, 301.30999755859375, 302.28997802734375, 301.1199951171875, 287.3599853515625, 287.5899963378906, 302.32000732421875, 281.91998291015625, 290.3800048828125, 299.4700012207031, 295.97998046875, 289.44000244140625, 287.2200012207031, 300.55999755859375, 299.72998046875, 291.739990234375, 300.6300048828125, 292.8599853515625, 293.5799865722656, 302.0199890136719, 297.9100036621094, 296.78997802734375, 294.6499938964844, 274.66998291015625, 274.16998291015625, 273.4499816894531, 295, 300.6099853515625, 292.3299865722656, 301.57000732421875, 299.8699951171875, 283.3399963378906, 281.6499938964844, 295.55999755859375, 295.5899963378906, 295.3599853515625, 288.66998291015625, 297.66998291015625, 301.55999755859375, 295.17999267578125, 295.32000732421875, 295.42999267578125, 288.0799865722656, 286.0099792480469, 285.6600036621094, 294.1099853515625, 300.3999938964844, 298.94000244140625, 278.6000061035156, 278.22998046875, 302.19000244140625, 301.0799865722656, 299.6499938964844, 288.5799865722656, 294.6099853515625, 283.989990234375, 277.22998046875, 271.8800048828125, 292.6300048828125, 276.7200012207031, 300.5, 301.4599914550781, 301.8899841308594, 288.42999267578125, 284.7799987792969, 294.55999755859375, 300.54998779296875, 302.4700012207031, 291.7799987792969, 288.3599853515625, 278.57000732421875, 291.0299987792969, 286.7699890136719, 298.739990234375, 297.94000244140625, 295.4599914550781, 301.6199951171875, 303.1199951171875, 297.0799865722656, 281.4599914550781, 284.4100036621094, 277.8399963378906, 297.1499938964844, 300.489990234375, 295.75, 301.3699951171875, 298.1399841308594, 300.1499938964844, 300.5099792480469, 275.07000732421875, 300.54998779296875, 290.91998291015625, 290.79998779296875, 302.0299987792969, 295.8599853515625, 295.17999267578125, 294.67999267578125, 292.6999816894531, 291.7799987792969, 295.54998779296875, 294.44000244140625, 300.1300048828125, 297.2699890136719, 288.8899841308594, 291.7799987792969, 294.0199890136719, 301.1999816894531, 301.1099853515625, 302.2699890136719, 295.75, 296.66998291015625, 295.5, 295.3399963378906, 297.0199890136719, 292.4700012207031, 278.9100036621094, 296.7099914550781, 298.75, 303.25, 281.0199890136719, 284.17999267578125, 279.07000732421875, 279.47998046875, 295.2200012207031, 301.03997802734375, 295.1099853515625, 294.1999816894531, 282.82000732421875, 294.5899963378906, 294.0299987792969, 294.0299987792969, 297.6099853515625, 280.3899841308594, 297.6300048828125, 296.54998779296875, 294.8299865722656, 295.03997802734375, 294.8299865722656, 272.6600036621094 ] } ], "layout": {} }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "460 night match-ups\n" ] } ], "source": [ "# achtung! plotly neeeds to be installed in your environment (pip install plotly)\n", "\n", "import plotly.graph_objs as go\n", "import numpy as np\n", "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", "\n", "# allow inline plot with plotly\n", "init_notebook_mode(connected=True)\n", "\n", "# Create a interactive scatterplot SST vs in situ with plotly\n", "trace = go.Scattergl(\n", " x = insitu_sst[night],\n", " y = slstr_sst[night],\n", " text = numpy.arange(len(slstr_sst))[night],\n", " mode = 'markers',\n", " marker = dict(\n", " color = 'FFBAD2',\n", " line = dict(width = 1)\n", " )\n", ")\n", "data = [trace]\n", "iplot(data)\n", "\n", "print len(insitu_sst[night]), ' night match-ups'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Investigate a match-up" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SST value : 282.639984 K\n", "In situ value : 295.770001 K\n", "SST - in situ difference : -13.130017 K\n", "Traceability:\n", "....WST file : S3A_SL_2_WST____20161121T051430_20161121T051730_20161121T065004_0179_011_147______MAR_O_NR_002.SEN3\n", "cloud_in min/max : 0 1088\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "