From 8ef3d36c88b111bbba3d16dc59ed6a40951acc3d Mon Sep 17 00:00:00 2001 From: Russell Stoneback Date: Thu, 17 Sep 2020 19:32:09 -0500 Subject: [PATCH 1/4] ENH: Notebook on pysat loading and iteration --- .../pysat_data_loading_and_iteration.ipynb | 431 ++++++++++++++++++ 1 file changed, 431 insertions(+) create mode 100644 pysatTutorials/pysat_data_loading_and_iteration.ipynb diff --git a/pysatTutorials/pysat_data_loading_and_iteration.ipynb b/pysatTutorials/pysat_data_loading_and_iteration.ipynb new file mode 100644 index 0000000..c2bb9d5 --- /dev/null +++ b/pysatTutorials/pysat_data_loading_and_iteration.ipynb @@ -0,0 +1,431 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import datetime as dt\n", + "import pandas as pds\n", + "import pysat\n", + "\n", + "def print_range(inst):\n", + " \"\"\"Print loaded data range\"\"\"\n", + " print('Loaded Data Range: ')\n", + " print(inst.index[0], ' --- ', inst.index[-1], '\\n\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The following set up a few test conditions, run one, then execute the 'Testing Load Behaviors' cell below.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# basic instrument setup\n", + "inst = pysat.Instrument('pysat', 'testing')\n", + "verify = False" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# instrument setup with data padding\n", + "inst = pysat.Instrument('pysat', 'testing', pad={'minutes': 5})\n", + "verify = True" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# instrument setup with longer data padding\n", + "inst = pysat.Instrument('pysat', 'testing', pad={'minutes': 5, 'days': 1})\n", + "verify = True" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# instrument setup with multi_file_day\n", + "inst = pysat.Instrument('pysat', 'testing', multi_file_day=True)\n", + "verify = True" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Testing Load Behaviors" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "load command via yr, doy: 2009, 1\n", + "Loaded Data Range: \n", + "2009-01-01 00:00:00 --- 2009-01-01 23:59:59 \n", + "\n", + "\n", + "load command via yr, doy pairs: 2009, 1, 2009, 3\n", + "Loaded Data Range: \n", + "2009-01-01 00:00:00 --- 2009-01-02 23:59:59 \n", + "\n", + "\n", + "load command via date: 2009-01-01 00:00:00\n", + "Loaded Data Range: \n", + "2009-01-01 00:00:00 --- 2009-01-01 23:59:59 \n", + "\n", + "\n", + "load command via dates: 2009-01-01 00:00:00 , 2009-01-03 00:00:00\n", + "Loaded Data Range: \n", + "2009-01-01 00:00:00 --- 2009-01-02 23:59:59 \n", + "\n", + "\n", + "Load via filename: 2009-01-01.nofile\n", + "Can't have multi_file_day and load by file. \n", + "\n", + "Load via filenames: 2009-01-01.nofile , 2009-01-02.nofile\n", + "Can't have multi_file_day and load by file. \n", + "\n", + "Note that inst.date refers to the earliest day loaded, excluding padding\n", + "inst.date: None\n" + ] + } + ], + "source": [ + "# load by yr, doy\n", + "try:\n", + " print('load command via yr, doy: ', '2009, 1')\n", + " inst.load(2009, 1, verifyPad=verify)\n", + " print_range(inst)\n", + "except ValueError as err:\n", + " print(err, '\\n')\n", + "\n", + "# inclusive/exclusive syntax for loading over a range of dates\n", + "print('load command via yr, doy pairs: ', '2009, 1, 2009, 3')\n", + "inst.load(2009, 1, 2009, 3, verifyPad=verify)\n", + "print_range(inst)\n", + "\n", + "# load by date\n", + "try:\n", + " date = dt.datetime(2009, 1, 1)\n", + " print('load command via date: ', date)\n", + " inst.load(date=date, verifyPad=verify)\n", + " print_range(inst)\n", + "except ValueError as err:\n", + " print(err, '\\n')\n", + "\n", + "\n", + "# load by range of dates\n", + "date = dt.datetime(2009, 1, 1)\n", + "date2 = dt.datetime(2009, 1, 3)\n", + "print('load command via dates: ', date, ', ', date2)\n", + "# inclusive/exclusive syntax for loading over a range of dates\n", + "inst.load(date=date, date2=date2, verifyPad=verify)\n", + "print_range(inst)\n", + "\n", + "# load by filename\n", + "try:\n", + " fname = inst.files[366]\n", + " print('Load via filename: ', fname)\n", + " inst.load(fname=fname, verifyPad=verify)\n", + " print_range(inst)\n", + "except ValueError as err:\n", + " print(err, '\\n')\n", + "\n", + "\n", + "# load by filenames\n", + "try:\n", + " fname = inst.files[366]\n", + " fname2 = inst.files[367]\n", + " # inclusinve syntax for filenames, start and end\n", + " print('Load via filenames: ', fname, ', ', fname2)\n", + " inst.load(fname=fname, fname2=fname2, verifyPad=verify)\n", + " print_range(inst)\n", + "except ValueError as err:\n", + " print(err, '\\n')\n", + "\n", + "\n", + "print('Note that inst.date refers to the earliest day loaded, excluding padding')\n", + "print('inst.date: ', inst.date)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test out iteration behaviours" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Set bounds on instrument iteration, denoted via date or file limits.\n", + "# Format when setting bounds:\n", + "# bounds = (start dates/files, stop dates/files, stepsize, width of loaded data)\n", + "# Note that start and stop dates are effectively imposed upon inst.date, or the earliest loaded day in the object.\n", + "# When loading with a data width greater than one day, some of the data samples on the last iteration may \n", + "# extend past the supplied bounds, depending upon the step size and data width chosen." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Run one of the two cells below to set up checking out iteration via date, or via file" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "([datetime.datetime(2008, 1, 1, 0, 0)], [datetime.datetime(2008, 1, 11, 0, 0)], '2D', )\n" + ] + } + ], + "source": [ + "# set up bounds via dates\n", + "date = inst.files.start_date\n", + "date2 = inst.files.start_date + pds.DateOffset(days=10)\n", + "date2 = date2.to_pydatetime()\n", + "# format (dt.datetime of list-of, dt.datetime of list-of, pandas frequency string, pandas Date Offset)\n", + "# Ensuring type consistency means that Timestamp date2 needs to become datetime date2.\n", + "# Incidentally, the frequency string '2D' can also be a DateOffset\n", + "bounds = (date, date2, '2D', pds.DateOffset(days=2))\n", + "inst.bounds = bounds\n", + "print(inst.bounds)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(array(['2008-01-01.nofile'], dtype='= inst.bounds[0][0]\n", + " assert inst.date <= inst.bounds[1][0]\n", + " else:\n", + " assert inst._fid >= inst.files.get_index(inst.bounds[0][0])\n", + " assert inst._fid <= inst.files.get_index(inst.bounds[1][0])\n", + "\n", + "# instrument setup\n", + "# We need to start with a new Instrument to ensure we test .next() starting from nothing\n", + "inst = pysat.Instrument('pysat', 'testing')\n", + "inst.bounds = bounds\n", + "print('Instrument bounds: ')\n", + "print(inst.bounds, '\\n')\n", + "\n", + "print('Checking iteration via next().')\n", + "while True:\n", + " try:\n", + " inst.next()\n", + " print_range(inst)\n", + " check_bounds(inst)\n", + " except StopIteration:\n", + " break\n", + "\n", + "# We need to start with a new Instrument to ensure we test .prev() starting from nothing\n", + "inst = pysat.Instrument('pysat', 'testing')\n", + "inst.bounds = bounds\n", + "print('Checking iteration via prev().')\n", + "while True:\n", + " try:\n", + " inst.prev()\n", + " print_range(inst)\n", + " check_bounds(inst)\n", + " except StopIteration:\n", + " break\n", + "\n", + "\n", + "# We need to start with a new Instrument to ensure we test iteration starting from nothing\n", + "inst = pysat.Instrument('pysat', 'testing')\n", + "inst.bounds = bounds\n", + "print('Checking iteration via built-in iteration.')\n", + "for inst in inst:\n", + " print_range(inst)\n", + " check_bounds(inst)\n", + "\n", + "\n", + "# Instrument currently on last day\n", + "print('One last quick check on .prev()')\n", + "inst.prev()\n", + "print_range(inst)" + ] + } + ], + "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.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From ab067972f5c43b3c5e2b3adcd312622a967445b2 Mon Sep 17 00:00:00 2001 From: Russell Stoneback Date: Thu, 17 Sep 2020 20:10:56 -0500 Subject: [PATCH 2/4] ENH: Added loading all data example --- .../pysat_data_loading_and_iteration.ipynb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pysatTutorials/pysat_data_loading_and_iteration.ipynb b/pysatTutorials/pysat_data_loading_and_iteration.ipynb index c2bb9d5..958b713 100644 --- a/pysatTutorials/pysat_data_loading_and_iteration.ipynb +++ b/pysatTutorials/pysat_data_loading_and_iteration.ipynb @@ -172,6 +172,29 @@ "print('inst.date: ', inst.date)" ] }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded Data Range: \n", + "2008-01-01 00:00:00 --- 2010-12-31 00:00:09 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "# Load all data, first file through last file\n", + "inst = pysat.Instrument('pysat', 'testing', num_daily_samples=10)\n", + "inst.load()\n", + "print_range(inst)" + ] + }, { "cell_type": "markdown", "metadata": {}, From bf9b5513cd06b49ad0975608082de4a0717ea7ae Mon Sep 17 00:00:00 2001 From: Russell Stoneback Date: Thu, 24 Sep 2020 14:03:11 -0500 Subject: [PATCH 3/4] Expanded range of iteration tests --- .../pysat_data_loading_and_iteration.ipynb | 668 ++++++++++++++++-- 1 file changed, 616 insertions(+), 52 deletions(-) diff --git a/pysatTutorials/pysat_data_loading_and_iteration.ipynb b/pysatTutorials/pysat_data_loading_and_iteration.ipynb index 958b713..4d69b3b 100644 --- a/pysatTutorials/pysat_data_loading_and_iteration.ipynb +++ b/pysatTutorials/pysat_data_loading_and_iteration.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -213,31 +213,46 @@ "# bounds = (start dates/files, stop dates/files, stepsize, width of loaded data)\n", "# Note that start and stop dates are effectively imposed upon inst.date, or the earliest loaded day in the object.\n", "# When loading with a data width greater than one day, some of the data samples on the last iteration may \n", - "# extend past the supplied bounds, depending upon the step size and data width chosen." + "# extend past the supplied bounds, depending upon the step size and data width chosen.\n", + "\n", + "import datetime as dt\n", + "import pandas as pds\n", + "import pysat\n", + "\n", + "def print_range(inst):\n", + " \"\"\"Print loaded data range\"\"\"\n", + " print('Loaded Data Range: ')\n", + " print(inst.index[0], ' --- ', inst.index[-1], '\\n\\n')\n", + " \n", + "# basic instrument setup\n", + "inst = pysat.Instrument('pysat', 'testing')\n", + "verify = False" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Run one of the two cells below to set up checking out iteration via date, or via file" + "# Run one of the cells below to set up checking out iteration via date, or via file" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "hi there! 2008-01-10 00:00:00 2008-01-11 00:00:00 o yo o\n", "([datetime.datetime(2008, 1, 1, 0, 0)], [datetime.datetime(2008, 1, 11, 0, 0)], '2D', )\n" ] } ], "source": [ "# set up bounds via dates\n", + "# iterate with step size of 2, width of 2 (days)\n", "date = inst.files.start_date\n", "date2 = inst.files.start_date + pds.DateOffset(days=10)\n", "date2 = date2.to_pydatetime()\n", @@ -251,23 +266,131 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "([datetime.datetime(2008, 1, 1, 0, 0)], [datetime.datetime(2008, 1, 11, 0, 0)], '2D', )\n" + ] + } + ], + "source": [ + "# set up bounds via dates\n", + "# iterate with step size of 2, width of 1 (days)\n", + "date = inst.files.start_date\n", + "date2 = inst.files.start_date + pds.DateOffset(days=10)\n", + "date2 = date2.to_pydatetime()\n", + "# format (dt.datetime of list-of, dt.datetime of list-of, pandas frequency string, pandas Date Offset)\n", + "# Ensuring type consistency means that Timestamp date2 needs to become datetime date2.\n", + "# Incidentally, the frequency string '2D' can also be a DateOffset\n", + "bounds = (date, date2, '2D', pds.DateOffset(days=1))\n", + "inst.bounds = bounds\n", + "print(inst.bounds)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "([datetime.datetime(2008, 1, 1, 0, 0), datetime.datetime(2008, 1, 31, 0, 0)], [datetime.datetime(2008, 1, 11, 0, 0), datetime.datetime(2008, 2, 10, 0, 0)], '3D', )\n" + ] + } + ], + "source": [ + "# set up multiple bounds via dates\n", + "date = inst.files.start_date\n", + "date2 = inst.files.start_date + pds.DateOffset(days=10)\n", + "date2 = date2.to_pydatetime()\n", + "\n", + "date3 = date2 + pds.DateOffset(days=20)\n", + "date3 = date3.to_pydatetime()\n", + "date4 = date3 + pds.DateOffset(days=10)\n", + "date4 = date4.to_pydatetime()\n", + "\n", + "# format (dt.datetime of list-of, dt.datetime of list-of, pandas frequency string, pandas Date Offset)\n", + "# Ensuring type consistency means that Timestamp date2 needs to become datetime date2.\n", + "# Incidentally, the frequency string '2D' can also be a DateOffset\n", + "bounds = ((date, date3), (date2, date4), '3D', pds.DateOffset(days=4))\n", + "inst.bounds = bounds\n", + "print(inst.bounds)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(array(['2008-01-01.nofile'], dtype='= inst.bounds[0][0]\n", - " assert inst.date <= inst.bounds[1][0]\n", + " assert inst.check_date_in_bounds(inst.date)\n", " else:\n", " assert inst._fid >= inst.files.get_index(inst.bounds[0][0])\n", " assert inst._fid <= inst.files.get_index(inst.bounds[1][0])\n", @@ -392,7 +489,7 @@ "print('Instrument bounds: ')\n", "print(inst.bounds, '\\n')\n", "\n", - "print('Checking iteration via next().')\n", + "print('Checking iteration via next(). Starting from new object.')\n", "while True:\n", " try:\n", " inst.next()\n", @@ -404,7 +501,7 @@ "# We need to start with a new Instrument to ensure we test .prev() starting from nothing\n", "inst = pysat.Instrument('pysat', 'testing')\n", "inst.bounds = bounds\n", - "print('Checking iteration via prev().')\n", + "print('Checking iteration via prev(). Starting from new object.')\n", "while True:\n", " try:\n", " inst.prev()\n", @@ -417,17 +514,484 @@ "# We need to start with a new Instrument to ensure we test iteration starting from nothing\n", "inst = pysat.Instrument('pysat', 'testing')\n", "inst.bounds = bounds\n", - "print('Checking iteration via built-in iteration.')\n", + "print('Checking iteration via built-in iteration. Starting from new object.')\n", "for inst in inst:\n", " print_range(inst)\n", " check_bounds(inst)\n", "\n", "\n", "# Instrument currently on last day\n", - "print('One last quick check on .prev()')\n", + "print('One last quick check on .prev(), continuing from last object.')\n", "inst.prev()\n", "print_range(inst)" ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DatetimeIndex([], dtype='datetime64[ns]', freq=None)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "inst._iter_list\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test out orbit behaviors" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "orbit_info = {'kind': 'lt', 'index': 'mlt'}\n", + "inst = pysat.Instrument('pysat', 'testing', multi_file_day=True, orbit_info=orbit_info)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "inst.load(2009, 1, 2009, 3)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "16" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "inst.orbits.num\n" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
utsmltsltlongitudelatitudealtitudeorbit_numdummy1dummy2dummy3dummy4string_dummyunicode_dummyint8_dummyint16_dummyint32_dummyint64_dummy
Epoch
2009-01-01 01:37:005820.00.0000000.082474335.76923190.000000400.0543402222000.05820.0testtest1111
2009-01-01 01:37:015821.00.0041240.086598335.82692389.999948400.0543402222000.05821.0testtest1111
2009-01-01 01:37:025822.00.0082470.090722335.88461589.999790400.0543402222000.05822.0testtest1111
2009-01-01 01:37:035823.00.0123710.094845335.94230889.999528400.0543402222000.05823.0testtest1111
2009-01-01 01:37:045824.00.0164950.098969336.00000089.999161400.0543402222000.05824.0testtest1111
......................................................
2009-01-01 03:13:5511635.023.9793810.061856311.25000089.998689400.05435232020023.011635.0testtest1111
2009-01-01 03:13:5611636.023.9835050.065979311.30769289.999161400.05435232020023.011636.0testtest1111
2009-01-01 03:13:5711637.023.9876290.070103311.36538589.999528400.05435232020023.011637.0testtest1111
2009-01-01 03:13:5811638.023.9917530.074227311.42307789.999790400.05435232020023.011638.0testtest1111
2009-01-01 03:13:5911639.023.9958760.078351311.48076989.999948400.05435232020023.011639.0testtest1111
\n", + "

5820 rows × 17 columns

\n", + "
" + ], + "text/plain": [ + " uts mlt slt longitude latitude \\\n", + "Epoch \n", + "2009-01-01 01:37:00 5820.0 0.000000 0.082474 335.769231 90.000000 \n", + "2009-01-01 01:37:01 5821.0 0.004124 0.086598 335.826923 89.999948 \n", + "2009-01-01 01:37:02 5822.0 0.008247 0.090722 335.884615 89.999790 \n", + "2009-01-01 01:37:03 5823.0 0.012371 0.094845 335.942308 89.999528 \n", + "2009-01-01 01:37:04 5824.0 0.016495 0.098969 336.000000 89.999161 \n", + "... ... ... ... ... ... \n", + "2009-01-01 03:13:55 11635.0 23.979381 0.061856 311.250000 89.998689 \n", + "2009-01-01 03:13:56 11636.0 23.983505 0.065979 311.307692 89.999161 \n", + "2009-01-01 03:13:57 11637.0 23.987629 0.070103 311.365385 89.999528 \n", + "2009-01-01 03:13:58 11638.0 23.991753 0.074227 311.423077 89.999790 \n", + "2009-01-01 03:13:59 11639.0 23.995876 0.078351 311.480769 89.999948 \n", + "\n", + " altitude orbit_num dummy1 dummy2 dummy3 dummy4 \\\n", + "Epoch \n", + "2009-01-01 01:37:00 400.0 5434 0 22 22000.0 5820.0 \n", + "2009-01-01 01:37:01 400.0 5434 0 22 22000.0 5821.0 \n", + "2009-01-01 01:37:02 400.0 5434 0 22 22000.0 5822.0 \n", + "2009-01-01 01:37:03 400.0 5434 0 22 22000.0 5823.0 \n", + "2009-01-01 01:37:04 400.0 5434 0 22 22000.0 5824.0 \n", + "... ... ... ... ... ... ... \n", + "2009-01-01 03:13:55 400.0 5435 23 20 20023.0 11635.0 \n", + "2009-01-01 03:13:56 400.0 5435 23 20 20023.0 11636.0 \n", + "2009-01-01 03:13:57 400.0 5435 23 20 20023.0 11637.0 \n", + "2009-01-01 03:13:58 400.0 5435 23 20 20023.0 11638.0 \n", + "2009-01-01 03:13:59 400.0 5435 23 20 20023.0 11639.0 \n", + "\n", + " string_dummy unicode_dummy int8_dummy int16_dummy \\\n", + "Epoch \n", + "2009-01-01 01:37:00 test test 1 1 \n", + "2009-01-01 01:37:01 test test 1 1 \n", + "2009-01-01 01:37:02 test test 1 1 \n", + "2009-01-01 01:37:03 test test 1 1 \n", + "2009-01-01 01:37:04 test test 1 1 \n", + "... ... ... ... ... \n", + "2009-01-01 03:13:55 test test 1 1 \n", + "2009-01-01 03:13:56 test test 1 1 \n", + "2009-01-01 03:13:57 test test 1 1 \n", + "2009-01-01 03:13:58 test test 1 1 \n", + "2009-01-01 03:13:59 test test 1 1 \n", + "\n", + " int32_dummy int64_dummy \n", + "Epoch \n", + "2009-01-01 01:37:00 1 1 \n", + "2009-01-01 01:37:01 1 1 \n", + "2009-01-01 01:37:02 1 1 \n", + "2009-01-01 01:37:03 1 1 \n", + "2009-01-01 01:37:04 1 1 \n", + "... ... ... \n", + "2009-01-01 03:13:55 1 1 \n", + "2009-01-01 03:13:56 1 1 \n", + "2009-01-01 03:13:57 1 1 \n", + "2009-01-01 03:13:58 1 1 \n", + "2009-01-01 03:13:59 1 1 \n", + "\n", + "[5820 rows x 17 columns]" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "inst.orbits.next()\n", + "inst.data" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "inst['mlt'].plot()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From 8c00f7504c40bd5ad3eaa15a764e0248a0d84f36 Mon Sep 17 00:00:00 2001 From: Russell Stoneback Date: Thu, 24 Sep 2020 17:23:39 -0500 Subject: [PATCH 4/4] Orbit and other feedback improvements --- .../pysat_data_loading_and_iteration.ipynb | 677 +++++------------- 1 file changed, 177 insertions(+), 500 deletions(-) diff --git a/pysatTutorials/pysat_data_loading_and_iteration.ipynb b/pysatTutorials/pysat_data_loading_and_iteration.ipynb index 4d69b3b..291e835 100644 --- a/pysatTutorials/pysat_data_loading_and_iteration.ipynb +++ b/pysatTutorials/pysat_data_loading_and_iteration.ipynb @@ -2,18 +2,21 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 162, "metadata": {}, "outputs": [], "source": [ "import datetime as dt\n", + "import numpy as np\n", "import pandas as pds\n", + "import time\n", + "\n", "import pysat\n", "\n", "def print_range(inst):\n", " \"\"\"Print loaded data range\"\"\"\n", " print('Loaded Data Range: ')\n", - " print(inst.index[0], ' --- ', inst.index[-1], '\\n\\n')" + " print(inst.index[0], ' --- ', inst.index[-1], '\\n')" ] }, { @@ -25,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 147, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 151, "metadata": {}, "outputs": [ { @@ -87,30 +90,28 @@ "Loaded Data Range: \n", "2009-01-01 00:00:00 --- 2009-01-01 23:59:59 \n", "\n", - "\n", "load command via yr, doy pairs: 2009, 1, 2009, 3\n", "Loaded Data Range: \n", "2009-01-01 00:00:00 --- 2009-01-02 23:59:59 \n", "\n", - "\n", "load command via date: 2009-01-01 00:00:00\n", "Loaded Data Range: \n", "2009-01-01 00:00:00 --- 2009-01-01 23:59:59 \n", "\n", - "\n", "load command via dates: 2009-01-01 00:00:00 , 2009-01-03 00:00:00\n", "Loaded Data Range: \n", "2009-01-01 00:00:00 --- 2009-01-02 23:59:59 \n", "\n", - "\n", "Load via filename: 2009-01-01.nofile\n", - "Can't have multi_file_day and load by file. \n", + "Loaded Data Range: \n", + "2009-01-01 00:00:00 --- 2009-01-01 23:59:59 \n", "\n", "Load via filenames: 2009-01-01.nofile , 2009-01-02.nofile\n", - "Can't have multi_file_day and load by file. \n", + "Loaded Data Range: \n", + "2009-01-01 00:00:00 --- 2009-01-02 23:59:59 \n", "\n", "Note that inst.date refers to the earliest day loaded, excluding padding\n", - "inst.date: None\n" + "inst.date: 2009-01-01 00:00:00\n" ] } ], @@ -140,10 +141,10 @@ "\n", "# load by range of dates\n", "date = dt.datetime(2009, 1, 1)\n", - "date2 = dt.datetime(2009, 1, 3)\n", - "print('load command via dates: ', date, ', ', date2)\n", + "end_date = dt.datetime(2009, 1, 3)\n", + "print('load command via dates: ', date, ', ', end_date)\n", "# inclusive/exclusive syntax for loading over a range of dates\n", - "inst.load(date=date, date2=date2, verifyPad=verify)\n", + "inst.load(date=date, end_date=end_date, verifyPad=verify)\n", "print_range(inst)\n", "\n", "# load by filename\n", @@ -159,10 +160,10 @@ "# load by filenames\n", "try:\n", " fname = inst.files[366]\n", - " fname2 = inst.files[367]\n", + " stop_fname = inst.files[367]\n", " # inclusinve syntax for filenames, start and end\n", - " print('Load via filenames: ', fname, ', ', fname2)\n", - " inst.load(fname=fname, fname2=fname2, verifyPad=verify)\n", + " print('Load via filenames: ', fname, ', ', stop_fname)\n", + " inst.load(fname=fname, stop_fname=stop_fname, verifyPad=verify)\n", " print_range(inst)\n", "except ValueError as err:\n", " print(err, '\\n')\n", @@ -174,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 152, "metadata": {}, "outputs": [ { @@ -183,7 +184,6 @@ "text": [ "Loaded Data Range: \n", "2008-01-01 00:00:00 --- 2010-12-31 00:00:09 \n", - "\n", "\n" ] } @@ -202,33 +202,6 @@ "# Test out iteration behaviours" ] }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Set bounds on instrument iteration, denoted via date or file limits.\n", - "# Format when setting bounds:\n", - "# bounds = (start dates/files, stop dates/files, stepsize, width of loaded data)\n", - "# Note that start and stop dates are effectively imposed upon inst.date, or the earliest loaded day in the object.\n", - "# When loading with a data width greater than one day, some of the data samples on the last iteration may \n", - "# extend past the supplied bounds, depending upon the step size and data width chosen.\n", - "\n", - "import datetime as dt\n", - "import pandas as pds\n", - "import pysat\n", - "\n", - "def print_range(inst):\n", - " \"\"\"Print loaded data range\"\"\"\n", - " print('Loaded Data Range: ')\n", - " print(inst.index[0], ' --- ', inst.index[-1], '\\n\\n')\n", - " \n", - "# basic instrument setup\n", - "inst = pysat.Instrument('pysat', 'testing')\n", - "verify = False" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -238,19 +211,26 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 153, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "hi there! 2008-01-10 00:00:00 2008-01-11 00:00:00 o yo o\n", "([datetime.datetime(2008, 1, 1, 0, 0)], [datetime.datetime(2008, 1, 11, 0, 0)], '2D', )\n" ] } ], "source": [ + "# Set bounds on instrument iteration, denoted via date or file limits.\n", + "# Format when setting bounds:\n", + "# bounds = (start dates/files, stop dates/files, stepsize, width of loaded data)\n", + "# Note that start and stop dates are effectively imposed upon inst.date, or the earliest loaded day in the object.\n", + "# When loading with a data width greater than one day, some of the data samples on the last iteration may \n", + "# extend past the supplied bounds, depending upon the step size and data width chosen.\n", + "\n", + "\n", "# set up bounds via dates\n", "# iterate with step size of 2, width of 2 (days)\n", "date = inst.files.start_date\n", @@ -293,7 +273,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -306,6 +286,8 @@ ], "source": [ "# set up multiple bounds via dates\n", + "# iterate with step size of 3, width of 4 (days)\n", + "\n", "date = inst.files.start_date\n", "date2 = inst.files.start_date + pds.DateOffset(days=10)\n", "date2 = date2.to_pydatetime()\n", @@ -373,7 +355,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 154, "metadata": {}, "outputs": [ { @@ -386,7 +368,7 @@ ], "source": [ "# set up bounds via files\n", - "# check for a width of one\n", + "# check for a width of one, step greater than 1\n", "file = inst.files[0]\n", "file2 = inst.files[10]\n", "# step by 2 files, and load 1 file at a time\n", @@ -404,7 +386,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 159, "metadata": {}, "outputs": [ { @@ -412,63 +394,71 @@ "output_type": "stream", "text": [ "Instrument bounds: \n", - "(array(['2008-01-01.nofile'], dtype='\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
utsmltsltlongitudelatitudealtitudeorbit_numdummy1dummy2dummy3dummy4string_dummyunicode_dummyint8_dummyint16_dummyint32_dummyint64_dummy
Epoch
2009-01-01 01:37:005820.00.0000000.082474335.76923190.000000400.0543402222000.05820.0testtest1111
2009-01-01 01:37:015821.00.0041240.086598335.82692389.999948400.0543402222000.05821.0testtest1111
2009-01-01 01:37:025822.00.0082470.090722335.88461589.999790400.0543402222000.05822.0testtest1111
2009-01-01 01:37:035823.00.0123710.094845335.94230889.999528400.0543402222000.05823.0testtest1111
2009-01-01 01:37:045824.00.0164950.098969336.00000089.999161400.0543402222000.05824.0testtest1111
......................................................
2009-01-01 03:13:5511635.023.9793810.061856311.25000089.998689400.05435232020023.011635.0testtest1111
2009-01-01 03:13:5611636.023.9835050.065979311.30769289.999161400.05435232020023.011636.0testtest1111
2009-01-01 03:13:5711637.023.9876290.070103311.36538589.999528400.05435232020023.011637.0testtest1111
2009-01-01 03:13:5811638.023.9917530.074227311.42307789.999790400.05435232020023.011638.0testtest1111
2009-01-01 03:13:5911639.023.9958760.078351311.48076989.999948400.05435232020023.011639.0testtest1111
\n", - "

5820 rows × 17 columns

\n", - "" - ], - "text/plain": [ - " uts mlt slt longitude latitude \\\n", - "Epoch \n", - "2009-01-01 01:37:00 5820.0 0.000000 0.082474 335.769231 90.000000 \n", - "2009-01-01 01:37:01 5821.0 0.004124 0.086598 335.826923 89.999948 \n", - "2009-01-01 01:37:02 5822.0 0.008247 0.090722 335.884615 89.999790 \n", - "2009-01-01 01:37:03 5823.0 0.012371 0.094845 335.942308 89.999528 \n", - "2009-01-01 01:37:04 5824.0 0.016495 0.098969 336.000000 89.999161 \n", - "... ... ... ... ... ... \n", - "2009-01-01 03:13:55 11635.0 23.979381 0.061856 311.250000 89.998689 \n", - "2009-01-01 03:13:56 11636.0 23.983505 0.065979 311.307692 89.999161 \n", - "2009-01-01 03:13:57 11637.0 23.987629 0.070103 311.365385 89.999528 \n", - "2009-01-01 03:13:58 11638.0 23.991753 0.074227 311.423077 89.999790 \n", - "2009-01-01 03:13:59 11639.0 23.995876 0.078351 311.480769 89.999948 \n", - "\n", - " altitude orbit_num dummy1 dummy2 dummy3 dummy4 \\\n", - "Epoch \n", - "2009-01-01 01:37:00 400.0 5434 0 22 22000.0 5820.0 \n", - "2009-01-01 01:37:01 400.0 5434 0 22 22000.0 5821.0 \n", - "2009-01-01 01:37:02 400.0 5434 0 22 22000.0 5822.0 \n", - "2009-01-01 01:37:03 400.0 5434 0 22 22000.0 5823.0 \n", - "2009-01-01 01:37:04 400.0 5434 0 22 22000.0 5824.0 \n", - "... ... ... ... ... ... ... \n", - "2009-01-01 03:13:55 400.0 5435 23 20 20023.0 11635.0 \n", - "2009-01-01 03:13:56 400.0 5435 23 20 20023.0 11636.0 \n", - "2009-01-01 03:13:57 400.0 5435 23 20 20023.0 11637.0 \n", - "2009-01-01 03:13:58 400.0 5435 23 20 20023.0 11638.0 \n", - "2009-01-01 03:13:59 400.0 5435 23 20 20023.0 11639.0 \n", - "\n", - " string_dummy unicode_dummy int8_dummy int16_dummy \\\n", - "Epoch \n", - "2009-01-01 01:37:00 test test 1 1 \n", - "2009-01-01 01:37:01 test test 1 1 \n", - "2009-01-01 01:37:02 test test 1 1 \n", - "2009-01-01 01:37:03 test test 1 1 \n", - "2009-01-01 01:37:04 test test 1 1 \n", - "... ... ... ... ... \n", - "2009-01-01 03:13:55 test test 1 1 \n", - "2009-01-01 03:13:56 test test 1 1 \n", - "2009-01-01 03:13:57 test test 1 1 \n", - "2009-01-01 03:13:58 test test 1 1 \n", - "2009-01-01 03:13:59 test test 1 1 \n", - "\n", - " int32_dummy int64_dummy \n", - "Epoch \n", - "2009-01-01 01:37:00 1 1 \n", - "2009-01-01 01:37:01 1 1 \n", - "2009-01-01 01:37:02 1 1 \n", - "2009-01-01 01:37:03 1 1 \n", - "2009-01-01 01:37:04 1 1 \n", - "... ... ... \n", - "2009-01-01 03:13:55 1 1 \n", - "2009-01-01 03:13:56 1 1 \n", - "2009-01-01 03:13:57 1 1 \n", - "2009-01-01 03:13:58 1 1 \n", - "2009-01-01 03:13:59 1 1 \n", - "\n", - "[5820 rows x 17 columns]" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded Data Range: \n", + "2008-01-01 00:00:00 --- 2008-01-01 00:38:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 00:39:00 --- 2008-01-01 02:15:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 02:16:00 --- 2008-01-01 03:52:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 03:53:00 --- 2008-01-01 05:29:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 05:30:00 --- 2008-01-01 07:06:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 07:07:00 --- 2008-01-01 08:43:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 08:44:00 --- 2008-01-01 10:20:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 10:21:00 --- 2008-01-01 11:57:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 11:58:00 --- 2008-01-01 13:34:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 13:35:00 --- 2008-01-01 15:11:59 \n", + "\n" + ] } ], "source": [ - "inst.orbits.next()\n", - "inst.data" + "# demonstrate iterating over orbits via next\n", + "for i in np.arange(10):\n", + " inst.orbits.next()\n", + " print_range(inst)\n" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 185, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEgCAYAAACtlyjIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU9dn38c8lYd/XsIawQ0BkieC+ouKG2lor7ktLtbW37aNt1T6VgMrtVuuuxa1oa613ax/CIogI4oqiopCNfd/BhLBkv54/Zuyd0iQkmUwmM/N9v17zYnLmnDPXYWa++eXMOdcxd0dERKLPMZEuQEREakcBLiISpRTgIiJRSgEuIhKlFOAiIlFKAS4iEqWOGuBm1svMFplZppllmNntwelpZrbVzJYHbxeEv1wREfmOHe04cDPrBnRz9y/NrDXwBXApcAVwwN0fDX+ZIiJypISjzeDu24Htwfv5ZpYF9KjNk3Xq1MmTk5Nrs6iISNz64osv9rh75yOnHzXAyzOzZGAksBQ4GbjNzK4DlgF3uPu3VS2fnJzMsmXLavKUIiJxz8w2VjS92l9imlkr4B/AL9x9P/Ac0A8YQWCE/vtKlptkZsvMbNnu3btrXLiIiFSsWgFuZo0JhPdf3P0tAHff6e6l7l4GvACMqWhZd5/u7qnuntq583/8BSAiIrVUnaNQDHgJyHL3x8pN71ZutsuAlXVfnoiIVKY6+8BPBq4FVpjZ8uC0e4CJZjYCcGAD8JOwVCgiIhWqzlEoHwJWwUNz674cERGpLp2JKSISpRTgIiJRqkbHgYuISP3ZvO8Q983OrPRxBbiISANzuKiU5xav4fkl62hkFX0FGaAAFxFpINydeSt3cP+cLLbmHmbCcd25+4LBdL+/4vkV4CIiDcDqnfmkzcrgozV7Gdy1NW9MOoET+naschkFuIhIBO0vKOaJd1cz4+MNtGjSiCkThnL12CQSGh39GBMFuIhIBJSVOW99tZUH385m78FCrjy+F3eeO4iOrZpWex0KcBGRerZiSx73pq/kq025jOjVjpdvSGV4z3Y1Xo8CXESknuw7WMQj87N54/PNdGzZhEcuH873R/XkmGMqP9KkKgpwEZEwKykt4y9LN/H7d3I4WFTKTSf34fZxA2jTrHFI61WAi4iE0dJ1e5mcnkH2jnxO7t+RtIuHMiCxdZ2sWwEuIhIGO/IKmDY3i/Svt9GjXXOeu3oU44d1xao4MaemFOAiInWosKSUlz5cz9PvraGkzPmvs/pz6xn9ad6kUZ0/lwJcRKSOLMrexdTZmazfc5BzUhL53YUpJHVsEbbnU4CLiIRo496DTJ2VycLsXfTt1JIZN43h9IHhv4SkAlxEpJYOFZXw7KK1TF+yjsaNjLvPH8yNJ/ehSUL9dOpWgIuI1JC7M2fFdqbNyWJbXgGXjujO3RcMIbFNs3qtQwEuIlIDOTvySUvP4JN1e0np1oYnJo7k+OQOEalFAS4iUg15h4t5/N1VvPrJRlo1TeC+S4dx1ZgkGtXyLMq6oAAXEalCWZnz9y+28NC8bPYdKmLimCTuPHcQHVo2iXRpCnARkcos35zL5PQMvt6cy+je7ZkxYQzDerSNdFn/ogAXETnCngOFPDwvmzeXbaFz66Y8dsVxXDayR52eRVkXFOAiIkElpWW89ulGHluwisNFpUw6rS8/P6s/rUNsOhUuCnAREeCTtXtJS88gZ2c+pw7oxOSLh9K/S6tIl1UlBbiIxLVtuYd5YG4Wc77ZTs/2zXn+mtGcNzSxwe0uqYgCXETiUkFxKS9+sI5nFq2lzJ1fjBvALaf3o1njum86FS4KcBGJOwuzdjJ1diYb9x5i/NCu/PbCIfTqEL6mU+GiABeRuLF+z0GmzspgUc5u+nVuyWs3j+HUAeFvOhUuCnARiXkHC0t4etEaXvpgPU0SjuG3Fwzh+pOS663pVLgowEUkZrk7s74JNJ3asb+A743qwV3jB9OlnptOhYsCXERiUtb2/aSlZ7B0/T6G9WjDM1ePZHTvyDSdCpejBriZ9QJeBRIBB6a7+xNm1gH4G5AMbACucPdvw1eqiMjR5R0q5rEFObz26UbaNm/MA5cN48rjI9t0KlyqMwIvAe5w9y/NrDXwhZktAG4AFrr7g2Z2F3AX8JvwlSoiUrnSMufNZZt5ZH4OuYeKuHpsb+44dyDtWkS+6VS4HDXA3X07sD14P9/MsoAewCXAGcHZZgCLUYCLSAR8uelbJs/MYMXWPI5Pbs+UCWNJ6d4m0mWFXY32gZtZMjASWAokBsMdYAeBXSwiIvVmd34hD83L5u9fbCGxTVOeuHIEE47rHhVnUdaFage4mbUC/gH8wt33l/8Pcnc3M69kuUnAJICkpKTQqhURAYpLy5jx8QaeeHc1BSWl3HJ6P247qz+tmsbXcRnV2loza0wgvP/i7m8FJ+80s27uvt3MugG7KlrW3acD0wFSU1MrDHkRker6aM0e0tIzWL3rAKcP7My9F6fQr3PDbjoVLtU5CsWAl4Asd3+s3EPpwPXAg8F/Z4alQhERYGvuYR6Yk8ncFTtI6tCCF65LZdyQLnGzu6Qi1RmBnwxcC6wws+XBafcQCO43zexmYCNwRXhKFJF4VlBcyvQl63h28RoA7jhnID8+rW9UNZ0Kl+ochfIhUNmvuLPrthwRkQB3Z0HmTu6bk8nmfYe58Nhu3HPhEHq0ax7p0hqM+NrjLyJRYe3uA0yZlcmSVbsZ0KUVr/9oLCf17xTpshocBbiINBgHCkt46r3VvPzhepolNOJ3F6Vw3Ym9adwouptOhYsCXEQizt2ZuXwb0+ZmsSu/kB+M7smvxw+mc+umkS6tQVOAi0hEZWzLIy09g883fMvwnm3547WjGZnUPtJlRQUFuIhERO6hIh59J4fXl26iXYsmPPi9Y7kitRfHxGDTqXBRgItIvSotc/762SYefSeH/YeLue7EZH45biBtWzSOdGlRRwEuIvXmi437uHdmBhnb9jO2TwemXDKUwV1jv+lUuCjARSTsdu0v4MG3s3nrq610bdOMpyaO5KLh3eL6LMq6oAAXkbApKinjTx+v58mFaygqKeOnZ/TjZ2f2p2WcNZ0KF/0vikhYfLB6N2npGazdfZCzBnfh3otSSO7UMtJlxRQFuIjUqc37DnH/nEzmZ+ykd8cWvHxDKmcN1uUCwkEBLiJ1oqC4lOcWr+X599dyjBm/Om8QN5/SR02nwkgBLiIhcXfmZ+zgvtlZbM09zEXDu3HPBUPorqZTYacAF5FaW7PrAFNmZfDB6j0MSmzNX398Aif26xjpsuKGAlxEaiy/oJgnF67mlY820KJJI9IuTuGaE3qToKZT9UoBLiLVVlbm/POrrTw4L5s9Bwr5YWovfnXeIDq2UtOpSFCAi0i1rNyax70zV/LlplyO69WOF69L5bhe7SJdVlxTgItIlfYdLOKR+Tm88fkmOrZswsOXD+fyUT3VdKoBUICLSIVKy5zXl27k0XdWcaCwhBtP6sPt4wbQtrmaTjUUCnAR+Q+frd/H5PQMsrbv58S+HZlyyVAGJraOdFlyBAW4iPzLzv0FTJubxczl2+jethnPXDWKC47tqqZTDZQCXEQoKinj5Y/W89TC1RSXOT8/qz+3ntGPFk0UEQ2ZXh2ROLc4ZxdTZ2Wybs9Bxg1J5N6LUkjq2CLSZUk1KMBF4tSmvYeYOjuTd7N20qdTS1658XjOHNQl0mVJDSjAReLM4aJSnl28hj8uWUfCMcZvxg/mplOSaZqgplPRRgEuEifcnbdX7uD+2ZlsyyvgkhHdufv8IXRt2yzSpUktKcBF4sCqnfmkpWfw8dq9DOnWhsevHMmYPh0iXZaESAEuEsP2FxTz+ILVzPhkA62aJnDfJUOZOCZJTadihAJcJAaVlTl//3ILD8/LZu/BIq48PolfnTeIDi2bRLo0qUMKcJEY8/XmXCanZ7B8cy6jktrxyg1jOLZn20iXJWGgABeJEXsPFPLI/Bz+tmwzHVs25fc/OI7LRvZQ06kYpgAXiXIlpWX8+dONPLZgFYeKSrn55EDTqdbN1HQq1inARaLYp+v2kpaeQfaOfE7p34m0CSn076KmU/HiqAFuZi8DFwG73H1YcFoa8GNgd3C2e9x9briKFJF/tz3vMNPmZjPr6230aNec568ZxXlD1XQq3lRnBP4n4Gng1SOm/8HdH63zikSkUoUlpbz4wXqefm8NZe7cfvYAbjm9H82b6CzKeHTUAHf3JWaWHP5SRKQq72XvZOqsTDbsPcS5KYn87qIUenVQ06l4Fso+8NvM7DpgGXCHu39b0UxmNgmYBJCUlBTC04nEpw17DjJ1dibvZe+ib+eWvHrTGE4b2DnSZUkDYO5+9JkCI/DZ5faBJwJ7AAfuA7q5+01HW09qaqovW7YslHpF4sahohKeWbSGF5asp3Ej4/ZxA7jhpD40SdBZlPHGzL5w99Qjp9dqBO7uO8ut+AVgdgi1iUg57s7sb7YzbW4W2/MK+N7IHtx1/mC6tFHTKfl3tQpwM+vm7tuDP14GrKy7kkTiV/aO/aSlZ/Dpun2kdGvDUxNHkpqsplNSseocRvhX4Aygk5ltASYDZ5jZCAK7UDYAPwljjSIxL+9wMX9YsIrXPt1I62YJ3H/pMCaOSaKRzqKUKlTnKJSJFUx+KQy1iMSdsjLnzWWbeXh+DrmHirhqbBJ3nDOI9mo6JdWgMzFFImT55lwmz1zJ11vySO3dnrQJYxjWQ02npPoU4CL1bHd+IQ/Py+Z/vthCl9ZNefyHI7hkRHedRSk1pgAXqSfFpWW89slG/rBgFQUlpfzktL78/OwBtGqqj6HUjt45IvXg47V7SEvPYNXOA5w2sDOTL06hX+dWkS5LopwCXCSMtuYeZtqcLOas2E6vDs2Zfu1ozklJ1O4SqRMKcJEwKCgu5YUl63hm8Rrc4ZfjBvKT0/vSrLGaTkndUYCL1CF3592sXdw3O5NN+w5x/rCu/PbCIfRsr6ZTUvcU4CJ1ZN3uA0ydncninN3079KKP988llMGdIp0WRLDFOAiITpYWMJT763hpQ/X0SyhEf/3wiFcf1IyjRup6ZSElwJcpJbcnfSvtzFtbhY79xdy+eie/Hr8ILq0VtMpqR8KcJFayNwWaDr12YZ9HNujLc9ePZrRvdtHuiyJMwpwkRrIPVTEYwtW8edPN9K2eWP++3vHckVqLzWdkohQgItUQ2mZ87fPN/PI/GzyDhdz7Qm9+T/nDKJti8aRLk3imAJc5Ci+2PgtaekZrNiax5jkDqRNGEpK9zaRLktEAS5SmV35BTz0dg7/+HILiW2a8sSVI5hwnJpOScOhABc5QnFpGTM+3sDj766msKSUW8/ox21n9qelmk5JA6N3pEg5H67eQ9qsDNbsOsAZgzoz+eKh9OnUMtJliVRIAS4CbPn2EPfPzmJexg6SOrTgxetSOXtIF+0ukQZNAS5xraC4lOffX8tzi9diBneeO5AfnaqmUxIdFOASl9yddzJ3ct/sTLZ8e5gLh3fjtxcMoXu75pEuTaTaFOASd9bsOsCUWRl8sHoPgxJb8/qPx3JSPzWdkuijAJe4kV9QzFPvreHlD9fTvEkjJl+cwrUn9CZBTackSinAJea5O/9v+Vamzc1md34hV6T25NfjB9OpVdNIlyYSEgW4xLSVW/NIS89g2cZvOa5nW164LpURvdpFuiyROqEAl5j07cEiHn0nh9c/20SHFk146PvH8oPRvThGTackhijAJaaUljmvf7aJ37+TQ35BCdefmMwvzxlI2+ZqOiWxRwEuMWPZhn3cOzODzO37OaFvB6ZMGMagrq0jXZZI2CjAJert2l/Af7+dzT+/2kq3ts14+qqRXHhsN51FKTFPAS5Rq6ikjFc+Ws+TC1dTXOrcdmZ/fnpmP1o00dta4oPe6RKV3l+1mymzMli3+yBnD+7C7y5KIVlNpyTOKMAlqmzed4ipszNZkLmT5I4teOWG4zlzcJdIlyUSEQpwiQqHi0p57v21PP/+WhKOMX49fhA3n9KHpglqOiXx66gBbmYvAxcBu9x9WHBaB+BvQDKwAbjC3b8NX5kSr9ydeSt3cP+cLLbmHmbCcd25+4LBdGurplMi1WkC8Sdg/BHT7gIWuvsAYGHwZ5E6tXpnPte8tJRb//IlrZsl8MakE3hy4kiFt0jQUUfg7r7EzJKPmHwJcEbw/gxgMfCbOqxL4tj+gmKeeHc1Mz7eQIsmjZgyYShXj01S0ymRI9R2H3iiu28P3t8BJFY2o5lNAiYBJCUl1fLpJB6UlTlvfbWVB9/OZu/BQq48vhd3njuIjmo6JVKhkL/EdHc3M6/i8enAdIDU1NRK55P4tmJLHvemr+SrTbmM6NWOl29IZXhPNZ0SqUptA3ynmXVz9+1m1g3YVZdFSfzYd7CIR+Zn88bnm+nYsgmPXD6c74/qqaZTItVQ2wBPB64HHgz+O7POKpK4UFJaxuufbeLR+TkcLCrlppP7cPu4AbRppqZTItVVncMI/0rgC8tOZrYFmEwguN80s5uBjcAV4SxSYsvSdXuZnJ5B9o58Tu7fkbSLhzIgUU2nRGqqOkehTKzkobPruBaJcTvyCpg2N4v0r7fRo11znrt6FOOHdVXTKZFa0pmYEnaFJaW89OF6nn5vDSVlzn+d1Z9bz+hP8yY6i1IkFApwCatF2buYOjuT9XsOck5KIr+7MIWkji0iXZZITFCAS1hs3HuQ+2Zn8m7WLvp2asmfbjyeMwap6ZRIXVKAS506VFTCs4vWMv2DdTQ+xrj7/MHceHIfmiToLEqRuqYAlzrh7sxZsZ1pc7LYllfApSO6c/cFQ0hs0yzSpYnELAW4hCxnRz5p6Rl8sm4vKd3a8MTEkRyf3CHSZYnEPAW41Fre4WIef3cVr36ykVZNE7jv0mFcNSaJRjqLUqReKMClxsrKnL9/sYWH5mWz71ARE8ckcee5g+jQskmkSxOJKwpwqZHlm3OZnJ7B15tzGd27PTMmjGFYj7aRLkskLinApVr2HCjk4XnZvLlsC51bN+WxK47jspE9dBalSAQpwKVKJaVlvPbpRh5bsIrDRaVMOq0vPz+rP63VdEok4hTgUqlP1u4lLT2DnJ35nDqgE5MvHkr/Lq0iXZaIBCnA5T9syz3MA3OzmPPNdnq2b87z14zmvKGJ2l0i0sAowOVfCopLefGDdTyzaC1l7vxi3ABuOb0fzRqr6ZRIQ6QAFwAWZu1k6uxMNu49xPihXfnthUPo1UFNp0QaMgV4nFu/5yBTZ2WwKGc3/Tq35LWbx3DqgM6RLktEqkEBHqcOFpbw9KI1vPTBepokHMNvLxjC9Sclq+mUSBRRgMcZd2fWN4GmUzv2F/C9UT24a/xguqjplEjUUYDHkazt+0lLz2Dp+n0M69GGZ64eyejeajolEq0U4HEg71Axjy3I4bVPN9K2eWMeuGwYVx6vplMi0U4BHsNKy5w3l23mkfk55B4q4uqxvbnj3IG0a6GmUyKxQAEeo77c9C2TZ2awYmsexye3Z8qEsaR0bxPpskSkDinAY8zu/EIempfN37/YQmKbpjxx5QgmHNddZ1GKxCAFeIwoLi1jxscbeOLd1RSUlHLL6f247az+tGqql1gkVunTHQM+WrOHtPQMVu86wOkDO3PvxSn066ymUyKxTgEexbbmHuaBOZnMXbGDXh2a88J1qYwb0kW7S0TihAI8ChUUlzJ9yTqeXbwGgDvOGciPT+urplMicUYBHkXcnQWZO7lvTiab9x3mwmO7cc+FQ+jRrnmkSxORCFCAR4m1uw8wZVYmS1btZkCXVrz+o7Gc1L9TpMsSkQhSgDdwBwpLeOq91bz84XqaJTTidxelcN2JvWncSE2nROKdAryBcndmLt/GtLlZ7Mov5Aeje/Lr8YPp3LpppEsTkQZCAd4AZWzLIy09g883fMvwnm15/trRjEpqH+myRKSBCSnAzWwDkA+UAiXunloXRcWr3ENFPPpODq8v3US7Fk148HvHckVqL45R0ykRqUBdjMDPdPc9dbCeuFVa5vz1s008+k4O+w8Xc92Jyfxy3EDatmgc6dJEpAHTLpQI+2LjPu6dmUHGtv2M7dOBKZcMZXBXNZ0SkaMLNcAdeMfMHPiju0+vg5riwq79BTz4djZvfbWVrm2a8dTEkVw0vJvOohSRags1wE9x961m1gVYYGbZ7r6k/AxmNgmYBJCUlBTi00W/opIy/vTxep5cuIaikjJ+ekY/fnZmf1qq6ZSI1FBIqeHuW4P/7jKzfwJjgCVHzDMdmA6QmprqoTxftPtg9W7S0jNYu/sgZw3uwr0XpZDcqWWkyxKRKFXrADezlsAx7p4fvH8uMLXOKoshm/cd4v45mczP2Envji146fpUzh6SGOmyRCTKhTICTwT+GdxnmwC87u7z6qSqGFFQXMpzi9fy/PtrOcaMX503iJtP6aOmUyJSJ2od4O6+DjiuDmuJGe7O/Iwd3Dc7i625h7loeDfuuWAI3dV0SkTqkL45q2Nrdh1gyqwMPli9h0GJrfnrj0/gxH4dI12WiMQgBXgdyS8o5smFq3nlow00b9KItItTuOaE3iSo6ZSIhIkCPERlZc4/v9rKg/Oy2XOgkCtG9+JX4wfRqZWaTolIeCnAQ7Byax73zlzJl5tyOa5XO168LpXjerWLdFkiEicU4LWw72ARj8zP4Y3PN9GxZRMevnw4l4/qqaZTIlKvFOA1UFrmvL50I4++s4oDhSXceFIfbh83gLbN1XRKROqfAryaPlu/j8npGWRt38+JfTsy5ZKhDExsHemyRCSOKcCPYuf+AqbNzWLm8m10b9uMZ64axQXHdlXTKRGJOAV4JYpKynj5o/U8tXA1xWXOz8/qz61n9KNFE/2XiUjDoDSqwOKcXUydlcm6PQcZNySRey9KIalji0iXJSLybxTg5Wzae4ipszN5N2snfTq15JUbj+fMQV0iXZaISIUU4MDholKeXbyGPy5ZR8Ixxm/GD+amU5JpmqCmUyLScMV1gLs7b6/cwf2zM9mWV8AlI7pz9/lD6Nq2WaRLExE5qrgN8FU780lLz+DjtXsZ3LU1j185kjF9OkS6LBGRaou7AN9fUMzjC1Yz45MNtGqawNRLhnLVmCQ1nRKRqBM3AV5W5vz9yy08PC+bvQeLuPL4JH513iA6tGwS6dJERGolLgL86825TE7PYPnmXEYlteOVG8ZwbM+2kS5LRCQkMR3gew8U8sj8HP62bDMdWzbl9z84jstG9lDTKRGJCTEZ4CWlZfz50408tmAVh4pKufnkQNOp1s3UdEpEYkfMBfin6/aSlp5B9o58TunfibQJKfTvoqZTIhJ7YibAt+cdZtrcbGZ9vY0e7Zrz/DWjOG+omk6JSOyK+gAvLCnlxQ/W8/R7ayhz5/azB3DL6f1o3kRnUYpIbIvqAH8veydTZ2WyYe8hzk1J5HcXpdCrg5pOiUh8iMoA37DnIFNnZ/Je9i76dm7JqzeN4bSBnSNdlohIvYqqAD9UVMIzi9bwwpL1NG5k3HPBYG44qQ9NEnQWpYjEn6gIcHdn9jfbmTY3i+15BXxvZA/uOn8wXdqo6ZSIxK8GH+DZO/aTlp7Bp+v2kdKtDU9NHElqsppOiYg02ADPO1zMHxas4rVPN9K6WQL3XzqMiWOSaKSzKEVEgAYY4GVlzpvLNvPw/BxyDxVx1dgk7jhnEO3VdEpE5N80qABfvjmXyTNX8vWWPFJ7tydtwhiG9VDTKRGRijSIAN+dX8jD87L5ny+20KV1Ux7/4QguGdFdZ1GKiFQhogFeXFrGa59s5A8LVlFQUspPTuvLz88eQKumDeL3iohIgxZSUprZeOAJoBHwors/WN1lP167h7T0DFbtPMBpAzsz+eIU+nVuFUo5IiJxpdYBbmaNgGeAc4AtwOdmlu7umVUttzX3MNPmZDFnxXZ6dWjO9GtHc05KonaXiIjUUCgj8DHAGndfB2BmbwCXAJUG+K78Qs7+/WLc4ZfjBvKT0/vSrLGaTomI1EYoAd4D2Fzu5y3A2KoW2Lm/gJsGdeG3Fw6hZ3s1nRIRCUXYvy00s0nAJICuPZN57prR4X5KEZG4EEoXqK1Ar3I/9wxO+zfuPt3dU909tUdixxCeTkREygslwD8HBphZHzNrAlwJpNdNWSIicjS13oXi7iVmdhswn8BhhC+7e0adVSYiIlUKaR+4u88F5tZRLSIiUgO6EoKISJRSgIuIRCkFuIhIlFKAi4hEKQW4iEiUMnevvyczywdy6u0Jw68tkBfpIupQLG1PLG0LQCdgT6SLqEOx9vqEe3sGuXvrIyfWd+PtHHdPrefnDBszm+7ukyJdR12Jpe2JpW0BMLNl+uw0XOHeHjNbVtF07UIJzaxIF1DHYml7YmlbYlGsvT4R2Z763oUSU6MIkfqiz058q+z1r+8R+PR6fj6RWKHPTnyr8PWv1wB39wb7JjSz8WaWY2ZrzOyu4LQ+ZrY0OO1vwaZdRy7X0cwWmdkBM3v6iMcWB9e5PHjrEgXbM6ZcvV+b2WVVrbOhb0+55ZOCr9Gd5aZtMLMVwW2tcB9jQxGFn53bgj+7mXWqYtl5ZpZrZrOPmP4nM1tf7r04ItzbUe65a7U9ZtbbzL4M1pthZreUe2x08L22xsyetBpegqzS19/d4/5GoBnXWqAv0AT4GkgB3gSuDM7zPHBrBcu2BE4BbgGePuKxxUBqlG1PCyAheL8bsIvAl90VrrOhb0+5dfwd+B/gznLTNgCdIv3+i+ZbFa/NSCD5aP/HwNnAxcDsI6b/Cbg8mrYnOH/T4P1WwXm7B3/+DDgBMOBt4Py6qLfWI/BQRkRmdndwnhwzO6+qddaTf10ezt2LgO8uD3cWgQ8+wAzg0iMXdPeD7v4hUFBfxVZDKNtzyN1Lgj82A777kqSyddaHWm8PgJldCqwHGky3zBBHrdeb2erg7fpy00Ma5dVSha+Nu3/l7huOtrC7LwTyw1xjTdR6e9y9yN0Lgz82JbiHw8y6AW3c/VMPpPmrVPJeralaBbj97wWNzyfw22mimaUADwF/cPf+wLfAzRUsm0Kgd/hQYDzwrJk1qmKd9aGiy8P1AHLLhdl30zCzCWY2taRwGMQAAAfdSURBVJrrfiX4J9Xv6ukDBSFuj5mNNbMMYAVwS3CZytZZH2q9PWbWCvgNMKWC9Trwjpl9YYErR9WLKt7rHwHjgI1VLNsBmEzg8oVjgMlm1j748HPAj4EBwdv4cG1DOTV6X5hZqpm9WM11P2Bm35jZH8ysaShF1kBI22Nmvczsm+A6HnL3bcHlt1R3nTVR2xF4KCOiS4A33L3Q3dcDa4Lri+QIr0bcPd3d763GrFe7+7HAqcHbteGtrHaO3B53X+ruQ4HjgbvNrFnkqqu5I7YnjcCg4kAFs57i7qMIBOnPzOy0eioxlFHrecACd9/n7t8CC4Dx4Rzl1SV3X+buP6rGrHcDgwm8BzsQ+CXc4By5Pe6+2d2HA/2B680sMZzPX9sAD2WEV9mykRzhVXZ5uHZmlnDEtGpz963Bf/OB1wl8cOtDnWyPu2cBB4BhVayzPoSyPWOBh81sA/AL4B4LXIik/OuzC/gn9ff6hDLKq+rzE5ZR3lGE5X3h7ts9oBB4hch/dmokOPJeSWDgtjW4npDWWZF6OQqlBiPWSKns8nCLgMuD81wPzKzuCs0s4bv9mGbWGLiIwAtaH2q9PcFlEoL3exMYBW2oYp31odbb4+6nunuyuycDjwPT3P1pM2tpZq0BzKwlcC719/rUSA1GrZEQlvdF8C8KgrsdLyXyn52jMrOeZtY8eL89gYMbctx9O7DfzE4Ibs911CBLqlLbAA9lRFTZshEb4QX/avju8nBZwJseuDzcb4D/Y2ZrgI7AS1DhPuMNwGPADWa2Jbg/sykwP7g/bHlwW16Igu05BfjazJYTGJX+1N33VLHOhr49lUkEPjSzrwkcITDH3eeFaxuOEMp7varPT1hGeVWp7LUxs/8ysy3BOr757i+ICvYZf0Dg6KCzg5+d7w5q+IuZrSDwPUwn4P5wb0sdbM8QYGnwPfU+8Ki7rwg+9lPgRQK7jNcSOBKlTgquzaE2CcA6oA//e6jNUAIvRPnDun5awbJDg/M3DS6/jsChOxWuszb16aZbQ74d7b1O1YeqdSBwRE374G090CH42JGHql0Q6W3VLby3Wo3APYQRUXC+N4FMYB7wM3cvrWKdIjGlsvd6dUZ57r4PuI/An/qfA1OD0yBcozxpsOq1F4qIiNQddSMUEYlSCnARkSilABcRiVK1PZU+lD4OZ9gRncdERKTmahzgofRxEBGRulObEXhI3cfKs0Dv6U/M7Csz+9jMBgWn32Bmb1mgV/BqM3u4FnWKiMS02lzUuKJeDGNr+fzZwKnuXmJm44BpwPeDj40g0IO3EMgxs6fcfXMl6xERiTv1fVX6I7UFZpjZAAKtPRuXe2yhu+cBmFkm0Jt//8UhIhLXarMLpUZ9HMxsvgX6YVfUA/g+YJG7DyNwVY7ybUsLy90vJfK/bEREGpTahOK/unURCO4rgasqm9ndz6vsMQIj8O/C/4Za1CIiErdqPAKvaR+HCiTwv6Prh4H/NrOv0AhbRKRG6r0XipndDvRw91/X6xOLiMSYeh31mtlLBK7uckV9Pq+ISCxSN0IRkSgVUi+U4BWYF5lZppllBHePYGYdzGxB8CScBcHLC2EBTwZPuf/GzEaVW9dDZrYyePthaJslIhL7Qm1mVQLc4e4pBK4E8rPgafV3ETiOewCwMPgzBE6/HxC8TQKeAzCzC4FRBE7eGQvcaWZtQqxNRCSmhRTgHrhy9JfB+/kEjkrpAVwCzAjONoPARUkJTn/VAz4lcA3NbgR6qixx9xJ3Pwh8A4wPpTYRkVhXZ+1kzSyZwKnvS4FED1yJGWAHgQvIQsWn4fcgcE3A8WbWItjJ8Ez+/WQhERE5Qp0chWJmrYB/AL9w9/1m9q/H3N3NrMpvSt39HTM7HvgY2A18QuDsSxERqUTII3Aza0wgvP/i7m8FJ+8M7hoh+O+u4PRKT8N39wfcfYS7n0PgqtqrQq1NRCSWhXoUihG48nyWuz9W7qF04Prg/euBmeWmXxc8GuUEIM/dt5tZIzPrGFzncGA48E4otYmIxLqQjgM3s1OAD4AVQFlw8j0E9oO/CSQRuMDDFe6+Lxj4TxP4gvIQcKO7LzOzZsCXweX3A7e4+/JaFyYiEgd0Io+ISJTSRY1FRKKUAlxEJEopwEVEopQCXEQkSinARUSilAJcYoqZlQavwfrd7a6jL1XtdSeb2cq6Wp9IqHQZM4k1h919RKSLEKkPGoFLXDCzDWb2sJmtMLPPzKx/cHqymb0X7E+/0MySgtMTzeyfZvZ18HZScFWNzOyFYP/7d8ysecQ2SuKeAlxiTfMjdqGUvzhInrsfS+Bs4MeD054CZrj7cOAvwJPB6U8C77v7cQR61WcEpw8AnnH3oUAu8P0wb49IpXQmpsQUMzvg7q0qmL4BOMvd1wUbsO1w945mtgfo5u7Fwenb3b2Tme0Gerp7Ybl1JAMLghcqwcx+AzR29/vDv2Ui/0kjcIknXsn9migsd78UfY8kEaQAl3jyw3L/fhK8/zFwZfD+1QSas0HgUoC3AgS7ZbatryJFqkujB4k1zc2sfCfLee7+3aGE7c3sGwKj6InBaT8HXjGzXxG4mMiNwem3A9PN7GYCI+1bge2INCDaBy5xIbgPPNXd90S6FpG6ol0oIiJRSiNwEZEopRG4iEiUUoCLiEQpBbiISJRSgIuIRCkFuIhIlFKAi4hEqf8PCzdQHxqxhBMAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded Data Range: \n", + "2008-01-01 00:00:00 --- 2008-01-01 00:38:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 00:39:00 --- 2008-01-01 02:15:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 02:16:00 --- 2008-01-01 03:52:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 03:53:00 --- 2008-01-01 05:29:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 05:30:00 --- 2008-01-01 07:06:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 07:07:00 --- 2008-01-01 08:43:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 08:44:00 --- 2008-01-01 10:20:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 10:21:00 --- 2008-01-01 11:57:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 11:58:00 --- 2008-01-01 13:34:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 13:35:00 --- 2008-01-01 15:11:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 15:12:00 --- 2008-01-01 16:48:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 16:49:00 --- 2008-01-01 18:25:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 18:26:00 --- 2008-01-01 20:02:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 20:03:00 --- 2008-01-01 21:39:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 21:40:00 --- 2008-01-01 23:16:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-01 23:17:00 --- 2008-01-01 23:59:59 \n", + "\n", + "Loaded Data Range: \n", + "2008-01-03 00:00:00 --- 2008-01-03 01:08:59 \n", + "\n" + ] } ], "source": [ - "inst['mlt'].plot()\n" + "# demonstrate iterating over orbits via built-in iteration\n", + "for i, inst in enumerate(inst.orbits):\n", + " print_range(inst)\n", + " if i > 15:\n", + " break\n", + "\n" ] }, {