{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Quality Controlling Saildrone T/S" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Objective:\n", "\n", "This notebook shows how to use CoTeDe to evaluate temperature and salinity measured along-track from a Saildrone.\n", "\n", "The nature of this dataset is similar to a Thermosalinograph (TSG) on vessels of opportunity. As the vessel sails, it pumps water from near the surface, which is measured by a CTD. Thus, it is a time-series with a nearly constant depth, and each measurement is associated with time, latitude, and longitude." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data:\n", "\n", "For this tutorial, let's use the Saildrone Antarctic Cirumnaviation mission (https://www.saildrone.com/antarctica). I don't want to bypass their data distribution, so I'll let you download it yourself. Please place it in the same directory (folder) of this notebook.\n", "\n", "Let's use the 24hrs resolution just for demonstration purposes since this is the public version. We will probably get better results by quality controlling on the high-resolution measurements and only then, if convenient for our scientific questions, sub-sample for lower resolution.\n", "\n", "The data is available at https://data.saildrone.com/data/sets/antarctica-circumnavigation-2019/access" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's import xarray, which we'll use to load the data from the netCDF. We could use netCDF4 or scipy, but it is probably more intuitive with xarray.\n", "\n", "Let's also import ProfileQC from CoTeDe. Yes, I know, Saildrone does not measure profiles but don't worry about the name of this class; it will work with the same principle. Maybe one day, I'll create another class to deal with the along-track type of measurements." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import xarray as xr\n", "from cotede.qc import ProfileQC" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### First, learn about the data\n", "\n", "Load the data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "ds = xr.open_dataset('saildrone-antarctica.nc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's learn about this dataset, starting from the attributes." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'CF-1.6, ACDD-1.3'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds.attrs['Conventions']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great, it follows the CF and ACDD conventions, so we don't need to wander around, but we know what to expect and where to find the information that we will need. For instance, does it conform with some Simple Geometry? If so, which one?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'trajectory'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds.attrs['featureType']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, this is a trajectory, so we expect that each measurement will have a time and position.\n", "\n", "What are the available variables? We are interested in the temperature and the salinity of the seawater." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['SOG',\n", " 'COG',\n", " 'HDG',\n", " 'HDG_WING',\n", " 'ROLL',\n", " 'PITCH',\n", " 'WING_ANGLE',\n", " 'BARO_PRES_MEAN',\n", " 'BARO_PRES_STDDEV',\n", " 'TEMP_AIR_MEAN',\n", " 'TEMP_AIR_STDDEV',\n", " 'RH_MEAN',\n", " 'RH_STDDEV',\n", " 'PAR_AIR_MEAN',\n", " 'PAR_AIR_STDDEV',\n", " 'TEMP_IR_UNCOR_MEAN',\n", " 'TEMP_IR_UNCOR_STDDEV',\n", " 'UWND_MEAN',\n", " 'UWND_STDDEV',\n", " 'VWND_MEAN',\n", " 'VWND_STDDEV',\n", " 'WWND_MEAN',\n", " 'WWND_STDDEV',\n", " 'GUST_WND_MEAN',\n", " 'GUST_WND_STDDEV',\n", " 'TEMP_CTD_MEAN',\n", " 'TEMP_CTD_STDDEV',\n", " 'COND_MEAN',\n", " 'COND_STDDEV',\n", " 'SAL_MEAN',\n", " 'SAL_STDDEV',\n", " 'O2_RBR_CONC_MEAN',\n", " 'O2_RBR_CONC_STDDEV',\n", " 'O2_RBR_SAT_MEAN',\n", " 'O2_RBR_SAT_STDDEV',\n", " 'TEMP_O2_RBR_MEAN',\n", " 'TEMP_O2_RBR_STDDEV',\n", " 'O2_AANDERAA_CONC_UNCOR_MEAN',\n", " 'O2_AANDERAA_CONC_UNCOR_STDDEV',\n", " 'O2_AANDERAA_SAT_MEAN',\n", " 'O2_AANDERAA_SAT_STDDEV',\n", " 'TEMP_O2_AANDERAA_MEAN',\n", " 'TEMP_O2_AANDERAA_STDDEV',\n", " 'CHLOR_MEAN',\n", " 'CHLOR_STDDEV']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(ds.keys())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It looks like we are interested in TEMP_CTD_MEAN and SAL_MEAN. Let's confirm that. We can learn a lot by inspecting the Attributes." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "[248525 values with dtype=float64]\n", "Coordinates:\n", " * trajectory (trajectory) float32 1020.0\n", " time (trajectory, obs) datetime64[ns] ...\n", " latitude (trajectory, obs) float64 ...\n", " longitude (trajectory, obs) float64 ...\n", "Dimensions without coordinates: obs\n", "Attributes:\n", " standard_name: sea_water_practical_salinity\n", " long_name: Seawater salinity\n", " units: 1\n", " last_calibrated: 2018-10-19\n", " update_period: 500\n", " device_name: RBR CTD/ODO/Chl-A (40804)\n", " installed_date: 2018-11-01T00:00:00Z\n", " nominal_sampling_schedule: 12s on, 48s off, centered at :00\n", " installed_height: -0.53\n", " serial_number: 40804\n", " vendor_name: RBR\n", " model_name: Saildrone^3\n", "====\n", "\n", "[248525 values with dtype=float64]\n", "Coordinates:\n", " * trajectory (trajectory) float32 1020.0\n", " time (trajectory, obs) datetime64[ns] ...\n", " latitude (trajectory, obs) float64 ...\n", " longitude (trajectory, obs) float64 ...\n", "Dimensions without coordinates: obs\n", "Attributes:\n", " standard_name: sea_water_temperature\n", " long_name: Seawater temperature\n", " units: degrees_c\n", " last_calibrated: 2018-10-19\n", " update_period: 500\n", " device_name: RBR CTD/ODO/Chl-A (40804)\n", " installed_date: 2018-11-01T00:00:00Z\n", " nominal_sampling_schedule: 12s on, 48s off, centered at :00\n", " installed_height: -0.53\n", " serial_number: 40804\n", " vendor_name: RBR\n", " model_name: Saildrone^3\n" ] } ], "source": [ "print(ds[\"SAL_MEAN\"])\n", "print(\"====\")\n", "print(ds[\"TEMP_CTD_MEAN\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yes, we can see in the attributes of both variables the standard_name and long_name. We found what we need. Let's simplify our dataset and extract only what we need - temperature and salinity - and call it \"tsg\"." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n",
       "Dimensions:        (obs: 248525, trajectory: 1)\n",
       "Coordinates:\n",
       "    time           (trajectory, obs) datetime64[ns] ...\n",
       "    longitude      (trajectory, obs) float64 ...\n",
       "    latitude       (trajectory, obs) float64 ...\n",
       "  * trajectory     (trajectory) float32 1020.0\n",
       "Dimensions without coordinates: obs\n",
       "Data variables:\n",
       "    TEMP_CTD_MEAN  (trajectory, obs) float64 ...\n",
       "    SAL_MEAN       (trajectory, obs) float64 ...\n",
       "Attributes:\n",
       "    title:                     Antarctica Circumnavigation Surface Data\n",
       "    license:                   2019 © SAILDRONE Inc.  All Rights Reserved.  T...\n",
       "    wmo_id:                    4803902\n",
       "    ncei_template_version:     NCEI_NetCDF_Trajectory_Template_v2.0\n",
       "    Conventions:               CF-1.6, ACDD-1.3\n",
       "    netcdf_version:            4.4.1.1\n",
       "    featureType:               trajectory\n",
       "    cdm_data_type:             Trajectory\n",
       "    standard_name_vocabulary:  CF Standard Name Table v58\n",
       "    description:               Saildrone NetCDF Format\n",
       "    creator_name:              Saildrone\n",
       "    platform:                  Saildrone\n",
       "    institution:               Saildrone\n",
       "    creator_email:             support@saildrone.com\n",
       "    creator_url:               http://saildrone.com/\n",
       "    date_created:              2019-08-03T19:10:55.100403Z\n",
       "    interval:                  60.0\n",
       "    time_coverage_resolution:  PT1M\n",
       "    time_coverage_start:       2019-01-19T04:00:00.000000Z\n",
       "    time_coverage_end:         2019-08-03T04:30:00.000000Z\n",
       "    time_coverage_duration:    P196DT30M\n",
       "    area:                      Southern Ocean\n",
       "    data_mode:                 realtime\n",
       "    drone_id:                  1020\n",
       "    id:                        43797\n",
       "    naming_authority:          com.saildrone\n",
       "    uuid:                      91c12ae3-3637-4934-bd4e-e00693435f74\n",
       "    project:                   antarctica_circumnavigation_2019\n",
       "    geospatial_lat_min:        -60.9862208\n",
       "    geospatial_lat_max:        -46.4277568\n",
       "    geospatial_lat_units:      degrees_north\n",
       "    geospatial_lon_min:        -179.9986816\n",
       "    geospatial_lon_max:        179.9997312\n",
       "    geospatial_lon_units:      degrees_east\n",
       "    summary:                   This data set was collected from the first Sai...
" ], "text/plain": [ "\n", "Dimensions: (obs: 248525, trajectory: 1)\n", "Coordinates:\n", " time (trajectory, obs) datetime64[ns] ...\n", " longitude (trajectory, obs) float64 ...\n", " latitude (trajectory, obs) float64 ...\n", " * trajectory (trajectory) float32 1020.0\n", "Dimensions without coordinates: obs\n", "Data variables:\n", " TEMP_CTD_MEAN (trajectory, obs) float64 ...\n", " SAL_MEAN (trajectory, obs) float64 ...\n", "Attributes:\n", " title: Antarctica Circumnavigation Surface Data\n", " license: 2019 © SAILDRONE Inc. All Rights Reserved. T...\n", " wmo_id: 4803902\n", " ncei_template_version: NCEI_NetCDF_Trajectory_Template_v2.0\n", " Conventions: CF-1.6, ACDD-1.3\n", " netcdf_version: 4.4.1.1\n", " featureType: trajectory\n", " cdm_data_type: Trajectory\n", " standard_name_vocabulary: CF Standard Name Table v58\n", " description: Saildrone NetCDF Format\n", " creator_name: Saildrone\n", " platform: Saildrone\n", " institution: Saildrone\n", " creator_email: support@saildrone.com\n", " creator_url: http://saildrone.com/\n", " date_created: 2019-08-03T19:10:55.100403Z\n", " interval: 60.0\n", " time_coverage_resolution: PT1M\n", " time_coverage_start: 2019-01-19T04:00:00.000000Z\n", " time_coverage_end: 2019-08-03T04:30:00.000000Z\n", " time_coverage_duration: P196DT30M\n", " area: Southern Ocean\n", " data_mode: realtime\n", " drone_id: 1020\n", " id: 43797\n", " naming_authority: com.saildrone\n", " uuid: 91c12ae3-3637-4934-bd4e-e00693435f74\n", " project: antarctica_circumnavigation_2019\n", " geospatial_lat_min: -60.9862208\n", " geospatial_lat_max: -46.4277568\n", " geospatial_lat_units: degrees_north\n", " geospatial_lon_min: -179.9986816\n", " geospatial_lon_max: 179.9997312\n", " geospatial_lon_units: degrees_east\n", " summary: This data set was collected from the first Sai..." ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tsg = ds[['TEMP_CTD_MEAN', 'SAL_MEAN']]\n", "tsg" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that there is a trajectory dimension. Since this is a single trajectory, CF does not require to keep this dimension, but this is a good practice. In case we want to merge this dataset with another trajectory, let's say another Saildrone from another year, and both trajectories would merge seamlessly with two trajectories.\n", "\n", "To simplify, let's remove the trajectory dimension by choosing only the first (and only one) trajectory." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "tsg = tsg.isel(trajectory=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, if we look at the temperature, it will have only the dimension obs." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'TEMP_CTD_MEAN' (obs: 248525)>\n",
       "[248525 values with dtype=float64]\n",
       "Coordinates:\n",
       "    time        (obs) datetime64[ns] ...\n",
       "    longitude   (obs) float64 ...\n",
       "    latitude    (obs) float64 ...\n",
       "    trajectory  float32 1020.0\n",
       "Dimensions without coordinates: obs\n",
       "Attributes:\n",
       "    standard_name:              sea_water_temperature\n",
       "    long_name:                  Seawater temperature\n",
       "    units:                      degrees_c\n",
       "    last_calibrated:            2018-10-19\n",
       "    update_period:              500\n",
       "    device_name:                RBR CTD/ODO/Chl-A (40804)\n",
       "    installed_date:             2018-11-01T00:00:00Z\n",
       "    nominal_sampling_schedule:  12s on, 48s off, centered at :00\n",
       "    installed_height:           -0.53\n",
       "    serial_number:              40804\n",
       "    vendor_name:                RBR\n",
       "    model_name:                 Saildrone^3
" ], "text/plain": [ "\n", "[248525 values with dtype=float64]\n", "Coordinates:\n", " time (obs) datetime64[ns] ...\n", " longitude (obs) float64 ...\n", " latitude (obs) float64 ...\n", " trajectory float32 1020.0\n", "Dimensions without coordinates: obs\n", "Attributes:\n", " standard_name: sea_water_temperature\n", " long_name: Seawater temperature\n", " units: degrees_c\n", " last_calibrated: 2018-10-19\n", " update_period: 500\n", " device_name: RBR CTD/ODO/Chl-A (40804)\n", " installed_date: 2018-11-01T00:00:00Z\n", " nominal_sampling_schedule: 12s on, 48s off, centered at :00\n", " installed_height: -0.53\n", " serial_number: 40804\n", " vendor_name: RBR\n", " model_name: Saildrone^3" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tsg['TEMP_CTD_MEAN']" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'standard_name': 'sea_water_practical_salinity',\n", " 'long_name': 'Seawater salinity',\n", " 'units': '1',\n", " 'last_calibrated': '2018-10-19',\n", " 'update_period': 500,\n", " 'device_name': 'RBR CTD/ODO/Chl-A (40804)',\n", " 'installed_date': '2018-11-01T00:00:00Z',\n", " 'nominal_sampling_schedule': '12s on, 48s off, centered at :00',\n", " 'installed_height': -0.53,\n", " 'serial_number': '40804',\n", " 'vendor_name': 'RBR',\n", " 'model_name': 'Saildrone^3'}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tsg['SAL_MEAN'].attrs" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'TEMP_CTD_MEAN' (obs: 10)>\n",
       "array([15.68 , 15.671, 15.683, 15.689, 15.688, 15.697, 15.707, 15.718, 15.726,\n",
       "       15.73 ])\n",
       "Coordinates:\n",
       "    time        (obs) datetime64[ns] ...\n",
       "    longitude   (obs) float64 ...\n",
       "    latitude    (obs) float64 ...\n",
       "    trajectory  float32 1020.0\n",
       "Dimensions without coordinates: obs\n",
       "Attributes:\n",
       "    standard_name:              sea_water_temperature\n",
       "    long_name:                  Seawater temperature\n",
       "    units:                      degrees_c\n",
       "    last_calibrated:            2018-10-19\n",
       "    update_period:              500\n",
       "    device_name:                RBR CTD/ODO/Chl-A (40804)\n",
       "    installed_date:             2018-11-01T00:00:00Z\n",
       "    nominal_sampling_schedule:  12s on, 48s off, centered at :00\n",
       "    installed_height:           -0.53\n",
       "    serial_number:              40804\n",
       "    vendor_name:                RBR\n",
       "    model_name:                 Saildrone^3
" ], "text/plain": [ "\n", "array([15.68 , 15.671, 15.683, 15.689, 15.688, 15.697, 15.707, 15.718, 15.726,\n", " 15.73 ])\n", "Coordinates:\n", " time (obs) datetime64[ns] ...\n", " longitude (obs) float64 ...\n", " latitude (obs) float64 ...\n", " trajectory float32 1020.0\n", "Dimensions without coordinates: obs\n", "Attributes:\n", " standard_name: sea_water_temperature\n", " long_name: Seawater temperature\n", " units: degrees_c\n", " last_calibrated: 2018-10-19\n", " update_period: 500\n", " device_name: RBR CTD/ODO/Chl-A (40804)\n", " installed_date: 2018-11-01T00:00:00Z\n", " nominal_sampling_schedule: 12s on, 48s off, centered at :00\n", " installed_height: -0.53\n", " serial_number: 40804\n", " vendor_name: RBR\n", " model_name: Saildrone^3" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tsg['TEMP_CTD_MEAN'][:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Actuall QC\n", "\n", "So far, we have been learning about this dataset and subsampling. \n", "If you were familiar with this dataset, you could have skipped all that and started here.\n", "\n", "Now, let's QC this data, the easiest part (if using CoTeDe)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "pqc = ProfileQC(tsg, {'sea_water_temperature':{'gradient': {'threshold': 5}}})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great! You just finished to QC the temperature of the whole Saildrone Antarctic mission. It's probably not the best approach to use the gradient test only, but good enough for this example.\n", "\n", "What are the flags available?" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['TEMP_CTD_MEAN'])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pqc.flags.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yes, it seems right. We asked to inspect all variables that were the type: seawater temperature.\n", "\n", "What was the result, i.e. what are the flags assigned?" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 1, ..., 1, 1, 0], dtype=int8)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pqc.flags['TEMP_CTD_MEAN']['gradient']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's improve this. Let's evaluate temperature and salinity at the same time, but now let's add another test, the rate of change." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "cfg = {\n", " 'sea_water_temperature':{\n", " 'gradient': {'threshold': 5},\n", " 'rate_of_change': {'threshold': 5}},\n", " 'SAL_MEAN': {\n", " 'rate_of_change': {'threshold': 2}}\n", "}\n", " \n", "pqc = ProfileQC(tsg, cfg)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'TEMP_CTD_MEAN': {'gradient': array([0, 1, 1, ..., 1, 1, 0], dtype=int8),\n", " 'rate_of_change': array([0, 1, 1, ..., 1, 1, 1], dtype=int8),\n", " 'overall': array([0, 1, 1, ..., 1, 1, 1], dtype=int8)},\n", " 'SAL_MEAN': {'rate_of_change': array([0, 1, 1, ..., 1, 1, 1], dtype=int8),\n", " 'overall': array([0, 1, 1, ..., 1, 1, 1], dtype=int8)}}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pqc.flags" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice, you can choose which tests to apply on each variable, and that includes which parameters to use on each test.\n", "\n", "You also can choose between defining a test for the type of measurement (sea_water_temperature) or the variable specifically (SAL_MEAN). That is convenient when you have a platform equipped with several sensors, like Saildrone." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, let's check what we got!" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Temperature [$^\\\\circ$C]')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.figure(figsize=(14,4))\n", "\n", "idx = pqc.flags['TEMP_CTD_MEAN']['overall'] <= 2\n", "plt.plot(pqc['time'][idx], pqc['TEMP_CTD_MEAN'][idx], '.')\n", "plt.title('Temperature [$^\\circ$C]')\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Salinity')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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DAZwMYCfisjNAC4FcKFSKuZxOYmohMyf08ighYiIXBWkifBBGd7mR056XsYBeCQx7yUE4Aml1HMi0g+gC8BbIgIATyml7vauqERUKnjRJiIitwVlIjzXecmPk2xj7wA43eJ2LnBJRFnjRZuIqLT4qUEqCBPhObwtPwxAiKigeNEmIiodbJDKXpCGt/kRgxciKihetImISgcbpLIXlOFtfsXghYgKihdtIqLSwQap3ARheJtfiVKqYDubNWuWWrVqVcH2R0RERETe8tOcFyoNItKhlJpldR97XoiIiIgoZ+xFoEIKFbsARERERERETjB4ISIiIiKiQGDwQkREREREgcDghYiIiIiIAoHBCxERUZnq6IrivuVb0NEVLXZRiIgcYbYxIiKiMsSV0YkoiNjzQkREVIasVkYnIvI7Bi9ERERlSFsZPSzgyuhEFBgcNkZERFSGWpoi7jKIjAAACvdJREFUWHJzK1dGJ6JAYfBCRERUprgyOhEFDYeNERERERFRIDB4ISIiIiKiQGDwQkREREREgcDghYiIiIiIAoHBCxERERERBQKDFyIiIiIiCgQGL0REREREFAgMXoiIiIiIKBAYvBARERERUSAweCEiIiIiokBg8EJERERERIHA4IWIiIiIiAKBwQsREREREQUCgxciIiIiIgoEBi9ERERERBQIGYMXERkkIm+LyFoR2SAidyVu/1sR2SIiSkRGeV9UIiIiIiIqZxUOHnMMwAVKqYMiUgngdRF5EcAbAJ4D8BcPy0dERERERATAQfCilFIADiY2KxN/Sin1XwAgIt6VjoiIiIiIKMHRnBcRCYvIGgC7ALyilGp3ugMRWSAiq0Rk1e7du3MtJxERERERlTlHwYtSakApNQNAA4DZItLsdAdKqcVKqVlKqVn19fW5lpOIiIiIiMpcVtnGlFJ7ASwHcJk3xSEiIiIiIrLmJNtYvYiMSPx/MICLAbzndcGIiIiIiIj0nPS8jAOwXETeAbAS8Tkvz4nI34lIN+JDyd4RkYe8LCgREREREZU3J9nG3gFwusXt/wHgP7woFBERERERkVlWc16IiIiIiIiKhcELEREREREFAoMXIiIiIiIKBAYvREREREQUCAxeiIiIiIgoEBi8EBERERFRIDB4ISIiIiKiQGDwQkREREREgcDghYiIiIiIAoHBCxERERERBQKDFyIiIiIi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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(14,4))\n", "\n", "idx = pqc.flags['SAL_MEAN']['overall'] <= 2\n", "plt.plot(pqc['time'][idx], pqc['SAL_MEAN'][idx], '.')\n", "plt.title('Salinity')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yes, I agree, we need to activate more checks if we want to do a better job here. Don't worry, there are plenty built-in tests in CoTeDe." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }