Skip to content
Snippets Groups Projects
MatfiletoNetCDF_CL_ARTofMELT_v1.ipynb 486 KiB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This python script converts the processed .mat file for native Ceilometer observations into a user-friendly NetCDF file. It also converts all time averaged .mat files into their respecitve netCDF files. These final (four) netCDF files are found in the Bolin Centre Database. Data from the ARTofMELT expedition in Spring 2023. This code is written by Sonja Murto (2024)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import modules\n",
    "import sys,glob,os\n",
    "import numpy as np\n",
    "import math\n",
    "import pandas as pd\n",
    "import matplotlib.dates as mdates\n",
    "import xarray as xr\n",
    "import time,datetime\n",
    "import itertools\n",
    "import matplotlib.pyplot as plt\n",
    "import string\n",
    "import scipy.io\n",
    "import matplotlib.ticker as mticker\n",
    "from collections import Counter\n",
    "\n",
    "\n",
    "#metpy functions for thermodynamical variable conversions\n",
    "import metpy.calc as mpcalc\n",
    "from metpy.units import units\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# define functions\n",
    "def datestring_fromtuple(date=(2001,2,15,12)):\n",
    "    '''\n",
    "    Input: a date tuple (YYYY,M,D,h)\n",
    "    Output: Date string: 'YYYYMMDD_hh'\n",
    "    '''\n",
    "    strdate=str(date[0])+\"{:0>2}\".format(str(date[1]))+\"{:0>2}\".format(str(date[2]))+'_'+\"{:0>2}\".format(str(date[3]))\n",
    "    return strdate\n",
    "\n",
    "def datetuple(date):\n",
    "    '''date is as datetime object, i.e. from pandas using .to_pydatetime()\n",
    "    '''\n",
    "    return date.year,date.month,date.day,date.hour\n",
    "\n",
    "def strtodatetuple(datestr='19900109_12',format_st='%Y%m%d_%H',returntuple=True):\n",
    "    if returntuple:   \n",
    "        return datetuple(datetime.datetime.strptime(datestr, format_st))\n",
    "    else:\n",
    "        return datetime.datetime.strptime(datestr, format_st)\n",
    "\n",
    "\n",
    "def returndatetime_fromdoy(doys, year=2023):\n",
    "    '''\n",
    "    fucntion to return datetime from DOY dates. \n",
    "    Takes the leap year into account if given for a leap year\n",
    "    Input: list of DOYs\n",
    "    Output: List of Dates (in datetime) corresponding to the given doys\n",
    "    Note, returns in microseconds.\n",
    "    If second rounded: [pd.to_datetime(T).round('1s') for T in date]\n",
    "    \n",
    "    '''\n",
    "    jdate_frac=doys\n",
    "    date=[]\n",
    "    for d in jdate_frac:\n",
    "        year,julian = [year,d]\n",
    "        date.append(datetime.datetime(year, 1, 1)+datetime.timedelta(days=julian -1))\n",
    "    return date\n",
    "\n",
    "def getList(dict): \n",
    "    '''\n",
    "    This function returns a list of keys for a pandas dictionary\n",
    "    '''\n",
    "    list = [] \n",
    "    for key in dict.keys(): \n",
    "        list.append(key) \n",
    "    return list\n",
    "\n",
    "def truncate_colormap(cmap, minval=0.0, maxval=1.0, n=100,returncolors=False):\n",
    "    '''\n",
    "    This function creates a new colormap from the cmap chosen, taking the limits from minval and maxval, and the number of colors as n.\n",
    "    The default is a colormap as LinearSegmentedColormap, which can be used as colormap for imshow, contourf...\n",
    "    If you assign returncolors as True, the there will be an array of n amount of colors from the chosen colormap. This can be used in plots when each event has a color (n=50)\n",
    "    '''\n",
    "    new_cmap = mcolors.LinearSegmentedColormap.from_list('new_cmap', plt.get_cmap(cmap)(np.linspace(minval, maxval, n)))\n",
    "    if returncolors:\n",
    "        new_cmap=plt.get_cmap(cmap)(np.linspace(minval, maxval, n))\n",
    "    return new_cmap   \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#define directories - change according to your computer settings\n",
    "cwd = os.getcwd() \n",
    "savefigpath = cwd + '/FIGS/Example_figs/' #directory for figures\n",
    "#directory where to find the data (.mat files)\n",
    "load_data = r'/Volumes/My Passport for Mac/MISU_sticka/WORK/viktigapapper/ARTofMELT_2023/AoM_data_mod/WX/cl31_output/'\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Convert ceilometer data from .mat files into .nc files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create secondary dimensions\n",
    "cloud_layer_levs=np.arange(1,4,1).astype('int32') # 3 levels\n",
    "sc_layer_levs=np.arange(1,6,1).astype('int32') # 5 levels\n",
    "range_levs=np.arange(1,771,1).astype('int32') # 770 levels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 2 3] [1 2 3 4 5]\n"
     ]
    }
   ],
   "source": [
    "print(cloud_layer_levs,sc_layer_levs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 30s data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# load 30s native data\n",
    "CL_SM_org = scipy.io.loadmat(load_data + 'CL31_ceilometer_ARTofMELT_20230507_20230613_30s_v01.mat',struct_as_record=True) #30s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['__header__', '__version__', '__globals__', 'cl31'])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "CL_SM_org.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('mday', 'doy', 'cloudcode', 'base_ht', 'vert_vis', 'high_sig', 'sc_frac', 'sc_ht', 'bs_prof', 'ceil_range', 'time')\n"
     ]
    }
   ],
   "source": [
    "# get the data in the mat file\n",
    "Names=CL_SM_org['cl31'].dtype.names\n",
    "ndata = {n: CL_SM_org['cl31'][n][0, 0] for n in Names}\n",
    "print(Names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#create time dimension\n",
    "Time_steps=returndatetime_fromdoy(np.array(list(itertools.chain.from_iterable(ndata['doy'])),dtype=float))\n",
    "Times_nomicrosec=[pd.to_datetime(T).round('1s') for T in Time_steps]\n",
    "Time_steps_dt64_org=[np.datetime64(t) for t in Time_steps]\n",
    "Time_steps_dt64_org=np.array(Time_steps_dt64_org,dtype='datetime64[ns]') #time dimension"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>doy</th>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>hour</th>\n",
       "      <th>minute</th>\n",
       "      <th>second</th>\n",
       "      <th>cloudcode</th>\n",
       "      <th>vert_vis</th>\n",
       "      <th>high_sig</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>127.000258</td>\n",
       "      <td>2023</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>22</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>127.000605</td>\n",
       "      <td>2023</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>52</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>127.000952</td>\n",
       "      <td>2023</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>22</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>127.001299</td>\n",
       "      <td>2023</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>52</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>127.001647</td>\n",
       "      <td>2023</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>22</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          doy  year  month  day  hour  minute  second  cloudcode  vert_vis  \\\n",
       "0  127.000258  2023      5    7     0       0      22          1       NaN   \n",
       "1  127.000605  2023      5    7     0       0      52          1       NaN   \n",
       "2  127.000952  2023      5    7     0       1      22          2       NaN   \n",
       "3  127.001299  2023      5    7     0       1      52          2       NaN   \n",
       "4  127.001647  2023      5    7     0       2      22          1       NaN   \n",
       "\n",
       "   high_sig  \n",
       "0       NaN  \n",
       "1       NaN  \n",
       "2       NaN  \n",
       "3       NaN  \n",
       "4       NaN  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# convert data into pandas dataframes\n",
    "DF_30s=pd.DataFrame(index=range(len(ndata['doy'])),)\n",
    "DF_30s['doy']=np.array(list(itertools.chain.from_iterable(ndata['doy'])),dtype=float)\n",
    "DF_30s['year']=np.array([Times_nomicrosec[i].year for i in range(len(Time_steps))],dtype=int)\n",
    "DF_30s['month']=np.array([Times_nomicrosec[i].month for i in range(len(Time_steps))],dtype=int)\n",
    "DF_30s['day']=np.array([Times_nomicrosec[i].day for i in range(len(Time_steps))],dtype=int)\n",
    "DF_30s['hour']=np.array([Times_nomicrosec[i].hour for i in range(len(Time_steps))],dtype=int)\n",
    "DF_30s['minute']=np.array([Times_nomicrosec[i].minute for i in range(len(Time_steps))],dtype=int)\n",
    "DF_30s['second']=np.array([Times_nomicrosec[i].second for i in range(len(Time_steps))],dtype=int)\n",
    "DF_30s['cloudcode']=np.array(list(itertools.chain.from_iterable(ndata['cloudcode'])),dtype=int)\n",
    "DF_30s['vert_vis']=np.array(list(itertools.chain.from_iterable(ndata['vert_vis'])),dtype=float)\n",
    "DF_30s['high_sig']=np.array(list(itertools.chain.from_iterable(ndata['high_sig'])),dtype=float)\n",
    "\n",
    "DF_30s.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>doy</th>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>hour</th>\n",
       "      <th>minute</th>\n",
       "      <th>second</th>\n",
       "      <th>cloudcode</th>\n",
       "      <th>vert_vis</th>\n",
       "      <th>high_sig</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [doy, year, month, day, hour, minute, second, cloudcode, vert_vis, high_sig]\n",
       "Index: []"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#check for nans - no nans!\n",
    "DF_30s.iloc[DF_30s[DF_30s.doy.isna()].index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['doy', 'year', 'month', 'day', 'hour', 'minute', 'second', 'cloudcode',\n",
       "       'vert_vis', 'high_sig'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get a list of columns\n",
    "DF_30s.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# save each variable into Data Arrays, with attribute data\n",
    "\n",
    "#1D variables: dimension time\n",
    "\n",
    "da_doy=xr.DataArray(data=np.array(DF_30s['doy']).astype('float32'),name=\"day_of_year\",\n",
    "                dims=[\"time\"],coords=dict(time=Time_steps_dt64_org),\n",
    "                  attrs=dict(type=\"float32\",dimension=\"time\",units=\"1\",long_name=\"Day of Year\",\n",
    "                             description=\"time as decimal day of year\"),) #added as 1D\n",
    "\n",
    "#date and time in separate arrays; microseconds approximated to seconds\n",
    "da_year=xr.DataArray(data=np.array(DF_30s['year']).astype('int32'),name=\"year\",dims=[\"time\"],\n",
    "                  coords=dict(time=Time_steps_dt64_org),\n",
    "                  attrs=dict(type=\"int32\",dimension=\"time\",units=\"1\",long_name=\"Year\"),) #added as 1D\n",
    "\n",
    "da_month=xr.DataArray(data=np.array(DF_30s['month']).astype('int32'),name=\"month\",dims=[\"time\"],\n",
    "                  coords=dict(time=Time_steps_dt64_org),\n",
    "                      attrs=dict(type=\"int32\",dimension=\"time\",units=\"1\", long_name=\"Month\"),) #added as 1D\n",
    "\n",
    "da_day=xr.DataArray(data=np.array(DF_30s['day']).astype('int32'),name=\"day\",dims=[\"time\"],\n",
    "                  coords=dict(time=Time_steps_dt64_org),\n",
    "                    attrs=dict(type=\"int32\",dimension=\"time\",units=\"1\",long_name=\"Day\"),) #added as 1D\n",
    "\n",
    "da_hour=xr.DataArray(data=np.array(DF_30s['hour']).astype('int32'),name=\"hour\",dims=[\"time\"],\n",
    "                  coords=dict(time=Time_steps_dt64_org),\n",
    "                     attrs=dict(type=\"int32\",dimension=\"time\",units=\"1\",long_name=\"Hour\"),) #added as 1D\n",
    "\n",
    "da_min=xr.DataArray(data=np.array(DF_30s['minute']).astype('int32'),name=\"minute\",dims=[\"time\"],\n",
    "                  coords=dict(time=Time_steps_dt64_org),\n",
    "                    attrs=dict(type=\"int32\",dimension=\"time\",units=\"1\",long_name=\"Minute\"),) #added as 1D\n",
    "\n",
    "da_sec=xr.DataArray(data=np.array(DF_30s['second']).astype('int32'),name=\"second\",dims=[\"time\"],\n",
    "                  coords=dict(time=Time_steps_dt64_org),\n",
    "                     attrs=dict(type=\"int32\",dimension=\"time\",units=\"1\",long_name=\"Second\",\n",
    "                               description=\"Time averaged to closest second\"),) #added as 1D\n",
    "\n",
    "#add cloudcode flag\n",
    "da_cloudcode=xr.DataArray(data=np.array(DF_30s['cloudcode']).astype('int32'),name=\"flag_cloudcode\",dims=[\"time\"],\n",
    "                        coords=dict(time=Time_steps_dt64_org),\n",
    "                        attrs=dict(type=\"int32\",dimension=\"time\",units=\"1\",\n",
    "                                   long_name='Data flag: Cloudcode',\n",
    "                                   flag_values=\"-1,0,1,2,3,4\", \n",
    "                                   flag_meanings=\"missing_data\\nno_significant_backscatter\\none_cloud_base_detected\\ntwo_cloud_bases_detected\\nthree_cloud_bases_detected\\nfull_obscuration\",\n",
    "                                   description=\"Code for number of cloud bases detected; see Readme document for more information\"),)\n",
    "\n",
    "da_vertvis=xr.DataArray(data=np.array(DF_30s['vert_vis']).astype('float32'),\n",
    "                    name=\"vertical_visibility\",dims=[\"time\"],coords=dict(time=Time_steps_dt64_org),\n",
    "                   attrs=dict(type=\"float32\",dimension=\"time\", units=\"m\",\n",
    "                              long_name=\"Vertical Visibilility\",\n",
    "                             description=\"Vertical visibility given in case of obscured cloud base (at flag_cloudcode 4), else NaN\"),) #added as 1D\n",
    "\n",
    "da_high_sig=xr.DataArray(data=np.array(DF_30s['high_sig']).astype('float32'),\n",
    "                    name=\"highest_detected_signal\",dims=[\"time\"],coords=dict(time=Time_steps_dt64_org),\n",
    "                   attrs=dict(type=\"float32\",dimension=\"time\", units=\"m\",\n",
    "                              long_name=\"Highest Signal Detected\",\n",
    "                             description=\"Highest signal detected given in case of obscured cloud base (at flag_cloudcode 4), else NaN\"),) #added as 1D\n",
    "\n",
    "\n",
    "#1D: dimension range_levels\n",
    "\n",
    "da_ceilrange=xr.DataArray(data=np.array(list(itertools.chain.from_iterable(ndata['ceil_range'])),dtype=int).astype('int32'),\n",
    "                    name=\"ceilometer_range\",dims=[\"range_levels\"],coords=dict(range_levels=range_levs),\n",
    "                          attrs=dict(type=\"int32\",dimension=\"range_levels\",units=\"m\",\n",
    "                                     long_name=\"Ceilometer Range\",\n",
    "                                     description=\"Ranges for the ceilometer backscatter profile, including the instrument height\",),) #added as 1D\n",
    "\n",
    "\n",
    "#2D variable: dimension time/cloud_layer\n",
    "\n",
    "\n",
    "da_baseht=xr.DataArray(data=np.array(ndata['base_ht'],dtype=float).astype('float32'),\n",
    "                    name=\"cloud_base_altitude\",dims=[\"time\",\"cloud_layer\"],\n",
    "                       coords=dict(time=Time_steps_dt64_org,cloud_layer=cloud_layer_levs),\n",
    "                   attrs=dict(type=\"float32\",dimension=\"time, cloud_layer\", units=\"m\",\n",
    "                              long_name=\"Cloud Base Altitude\",\n",
    "                              description=\"cloud base height of 1-3 cloud layers; NaN if no layer detected. \" +\\\n",
    "                              \"Instrument height incorporated.\"),) #added as 2D\n",
    "\n",
    "#2D variables: dimension time/sky_condition_layer\n",
    "\n",
    "da_scfrac=xr.DataArray(data=np.array(ndata['sc_frac'],dtype=float).astype('float32'),\n",
    "                    name=\"sky_condition_cloud_fraction\",dims=[\"time\",\"sky_condition_layer\"],\n",
    "                       coords=dict(time=Time_steps_dt64_org,sky_condition_layer=sc_layer_levs),\n",
    "                   attrs=dict(type=\"float32\",dimension=\"time, sky_condition_layer\", units=\"octal\",\n",
    "                              long_name=\"Sky Condition Cloud Fraction\",\n",
    "                            description=\"Cloud fraction calculated with the sky condition algorithm. \"+\\\n",
    "                             \"0-8 = cloud coverage of up to 5 levels; 9 = obscuration. \" +\\\n",
    "                             \"NaN = missing data or no detected layer.\"),) #added as 2D\n",
    "\n",
    "da_scht=xr.DataArray(data=np.array(ndata['sc_ht'],dtype=float).astype('float32'),\n",
    "                    name=\"sky_condition_cloud_altitude\",dims=[\"time\",\"sky_condition_layer\"],\n",
    "                     coords=dict(time=Time_steps_dt64_org,sky_condition_layer=sc_layer_levs),\n",
    "                   attrs=dict(type=\"float32\",dimension=\"time, sky_condition_layer\", units=\"m\",\n",
    "                              long_name=\"Sky Condition Cloud Altitude layer height\",\n",
    "                              description = \"Cloud layer height calculated with the sky condition algorithm. \"+\\\n",
    "                             \"Cloud layer height given for 1-5 sky condition layers; NaN if no layer detected. \"+\\\n",
    "                             \"Vertical visibility is reported as height if obscuration (at sky_condition_cloud_fraction 9). \"+\\\n",
    "                             \"Instrument height incorporated.\"),) #added as 2D\n",
    "\n",
    "\n",
    "#2D variable: dimension time/range\n",
    "\n",
    "da_bsprof=xr.DataArray(data=np.array(ndata['bs_prof'],dtype=float).astype('float32'),\n",
    "                    name=\"backscatter_profile\",dims=[\"time\",\"range_levels\"],\n",
    "                       coords=dict(time=Time_steps_dt64_org,range_levels=range_levs),\n",
    "                   attrs=dict(type=\"float32\",dimension=\"time, range_levels\", units=\"1 km-1 steradians-1\",\n",
    "                              long_name=\"Backscatter Profile\", description=\"backscatter coefficient profile\"),) #added as 2D\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# quick plot of cloud base heights\n",
    "\n",
    "da_baseht.sel(cloud_layer=1).plot(color='r',label='cloud_layer = 1')\n",
    "da_baseht.sel(cloud_layer=2).plot(color='b',label='cloud_layer = 2')\n",
    "da_baseht.sel(cloud_layer=3).plot(color='y',label='cloud_layer = 3')\n",
    "plt.title('')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "15"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#merge all arrays into one\n",
    "\n",
    "ds_all=xr.merge([da_doy,da_year,da_month,da_day,da_hour,da_min,da_sec,\n",
    "                da_ceilrange,da_cloudcode,da_vertvis,da_high_sig,\n",
    "                da_baseht,da_scfrac,da_scht,da_bsprof])\n",
    "\n",
    "len(ds_all)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x7fd0595b8670>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(ds_all.time,ds_all.vertical_visibility,c=ds_all.flag_cloudcode)\n",
    "plt.colorbar()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2023-05-07 00:00:22')"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get the time ranges: start\n",
    "Times_nomicrosec[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2023-06-13 16:24:22')"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get the time ranges: end\n",
    "Times_nomicrosec[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# add global attribute data. Note that the geospatial_bounds are taken from the gps data at the weather station sensor\n",
    "# (Weather station data: start: 2023-05-01 7:00:05, end = 2023-06-13 16:24:35)\n",
    "\n",
    "ds_all.attrs = {\"Conventions\" :\"CF-1.8\",\n",
    "                \"source\" : \"Ceilometer\",\n",
    "                \"instrument_model\" : \"Vaisala Ceilometer CL31\",\n",
    "                \"creator_name\" : \"Sonja Murto\",\n",
    "                \"creator_email\" : \"sonja.murto@misu.su.se\",\n",
    "                \"creator_url\" : \"https://orcid.org/0000-0002-4966-9077\",\n",
    "                \"institution\" : \"Stockholm University\",  \n",
    "                \"processing_software\" : \"Matlab (for creating the matlab file) and a jupyter notebook script (netCDF)\",\n",
    "                \"sampling_interval\": \"30s\", \n",
    "                \"product_version\" : \"v01\",\n",
    "                \"last_revised_date\" : \"2024-05-31T15:00:00\", \n",
    "                \"project\" : \"ARTofMELT\",\n",
    "                \"project_principal_investigator\" : \"Michael Tjernström\",\n",
    "                \"project_principal_investigator_email\" : \"michaelt@misu.su.se\",\n",
    "                \"project_principal_investigator_url\" : \"https://orcid.org/0000-0002-6908-7410\",                \n",
    "                \"acknowledgement\" : \" Knut och Alice Wallenbergs Stiftelse, Grant 2016-0024\",\n",
    "                \"platform\" : \"Swedish Icebreaker Oden\",\n",
    "                \"platform_type\" : \"On Oden's 7th deck above the bridge\",\n",
    "                \"deployment_mode\" : \"ship\",\n",
    "                \"title\" : \"Ceilometer cloud base height, vertical visibility and backscatter profiles\",\n",
    "                \"feature_type\" : \"time series\",   \n",
    "                \"time_coverage_start\" : \"2023-05-07T00:00:22\",\n",
    "                \"time_coverage_end\" : \"2023-06-13T16:24:22\",\n",
    "                \"geospatial_bounds\" : \"80.52392166666667N, -3.8737749999999997E, 78.04355166666666N, 15.660881666666667E\",\n",
    "                \"platform_altitude\" : \"Located at approximately 25 m a.s.l\",\n",
    "                \"location_keywords\": \"Oden, Arctic Ocean, Fram Strait, atmosphere, on the ship\",\n",
    "                \"comments\" : \"This file consists of ceilometer data \" +\\\n",
    "                \"measured with the Vaisala Ceilometer CL31 that was located on the 7th deck, \"+\\\n",
    "                \"above the bridge (at approximately 25m).\" + \\\n",
    "                \"The sky condition measurements are time averages to represent an area average. \" + \\\n",
    "                \"The vertical resolution is 10m * 770, but the measurement height (25m) is included in the backscatter profile ranges, \" + \\\n",
    "                \"as well as in the cloud base heights (cloud_base_altitude and sky_condition_cloud_altitude). \" + \\\n",
    "                \"Geospatial bounds are taken from the gps location of the weather station dataset located on Oden. \" +\\\n",
    "                \"Time variables month, day, hour, minute and second are approximated to the nearest second. \" +\\\n",
    "                \"Data produced by Sonja Murto. See the document - Readme_CL.txt - for more details.\"}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
       "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
       "</symbol>\n",
       "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
       "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
       "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
       "</symbol>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
       "  --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
       "  --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
       "  --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --xr-background-color: var(--jp-layout-color0, white);\n",
       "  --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
       "  --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
       "}\n",
       "\n",
       "html[theme=dark],\n",
       "body.vscode-dark {\n",
       "  --xr-font-color0: rgba(255, 255, 255, 1);\n",
       "  --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
       "  --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
       "  --xr-border-color: #1F1F1F;\n",
       "  --xr-disabled-color: #515151;\n",
       "  --xr-background-color: #111111;\n",
       "  --xr-background-color-row-even: #111111;\n",
       "  --xr-background-color-row-odd: #313131;\n",
       "}\n",
       "\n",
       ".xr-wrap {\n",
       "  display: block;\n",
       "  min-width: 300px;\n",
       "  max-width: 700px;\n",
       "}\n",
       "\n",
       ".xr-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-header {\n",
       "  padding-top: 6px;\n",
       "  padding-bottom: 6px;\n",
       "  margin-bottom: 4px;\n",
       "  border-bottom: solid 1px var(--xr-border-color);\n",
       "}\n",
       "\n",
       ".xr-header > div,\n",
       ".xr-header > ul {\n",
       "  display: inline;\n",
       "  margin-top: 0;\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-obj-type,\n",
       ".xr-array-name {\n",
       "  margin-left: 2px;\n",
       "  margin-right: 10px;\n",
       "}\n",
       "\n",
       ".xr-obj-type {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-sections {\n",
       "  padding-left: 0 !important;\n",
       "  display: grid;\n",
       "  grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
       "}\n",
       "\n",
       ".xr-section-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-section-item input {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-item input + label {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label {\n",
       "  cursor: pointer;\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-item input:enabled + label:hover {\n",
       "  color: var(--xr-font-color0);\n",
       "}\n",
       "\n",
       ".xr-section-summary {\n",
       "  grid-column: 1;\n",
       "  color: var(--xr-font-color2);\n",
       "  font-weight: 500;\n",
       "}\n",
       "\n",
       ".xr-section-summary > span {\n",
       "  display: inline-block;\n",
       "  padding-left: 0.5em;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label {\n",
       "  color: var(--xr-font-color2);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in + label:before {\n",
       "  display: inline-block;\n",
       "  content: '►';\n",
       "  font-size: 11px;\n",
       "  width: 15px;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:disabled + label:before {\n",
       "  color: var(--xr-disabled-color);\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label:before {\n",
       "  content: '▼';\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked + label > span {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-section-summary,\n",
       ".xr-section-inline-details {\n",
       "  padding-top: 4px;\n",
       "  padding-bottom: 4px;\n",
       "}\n",
       "\n",
       ".xr-section-inline-details {\n",
       "  grid-column: 2 / -1;\n",
       "}\n",
       "\n",
       ".xr-section-details {\n",
       "  display: none;\n",
       "  grid-column: 1 / -1;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       "\n",
       ".xr-section-summary-in:checked ~ .xr-section-details {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-array-wrap {\n",
       "  grid-column: 1 / -1;\n",
       "  display: grid;\n",
       "  grid-template-columns: 20px auto;\n",
       "}\n",
       "\n",
       ".xr-array-wrap > label {\n",
       "  grid-column: 1;\n",
       "  vertical-align: top;\n",
       "}\n",
       "\n",
       ".xr-preview {\n",
       "  color: var(--xr-font-color3);\n",
       "}\n",
       "\n",
       ".xr-array-preview,\n",
       ".xr-array-data {\n",
       "  padding: 0 5px !important;\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-array-data,\n",
       ".xr-array-in:checked ~ .xr-array-preview {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".xr-array-in:checked ~ .xr-array-data,\n",
       ".xr-array-preview {\n",
       "  display: inline-block;\n",
       "}\n",
       "\n",
       ".xr-dim-list {\n",
       "  display: inline-block !important;\n",
       "  list-style: none;\n",
       "  padding: 0 !important;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list li {\n",
       "  display: inline-block;\n",
       "  padding: 0;\n",
       "  margin: 0;\n",
       "}\n",
       "\n",
       ".xr-dim-list:before {\n",
       "  content: '(';\n",
       "}\n",
       "\n",
       ".xr-dim-list:after {\n",
       "  content: ')';\n",
       "}\n",
       "\n",
       ".xr-dim-list li:not(:last-child):after {\n",
       "  content: ',';\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-has-index {\n",
       "  font-weight: bold;\n",
       "}\n",
       "\n",
       ".xr-var-list,\n",
       ".xr-var-item {\n",
       "  display: contents;\n",
       "}\n",
       "\n",
       ".xr-var-item > div,\n",
       ".xr-var-item label,\n",
       ".xr-var-item > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-even);\n",
       "  margin-bottom: 0;\n",
       "}\n",
       "\n",
       ".xr-var-item > .xr-var-name:hover span {\n",
       "  padding-right: 5px;\n",
       "}\n",
       "\n",
       ".xr-var-list > li:nth-child(odd) > div,\n",
       ".xr-var-list > li:nth-child(odd) > label,\n",
       ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
       "  background-color: var(--xr-background-color-row-odd);\n",
       "}\n",
       "\n",
       ".xr-var-name {\n",
       "  grid-column: 1;\n",
       "}\n",
       "\n",
       ".xr-var-dims {\n",
       "  grid-column: 2;\n",
       "}\n",
       "\n",
       ".xr-var-dtype {\n",