diff --git a/pysatTutorials/ICON_demo.ipynb b/pysatTutorials/ICON_demo.ipynb index d34f7d8..f3e5866 100644 --- a/pysatTutorials/ICON_demo.ipynb +++ b/pysatTutorials/ICON_demo.ipynb @@ -170,6 +170,7 @@ "# Slicing and dicing mini-examples\n", "print('Subset of data')\n", "print(ivm[0:5, 'Ion_Density'])\n", + "print('')\n", "date1 = dt.datetime(2020, 1, 1)\n", "date2 = dt.datetime(2020, 1, 1, 1, 30, 30)\n", "print(ivm[date1:date2, 'Ion_Density'])\n", @@ -526,7 +527,7 @@ "\n", "# Zonal wind plot, red line\n", "mighti_vw_red['Zonal_Wind'].transpose().plot(cbar_kwargs={'label': 'Zonal Wind (m/s)'})\n", - "plt.title('MIGHTI Zonal Wind')\n", + "plt.title('MIGHTI Zonal Wind - Red Line')\n", "\n", "# Use pysat's stored metadata to get units\n", "ylabel = ''.join(['Altitude (', mighti_vw_red.meta['Altitude', 'units'], ')'])\n", @@ -535,19 +536,19 @@ "# Meridional wind plot, red line\n", "plt.figure()\n", "mighti_vw_red['Meridional_Wind'].transpose().plot(cbar_kwargs={'label': 'Meridional Wind (m/s)'})\n", - "plt.title('MIGHTI Meridional Wind')\n", + "plt.title('MIGHTI Meridional Wind - Red Line')\n", "plt.ylabel(ylabel)\n", "\n", "# Zonal wind plot, green line\n", "plt.figure()\n", "mighti_vw_green['Zonal_Wind'].transpose().plot(cbar_kwargs={'label': 'Zonal Wind (m/s)'})\n", - "plt.title('MIGHTI Zonal Wind')\n", + "plt.title('MIGHTI Zonal Wind - Green Line')\n", "plt.ylabel(ylabel)\n", "\n", "# Meridional wind plot, green line\n", "plt.figure()\n", "mighti_vw_green['Meridional_Wind'].transpose().plot(cbar_kwargs={'label': 'Meridional Wind (m/s)'})\n", - "plt.title('MIGHTI Meridional Wind')\n", + "plt.title('MIGHTI Meridional Wind - Green Line')\n", "plt.ylabel(ylabel)" ] }, @@ -703,10 +704,10 @@ " first_loop = False\n", " \n", " # Enable support for plotting local_time on x-axis\n", - " slt = (\"Epoch\", lmighti['average_local_time'].data)\n", + " slt = (\"time\", lmighti['average_local_time'].data)\n", "\n", " # Enable support for plotting tangent altitude on y axis\n", - " alt = ((\"Epoch\", \"Alt\"), lmighti['Tangent_Altitude'].data)\n", + " alt = ((\"time\", \"Alt\"), lmighti['Tangent_Altitude'].data)\n", "\n", " # Apply coordinates\n", " a = lmighti['Temperature'].assign_coords(average_local_time=slt,\n", @@ -927,10 +928,10 @@ " # Enable support for profile altitude on y axis\n", " alt_data = lfuv['O_Plus_Profile_Altitude'].mean(axis=2, skipna=True)\n", " alt_data = alt_data.where(np.isfinite(alt_data), alt_data.max())\n", - " alt = ((\"Epoch\", \"Altitude\"), alt_data.data)\n", + " alt = ((\"time\", \"Altitude\"), alt_data.data)\n", "\n", " # Enable support for plotting local time on x axis\n", - " slt = (\"Epoch\", lfuv['maximum_local_time'].data)\n", + " slt = (\"time\", lfuv['maximum_local_time'].data)\n", " # Apply coordinates\n", " var = var.assign_coords(maximum_local_time=slt, alt=alt)\n", " # Sort things out\n", @@ -1047,12 +1048,12 @@ " a = leuv['Oplus']\n", "\n", " # Enable support for plotting local time on x axis\n", - " slt = (\"Epoch\", euv['Local_Solar_Time'].data)\n", + " slt = (\"time\", euv['Local_Solar_Time'].data)\n", "\n", " # Enable support for profile altitude on y axis\n", " alt_data = leuv['Altitude']\n", " alt_data = alt_data.where(np.isfinite(alt_data), alt_data.max())\n", - " alt = ((\"Epoch\", \"Alt\"), alt_data.data)\n", + " alt = ((\"time\", \"Alt\"), alt_data.data)\n", "\n", " # Apply coordinates\n", " a = a.assign_coords(Local_Solar_Time=slt, Altitude=alt)\n", diff --git a/pysatTutorials/pysatSeasons-demo.ipynb b/pysatTutorials/pysatSeasons-demo.ipynb new file mode 100644 index 0000000..880eb22 --- /dev/null +++ b/pysatTutorials/pysatSeasons-demo.ipynb @@ -0,0 +1,248 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 63, + "id": "14ee11c2", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime as dt\n", + "import logging\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import warnings" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "e5cedc1c", + "metadata": {}, + "outputs": [], + "source": [ + "import pysat\n", + "# Set data directory if user hasn't already set one\n", + "if len(pysat.params['data_dirs']) == 0:\n", + " # Set a directory for pysat to use for data\n", + " pysat.params['data_dirs'] = '~/pysatDemo'\n", + "else:\n", + " print('pysat directory has been set previously. Leaving unchanged.')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "import pysatNASA\n", + "import pysatSeasons" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "# Register pysatNASA ICON IVM data plug-in. Only required once per install.\n", + "pysat.utils.registry.register(['pysatNASA.instruments.icon_ivm'])" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "0eac739f", + "metadata": {}, + "outputs": [], + "source": [ + "# Instantiate IVM instrument data\n", + "ivm = pysat.Instrument('icon', 'ivm', inst_id='a')\n", + "\n", + "# Download data\n", + "sdate = dt.datetime(2020, 1, 1)\n", + "edate = dt.datetime(2020, 1, 5)\n", + "ivm.download(sdate, edate)\n", + "\n", + "# Set bounds. The download routine will update nominally update bounds but\n", + "# for demo robustness we assign them here.\n", + "ivm.bounds = (sdate, edate)\n", + "\n", + "# Improvements for loading ICON metadata are currently in \n", + "# https://github.com/pysat/pysatNASA/pull/100. \n", + "warnings.simplefilter('ignore', UserWarning)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "27461bf3", + "metadata": {}, + "outputs": [], + "source": [ + "# Modify data as it is loaded to add a log ion density measurement\n", + "def add_log_dens(inst):\n", + " \"\"\"Calculate Log Ion Density.\n", + " \n", + " Parameters\n", + " ----------\n", + " inst : pysat.Instrument\n", + " Instrument object to operate upon.\n", + " \n", + " \"\"\"\n", + " inst['Log_Ion_Density'] = np.log10(inst['Ion_Density'])\n", + " \n", + " return\n", + "\n", + "# Attach to IVM\n", + "ivm.custom_attach(add_log_dens)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "94df48a9", + "metadata": {}, + "outputs": [], + "source": [ + "# Seasonal bin average of ICON IVM temperature and density data\n", + "results = pysatSeasons.avg.median2D(ivm, [0., 24., 24], 'Magnetic_Local_Time', \n", + " [0., 360., 30], 'Longitude',\n", + " ['Ion_Temperature', 'Log_Ion_Density'])" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "602affa5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 0, 'Magnetic Local Time')" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# The work is done, plot the results!\n", + "\n", + "# Make IVM seasonal average plots\n", + "f, axarr = plt.subplots(2, sharex=True, sharey=True, figsize=(8.5, 11))\n", + "cax = []\n", + "\n", + "# Ion temperature average data\n", + "temps = results['Ion_Temperature']['median']\n", + "\n", + "# Values of bins along x, y\n", + "x_arr = results['Ion_Temperature']['bin_x']\n", + "y_arr = results['Ion_Temperature']['bin_y']\n", + "\n", + "# Mask out NaN values\n", + "masked = np.ma.array(temps, mask=np.isnan(temps))\n", + "\n", + "# Plot, NaN values are white.\n", + "# Note how the data returned from the median function is in plot order.\n", + "cax.append(axarr[0].pcolor(x_arr, y_arr,\n", + " masked, vmax=2250., vmin=600.,\n", + " edgecolors='none'))\n", + "axarr[0].set_ylim(0, 360)\n", + "axarr[0].set_xticks([0, 6, 12, 18, 24])\n", + "axarr[0].set_xlim(0, 24)\n", + "axarr[0].set_yticks(np.arange(0, 420, 60))\n", + "axarr[0].set_title('IVM Ion Temperature')\n", + "axarr[0].set_ylabel('Geographic Longitude')\n", + "\n", + "cbar0 = f.colorbar(cax[0], ax=axarr[0])\n", + "cbar0.set_label('Temperature (K)')\n", + "\n", + "\n", + "# Ion temperature average\n", + "dens = results['Log_Ion_Density']['median']\n", + "x_arr = results['Log_Ion_Density']['bin_x']\n", + "y_arr = results['Log_Ion_Density']['bin_y']\n", + "\n", + "# Mask out NaN values\n", + "masked = np.ma.array(dens, mask=np.isnan(temps))\n", + "\n", + "# Plot, NaN values are white.\n", + "# Note how the data returned from the median function is in plot order.\n", + "cax.append(axarr[1].pcolor(x_arr, y_arr,\n", + " masked, vmax=5., vmin=3.75,\n", + " edgecolors='none'))\n", + "axarr[1].set_ylim(0, 360)\n", + "axarr[1].set_xticks([0, 6, 12, 18, 24])\n", + "axarr[1].set_xlim(0, 24)\n", + "axarr[1].set_yticks(np.arange(0, 420, 60))\n", + "axarr[1].set_title('IVM Log Ion Density')\n", + "axarr[1].set_ylabel('Geographic Longitude')\n", + "\n", + "cbar0 = f.colorbar(cax[1], ax=axarr[1])\n", + "cbar0.set_label('Log Density (N/cc)')\n", + "\n", + "\n", + "axarr[1].set_xlabel('Magnetic Local Time')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae44b9ae", + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 5166352..9d8a955 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,6 @@ matplotlib pysat >= 3.0.0 pysatMadrigal pysatNASA +pysatSeasons pysatSpaceWeather scipy