From fc8b32773d47aea0625f06e5ff869bc1a7e09a98 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Thu, 21 Feb 2019 23:07:57 -0500 Subject: [PATCH 01/41] Updates to example.rst - #153 --- docs/examples.rst | 184 ++++++++++-------- docs/images/orbit_00000.png | Bin 108202 -> 118423 bytes docs/images/ssnl_occurrence_by_orbit_demo.png | Bin 93552 -> 71839 bytes 3 files changed, 104 insertions(+), 80 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 0251f7f2a..05e0dea26 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -13,7 +13,6 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou import os import pysat import matplotlib.pyplot as plt - import pandas as pds import numpy as np # set the directory to save plots to @@ -21,67 +20,74 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou # select vefi dc magnetometer data, use longitude to determine where # there are changes in the orbit (local time info not in file) - orbit_info = {'index':'longitude', 'kind':'longitude'} - vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', + orbit_info = {'index': 'longitude', 'kind': 'longitude'} + vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', clean_level=None, orbit_info=orbit_info) # define function to remove flagged values def filter_vefi(inst): - idx, = np.where(vefi['B_flag']==0) - vefi.data = vefi.data.iloc[idx] + idx, = np.where(inst['B_flag'] == 0) + inst.data = inst.data.iloc[idx] return - # attach function to vefi - vefi.custom.add(filter_vefi,'modify') + + # attach function to vefi + vefi.custom.add(filter_vefi, 'modify') + # set limits on dates analysis will cover, inclusive - start = pds.datetime(2010,5,9) - stop = pds.datetime(2010,5,15) + start = pysat.datetime(2010, 5, 9) + stop = pysat.datetime(2010, 5, 15) - # if there is no vefi dc magnetometer data on your system + # if there is no vefi dc magnetometer data on your system # run command below # where start and stop are pandas datetimes (from above) - # pysat will automatically register the addition of this data at the end - # of download + # pysat will automatically register the addition of this data + # at the end of download vefi.download(start, stop) - # leave bounds unassigned to cover the whole dataset - vefi.bounds = (start,stop) + # leave bounds unassigned to cover the whole dataset + vefi.bounds = (start, stop) # perform occurrence probability calculation # any data added by custom functions is available within routine below - ans = pysat.ssnl.occur_prob.by_orbit2D(vefi, [0,360,144], 'longitude', - [-13,13,104], 'latitude', ['dB_mer'], [0.], returnBins=True) + ans = pysat.ssnl.occur_prob.by_orbit2D(vefi, + [0, 360, 144], 'longitude', + [-13, 13, 104], 'latitude', + ['dB_mer'], [0.], + returnBins=True) # a dict indexed by data_label is returned # in this case, only one, we'll pull it out ans = ans['dB_mer'] + # plot occurrence probability f, axarr = plt.subplots(2,1, sharex=True, sharey=True) - masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) - im=axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) + + masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) + im = axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) axarr[0].set_title('Occurrence Probability Delta-B Meridional > 0') axarr[0].set_ylabel('Latitude') - axarr[0].set_yticks((-13,-10,-5,0,5,10,13)) - axarr[0].set_ylim((ans['bin_y'][0],ans['bin_y'][-1])) + axarr[0].set_yticks((-13, -10, -5, 0, 5, 10, 13)) + axarr[0].set_ylim((ans['bin_y'][0], ans['bin_y'][-1])) plt.colorbar(im,ax=axarr[0], label='Occurrence Probability') - im=axarr[1].pcolor(ans['bin_x'], ans['bin_y'],ans['count']) - axarr[1].set_xlabel('Longitude') - axarr[1].set_xticks((0,60,120,180,240,300,360)) - axarr[1].set_xlim((ans['bin_x'][0],ans['bin_x'][-1])) - axarr[1].set_ylabel('Latitude') + im = axarr[1].pcolor(ans['bin_x'], ans['bin_y'], ans['count']) axarr[1].set_title('Number of Orbits in Bin') + axarr[1].set_xlabel('Longitude') + axarr[1].set_xticks((0, 60, 120, 180, 240, 300, 360)) + axarr[1].set_xlim((ans['bin_x'][0], ans['bin_x'][-1])) + axarr[1].set_ylabel('Latitude') + plt.colorbar(im, ax=axarr[1], label='Counts') - plt.colorbar(im,ax=axarr[1], label='Counts') - f.tight_layout() - plt.show() - plt.savefig(os.path.join(results_dir,'ssnl_occurrence_by_orbit_demo') ) + f.tight_layout() + plt.savefig(os.path.join(results_dir, 'ssnl_occurrence_by_orbit_demo')) + plt.close() Result .. image:: ./images/ssnl_occurrence_by_orbit_demo.png :align: center -The top plot shows the occurrence probability of a positive magnetic field perturbation as a function of geographic longitude and latitude. The bottom plot shows the number of times the satellite was in each bin with data (on per orbit basis). Individual orbit tracks may be seen. The hatched pattern is formed from the satellite traveling North to South and vice-versa. At the latitudinal extremes of the orbit the latitudinal velocity goes through zero providing a greater coverage density. The satellite doesn't return to the same locations on each pass so there is a reduction in counts between orbit tracks. All local times are covered by this plot, overrepresenting the coverage of a single satellite. +The top plot shows the occurrence probability of a positive magnetic field perturbation as a function of geographic longitude and latitude. The bottom plot shows the number of times the satellite was in each bin with data (on per orbit basis). Individual orbit tracks may be seen. The hatched pattern is formed from the satellite traveling North to South and vice-versa. At the latitudinal extremes of the orbit the latitudinal velocity goes through zero providing a greater coverage density. The satellite doesn't return to the same locations on each pass so there is a reduction in counts between orbit tracks. All local times are covered by this plot, overrepresenting the coverage of a single satellite. The horizontal blue band that varies in latitude as a function of longitude is the location of the magnetic equator. Torque rod firings that help C/NOFS maintain proper attitude are performed at the magnetic equator. Data during these firings is excluded by the custom function attached to the vefi instrument object. @@ -95,71 +101,70 @@ Plotting a series of orbit-by-orbit plots is a great way to become familiar with import os import pysat import matplotlib.pyplot as plt - import pandas as pds # set the directory to save plots to results_dir = '' # select vefi dc magnetometer data, use longitude to determine where # there are changes in the orbit (local time info not in file) - orbit_info = {'index':'longitude', 'kind':'longitude'} - vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', + orbit_info = {'index': 'longitude', 'kind': 'longitude'} + vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', clean_level=None, orbit_info=orbit_info) # set limits on dates analysis will cover, inclusive - start = pysat.datetime(2010,5,9) - stop = pysat.datetime(2010,5,12) + start = pysat.datetime(2010, 5, 9) + stop = pysat.datetime(2010, 5, 12) # if there is no vefi dc magnetometer data on your system # then run command below # where start and stop are pandas datetimes (from above) - # pysat will automatically register the addition of this data at the end - # of download + # pysat will automatically register the addition of this + # data at the end of download vefi.download(start, stop) - # leave bounds unassigned to cover the whole dataset - vefi.bounds = (start,stop) + # leave bounds unassigned to cover the whole dataset + vefi.bounds = (start, stop) for orbit_count, vefi in enumerate(vefi.orbits): - # for each loop pysat puts a copy of the next available + # for each loop pysat puts a copy of the next available # orbit into vefi.data # changing .data at this level does not alter other orbits # reloading the same orbit will erase any changes made - + # satellite data can have time gaps, which leads to plots - # with erroneous lines connecting measurements on + # with erroneous lines connecting measurements on # both sides of the gap - # command below fills in any data gaps using a + # command below fills in any data gaps using a # 1-second cadence with NaNs # see pandas documentation for more info - vefi.data = vefi.data.resample('1S', fill_method='ffill', - limit=1, label='left' ) + vefi.data = vefi.data.resample('1S', fill_method='ffill', + limit=1, label='left') f, ax = plt.subplots(7, sharex=True, figsize=(8.5,11)) - + ax[0].plot(vefi['longitude'], vefi['B_flag']) - ax[0].set_title( vefi.data.index[0].ctime() +' - ' + - vefi.data.index[-1].ctime() ) + ax[0].set_title(' '.join((vefi.data.index[0].ctime(),'-', + vefi.data.index[-1].ctime()))) ax[0].set_ylabel('Interp. Flag') - ax[0].set_ylim((0,2)) - - p_params = ['B_north', 'B_up', 'B_west', 'dB_mer', - 'dB_par', 'dB_zon'] - for a,param in zip(ax[1:],p_params): + ax[0].set_ylim((0, 2)) + + p_params = ['B_north', 'B_up', 'B_west', + 'dB_mer', 'dB_par', 'dB_zon'] + for a, param in zip(ax[1:], p_params): a.plot(vefi['longitude'], vefi[param]) a.set_title(vefi.meta[param].long_name) a.set_ylabel(vefi.meta[param].units) - + ax[6].set_xlabel(vefi.meta['longitude'].long_name) - ax[6].set_xticks([0,60,120,180,240,300,360]) - ax[6].set_xlim((0,360)) - + ax[6].set_xticks([0, 60, 120, 180, 240, 300, 360]) + ax[6].set_xlim((0, 360)) + f.tight_layout() - fname = 'orbit_%05i.png' % orbit_count - plt.savefig(os.path.join(results_dir, fname) ) + fname = 'orbit_{num:05}.png'.format(num=orbit_count) + plt.savefig(os.path.join(results_dir, fname)) plt.close() -Output +Sample Output (first orbit only) .. image:: ./images/orbit_00000.png :align: center @@ -169,58 +174,77 @@ Seasonal Averaging of Ion Drifts and Density Profiles In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, use the code below: -Note the same averaging routine is used for both COSMIC and IVM, and that both 1D and 2D data are handled correctly. +Note the same averaging routine is used for both COSMIC and IVM, and that both 1D and 2D data are handled correctly. .. code:: python - # instantiate IVM Object - ivm = pysat.Instrument(platform='cnofs',name='ivm',clean_level='clean') - # restrict meausurements to those near geomagnetic equator + # create IVM Object + ivm = pysat.Instrument(platform='cnofs', name='ivm', clean_level='clean') + + # define function to restrict magnetic latitude + def restrictMLAT(inst, maxMLAT): + idx, = np.where(np.abs(inst['mlat']) <= maxMLAT) + inst.data = inst.data.iloc[idx] + return + + # restrict measurements to those near geomagnetic equator ivm.custom.add(restrictMLAT, 'modify', maxMLAT=25.) + # perform seasonal average - ivm.bounds(startDate, stopDate) - ivmResults = pysat.ssnl.avg.median2D(ivm, [0,360,24], 'apex_long', - [0,24,24], 'mlt', ['iv_mer']) + startDate = pysat.datetime(2009, 6, 1) + stopDate = pysat.datetime(2009, 8, 31) + ivm.bounds = (startDate, stopDate) + ivmResults = pysat.ssnl.avg.median2D(ivm, + [0, 360, 24], 'apex_long', + [0, 24, 24], 'mlt', + ['iv_mer']) # create CODMIC instrument object - cosmic = pysat.Instrument(platform='cosmic2013', name='gps',tag='ionprf', - clean_level='clean', altitude_bin=3) + cosmic = pysat.Instrument(platform='cosmic2013', name='gps', tag='ionprf', + clean_level='clean', altitude_bin=3) + # apply custom functions to all data that is loaded through cosmic cosmic.custom.add(addApexLong, 'add') + # select locations near the magnetic equator - cosmic.custom.add(filterMLAT, 'modify', mlatRange=(0.,10.) ) + cosmic.custom.add(filterMLAT, 'modify', mlatRange=(0., 10.)) + # take the log of NmF2 and add to the dataframe cosmic.custom.add(addlogNm, 'add') + # calculates the height above hmF2 to reach Ne < NmF2/e cosmic.custom.add(addTopsideScaleHeight, 'add') - # do an average of multiple COSMIC data products from startDate through stopDate - # a mixture of 1D and 2D data is averaged + # do an average of multiple COSMIC data products from startDate + # through stopDate + # Note that a mixture of 1D and 2D data is averaged cosmic.bounds(startDate, stopDate) - cosmicResults = pysat.ssnl.avg.median2D(cosmic, [0,360,24], 'apex_long', - [0,24,24],'edmaxlct', ['profiles', 'edmaxalt', 'lognm', 'thf2']) + cosmicResults = pysat.ssnl.avg.median2D(cosmic, [0,360,24], 'apex_long', + [0,24,24],'edmaxlct', + ['profiles', 'edmaxalt', + 'lognm', 'thf2']) # the work is done, plot the results .. image:: ./images/ssnl_median_ivm_cosmic_1d.png :align: center -The top image is the median ion drift from the IVM, while the remaining plots are derived from the COSMIC density profiles. COSMIC data does not come with the location of the profiles in magnetic coordinates, so this information is added using the nano-kernel. +The top image is the median ion drift from the IVM, while the remaining plots are derived from the COSMIC density profiles. COSMIC data does not come with the location of the profiles in magnetic coordinates, so this information is added using the nano-kernel. .. code:: python - + cosmic.custom.add(addApexLong, 'add') call runs a routine that adds the needed information. This routine is currently only using a simple titled dipole model. -Similarly, using custom functions, locations away from the magnetic equator are filtered out and a couple new quantities are added. +Similarly, using custom functions, locations away from the magnetic equator are filtered out and a couple new quantities are added. There is a strong correspondence between the distribution of downward drifts between noon and midnight and a reduction in the height of the peak ionospheric density around local sunset. There isn't the same strong correspondence with the other parameters but ion density profiles are also affected by production and loss processes, not measured by IVM. - -The median averaging routine also produced a series a median altitude profiles as a function of longitude and local time. A selection are shown below. + +The median averaging routine also produced a series a median altitude profiles as a function of longitude and local time. A selection are shown below. .. image:: ./images/ssnl_median_ivm_cosmic_2d.png :align: center -There is a gradient in the altitude distribution over longitude near sunset. Between 0-15 longitude an upward slope is seen in bottom-side density levels with local time though higher altitudes have a flatter gradient. This is consistent with the upward ion drifts reported by IVM. Between 45-60 the bottom-side ionosphere is flat with local time, while densities at higher altitudes drop steadily. Ion drifts in this sector become downward at night. Downward drifts lower plasma into exponentially higher neutral densities, rapidly neutralizing plasma and producing an effective flat bottom. Thus, the COSMIC profile in this sector is also consistent with the IVM drifts. +There is a gradient in the altitude distribution over longitude near sunset. Between 0-15 longitude an upward slope is seen in bottom-side density levels with local time though higher altitudes have a flatter gradient. This is consistent with the upward ion drifts reported by IVM. Between 45-60 the bottom-side ionosphere is flat with local time, while densities at higher altitudes drop steadily. Ion drifts in this sector become downward at night. Downward drifts lower plasma into exponentially higher neutral densities, rapidly neutralizing plasma and producing an effective flat bottom. Thus, the COSMIC profile in this sector is also consistent with the IVM drifts. Between 15-30 degrees longitude, ion drifts are upward, but less than the 0-15 sector. Similarly, the density profile in the same sector has a weaker upward gradient with local time than the 0-15 sector. Between 30-45 longitude, drifts are mixed, then transition into weaker downward drifts than between 45-60 longitude. The corresponding profiles have a flatter bottom-side gradient than sectors with upward drift (0-30), and a flatter top-side gradient than when drifts are more downward (45-60), consistent with the ion drifts. diff --git a/docs/images/orbit_00000.png b/docs/images/orbit_00000.png index 03ab6c701df75142daa2c2fd30e432b81f8db490..b20107fe6788f5180cb0d004e9b3b0783ec2803c 100644 GIT binary patch literal 118423 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 AaR2}S literal 108202 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 diff --git a/docs/images/ssnl_occurrence_by_orbit_demo.png b/docs/images/ssnl_occurrence_by_orbit_demo.png index 0879ff18db77d5092fa2f5ede7df4a440dba4107..99df177505327f1041ed76ff3e062b77a6b7a6b8 100644 GIT binary patch literal 71839 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 ZshxAD*F3VrrB0z7mp^$VS Date: Thu, 21 Feb 2019 23:35:07 -0500 Subject: [PATCH 02/41] tidy up demos for consistency --- demo/cnofs_vefi_dc_b_orbit_plots.py | 8 ++++---- demo/ssnl_occurrence_by_orbit.py | 13 ++++++------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/demo/cnofs_vefi_dc_b_orbit_plots.py b/demo/cnofs_vefi_dc_b_orbit_plots.py index e77afbf2e..1a0a5bd91 100644 --- a/demo/cnofs_vefi_dc_b_orbit_plots.py +++ b/demo/cnofs_vefi_dc_b_orbit_plots.py @@ -6,7 +6,6 @@ import os import pysat import matplotlib.pyplot as plt -import pandas as pds # set the directory to save plots to results_dir = '' @@ -18,8 +17,8 @@ clean_level=None, orbit_info=orbit_info) # set limits on dates analysis will cover, inclusive -start = pds.datetime(2010, 5, 9) -stop = pds.datetime(2010, 5, 12) +start = pysat.datetime(2010, 5, 9) +stop = pysat.datetime(2010, 5, 12) # if there is no vefi dc magnetometer data on your system, then run command # below where start and stop are pandas datetimes (from above) @@ -79,5 +78,6 @@ ax[6].set_xlim((0, 360)) f.tight_layout() - plt.savefig(os.path.join(results_dir, 'orbit_%05i.png' % orbit_count)) + plt.savefig(os.path.join(results_dir, + 'orbit_{num:05}.png').format(num=orbit_count)) plt.close() diff --git a/demo/ssnl_occurrence_by_orbit.py b/demo/ssnl_occurrence_by_orbit.py index 8ca4f6cc2..4e842e15b 100644 --- a/demo/ssnl_occurrence_by_orbit.py +++ b/demo/ssnl_occurrence_by_orbit.py @@ -6,7 +6,6 @@ import os import pysat import matplotlib.pyplot as plt -import pandas as pds import numpy as np # set the directory to save plots to @@ -19,7 +18,7 @@ clean_level=None, orbit_info=orbit_info) -# define functino to remove flagged values +# define function to remove flagged values def filter_vefi(inst): idx, = np.where(vefi['B_flag'] == 0) vefi.data = vefi.data.iloc[idx] @@ -28,8 +27,8 @@ def filter_vefi(inst): vefi.custom.add(filter_vefi, 'modify') # set limits on dates analysis will cover, inclusive -start = pds.datetime(2010, 5, 9) -stop = pds.datetime(2010, 5, 15) +start = pysat.datetime(2010, 5, 9) +stop = pysat.datetime(2010, 5, 15) # if there is no vefi dc magnetometer data on your system, then run command # below where start and stop are pandas datetimes (from above) @@ -60,13 +59,13 @@ def filter_vefi(inst): plt.colorbar(im, ax=axarr[0], label='Occurrence Probability') im = axarr[1].pcolor(ans['bin_x'], ans['bin_y'], ans['count']) +axarr[1].set_title('Number of Orbits in Bin') axarr[1].set_xlabel('Longitude') axarr[1].set_xticks((0, 60, 120, 180, 240, 300, 360)) axarr[1].set_xlim((ans['bin_x'][0], ans['bin_x'][-1])) axarr[1].set_ylabel('Latitude') -axarr[1].set_title('Number of Orbits in Bin') - plt.colorbar(im, ax=axarr[1], label='Counts') + f.tight_layout() -plt.show() plt.savefig(os.path.join(results_dir, 'ssnl_occurrence_by_orbit_demo')) +plt.close() From 5c0b5d37260e000a968c84e4a3660691a86f4877 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Thu, 21 Feb 2019 23:39:40 -0500 Subject: [PATCH 03/41] update --- docs/examples.rst | 126 +++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 05e0dea26..fdf92b324 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -10,77 +10,77 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou .. code:: python - import os - import pysat - import matplotlib.pyplot as plt - import numpy as np + import os + import pysat + import matplotlib.pyplot as plt + import numpy as np - # set the directory to save plots to - results_dir = '' + # set the directory to save plots to + results_dir = '' - # select vefi dc magnetometer data, use longitude to determine where - # there are changes in the orbit (local time info not in file) - orbit_info = {'index': 'longitude', 'kind': 'longitude'} - vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', - clean_level=None, orbit_info=orbit_info) +First select the vefi dc magnetometer data. We'll use longitude to determine where there are changes in the orbit, since local time info not in file. - # define function to remove flagged values - def filter_vefi(inst): - idx, = np.where(inst['B_flag'] == 0) - inst.data = inst.data.iloc[idx] - return +.. code:: python + orbit_info = {'index': 'longitude', 'kind': 'longitude'} + vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', + clean_level=None, orbit_info=orbit_info) - # attach function to vefi - vefi.custom.add(filter_vefi, 'modify') - # set limits on dates analysis will cover, inclusive - start = pysat.datetime(2010, 5, 9) - stop = pysat.datetime(2010, 5, 15) +We can define a custom function to remove flagged values. In this case, the values are determined by the instrument's quality flags. - # if there is no vefi dc magnetometer data on your system - # run command below - # where start and stop are pandas datetimes (from above) - # pysat will automatically register the addition of this data - # at the end of download - vefi.download(start, stop) +.. code:: python + def filter_vefi(inst): + idx, = np.where(inst['B_flag'] == 0) + inst.data = inst.data.iloc[idx] + return - # leave bounds unassigned to cover the whole dataset - vefi.bounds = (start, stop) + vefi.custom.add(filter_vefi, 'modify') + +Pysat includes datetime objects that can be used to define the range that analysis will cover. + +.. code:: python + start = pysat.datetime(2010, 5, 9) + stop = pysat.datetime(2010, 5, 15) + +Note: if there is no vefi dc magnetometer data on your system, then run +.. code:: python + vefi.download(start, stop) + +If you already have a lot of vefi dc magnetometer data on your system, you can limit your analysis with the bounds command. Note that leaving bounds undefined will use all available data by default. +.. code:: python + vefi.bounds = (start, stop) + +# perform occurrence probability calculation +# any data added by custom functions is available within routine below +ans = pysat.ssnl.occur_prob.by_orbit2D(vefi, [0, 360, 144], 'longitude', + [-13, 13, 104], 'latitude', ['dB_mer'], + [0.], returnBins=True) + +# a dict indexed by data_label is returned +# in this case, only one, we'll pull it out +ans = ans['dB_mer'] +# plot occurrence probability +f, axarr = plt.subplots(2, 1, sharex=True, sharey=True) +masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) +im = axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) +axarr[0].set_title('Occurrence Probability Delta-B Meridional > 0') +axarr[0].set_ylabel('Latitude') +axarr[0].set_yticks((-13, -10, -5, 0, 5, 10, 13)) +axarr[0].set_ylim((ans['bin_y'][0], ans['bin_y'][-1])) +plt.colorbar(im, ax=axarr[0], label='Occurrence Probability') + +im = axarr[1].pcolor(ans['bin_x'], ans['bin_y'], ans['count']) +axarr[1].set_title('Number of Orbits in Bin') +axarr[1].set_xlabel('Longitude') +axarr[1].set_xticks((0, 60, 120, 180, 240, 300, 360)) +axarr[1].set_xlim((ans['bin_x'][0], ans['bin_x'][-1])) +axarr[1].set_ylabel('Latitude') +plt.colorbar(im, ax=axarr[1], label='Counts') + +f.tight_layout() +plt.savefig(os.path.join(results_dir, 'ssnl_occurrence_by_orbit_demo')) +plt.close() - # perform occurrence probability calculation - # any data added by custom functions is available within routine below - ans = pysat.ssnl.occur_prob.by_orbit2D(vefi, - [0, 360, 144], 'longitude', - [-13, 13, 104], 'latitude', - ['dB_mer'], [0.], - returnBins=True) - - # a dict indexed by data_label is returned - # in this case, only one, we'll pull it out - ans = ans['dB_mer'] - - # plot occurrence probability - f, axarr = plt.subplots(2,1, sharex=True, sharey=True) - - masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) - im = axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) - axarr[0].set_title('Occurrence Probability Delta-B Meridional > 0') - axarr[0].set_ylabel('Latitude') - axarr[0].set_yticks((-13, -10, -5, 0, 5, 10, 13)) - axarr[0].set_ylim((ans['bin_y'][0], ans['bin_y'][-1])) - plt.colorbar(im,ax=axarr[0], label='Occurrence Probability') - - im = axarr[1].pcolor(ans['bin_x'], ans['bin_y'], ans['count']) - axarr[1].set_title('Number of Orbits in Bin') - axarr[1].set_xlabel('Longitude') - axarr[1].set_xticks((0, 60, 120, 180, 240, 300, 360)) - axarr[1].set_xlim((ans['bin_x'][0], ans['bin_x'][-1])) - axarr[1].set_ylabel('Latitude') - plt.colorbar(im, ax=axarr[1], label='Counts') - - f.tight_layout() - plt.savefig(os.path.join(results_dir, 'ssnl_occurrence_by_orbit_demo')) - plt.close() Result From 494a96d5285ed8684e17d850d6e8ca7e92056c65 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Thu, 21 Feb 2019 23:41:23 -0500 Subject: [PATCH 04/41] test --- docs/examples.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/examples.rst b/docs/examples.rst index fdf92b324..00ae53f08 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -21,6 +21,7 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou First select the vefi dc magnetometer data. We'll use longitude to determine where there are changes in the orbit, since local time info not in file. .. code:: python + orbit_info = {'index': 'longitude', 'kind': 'longitude'} vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', clean_level=None, orbit_info=orbit_info) @@ -29,6 +30,7 @@ First select the vefi dc magnetometer data. We'll use longitude to determine wh We can define a custom function to remove flagged values. In this case, the values are determined by the instrument's quality flags. .. code:: python + def filter_vefi(inst): idx, = np.where(inst['B_flag'] == 0) inst.data = inst.data.iloc[idx] @@ -39,15 +41,20 @@ We can define a custom function to remove flagged values. In this case, the val Pysat includes datetime objects that can be used to define the range that analysis will cover. .. code:: python + start = pysat.datetime(2010, 5, 9) stop = pysat.datetime(2010, 5, 15) Note: if there is no vefi dc magnetometer data on your system, then run + .. code:: python + vefi.download(start, stop) If you already have a lot of vefi dc magnetometer data on your system, you can limit your analysis with the bounds command. Note that leaving bounds undefined will use all available data by default. + .. code:: python + vefi.bounds = (start, stop) # perform occurrence probability calculation From ecada67659be09e97a25b6978a3d867780a6d711 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Thu, 21 Feb 2019 23:49:35 -0500 Subject: [PATCH 05/41] update to style --- docs/examples.rst | 71 ++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 00ae53f08..51a878f2f 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -51,42 +51,49 @@ Note: if there is no vefi dc magnetometer data on your system, then run vefi.download(start, stop) -If you already have a lot of vefi dc magnetometer data on your system, you can limit your analysis with the bounds command. Note that leaving bounds undefined will use all available data by default. +If you already have a lot of vefi dc magnetometer data on your system, you can limit your analysis with the bounds command. Note that leaving bounds undefined will use all available downloaded data by default. .. code:: python vefi.bounds = (start, stop) -# perform occurrence probability calculation -# any data added by custom functions is available within routine below -ans = pysat.ssnl.occur_prob.by_orbit2D(vefi, [0, 360, 144], 'longitude', - [-13, 13, 104], 'latitude', ['dB_mer'], - [0.], returnBins=True) - -# a dict indexed by data_label is returned -# in this case, only one, we'll pull it out -ans = ans['dB_mer'] -# plot occurrence probability -f, axarr = plt.subplots(2, 1, sharex=True, sharey=True) -masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) -im = axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) -axarr[0].set_title('Occurrence Probability Delta-B Meridional > 0') -axarr[0].set_ylabel('Latitude') -axarr[0].set_yticks((-13, -10, -5, 0, 5, 10, 13)) -axarr[0].set_ylim((ans['bin_y'][0], ans['bin_y'][-1])) -plt.colorbar(im, ax=axarr[0], label='Occurrence Probability') - -im = axarr[1].pcolor(ans['bin_x'], ans['bin_y'], ans['count']) -axarr[1].set_title('Number of Orbits in Bin') -axarr[1].set_xlabel('Longitude') -axarr[1].set_xticks((0, 60, 120, 180, 240, 300, 360)) -axarr[1].set_xlim((ans['bin_x'][0], ans['bin_x'][-1])) -axarr[1].set_ylabel('Latitude') -plt.colorbar(im, ax=axarr[1], label='Counts') - -f.tight_layout() -plt.savefig(os.path.join(results_dir, 'ssnl_occurrence_by_orbit_demo')) -plt.close() +An occurrence probability calculation can be generated by specifying the instrument object, the bounds and name of the x- and y- parameters of interest, and the name and selection criteria of the event you are interested in. Here we are looking for events where the meridional component of Delta B is greater than zero. Any data added by custom functions is available within the routine below. + +.. code:: python + + ans = pysat.ssnl.occur_prob.by_orbit2D(vefi, [0, 360, 144], 'longitude', + [-13, 13, 104], 'latitude', + ['dB_mer'], [0.], returnBins=True) + +This routine outputs a dict indexed by data_label. In this case, which looks at only one parameter, we can extract it using + +.. code:: python + + ans = ans['dB_mer'] + +Now we can plot! + +..code:: python + f, axarr = plt.subplots(2, 1, sharex=True, sharey=True) + masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) + im = axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) + axarr[0].set_title('Occurrence Probability Delta-B Meridional > 0') + axarr[0].set_ylabel('Latitude') + axarr[0].set_yticks((-13, -10, -5, 0, 5, 10, 13)) + axarr[0].set_ylim((ans['bin_y'][0], ans['bin_y'][-1])) + plt.colorbar(im, ax=axarr[0], label='Occurrence Probability') + + im = axarr[1].pcolor(ans['bin_x'], ans['bin_y'], ans['count']) + axarr[1].set_title('Number of Orbits in Bin') + axarr[1].set_xlabel('Longitude') + axarr[1].set_xticks((0, 60, 120, 180, 240, 300, 360)) + axarr[1].set_xlim((ans['bin_x'][0], ans['bin_x'][-1])) + axarr[1].set_ylabel('Latitude') + plt.colorbar(im, ax=axarr[1], label='Counts') + + f.tight_layout() + plt.savefig(os.path.join(results_dir, 'ssnl_occurrence_by_orbit_demo')) + plt.close() Result @@ -94,7 +101,7 @@ Result .. image:: ./images/ssnl_occurrence_by_orbit_demo.png :align: center -The top plot shows the occurrence probability of a positive magnetic field perturbation as a function of geographic longitude and latitude. The bottom plot shows the number of times the satellite was in each bin with data (on per orbit basis). Individual orbit tracks may be seen. The hatched pattern is formed from the satellite traveling North to South and vice-versa. At the latitudinal extremes of the orbit the latitudinal velocity goes through zero providing a greater coverage density. The satellite doesn't return to the same locations on each pass so there is a reduction in counts between orbit tracks. All local times are covered by this plot, overrepresenting the coverage of a single satellite. +The top plot shows the occurrence probability of a positive magnetic field perturbation as a function of geographic longitude and latitude. The bottom plot shows the number of times the satellite was in each bin with data (on per orbit basis). Individual orbit tracks may be seen. The hatched pattern is formed from the satellite traveling North to South and vice-versa. At the latitudinal extremes of the orbit the latitudinal velocity goes through zero providing a greater coverage density. The satellite doesn't return to the same locations on each pass so there is a reduction in counts between orbit tracks. All local times are covered by this plot, over-representing the coverage of a single satellite. The horizontal blue band that varies in latitude as a function of longitude is the location of the magnetic equator. Torque rod firings that help C/NOFS maintain proper attitude are performed at the magnetic equator. Data during these firings is excluded by the custom function attached to the vefi instrument object. From de61aa77fab4d1445e59284be3dc3116ce0476db Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Thu, 21 Feb 2019 23:50:11 -0500 Subject: [PATCH 06/41] fix --- docs/examples.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/examples.rst b/docs/examples.rst index 51a878f2f..00ca5a4f9 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -74,6 +74,7 @@ This routine outputs a dict indexed by data_label. In this case, which looks at Now we can plot! ..code:: python + f, axarr = plt.subplots(2, 1, sharex=True, sharey=True) masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) im = axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) From dbd0c9b32758a346f65bed58f53bb16bcf5d3803 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Thu, 21 Feb 2019 23:50:47 -0500 Subject: [PATCH 07/41] fix --- docs/examples.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples.rst b/docs/examples.rst index 00ca5a4f9..62a9c3f6d 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -73,7 +73,7 @@ This routine outputs a dict indexed by data_label. In this case, which looks at Now we can plot! -..code:: python +.. code:: python f, axarr = plt.subplots(2, 1, sharex=True, sharey=True) masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) From 4219722ea3e03fe7c9ab64cc35e5d5f64707e854 Mon Sep 17 00:00:00 2001 From: Angeline Burrell Date: Fri, 22 Feb 2019 08:40:11 -0500 Subject: [PATCH 08/41] Update examples.rst Changed import order to be PEP8 compliant --- docs/examples.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 62a9c3f6d..870ea9d14 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -10,10 +10,10 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou .. code:: python + import numpy as np + import matplotlib.pyplot as plt import os import pysat - import matplotlib.pyplot as plt - import numpy as np # set the directory to save plots to results_dir = '' From 0d0f9d533db34d22363ac07719acd49bfade70bc Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 00:10:17 -0500 Subject: [PATCH 09/41] Update examples.rst --- docs/examples.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 870ea9d14..51c22b481 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -18,7 +18,7 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou # set the directory to save plots to results_dir = '' -First select the vefi dc magnetometer data. We'll use longitude to determine where there are changes in the orbit, since local time info not in file. +First select the VEFI DC magnetometer data. We'll use longitude to determine where there are changes in the orbit, since local time info not in file. .. code:: python @@ -51,7 +51,7 @@ Note: if there is no vefi dc magnetometer data on your system, then run vefi.download(start, stop) -If you already have a lot of vefi dc magnetometer data on your system, you can limit your analysis with the bounds command. Note that leaving bounds undefined will use all available downloaded data by default. +If you already have a lot of VEFI magnetometer data on your system, you can limit your analysis with the bounds command. Note that leaving bounds undefined will use all available downloaded data by default. .. code:: python From 951dd94722813c65db26fc27b7dae466a6aa7beb Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 00:14:07 -0500 Subject: [PATCH 10/41] Update new_instrument.rst --- docs/new_instrument.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index af9f5c998..e1d923741 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -26,7 +26,7 @@ Pysat maintains a list of files to enable data management functionality. It need where tag indicates a specific subset of the available data from cnofs_vefi. -See pysat.utils.create_datetime_index for creating a datetime index for an array of irregularly sampled times. +See pysat.utils.time.create_datetime_index for creating a datetime index for an array of irregularly sampled times. Pysat will store data in pysat_data_dir/platform/name/tag, helpfully provided in data_path, where pysat_data_dir is specified by user in pysat settings. From 1e344ea174f1df7fc9c7e9b139476f64e3e801af Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 01:34:59 -0500 Subject: [PATCH 11/41] fix for #69 --- docs/new_instrument.rst | 51 ++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index e1d923741..9e36ae33c 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -8,7 +8,7 @@ Adding a New Instrument pysat works by calling modules written for specific instruments that load and process the data consistent with the pysat standard. The name -of the module corresponds to the combination 'platform_name' provided when initializing a pysat instrument object. The module should be placed in the pysat instruments directory or in the user specified location (via mechanism to be added) for automatic discovery. A compatible module may also be supplied directly to pysat.Instrument(inst_module=input module) if it also contains attributes platform and name. +of the module corresponds to the combination 'platform_name' provided when initializing a pysat instrument object. The module should be placed in the pysat instruments directory or in the user specified location (via mechanism to be added) for automatic discovery. A compatible module may also be supplied directly to pysat.Instrument(inst_module=input module) if it also contains attributes platform and name. Some data repositories have pysat templates prepared to assist in integrating a new instrument. See Supported Templates for more. @@ -28,16 +28,24 @@ where tag indicates a specific subset of the available data from cnofs_vefi. See pysat.utils.time.create_datetime_index for creating a datetime index for an array of irregularly sampled times. -Pysat will store data in pysat_data_dir/platform/name/tag, helpfully provided in data_path, where pysat_data_dir is specified by user in pysat settings. +Pysat will store data in pysat_data_dir/platform/name/tag, helpfully provided in data_path, where pysat_data_dir is specified by using `pysat.utils.set_data_dir(pysat_data_dir)`. -pysat.Files.from_os is a convenience constructor provided for filenames that include time information in the filename and utilize a constant field width. The location and format of the time information is specified using standard python formatting and keywords year, month, day, hour, minute, second. A complete list_files routine could be as simple as +`pysat.Files.from_os` is a convenience constructor provided for filenames that include time information in the filename and utilize a constant field width. The location and format of the time information is specified using standard python formatting and keywords year, month, day, hour, minute, second. A complete list_files routine could be as simple as .. code:: python def list_files(tag=None, data_path=None): - return pysat.Files.from_os(data_path=data_path, + return pysat.Files.from_os(data_path=data_path, format_str='cindi-{year:4d}{day:03d}-ivm.hdf') - + +The list_files function can be invoked from within ipython by calling + +.. code:: python + + instrument.files.files + +where instrument is the name of the instrument object. + Load Data --------- @@ -50,18 +58,18 @@ Loading is a fundamental pysat activity, this routine enables the user to consid return data, meta - The load routine should return a tuple with (data, pysat metadata object). -- data is a pandas DataFrame, column names are the data labels, rows are +- data is a pandas DataFrame, column names are the data labels, rows are indexed by datetime objects. -- pysat.utils.create_datetime_index provides for quick generation of an +- pysat.utils.create_datetime_index provides for quick generation of an appropriate datetime index for irregulary sampled data set with gaps - pysat meta object obtained from pysat.Meta(). Use pandas DataFrame indexed - by name with columns for 'units' and 'long_name'. Additional arbitrary - columns allowed. See pysat.Meta for more information on creating the + by name with columns for 'units' and 'long_name'. Additional arbitrary + columns allowed. See pysat.Meta for more information on creating the initial metadata. -- If metadata is already stored with the file, creating the Meta object is - trivial. If this isn't the case, it can be tedious to fill out all - information if there are many data parameters. In this case it is easier to - fill out a text file. A convenience function is provided for this +- If metadata is already stored with the file, creating the Meta object is + trivial. If this isn't the case, it can be tedious to fill out all + information if there are many data parameters. In this case it is easier to + fill out a text file. A convenience function is provided for this situation. See pysat.Meta.from_csv for more information. @@ -90,7 +98,7 @@ Optional Routines **Initialize** -Initialize any specific instrument info. Runs once. +Initialize any specific instrument info. Runs once. .. code:: python @@ -102,7 +110,7 @@ inst is a pysat.Instrument() instance. init should modify inst in-place as neede **Default** -First custom function applied, once per instrument load. +First custom function applied, once per instrument load. .. code:: python @@ -114,7 +122,7 @@ inst is a pysat.Instrument() instance. default should modify inst in-place as ne **Clean Data** -Cleans instrument for levels supplied in inst.clean_level. +Cleans instrument for levels supplied in inst.clean_level. * 'clean' : expectation of good data * 'dusty' : probably good data, use with caution * 'dirty' : minimal cleaning, only blatant instrument errors removed @@ -137,9 +145,9 @@ The following attributes must be defined. * platform : platform name * name : instrument name * tags : dictionary of all tags supported by routine with a description - * sat_ids : dictionaary of sat_ids, with a list of tags supported by each id + * sat_ids : dictionary of sat_ids, with a list of tags supported by each id * test_dates : dictionary of sat_ids, containing dictionary of tags, with date to download for testing - + Note that platform and name must match those used to name the file, platform_name.py Example code from dmsp_ivm.py. The attributes are set at the top level simply @@ -179,7 +187,7 @@ Using the CDAWeb template the equivalent action is .. code:: python - download = functools.partial(nasa_cdaweb_methods.download, + download = functools.partial(nasa_cdaweb_methods.download, supported_tags) where supported_tags is defined as dictated by the download function. See the routines for cnofs_vefi and cnofs_ivm for practical uses of the NASA CDAWeb support code. @@ -187,7 +195,4 @@ where supported_tags is defined as dictated by the download function. See the ro .. automodule:: pysat.instruments.nasa_cdaweb_methods - :members: - - - + :members: From 6c6223b8ef6e51f94d8a7482142ccf115a798616 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 01:39:51 -0500 Subject: [PATCH 12/41] spellcheck and pep8 --- docs/new_instrument.rst | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 9e36ae33c..6c66dac78 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -151,20 +151,21 @@ The following attributes must be defined. Note that platform and name must match those used to name the file, platform_name.py Example code from dmsp_ivm.py. The attributes are set at the top level simply -by definining variable names with the proper info. The various satellites within -DMSP, F11, F12, F13 are seperated out using the sat_id parameter. 'UTD' is used +by defining variable names with the proper info. The various satellites within +DMSP, F11, F12, F13 are separated out using the sat_id parameter. 'UTD' is used as a tag to delineate that the data contains the UTD developed quality flags. .. code:: python platform = 'dmsp' name = 'ivm' - tags = {'utd':'UTDallas DMSP data processing'} - sat_ids = {'f11':['utd'], 'f12':['utd'], 'f13':['utd'], 'f14':['utd'], 'f15':['utd']} - test_dates = {'f11':{'utd':pysat.datetime(1998,1,2)}, - 'f12':{'utd':pysat.datetime(1998,1,2)}, - 'f13':{'utd':pysat.datetime(1998,1,2)}, - 'f14':{'utd':pysat.datetime(1998,1,2)}, - 'f15':{'utd':pysat.datetime(2017,12,30)}} + tags = {'utd': 'UTDallas DMSP data processing'} + sat_ids = {'f11': ['utd'], 'f12': ['utd'], 'f13': ['utd'], + 'f14': ['utd'], 'f15': ['utd']} + test_dates = {'f11': {'utd': pysat.datetime(1998,1,2)}, + 'f12': {'utd': pysat.datetime(1998,1,2)}, + 'f13': {'utd': pysat.datetime(1998,1,2)}, + 'f14': {'utd': pysat.datetime(1998,1,2)}, + 'f15': {'utd': pysat.datetime(2017,12,30)}} # support load routine def load(fnames, tag=None, sat_id=None): # code normally follows, example terminates here From e0b634d09f9adc064b7564b595fe2360eb0eba41 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 20:18:53 -0500 Subject: [PATCH 13/41] fix for #94 --- docs/new_instrument.rst | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 6c66dac78..73d86932f 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -8,11 +8,18 @@ Adding a New Instrument pysat works by calling modules written for specific instruments that load and process the data consistent with the pysat standard. The name -of the module corresponds to the combination 'platform_name' provided when initializing a pysat instrument object. The module should be placed in the pysat instruments directory or in the user specified location (via mechanism to be added) for automatic discovery. A compatible module may also be supplied directly to pysat.Instrument(inst_module=input module) if it also contains attributes platform and name. +of the module corresponds to the combination 'platform_name' provided when +initializing a pysat instrument object. The module should be placed in the +pysat instruments directory or in the user specified location (via +mechanism to be added) for automatic discovery. A compatible module may +also be supplied directly to pysat.Instrument(inst_module=input module) if +it also contains attributes platform and name. -Some data repositories have pysat templates prepared to assist in integrating a new instrument. See Supported Templates for more. +Some data repositories have pysat templates prepared to assist in integrating +a new instrument. See Supported Templates for more. -Three functions are required by pysat for operation, with supporting information for testing: +Three functions are required by pysat for operation, with supporting +information for testing: List Files ---------- @@ -58,19 +65,20 @@ Loading is a fundamental pysat activity, this routine enables the user to consid return data, meta - The load routine should return a tuple with (data, pysat metadata object). -- data is a pandas DataFrame, column names are the data labels, rows are - indexed by datetime objects. -- pysat.utils.create_datetime_index provides for quick generation of an - appropriate datetime index for irregulary sampled data set with gaps -- pysat meta object obtained from pysat.Meta(). Use pandas DataFrame indexed +- `data` is a pandas DataFrame, column names are the data labels, rows are + indexed by datetime objects. For multi-dimensional data, an xarray can be + used. +- `pysat.utils.create_datetime_index` provides for quick generation of an + appropriate datetime index for irregularly sampled data set with gaps +- pysat meta object obtained from `pysat.Meta()`. Use pandas DataFrame indexed by name with columns for 'units' and 'long_name'. Additional arbitrary - columns allowed. See pysat.Meta for more information on creating the + columns allowed. See `pysat.Meta` for more information on creating the initial metadata. - If metadata is already stored with the file, creating the Meta object is trivial. If this isn't the case, it can be tedious to fill out all information if there are many data parameters. In this case it is easier to fill out a text file. A convenience function is provided for this - situation. See pysat.Meta.from_csv for more information. + situation. See `pysat.Meta.from_csv` for more information. @@ -144,9 +152,14 @@ additional information is required by pysat. The following attributes must be defined. * platform : platform name * name : instrument name - * tags : dictionary of all tags supported by routine with a description - * sat_ids : dictionary of sat_ids, with a list of tags supported by each id - * test_dates : dictionary of sat_ids, containing dictionary of tags, with date to download for testing + * tags : dictionary of all tags supported by routine with a description. + Typically these will include different available data products. + * sat_ids : dictionary of sat_ids, with a list of tags supported by each id. + The sat_ids may refer to a specific platform within a multi-satellite + constellation, or to a specific instrument for a single satellite with + multiple copies of the same instrument looking in different directions. + * test_dates : dictionary of sat_ids, containing dictionary of available tags + for each sat_id, along with a date to download for testing Note that platform and name must match those used to name the file, platform_name.py From 1de966ffa826c8a461583384046db377ae991078 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 20:22:47 -0500 Subject: [PATCH 14/41] tweak to format --- docs/new_instrument.rst | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 73d86932f..ba7e295c1 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -150,16 +150,11 @@ tested when pyast code is tested. To support testing all of the required routine additional information is required by pysat. The following attributes must be defined. - * platform : platform name - * name : instrument name - * tags : dictionary of all tags supported by routine with a description. - Typically these will include different available data products. - * sat_ids : dictionary of sat_ids, with a list of tags supported by each id. - The sat_ids may refer to a specific platform within a multi-satellite - constellation, or to a specific instrument for a single satellite with - multiple copies of the same instrument looking in different directions. - * test_dates : dictionary of sat_ids, containing dictionary of available tags - for each sat_id, along with a date to download for testing + - platform : platform name + - name : instrument name + - tags : dictionary of all tags supported by routine with a description. Typically these will include different available data products. + - sat_ids : dictionary of sat_ids, with a list of tags supported by each id. The sat_ids may refer to a specific platform within a multi-satellite constellation, or to a specific instrument for a single satellite with multiple copies of the same instrument looking in different directions. + - test_dates : dictionary of sat_ids, containing dictionary of available tags for each sat_id, along with a date to download for testing Note that platform and name must match those used to name the file, platform_name.py From 3fe9cc50d872661da019166b4cad20b8dd1e25e1 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 20:23:26 -0500 Subject: [PATCH 15/41] format fix --- docs/new_instrument.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index ba7e295c1..54c22c082 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -164,6 +164,7 @@ DMSP, F11, F12, F13 are separated out using the sat_id parameter. 'UTD' is used as a tag to delineate that the data contains the UTD developed quality flags. .. code:: python + platform = 'dmsp' name = 'ivm' tags = {'utd': 'UTDallas DMSP data processing'} From 663678ece59c5758eb669a352a72a78902a637d7 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 20:24:07 -0500 Subject: [PATCH 16/41] pep8 --- docs/new_instrument.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 54c22c082..987a1244c 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -170,11 +170,11 @@ as a tag to delineate that the data contains the UTD developed quality flags. tags = {'utd': 'UTDallas DMSP data processing'} sat_ids = {'f11': ['utd'], 'f12': ['utd'], 'f13': ['utd'], 'f14': ['utd'], 'f15': ['utd']} - test_dates = {'f11': {'utd': pysat.datetime(1998,1,2)}, - 'f12': {'utd': pysat.datetime(1998,1,2)}, - 'f13': {'utd': pysat.datetime(1998,1,2)}, - 'f14': {'utd': pysat.datetime(1998,1,2)}, - 'f15': {'utd': pysat.datetime(2017,12,30)}} + test_dates = {'f11': {'utd': pysat.datetime(1998, 1, 2)}, + 'f12': {'utd': pysat.datetime(1998, 1, 2)}, + 'f13': {'utd': pysat.datetime(1998, 1, 2)}, + 'f14': {'utd': pysat.datetime(1998, 1, 2)}, + 'f15': {'utd': pysat.datetime(2017, 12, 30)}} # support load routine def load(fnames, tag=None, sat_id=None): # code normally follows, example terminates here From fe7de84c41fed243d98c2441992ccba419935e44 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 20:25:20 -0500 Subject: [PATCH 17/41] style --- docs/new_instrument.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 987a1244c..40b83813e 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -160,7 +160,7 @@ Note that platform and name must match those used to name the file, platform_nam Example code from dmsp_ivm.py. The attributes are set at the top level simply by defining variable names with the proper info. The various satellites within -DMSP, F11, F12, F13 are separated out using the sat_id parameter. 'UTD' is used +DMSP, F11, F12, F13 are separated out using the sat_id parameter. 'utd' is used as a tag to delineate that the data contains the UTD developed quality flags. .. code:: python @@ -175,6 +175,7 @@ as a tag to delineate that the data contains the UTD developed quality flags. 'f13': {'utd': pysat.datetime(1998, 1, 2)}, 'f14': {'utd': pysat.datetime(1998, 1, 2)}, 'f15': {'utd': pysat.datetime(2017, 12, 30)}} + # support load routine def load(fnames, tag=None, sat_id=None): # code normally follows, example terminates here From 151ef38e9ad24a51cf2a14f8896d260cb217df9d Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 20:57:46 -0500 Subject: [PATCH 18/41] format --- docs/new_instrument.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 40b83813e..dd46f38b1 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -175,7 +175,7 @@ as a tag to delineate that the data contains the UTD developed quality flags. 'f13': {'utd': pysat.datetime(1998, 1, 2)}, 'f14': {'utd': pysat.datetime(1998, 1, 2)}, 'f15': {'utd': pysat.datetime(2017, 12, 30)}} - + # support load routine def load(fnames, tag=None, sat_id=None): # code normally follows, example terminates here @@ -206,4 +206,5 @@ where supported_tags is defined as dictated by the download function. See the ro .. automodule:: pysat.instruments.nasa_cdaweb_methods + :members: From 5c2f3cced1b2db5f750e1630f666d453eb772ddf Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 21:01:32 -0500 Subject: [PATCH 19/41] format --- docs/new_instrument.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index dd46f38b1..4109f637e 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -206,5 +206,4 @@ where supported_tags is defined as dictated by the download function. See the ro .. automodule:: pysat.instruments.nasa_cdaweb_methods - :members: From 2dc0b04294035b2ca3b695a3552c29add4bdecfd Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 21:10:37 -0500 Subject: [PATCH 20/41] revert example to code --- docs/examples.rst | 66 +++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 40 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 51c22b481..72aee20da 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -10,71 +10,57 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou .. code:: python - import numpy as np - import matplotlib.pyplot as plt + ''' + Demonstrates iterating over an instrument data set by orbit and determining + the occurrent probability of an event occurring. + ''' + import os import pysat + import matplotlib.pyplot as plt + import numpy as np # set the directory to save plots to results_dir = '' -First select the VEFI DC magnetometer data. We'll use longitude to determine where there are changes in the orbit, since local time info not in file. - -.. code:: python - + # select vefi dc magnetometer data, use longitude to determine where + # there are changes in the orbit (local time info not in file) orbit_info = {'index': 'longitude', 'kind': 'longitude'} vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b', clean_level=None, orbit_info=orbit_info) -We can define a custom function to remove flagged values. In this case, the values are determined by the instrument's quality flags. - -.. code:: python - + # define function to remove flagged values def filter_vefi(inst): - idx, = np.where(inst['B_flag'] == 0) - inst.data = inst.data.iloc[idx] + idx, = np.where(vefi['B_flag'] == 0) + vefi.data = vefi.data.iloc[idx] return - vefi.custom.add(filter_vefi, 'modify') - -Pysat includes datetime objects that can be used to define the range that analysis will cover. - -.. code:: python + vefi.custom.add(filter_vefi, 'modify') + # set limits on dates analysis will cover, inclusive start = pysat.datetime(2010, 5, 9) stop = pysat.datetime(2010, 5, 15) -Note: if there is no vefi dc magnetometer data on your system, then run - -.. code:: python - + # if there is no vefi dc magnetometer data on your system, then run command + # below where start and stop are pandas datetimes (from above) + # pysat will automatically register the addition of this data at the end of + # download vefi.download(start, stop) -If you already have a lot of VEFI magnetometer data on your system, you can limit your analysis with the bounds command. Note that leaving bounds undefined will use all available downloaded data by default. - -.. code:: python - + # leave bounds unassigned to cover the whole dataset (comment out lines below) vefi.bounds = (start, stop) -An occurrence probability calculation can be generated by specifying the instrument object, the bounds and name of the x- and y- parameters of interest, and the name and selection criteria of the event you are interested in. Here we are looking for events where the meridional component of Delta B is greater than zero. Any data added by custom functions is available within the routine below. - -.. code:: python - + # perform occurrence probability calculation + # any data added by custom functions is available within routine below ans = pysat.ssnl.occur_prob.by_orbit2D(vefi, [0, 360, 144], 'longitude', - [-13, 13, 104], 'latitude', - ['dB_mer'], [0.], returnBins=True) - -This routine outputs a dict indexed by data_label. In this case, which looks at only one parameter, we can extract it using - -.. code:: python + [-13, 13, 104], 'latitude', ['dB_mer'], + [0.], returnBins=True) + # a dict indexed by data_label is returned + # in this case, only one, we'll pull it out ans = ans['dB_mer'] - -Now we can plot! - -.. code:: python - + # plot occurrence probability f, axarr = plt.subplots(2, 1, sharex=True, sharey=True) masked = np.ma.array(ans['prob'], mask=np.isnan(ans['prob'])) im = axarr[0].pcolor(ans['bin_x'], ans['bin_y'], masked) From 761b919b60ed4b829a706783b84767327005a367 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 21:12:34 -0500 Subject: [PATCH 21/41] update to 3.6 --- demo/cosmic_and_ivm_demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/cosmic_and_ivm_demo.py b/demo/cosmic_and_ivm_demo.py index b274983d8..fa4aeb5d2 100644 --- a/demo/cosmic_and_ivm_demo.py +++ b/demo/cosmic_and_ivm_demo.py @@ -64,7 +64,7 @@ def geo2mag(incoord): r = 1.0 # convert first to radians - lon, lat = [x*pi/180 for x in lon, lat] + lon, lat = [x*pi/180 for x in [lon, lat]] glat = incoord[0] * pi / 180.0 glon = incoord[1] * pi / 180.0 From 7b86b74676df5b4ddc7b49905b15d7e9d63d592f Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 21:49:15 -0500 Subject: [PATCH 22/41] link to full example --- docs/examples.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples.rst b/docs/examples.rst index 72aee20da..eed4706d9 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -173,7 +173,7 @@ Sample Output (first orbit only) Seasonal Averaging of Ion Drifts and Density Profiles ----------------------------------------------------- -In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, use the code below: +In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, the code excerpts below provides a framework for the user. The full code can be found in [demo/cosmic_and_ivm_demo.py](https://github.com/rstoneback/pysat/blob/master/demo/cosmic_and_ivm_demo.py) Note the same averaging routine is used for both COSMIC and IVM, and that both 1D and 2D data are handled correctly. From c63176a65e30044292e1605d38c11c2190f51912 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:05:30 -0500 Subject: [PATCH 23/41] scrub --- docs/tutorial.rst | 111 +++++++++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 45 deletions(-) diff --git a/docs/tutorial.rst b/docs/tutorial.rst index 1d0b30b56..c7da1bfc0 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -65,11 +65,14 @@ Let's download some data. VEFI data is hosted by the NASA Coordinated Data Analy stop = pysat.datetime(2009,5,9) vefi.download(start, stop) - # download COSMIC data, which requires username and password - cosmic.download(start, stop, user=user, password=password) - The data is downloaded to pysat_data_dir/platform/name/tag/, in this case pysat_data_dir/cnofs/vefi/dc_b/. At the end of the download, pysat will update the list of files associated with VEFI. +Note that some datasets, like COSMIC, require registration with a username and password. Pysat supports this as well. +.. code:: python + + # download COSMIC data, which requires username and password + cosmic.download(start, stop, user=user, password=password) + **Load Data** @@ -107,14 +110,16 @@ To load data over a season, pysat provides a convenience function that returns a .. code:: python - import pandas import matplotlib.pyplot as plt import numpy as np + import pandas # create empty series to hold result mean_dB = pandas.Series() + # get list of dates between start and stop - date_array = pysat.utils.season_date_range(start, stop) + date_array = pysat.utils.time.season_date_range(start, stop) + # iterate over season, calculate the mean absolute perturbation in # meridional magnetic field for date in date_array: @@ -125,6 +130,7 @@ To load data over a season, pysat provides a convenience function that returns a vefi.data = vefi.data.iloc[idx] # compute mean absolute db_Mer using pandas functions and store mean_dB[vefi.date] = vefi['dB_mer'].abs().mean(skipna=True) + # plot the result using pandas functionality mean_dB.plot(title='Mean Absolute Perturbation in Meridional Magnetic Field') plt.ylabel('Mean Absolute Perturbation ('+vefi.meta['dB_mer'].units+')') @@ -175,14 +181,19 @@ Metadata is also stored along with the main science data. # all metadata vefi.meta.data + # dB_mer metadata vefi.meta['dB_mer'] + # units vefi.meta['dB_mer'].units + # update units for dB_mer vefi.meta['dB_mer'] = {'units':'new_units'} + # update display name, long_name vefi.meta['dB_mer'] = {'long_name':'Fancy Name'} + # add new meta data vefi.meta['new'] = {'units':'fake', 'long_name':'Display'} @@ -199,21 +210,24 @@ The same activities may be performed for other instruments in the same manner. I # assignment with metadata ivm = pysat.Instrument(platform='cnofs', name='ivm', tag='') ivm.load(date=date) - ivm['double_mlt'] = {'data':2.*inst['mlt'], 'long_name':'Double MLT', - 'units':'hours'} + ivm['double_mlt'] = {'data': 2.*inst['mlt'], 'long_name': 'Double MLT', + 'units': 'hours'} .. code:: python - cosmic = pysat.Instrument('cosmic2013','gps', tag='ionprf', clean_level='clean') - start = pysat.datetime(2009,1,2) - stop = pysat.datetime(2009,1,3) + cosmic = pysat.Instrument('cosmic2013', 'gps', tag='ionprf', clean_level='clean') + start = pysat.datetime(2009, 1, 2) + stop = pysat.datetime(2009, 1, 3) + # requires CDAAC account cosmic.download(start, stop, user='', password='') cosmic.load(date=start) + # the profiles column has a DataFrame in each element which stores # all relevant profile information indexed by altitude # print part of the first profile, selection by integer location print(cosmic[0,'profiles'].iloc[55:60, 0:3]) + # print part of profile, selection by altitude value print(cosmic[0,'profiles'].iloc[196:207, 0:3]) @@ -241,7 +255,7 @@ Science analysis is built upon custom data processing. To simplify this task and .. code:: python def custom_func_modify(inst, optional_param=False): - inst['double_mlt'] = 2.*inst['mlt'] + inst['double_mlt'] = 2.0 * inst['mlt'] **Add Functions** @@ -250,25 +264,25 @@ Science analysis is built upon custom data processing. To simplify this task and .. code:: python def custom_func_add(inst, optional_param=False): - return 2.*inst['mlt'] + return 2.0 * inst['mlt'] **Add Function Including Metadata** .. code:: python def custom_func_add(inst, optional_param1=False, optional_param2=False): - return {'data':2.*inst['mlt'], 'name':'double_mlt', - 'long_name':'doubledouble', 'units':'hours'} + return {'data': 2.*inst['mlt'], 'name': 'double_mlt', + 'long_name': 'doubledouble', 'units': 'hours'} **Attaching Custom Function** .. code:: python ivm.custom.add(custom_func_modify, 'modify', optional_param2=True) - ivm.load(2009,1) - print (ivm['double_mlt']) + ivm.load(2009, 1) + print(ivm['double_mlt']) ivm.custom.add(custom_func_add, 'add', optional_param2=True) - ivm.bounds = (start,stop) + ivm.bounds = (start, stop) custom_complicated_analysis_over_season(ivm) The output of custom_func_modify will always be available from instrument object, regardless of what level the science analysis is performed. @@ -277,24 +291,27 @@ We can repeat the earlier VEFI example, this time using nano-kernel functionalit .. code:: python - import pandas import matplotlib.pyplot as plt import numpy as np + import pandas vefi = pysat.Instrument(platform='cnofs', name='vefi', tag='dc_b') def filter_vefi(inst): # select data near geographic equator - idx, = np.where((vefi['latitude'] < 5) & (vefi['latitude'] > -5)) - vefi.data = vefi.data.iloc[idx] + idx, = np.where((inst['latitude'] < 5) & (inst['latitude'] > -5)) + inst.data = inst.data.iloc[idx] return + # attach filter to vefi object, function is run upon every load - vefi.custom.add(filter_ivm, 'modify') + vefi.custom.add(filter_vefi, 'modify') # create empty series to hold result mean_dB = pandas.Series() + # get list of dates between start and stop - date_array = pysat.utils.season_date_range(start, stop) + date_array = pysat.utils.time.season_date_range(start, stop) + # iterate over season, calculate the mean absolute perturbation in # meridional magnetic field for date in date_array: @@ -302,9 +319,10 @@ We can repeat the earlier VEFI example, this time using nano-kernel functionalit if not vefi.data.empty: # compute mean absolute db_Mer using pandas functions and store mean_dB[vefi.date] = vefi['dB_mer'].abs().mean(skipna=True) + # plot the result using pandas functionality mean_dB.plot(title='Mean Absolute Perturbation in Meridional Magnetic Field') - plt.ylabel('Mean Absolute Perturbation ('+vefi.meta['dB_mer'].units+')') + plt.ylabel('Mean Absolute Perturbation (' + vefi.meta['dB_mer'].units + ')') Note the same result is obtained. The VEFI instrument object and analysis are performed at the same level, so there is no strict gain by using the pysat nano-kernel in this simple demonstration. However, we can use the nano-kernel to translate this daily mean into an versatile instrument independent function. @@ -312,16 +330,18 @@ Note the same result is obtained. The VEFI instrument object and analysis are pe .. code:: python - import pandas import matplotlib.pyplot as plt import numpy as np + import pandas def daily_mean(inst, start, stop, data_label): # create empty series to hold result mean_val = pandas.Series() + # get list of dates between start and stop - date_array = pysat.utils.season_date_range(start, stop) + date_array = pysat.utils.time.season_date_range(start, stop) + # iterate over season, calculate the mean for date in date_array: inst.load(date=date) @@ -334,11 +354,12 @@ Note the same result is obtained. The VEFI instrument object and analysis are pe def filter_vefi(inst): # select data near geographic equator - idx, = np.where((vefi['latitude'] < 5) & (vefi['latitude'] > -5)) - vefi.data = vefi.data.iloc[idx] + idx, = np.where((inst['latitude'] < 5) & (inst['latitude'] > -5)) + inst.data = inst.data.iloc[idx] return + # attach filter to vefi object, function is run upon every load - vefi.custom.add(filter_ivm, 'modify') + vefi.custom.add(filter_vefi, 'modify') # make a plot of daily dB_mer mean_dB = daily_mean(vefi, start, stop, 'dB_mer') @@ -346,7 +367,7 @@ Note the same result is obtained. The VEFI instrument object and analysis are pe # plot the result using pandas functionality mean_dB.plot(title='Absolute Daily Mean of ' + vefi.meta['dB_mer'].long_name) - plt.ylabel('Absolute Daily Mean ('+vefi.meta['dB_mer'].units+')') + plt.ylabel('Absolute Daily Mean (' + vefi.meta['dB_mer'].units + ')') The pysat nano-kernel lets you modify any data set as needed so that you can get the daily mean you desire, without having to modify the daily_mean function. @@ -358,7 +379,7 @@ Check the instrument independence using a different instrument. Whatever instrum cosmic = pysat.Instrument('cosmic2013','gps', tag='ionprf', clean_level='clean', altitude_bin=3) def filter_cosmic(inst): - cosmic.data = cosmic[(cosmic['edmaxlat'] > -15) & (cosmic['edmaxlat'] < 15)] + inst.data = inst[(inst['edmaxlat'] > -15) & (inst['edmaxlat'] < 15)] return cosmic.custom.add(filter_cosmic, 'modify') @@ -367,7 +388,7 @@ Check the instrument independence using a different instrument. Whatever instrum # plot the result using pandas functionality mean_max_dens.plot(title='Absolute Daily Mean of ' + cosmic.meta[data_label].long_name) - plt.ylabel('Absolute Daily Mean ('+cosmic.meta[data_label].units+')') + plt.ylabel('Absolute Daily Mean (' + cosmic.meta[data_label].units + ')') daily_mean now works for any instrument, as long as the data to be averaged is 1D. This can be fixed. @@ -383,7 +404,7 @@ daily_mean now works for any instrument, as long as the data to be averaged is 1 # create empty series to hold result mean_val = pandas.Series() # get list of dates between start and stop - date_array = pysat.utils.season_date_range(start, stop) + date_array = pysat.utils.time.season_date_range(start, stop) # iterate over season, calculate the mean for date in date_array: inst.load(date=date) @@ -418,7 +439,7 @@ This code works for 1D, 2D, and 3D datasets, regardless of instrument platform, # create empty series to hold result mean_val = pandas.Series() # get list of dates between start and stop - date_array = pysat.utils.season_date_range(start, stop) + date_array = pysat.utils.time.season_date_range(start, stop) # iterate over season, calculate the mean for date in date_array: inst.load(date=date) @@ -445,17 +466,17 @@ The seasonal analysis loop is repeated commonly: .. code:: python - date_array = pysat.utils.season_date_range(start,stop) + date_array = pysat.utils.time.season_date_range(start,stop) for date in date_array: vefi.load(date=date) - print 'Maximum meridional magnetic perturbation ', vefi['dB_mer'].max() + print('Maximum meridional magnetic perturbation ', vefi['dB_mer'].max()) Iteration support is built into the Instrument object to support this and similar cases. The whole VEFI data set may be iterated over on a daily basis using .. code:: python for vefi in vefi: - print 'Maximum meridional magnetic perturbation ', vefi['dB_mer'].max() + print('Maximum meridional magnetic perturbation ', vefi['dB_mer'].max()) Each loop of the python for iteration initiates a vefi.load() for the next date, starting with the first available date. By default the instrument instance will iterate over all available data. To control the range, set the instrument bounds, @@ -467,7 +488,7 @@ Each loop of the python for iteration initiates a vefi.load() for the next date, vefi.bounds = (start, stop) # iterate over custom season for vefi in vefi: - print 'Maximum meridional magnetic perturbation ', vefi['dB_mer'].max() + print('Maximum meridional magnetic perturbation ', vefi['dB_mer'].max()) The output is, @@ -488,7 +509,7 @@ So far, the iteration support has only saved a single line of code, the .load li vefi.bounds( 'filename1', 'filename2') for vefi in vefi: - print 'Maximum meridional magnetic perturbation ', vefi['dB_mer'].max() + print('Maximum meridional magnetic perturbation ', vefi['dB_mer'].max()) For VEFI there is only one file per day so there is no practical difference between the previous example. However, for instruments that have more than one file a day, there is a difference. @@ -552,7 +573,7 @@ This section of pysat is still under development. .. code:: python - info = {'index':'mlt', 'kind':'local time'} + info = {'index': 'mlt', 'kind': 'local time'} ivm = pysat.Instrument(platform='cnofs', name='ivm', orbit_info=info, clean_level='None') Orbit determination acts upon data loaded in the ivm object, so to begin we must load some data. @@ -563,7 +584,7 @@ Orbit determination acts upon data loaded in the ivm object, so to begin we must Orbits may be selected directly from the attached .orbit class. The data for the orbit is stored in .data. -.. code:: python +.. code:: ipython In [50]: ivm.orbits[1] Out[50]: @@ -602,7 +623,7 @@ Let's go back an orbit. Returning cnofs ivm data for 12/27/12 Loaded Orbit:15 - In [54]: ivm[-5:,'mlt'] + In [54]: ivm[-5:, 'mlt'] Out[54]: 2012-12-27 23:05:09.584000 23.982796 2012-12-27 23:05:10.584000 23.986725 @@ -630,7 +651,7 @@ eventually the next day will be loaded to try and form a complete orbit. You can .. code:: ipython - In[72] : ivm[:5,'mlt'] + In[72] : ivm[:5, 'mlt'] Out[72]: 2012-12-28 23:03:34.160000 0.003109 2012-12-28 23:03:35.152000 0.007052 @@ -639,7 +660,7 @@ eventually the next day will be loaded to try and form a complete orbit. You can 2012-12-28 23:03:38.160000 0.018884 Name: mlt, dtype: float32 - In[73] : ivm[-5:,'mlt'] + In[73] : ivm[-5:, 'mlt'] Out[73]: 2012-12-29 00:40:13.119000 23.982937 2012-12-29 00:40:14.119000 23.986605 @@ -667,8 +688,8 @@ Orbit iteration is built into ivm.orbits just like iteration by day is built int .. code:: python - start = [pandas.datetime(2009,1,1), pandas.datetime(2010,1,1)] - stop = [pandas.datetime(2009,4,1), pandas.datetime(2010,4,1)] + start = [pandas.datetime(2009, 1, 1), pandas.datetime(2010, 1, 1)] + stop = [pandas.datetime(2009, 4, 1), pandas.datetime(2010, 4, 1)] ivm.bounds = (start, stop) for ivm in ivm.orbits: print 'next available orbit ', ivm.data From 1522102e80c2db86b3986805ab9761ffc7a0cf51 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:08:28 -0500 Subject: [PATCH 24/41] update figure --- demo/cosmic_and_ivm_demo.py | 2 +- docs/images/ssnl_median_ivm_cosmic_1d.png | Bin 161687 -> 91739 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/cosmic_and_ivm_demo.py b/demo/cosmic_and_ivm_demo.py index fa4aeb5d2..0da52eb84 100644 --- a/demo/cosmic_and_ivm_demo.py +++ b/demo/cosmic_and_ivm_demo.py @@ -273,7 +273,7 @@ def addTopsideScaleHeight(cosmic): cbar.set_label('Scale Height (km)') axarr[3].set_xlabel('Apex Longitude') f.tight_layout() -f.savefig('1D_params.png') +f.savefig('ssnl_median_ivm_cosmic_1d.png') # make COSMIC profile plots diff --git a/docs/images/ssnl_median_ivm_cosmic_1d.png b/docs/images/ssnl_median_ivm_cosmic_1d.png index 31619c72e00749e1bf4fc6e003c2e73db677c1d2..fbed09886316e3a66506547d5ec1ffbad350e57e 100644 GIT binary patch literal 91739 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 z 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 Date: Sat, 23 Feb 2019 23:13:38 -0500 Subject: [PATCH 25/41] test --- docs/tutorial.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tutorial.rst b/docs/tutorial.rst index c7da1bfc0..6f0a0f7a4 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -82,7 +82,7 @@ Data is loaded into vefi using the .load method using year, day of year; date; o .. code:: python - vefi.load(2009,126) + vefi.load(2009, 126) vefi.load(date=start) vefi.load(fname='cnofs_vefi_bfield_1sec_20090506_v05.cdf') @@ -376,7 +376,7 @@ Check the instrument independence using a different instrument. Whatever instrum .. code:: python - cosmic = pysat.Instrument('cosmic2013','gps', tag='ionprf', clean_level='clean', altitude_bin=3) + cosmic = pysat.Instrument('cosmic2013', 'gps', tag='ionprf', clean_level='clean', altitude_bin=3) def filter_cosmic(inst): inst.data = inst[(inst['edmaxlat'] > -15) & (inst['edmaxlat'] < 15)] @@ -414,7 +414,7 @@ daily_mean now works for any instrument, as long as the data to be averaged is 1 data = inst[data_label] if isinstance(data.iloc[0], pandas.DataFrame): # 3D data, 2D data at every time - data_panel = pandas.Panel.from_dict(dict([(i,data.iloc[i]) for i in xrange(len(data))])) + data_panel = pandas.Panel.from_dict(dict([(i, data.iloc[i]) for i in xrange(len(data))])) mean_val[inst.date] = data_panel.abs().mean(axis=0,skipna=True) elif isinstance(data.iloc[0], pandas.Series): # 2D data, 1D data for each time @@ -584,7 +584,7 @@ Orbit determination acts upon data loaded in the ivm object, so to begin we must Orbits may be selected directly from the attached .orbit class. The data for the orbit is stored in .data. -.. code:: ipython +.. code:: python In [50]: ivm.orbits[1] Out[50]: From fba224e47a3b973900859468313c193e20a47df8 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:14:56 -0500 Subject: [PATCH 26/41] python style --- docs/tutorial.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/tutorial.rst b/docs/tutorial.rst index 6f0a0f7a4..98e0a93b4 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -594,9 +594,9 @@ Orbits may be selected directly from the attached .orbit class. The data for the Note that getting the first orbit caused pysat to load the day previous, and then back to the current day. Orbits are one indexed though this will change. Pysat is checking here if the first orbit for 12/28/2012 actually started on 12/27/2012. In this case it does. -.. code:: ipython +.. code:: python - In [51]: ivm[0:5,'mlt'] + In [51]: ivm[0:5, 'mlt'] Out[51]: 2012-12-27 23:05:14.584000 0.002449 2012-12-27 23:05:15.584000 0.006380 @@ -605,7 +605,7 @@ Note that getting the first orbit caused pysat to load the day previous, and the 2012-12-27 23:05:18.584000 0.018178 Name: mlt, dtype: float32 - In [52]: ivm[-5:,'mlt'] + In [52]: ivm[-5:, 'mlt'] Out[52]: 2012-12-28 00:41:50.563000 23.985415 2012-12-28 00:41:51.563000 23.989031 @@ -616,7 +616,7 @@ Note that getting the first orbit caused pysat to load the day previous, and the Let's go back an orbit. -.. code:: ipython +.. code:: python In [53]: ivm.orbits.prev() Out[53]: @@ -642,14 +642,14 @@ If we continue to iterate orbits using eventually the next day will be loaded to try and form a complete orbit. You can skip the iteration and just go for the last orbit of a day, -.. code:: ipython +.. code:: python In[] : ivm.orbits[-1] Out[]: Returning cnofs ivm data for 12/29/12 Loaded Orbit:1 -.. code:: ipython +.. code:: python In[72] : ivm[:5, 'mlt'] Out[72]: @@ -671,14 +671,14 @@ eventually the next day will be loaded to try and form a complete orbit. You can Pysat loads the next day of data to see if the last orbit on 12/28/12 extends into 12/29/12, which it does. Note that the last orbit of 12/28/12 is the same as the first orbit of 12/29/12. Thus, if we ask for the next orbit, -.. code:: ipython +.. code:: python In[] : ivm.orbits.next() Loaded Orbit:2 pysat will indicate it is the second orbit of the day. Going back an orbit gives us orbit 16, but referenced to a different day. Earlier, the same orbit was labeled orbit 1. -.. code:: ipython +.. code:: python In[] : ivm.orbits.prev() Returning cnofs ivm data for 12/28/12 From 365385e79b4cd51c411b535709bc7cd3d9446e29 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:17:21 -0500 Subject: [PATCH 27/41] ipython style --- docs/tutorial.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/tutorial.rst b/docs/tutorial.rst index 98e0a93b4..aa92dcdb8 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -492,7 +492,7 @@ Each loop of the python for iteration initiates a vefi.load() for the next date, The output is, -.. code:: python +.. code:: ipython Returning cnofs vefi dc_b data for 05/09/10 Maximum meridional magnetic perturbation 19.3937 @@ -584,7 +584,7 @@ Orbit determination acts upon data loaded in the ivm object, so to begin we must Orbits may be selected directly from the attached .orbit class. The data for the orbit is stored in .data. -.. code:: python +.. code:: ipython In [50]: ivm.orbits[1] Out[50]: @@ -594,7 +594,7 @@ Orbits may be selected directly from the attached .orbit class. The data for the Note that getting the first orbit caused pysat to load the day previous, and then back to the current day. Orbits are one indexed though this will change. Pysat is checking here if the first orbit for 12/28/2012 actually started on 12/27/2012. In this case it does. -.. code:: python +.. code:: ipython In [51]: ivm[0:5, 'mlt'] Out[51]: @@ -616,7 +616,7 @@ Note that getting the first orbit caused pysat to load the day previous, and the Let's go back an orbit. -.. code:: python +.. code:: ipython In [53]: ivm.orbits.prev() Out[53]: @@ -642,14 +642,14 @@ If we continue to iterate orbits using eventually the next day will be loaded to try and form a complete orbit. You can skip the iteration and just go for the last orbit of a day, -.. code:: python +.. code:: ipython In[] : ivm.orbits[-1] Out[]: Returning cnofs ivm data for 12/29/12 Loaded Orbit:1 -.. code:: python +.. code:: ipython In[72] : ivm[:5, 'mlt'] Out[72]: @@ -671,14 +671,14 @@ eventually the next day will be loaded to try and form a complete orbit. You can Pysat loads the next day of data to see if the last orbit on 12/28/12 extends into 12/29/12, which it does. Note that the last orbit of 12/28/12 is the same as the first orbit of 12/29/12. Thus, if we ask for the next orbit, -.. code:: python +.. code:: ipython In[] : ivm.orbits.next() Loaded Orbit:2 pysat will indicate it is the second orbit of the day. Going back an orbit gives us orbit 16, but referenced to a different day. Earlier, the same orbit was labeled orbit 1. -.. code:: python +.. code:: ipython In[] : ivm.orbits.prev() Returning cnofs ivm data for 12/28/12 From b6e710ddacd2801d8f29efa10404cf31d71038e3 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:24:35 -0500 Subject: [PATCH 28/41] update cosmic and ivm ssnl demo --- demo/cosmic_and_ivm_demo.py | 4 ++-- docs/images/ssnl_median_ivm_cosmic_2d.png | Bin 177310 -> 124995 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/cosmic_and_ivm_demo.py b/demo/cosmic_and_ivm_demo.py index 0da52eb84..e339c06f0 100644 --- a/demo/cosmic_and_ivm_demo.py +++ b/demo/cosmic_and_ivm_demo.py @@ -281,7 +281,7 @@ def addTopsideScaleHeight(cosmic): for k in np.arange(6): f, axarr = plt.subplots(4, sharex=True, figsize=(8.5, 11)) # iterate over a group of four sectors at a time (4 plots per page) - for (j, sector) in enumerate(zip(*cosmicResults['profiles']['median']) + for (j, sector) in enumerate(list(zip(*cosmicResults['profiles']['median'])) [k * 4:(k + 1) * 4]): # iterate over all local times within longitude sector # data is returned from the median routine in plot order, [y, x] @@ -309,4 +309,4 @@ def addTopsideScaleHeight(cosmic): axarr[-1].set_xticks([0., 6., 12., 18., 24.]) axarr[-1].set_xlabel('Solar Local Time of Profile Maximum Density') f.tight_layout() - f.savefig('cosmic_part%i' % (k)) + f.savefig('cosmic_part{}.png'.format(k)) diff --git a/docs/images/ssnl_median_ivm_cosmic_2d.png b/docs/images/ssnl_median_ivm_cosmic_2d.png index 67a1480eede2ecb0cd8895e6ac993e71b474c5e4..f9b300c1e77da2567ed88d23a49b236dfcda3b52 100644 GIT binary patch literal 124995 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 literal 177310 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ļpWEeJEB62j>!3Kow{k8NqOGx zLJfmwviEj0C>3pJVFK-DeoQ`0e;bQyrYo{~e7J&g6O+8!=LGiISnwq7o|tJ4xJBWd z!ibTnXES1oWdVq8ZsGY7u`u5D2zK9Nbir}gv#db zLhpQ3We65#6$qlw3)E7Tjpa#Rn zoR!2`q#}~I@ex>^M2?X9vRKAFhwd{}!DMWiH+BS-c55TjQUTvmPjX6PjrZZ2Lv+86 z$|C7|B4}gs)Eo~*OfOzH>N>k#;te0&bgP3jVCcrZ_Z_8CO(zX6&`9t_h0?7Z?}Cm| zt|FBgxPuI_>J?<#tc5Wjq*HxFvJ#Cge8tnKD?WDz1&2Kie{UT!h0DAot7*iT-Wlqg zqVF(=zwVDM(`)RHmFgpCm)vs1t7n)^DFHPfruv)ffDRbI5S9{*GslmPA>GDy;QCtB z>ztFipFsnw1*9-f}|Nx*dcrs$f)yBE+way~Rn6^Iz7Cf<@%c(xHV zI4mek5j{rvYKyFY(2^)MyP8Ot`)=^NjPX-^so^IMRDMgtyjp40g2LcTa65o*)r_e?y?*`A zV8Ej05k2v7Iy0r#ng6ssK>u4EL>M*g%57eqV3m-Z@WWc8o1aKn#e{>H9sfOB2En+< zzBJ(O5*kR?HLlv^C8YUD;WfcnaiWk96b5U2zCJj)_~shJH@of*xc0*noOu0Y^#VEy z@lh(tk`+A9Hh*a?Q1(MTWPbM90TwRQ52_{#dQ^XPYe%Bv1U}rnYUYw2=3in*pl)`w zT{9doL}h_UKtpI-i%hZ+7U5LS{xV?7OurE6x%9-+nxg=6p(0e!Qg|%Mde_IyGiE$G zLfwn649E-Z5nk)mZ0qaoVEEjUxOkG2f)n+Rweex3b~M|uiELFnOleqz_( zKVI?Q;w@}18ai~F?OGF60o*Lo`n-USau;eG#x|$)b&@ONZ$R@`yV`Zpx@!D-@#rDd z7yPI zU|}7k#{p08{Scb0B68R;CG_K_i5PgpcZm5cp{aZ&lISJiqS=&2JE^qL8 zPh4Ner|H+J#?;sk(P&f4ep0WP8l`W?+~*~gxLNj~-wwNo7Au{EeEz`nVMRX$&RIld zI}bz+cks2rT!39486iOt*KCZ%^AMomM{Tm@*5)T>!scI z*Z*e$4C9OgRRXwf+Z3m@!{FFjnxGUdrujQF8*82nB_0Xtca1Qr2w5)iYCFXd#Rsnv5#6`{wBIi%zN98FgPkzx8=a^p|DcqG z(nfDAV$yg@MEoQ?N%rOYz8ObN%c*gTB=7V05L@%S@-s@mR^tx^?4s6(m~ba%;LOOm zph;;y)LSQo8~}saISuPmD?aUr0v^xYa>sVC2p?(7h=;|>)X=iWhHa&BNnifS%Dm0{ zosz7deIJuNc#=ZknF9kKl7*N9se3h~T~pJp@o!~@KjDY^Wn;+|D*zKGc?VZ11#ML{ zHLQx=YHuN*<7VI(>{^Cl@21?I@>T#|&H-Q$j~c#7M0 ztc$X;mf)YGIhyui92aCSISyM&G5qNc)3esNyjbuui0L^))Bp3E*#sf|+6$bvYUV@A zx;wR$m((N=Sjt^qHI4#TL++6Mg)B$<=OhX40o37yWV1rF z&>z_A*wG!HLozhOik9T|Dl#@ zI}tr8flk7`wy8`1i*?%@x7}xI-9bgX+?qBji*9tLP>QokYvL0p^}98%#oZ74)LV$g zNxQs>#$X*sGOJgL2DQnwbz9#PSGlJDL770+=QVg(^4{p;VxU5`yEqLelc}vhoGCci zsIQ}mq{}qafg<#J8&zA&FnzgzOIPpKT#Q=VMha z98?G{(P%F&CB;tpmRS*OSNj6Cj$;yDOyg^@4w7+|9i_+A^_GQ%faMo)C}6MitO1ec z^ThtVR^|=}Tg%CWGx6vI?2MCN}OmGzB#Cl1JveIh4!t>EyZY{_h5fx5ibXwS8>HpCNp9(u!c*;5IU{nZ+!T#O+MC3=ZJ zUVBmyV9D!_z7Tp|+!@^b!k@J7&M^+vWOhA5D7>BXJT0yk?)+1NyakMz+r_{qaSHv?hR;u?LE5{^vsrO#O7w(sng_H-}D9zzFpI zxJ7M<+JEDz=jlj}io--i1gsgneIIS1Qd!BE(RSpTogF&ZsWbO~pcg`qB#frkjcvY( zy=M!J>y5gKXEnSgZVK|k*zne+*Oo3neO`@a|EScIKT}RNNDRYS=Vt3lI!R`gLbM!X zq*4NxHW9PxZoq&|h9~&jqXtu6dk0MUnfDnHkJ&V9h^6(SaZ@LzA(;NzQD@7oJ zKKK~Y-)AKX37!{LnW8;NLD;h|tWz~96250g`Ht~{n%GBqA0_ z@4L-Wpp0pGl}njqu8>VrVND&&33h#)SAIA~ZEZh1Zx};nwQJmT-ZB9y)i~sAa?!YK*QwKXUD~cz*9985N$%-*LwSp8#G9wM6O)fS&WyO~WJnJ`7D|B~VorGf4 z%lTt7io`04y%p_y|0OjMH7<-f5ZGZd!oi<7JD5sy+QG7K3=`HZGY>pMwEGW>hA{!G zWO3O5LeRf9R&}vt9VuhMzoI;_MxQ5NMZKZ?LXNwIrIV6V?~uk@V&&UlJoaG<7#)n+(Fko8EmFR7I= zv{)T}9<=Xlncl+TA{={Jpyld!U|C26YfGe~oy79si#QcsohrGFK!RRxAVW!}HAZnC z7Xqd8p1b+Lou|okkBhg8(pjSZUDiRvQ2Oo8`Q>#c&DQbGH>EafN4wPG zLB|^#8~1K~c+5H{J;Iwx8EcFdc^o|IHuE}dDl!r1sZre2yvk=5w^3Y4lhQhmQL8~E zl^>EehBp@s9nlvJSMBsa+*d~m{Wl!Fx%!RglfTGsxswXApWnKFv<}7^9!k-V zO;y!Ss?NKQTaR?d8?Qe?&S)VAa0j~HfdwgIFQ6TSDM$l0G+`COhm5yBIkf3bzTb?H zJfIfNiF*9Ubtd7TBM?Dodn#Z2!FL}82@6Lz!sNFF$?HI437=sc zMlsNRvo&0J-q5+Dl59x>WD z60BWF$d$ZYvOBvb+)PSH>qX=0%i&oscLoRvVfc2fA_5dZx`TAc314r+l8&=HAas03 z376)1z3!Kqpyva#gnMH#jYg+L2X*+{XM`K?3f{}<5+)@~@b1{OLJB3hu8#NK*`>IR zUW^hXeb&G7ND~dNaah$`xNSJ8OFF;BAkxNilcE;?CE5YpZMdA~!!qkW#r6BuRDAvH zsj0DG%o}2%oTn0czK2wB@ShZM4(w}#Ct*a4w$lyxDpzD`fo)Fr6}_Oan_OBx%=-xe+a=Gbgmd{gMvuto%nEb{q-RY2a5WNsRQsUO)uaD zvj~WskkTUn74xK8KnZ*=V$5Yw(_UY@uObv1!w1(l6cW!=`JeRe9 z154T)Vba!@Bti=Va@YW31EtoW-w=w2irxoR4aKb}vH*3>(TH{WM|MXBmwoPF$`2Qp zkh7X@K_Jt}{ZC9k4keHXmDm4CfpY**AYmGvr)s|m$sujIn1Ra)MRfVNVd8)iXbR~> zyA3DBye5+D>F1@n#P*G;qJA&xsCb^RWbD9C&Ws6z!j?~)ZPUkfHFpmTiYpS?51(1? zncz(-<~r8jMBOu74f$@Aww>?nYfCr@D*XW3U`QM?Lr5-jd*ixT*DfGQgMefU-CIyOW1o-6K%_dnz6@eJBzIBXJnvTe_N)^E!`*)qG|rEizN)suesTzt=S-F zq>#N=K>oJO6speOWP%URALEENMa-FT#O@>Y2j$7sErps9Y1zvl$42G=k7|*HS+ts-+)kv8T^PgkM#5;U@B19lW9dk zL55r7fhPQ+)cSOo)jxo(Uj;R$EJcX9Sd*s1Mw(S3k4{K2WrNIY8I3;aEA+S>=Wn;9}`{`DAXfl&SmSHl6k7|&?0{S?%xF7B0l07a1{|SoKZ9S zIB7y7ww%!vYZn$=iui-+w_PprbP{Y=ow5dRT~bQh4o%wHnQV@8X_6hCtYyIlp`F6q zo95S|I}`Tewl$iaE`gSXf3Db24uH8Z1jzh5QbNxOgURRZS6w^rFIP*(Lv$Ly5b|Eu zkM4peX-cyTr-7KZQ&?G90TF4PiBjEJ38D$L&pK0 z;;u7A1!H8}h0xZY-1k&ZUfkeJ@{B9vlw;psCG50naP`sKJf`iZj7HX^Mhs10x8|N_ z!N*|Fu-mo+QXB?9uY!g2sQz22M;g;xvkQk-Ylj7)fX_*A)1OXc)9BVKdVKi-k`TI1 z^{o4bn)6}SJw|SqV0&+US4^d?hL{Cmcl}@Z3VY`9Py*a9Jv$VpzC}EdLsv4EMYOB7 z+a|wsh1J~vnd4JCWH&)~3wNiDU;hkYS2~?6w|7x;H<`49cSTlMg(UzDH^B5Fzad1n zI+r~i#90C0z4OdF_ICuO_Sccw0A|Iz*suH2r3U^}(eyrHfBf~fFgm4Ho;cg+!`*BG z%Met3ABpcAWfNdyLDNh5PZ}s*zW$v;1_*U3+5&BHJ zg7XM#&M?-1oCv3y)?HwpM3EVQqm>&=gsAolowq|K0@n|*I9ykjh$oSHhNsXy`MyS+ zhg~D9VSn7UvpMZ`op7s`nSY-mIR~3f_hWcb4nAPS6;gT*b+`(>Qz<^hRWa(p^+c17 z{ZBQAeOREmy`R-z|0=Adx3{j^GehS&jlqXxx-!&FVk-vw@k&_dWz@R;yU zF=o10XG$~kG~MB^?9d+~dHdlPX^uANQn3|fAT=JI}T3R$1Pfjh-3#{^jr&mddf(T1r z6x@Hh-jC3P<=$R{C~hsiT)G5&>xvYTZd&(x@hR~7K-cklqqr4m9LZr+(fdVTcjw39 zhZ4>M7g66)ijGEDl`Oq+8RGQtd)i~Dkol-qz~zV5m|@C45D+i}b92b}m(`0+YSh~Tpp*u;KQ0iu}( z0a>l3mgSdEV1}troQox>WIh*0Ot$glv(u7T@l1po!TFaw*2D3jWdw8;t}od!6N+xuo$MM-TiJg7H|yVGQ(~l$m#Pjt%PWR@lSwGO-4MAKtVyDi>-N5o*&4 z^I>sNa%A3qO@nTCf`4MIBTe z)I(dyH(y_qjIi80kRtj=f|A}jJ7vM2iPPppAB6Bywn9 z$E6O#+d1HdKS^AvdJxMO=>Zqi)k-?+#H4##!h&;rT79CJ$PZuit zKRZhEju4mvXWyr0tGtL`mZieFY97Q`m5hGE{o=uAMp)}_Lc6-<8oHBqsS~V+&kvq> zVfVPmDM+UwyL9|J0!kWyj8ZCpkn896MJhQxcsxchJbh?reHB%%4P$x00dv8Lk7Ksh zVJJ`chf<3P4C;1LDaCkMeRk7G5I^InY3|NDKbVefO@)f4Mnczd$D%B>1~Z!99<(=S z<^I9Rz>d}%k?v@?@k+}w$cOrk#fSYPIk9d}oi0{KhdnIy@Z#Kh8(SaC(AOXGV@4-` z4eeT*Zu zNtE;Zx(~h|fG26k=pE+l4P!5R@%oW+h?WVZ&R_D`**f6U$1NNTXdUtmv*kkcY#Iyx z*Duig2?%v$4dHE=N&a8QF9Czb8yrzR9+1TUUk6DC;PW_C-^$qVFgiJhhzAKS;3DPJt+KZD?-9{}VFUxEMT&ovP4%FnFeKSbn3|LLbg z0%mQ^$5Ov%DxVyW!;BpOCyG}yJa~nO#LmqON??)c&x^0d$sIotz+t^u)~EIRhvk1x zU0m~QR4r|7DF$p)4f`cfphaNj4VvdV)iL_B+;8`1|plC zi&*jW*}12;d;T~Z*hC22G;&Y_kFF|G{*SBnE5QvX1DBY<7XbHJF;y6SZPIaHZI7rA z*e(0{Hg949=@wP+XZZOJ;D^AYwSRlQx0)yLd%dZs1<18a!CCfQJO=)?@`1Onc^^;2 zK19X;0Lu#Pf0$oB=0!F^|PY;dNO=H;9XZZAgrOr>-Wr)4^9{#DvBcSvAbqCCg zLNHf8S6(T|`j36s^J@WV{;qo|n$0%fdt`wH$g9X$Fl7hByc8~oi#OmiP>bvP&tWgl zFSP~|O~j8@<32#wmmoz{e%1YYz|@3z2Yr#xq#*dT@38JTWQh;#d58w8-=T|+GN!!E z-0v&(3Af+I^xvH>Di06MIAoZGd$b!Zl-&V;YOy3$ZW6G-=GAdsF)g|kN{K7*9Kh6o zKxj_u*rzx-D{zZm`m7!80J;`W?)`YNKEUWo07MmX+F?u5P+hgAqYb~22JeEyzagib2{p`GNy+GBuS&GxdJRz z%XA)RvqykUR$2o9RdWn$I{(eyeyaK*Fa$==lD{dye*Cll!1}l0w&eg^)rxwvwUVMD zW7SN_7qtGs3y9MmS^rz}HOL~^nx0P~Er$wqp4xlX)~nh5yZ76f{?cz2(Zyf7m7%Cm z*ib6w=H{*2f$;O+f^PiN!1m4oxi>O^6^E(udplcD+9os(Z7#h20NzW8M<`+JT!^l{ z9M zv|AKnf@dE4+!~34Za2NI7V2{W!ekf#iXE_m=w(~22blQOym=@8#p?m10lMM)>k~d^ z)Xfhduc{0*Qsfyp3CT{W6Om~84(U&m$h?0qb+6JN;VeNPPtU5G&28Zz@T6d1lru^E zAs!U{%{wzq)k^ft(*ybY*Uk|pHMUJs(y-;%F;j} zLlR2~_^FbkZXuDcz_cl=T5ojtuRNwIyjqmetf{Diy+i)+h=>xNQPZ?qG67dIIoy4MoV& z^Gxes%6pLDP{re?cs-gT8HRsQO5;Zth|gZbKom}m7lh0w2?hdxi6IN9B9dUxHyX-q z^MEKN0(luNP=59ILASwJqae%gUk^l_8G4|TnXVRk+@zKN`micI5-~yhHB5jCld+@3 zi4b1n^dpOr;(B?<-AFi`O!8e-Ny0-de}*&>Ave3hcv9Gzvgaeiv<_JJt0UyGP_wXG zlEs4=6ePTdN($~#^jAU%vuSHZ!(JadM{^CrzD4W|JY1(=ltDNjO{x*0W=EyL29<#R zcOg8ur;B3FP-}ow-r-7$JhF zui{XD=G|lFF~BFY$uQE`AmFMW*?^)J1w#AVVq#or`m+S6m<;6Vc@L#RLqYZyQR_5Y z!qEE+vgH;zYKOQx=Jh!Wv+UC~szjW!_;(y9cf#dEBUv~-Wn?HcD8vgRZAdYLu0KHz(b)EI z0XponTRZ5X_&!kf5iGrPPCcN|Wjo+g%&g(E1xz=ywJzdb)OpyAbDRh$?&2tH zr7ke*AxMLexg4u-iWcZU>O;a3qM$=Gz&{t622PIoJ3JXWZ!`I3=mf&Bh5q4|UpNbS z;}aG*EAKz!eRt6F9)oFl)CUQaCCZDkfkFP^qyoQqN*x5WFDZ zQg5UefaR)4=7|a16(d;$gNw^o!5}&?rmh|RxGNQ^jzp)35b05e)TShUJC;(rG3GZA zSGAwHCLF}vGQ>ea?>z&S7+Hfp!gO%=9}RAl4!M{EgjX3K<3#lIPSoLWQKKXFH(otrDdv2#!4g?4x-_5GKofN;q1*L1ZMW zqvSA2?+)4Te%deYCR&ijao@lYM-Q&#mTK`rG1pF*2Y!;g`=$*)9vl^m(cc%8co-!N+8nMF zE`v<_RPGMeJnZLwjJ$x$-1pZm>HrB?8$sB+4APvZ(dMUPCKat@VQW}}V2_sp?m?MY z;lb@|$;mbDIansonW*|5livX?KM)+52u8{30}BRDdX-7)d+_;Si*YzZVFshkGgOZC z>Vi=BFNnnO6`&+jk2E>qyQ`u}J|M(~v-rC~J4TYG0$7H&#o$-@Wg$Sj9%HB>r<5rb z;OKlci-SpG!>0fe8PJ7;5@+4cD1*Q6q2AL`Vw{AjS zkIP((t>d=*oOX8mk@P%j z*n+nZByMdv^PPBR7jX=KZ@5$vCSFSTP8aMa{p6lP2u{j?f#H!s@`lHk|Ni*rjR1~> zF6)0{nK;%BtWpoKkyE=Hz@6B_7{A_%iaPN!QJ+I%c&Obx*gkd1iz|H1Y#Ti6=r*oI z8eC-mHHEL|n^iRT0(8AS5D5){p5Vctr#CTgQ4lTW^n@Pn@)9YS`QW$bC zvytWlEoB&E%Z(D;=O2G`?nUNBuH8Dh)80KA_fcA9Qxfq@9L6F*9t0OKlnsQusUlRt ztF#Ks^qda$R2290DK}&HN4AM{oqjH|WsgtQo}BfC-r%^fZ`1n=y8m6*fDVSKF1r?W zten&nzjnT`75bvvZ*?fKBf@hxy|ysgVYVQY-Ji^~*ypcI_!CJ~NgCDJ9&YA>rnY$la3p=ry|j$e$V z*s}x&s47*C1Y2EBpXA>x-Nj^)33J^wy@I_qqx9V%@3r9?J^6ekt(|EZ9#9siE21 zZk-&WzZYvIEw4v@6Jw)QTi;3FwdqCP!d!WOm&UgLGrZHWhP{t#HfGVYcmcn#p*tDI zH5MXPhppd@FJCEP10MtBA4+^st5iR*Hl7;zySD0+6`nn9A7-bOl}hlWVY#I7-q566 zoyy;aLDrIaj5q-`#oo>N1oSRHqkqb{=mtFnjcMLPuVfZ|2>3l40i)wq$%*X~1yzn%)Vz zolIc2^zPbA(=-70wq8gvHV(RjyREV&7T%fJng{HzSH2tJ3Vh?VK}G4I75w*MNI^Jq zRmD!0=p-9x+s{*%8{a8o&A-;VwpugK!-7#l>a;I@0ust*HTa`LG&^4HtCYPdyZD{N z9JpX%A^(9LDFHEIvxo`t;3#bn=|#Hq=^1fzGeNz*=_KrU(Xji{Ia|M0tYSznsS%4& zo>dR0P=lXC5eN%-IWlw|%ikZiDT+hmfmkp3bSs>X%6d0Bsrm0(u)~Ntq5glolF;2C5U51vf~Z#xF8d2L`|_I z!v*7WvSL_pinX0zie$*x!+x~I%Gt>{~LX+CNoe(-2zZfeW_4+lYNo~N3 zUz|=U6l{A2j@Ea&YM_+C5*`yuz8%Rf&O@tpo0a@Z+*UTafiqXfY7u#eM?<>cN@3$L zoIAfw%;kMRaLWQ)AZ*HO6;t>}uum+}T|RU%U>V%>@FV#L6In#&9_thApw-%-yaO}? z(jFX)^og7lTkT+LC9=^urHzVc4%biwWrap$%+?$_Bn!XLgWF!Ne{E*(nI{ zRMVJVflW%$*ychL2j$Nbzgobr!()1@z!a5%^H5b7gDmvMQgGUL|DiPN5K4AJ^TG9? z1|dS_XDnvup>n2`80mj(Hh8s%P zd({i7oCNIL*z;T`akZB_paI;xHSFFxau!_GV_%)vX!|$cy&rQnHI7;)yAp*)I(ni{;(A&R*mPbr@>FDfqRj&N7tSeEJtF(uML+ZUh^=9_lhEP$a9E$Y0T&?{?w* zPWfLUychBz1^ncvv&lw#B&tDcSt_jfW_>c!@f!SSr;#EM((l+S1Un>Z(=Wl9l$Q~CwOPeD~1;2*{^>wZ!dEA&SS^eV#&MCuyn{piL zx^S`zbV!PQC!8#H7zt6zVLj2HfrqN<>TubEltf%e@HzmQd=d=6Vq7Lo3HFLSEe{E% zDrO&$YfO?Go?Q}uJPtj*B6fU53$*C@rocmymmtFPZJT6Vp?Q*ez?CpDwm<1~JLhMf zSANP*afQN%#b&6Y0A;iTdDf*}Ao;e*-P<@W|La7<`f}dU;|7j!@b~hm8;hm9qR~cU z9o@L`XG{X-%9maU%w(Da8jxR^ATR=_J={uXU_@zlDA{4_*btz?Ib5y;gWJY*`h zLfbhn?!GeNkw`TOiRJkk+VH$Xuz6b$%P9_K(V}W5$lD-nlB% zEpcvcpz}nyir}W-(E8$9dntGp6(s5fsxZPZ!6JgxbXc24@AWQ89!zh#Xxj~h4^4$t zIr;(Hx`fX%uXmuO4R3$rRC#G`W|{`e(cmFFJGEaN!^nto#%1;$x!2fBf^vOvkK~SU zH;rf(X%;~Ng9og{SF^6GI#jU^Q&99c4;(F*SpHK~$>QjGAwo&QqI?60#MZy`7OAdzB`(n!?7bC@#gaAbQh5jk z!5@Di#;f6#GjFE9f>ClkbZv;*Mbu4Rw!igPhFesL?D-(Xt0)K)K1kri?XHCBzC>ApkFUEuS>U3iX81JqCdAc;mjgra}Zg7I+yKA@DEF%*)4f0vJ zhTHGq^&Y1dU#~qTHPYm4Xx5p)%mrSLlWM$Xi+N-(rHY6`v`mH^a-@~aVQFAJGx#d{jI?vi;TN7>WBu=PwT)}T4758pINV+PTg9e)Syfp03 zYDH!+FUU8}Cb52sO{&xg?xeID_)O<6f7ro98gttWLG@f1h)g__x{e8hi*XOBP14kl z`XEPlfw#e&Ejju0{q$uW@{lEMET3V@!j99x`Y^lpo(L)GvJn540f$q29|E_*10f8D z#rAJ6vM;l}_}_DLA-rKn>5y{m&$YQ994?!g%{YHt@;Men_-f?&u;!S8*6( zH>h*){0U(ex}mWeE)HQMC8zEjc&zpu*|tcrZCR5)SP1{ltI847szFk4gs6Hl4L9{n zJy+*R(?4G7`O?u|YOo3sSRU580uWpOS8Lsia6D@MX{3(2%ETWXnKZapVb?^qT3X0l z<8o*DIHQPkF8NFqu~u?tWv}1#Pq$yw7B}1D z6EYH8MruvWLFXqZWLi+da!eON8Y>h<{5A6vQ7M?398)L32&I{z2Ru~GF@77*R8Xm4 zRwp#LZ){NbD}pzdg%+PUpVfR&)bI8&;XNVhC4y&c(_qJ#D+;&$RkW!5l9IGW%qd2e`|dyVR(D>LbSB-?J4B=59nvazUv&+- znbZpp$uxh5*N>){k97X=-2`SXUaG$g%g29mK`?bq7%P6s^r{)MI?dV#X~twnpN(Cp zb{&DoIi{Pg7zQ7V$x1>1q(zQKDbtUaYjddS7W zu99UUoOdqEUq1l>>d8w`^SdHvs zoSrAaeG-P_ICBe$tztQUMF=A8bTcgbdRb;n>{QiK@O_P5t!Fw?vF4q0ww1Y>m1UC8 zd!8>vYk=e?vgsS7{JC!oRr|4YB=qs*eTkH}a`_&NuJHAms;+GCm1^vEuM$6o=UQF;s9RO!ivY*V!H z+10#M)8f9|(5L?%xUuiZo<%&g-Rb41Zd9M{{kJjsFPkH|B zTO_fqk{9xCM<$xM)FmlHSPCyJBh7ED2H;9Tx*|nDDsZXC(q916#{33A6NaBsZ7jQO zaL>F6xQ&krqZnlX^n^7pATw?NcLrj~jtEUxSUQ(x7y{ZEHn4M&Mi+mu*+h=-dV&Y- zHpXJI+EJm!AuV*$tXk{oT5&V_$;XxTR@;OLOGSi;#%-;x_xrndNp0YBnYJ1(AnalI z;!m0j1|e|INGKmGXZ|JL8olCp+)1BL-eE0UI|^pCDGItBRWx8$)`q_p_EZ0ojlW-Z z2YFq{MEiJ6U^~)@0hab`?L$H^{_L8bd4hhbK(k81nhwaG0jGNhQhKI$2kv#vxxSz!PePnaG5DkIfLC1WbQ%Jw0xch^ zFuaz~RmDRkqJIJZy+)o}DnxB6PApH&d^+u}Fhvx%N%%6Jufo&^to-5oIUT22)q%0P zwlvI@!MyAK;--w@O>s1y_ zwqGj?ejGJZW-P?eu7Gi4qPxjdCzgosf z{51aHYMy-rSc^$rfMVfDpyR8jDF>2t%~7tGot}a>AWx@qQkeu+!31iCA(H@!De=`b|Xqh#DV9u#DYeI6l_MFBY1$|ZybFvw_wySb6 zyW(^CMoZ)}O$bjszSV&a-|0PH-KGIec#uyW39%TZ?v9Su(K08}jK# zYom5j_-RR4#61bc2c8L*Ws<(As&Qr@#jedNor^43T!8za^wTj<-C>N0x{w)$L79?R zEToNf{xL4F5Fxo8j2miR1ae=BuO|#FRv(+k@wb*=3E?&=po0kCyETr-Z#C#>R&X;qWWTwS~Zi3SMyE3r(JAlG&6_?#P<)+Q(s4h!bJ zJC~zBYkd^VMNSNUJ>*Y!2C~7whT`)dK&lC8V#~`jUBfx^5q>Iz@y8K3vMyMXT+f8E zRT;xe#^bR-XVck_u)YUDu$Co|w2}-t;i@=$iWcj|jE=iX8Ib?^=cI7Q$c;Z>3y5M$ zEGp5F2tB3`SACiky#5{Y5eXg;mU^QULO}6yhD%Rj87{NdzodqjGAjkJyu@{?*ierN z^I*P;(RIYdKribyv|NF?*(!cY8otqP~?=9vW6YNpLg!nrT3 zAN$-`1D}8`S^O(adnPhqN@e$O#P2m%e_1P~{!u9nq8V6!a4>B~jPaYQmf=%u)ZU~P zE1XPIUNZ~+qCqA0QU^=Q!Vocp3*RsO%CV&}h6xr~<{_W5cKHpRD_M(gyu7q9x?F$N z53bHwlSaxB2@JXDr)YA)beLIc0M8h$peeJM3=do|i$;u9iT%9w%}y7kCpe@1n+1gg z*0vXtZksb31^9(2q^~9PGe}yW5dU^rI|9eSt^%zTx0M%if@-y7?shkal7P7UU2tp= zYq%xhODoI)+OkC32`^h^J;!t!Mo`)(Yk=^v;(e-%{Oq@b<4S(Bxb;Ke} zQyi;qTn-G@$ZCkpNToEg=iZ~E1y-d{o#I!nGdN^=Kh+pxoF=mjio9~ZQJoY}GNYc@ z;Y;iD8YNNU6&L!zR5mbKl=j?(rw59vMlr-`Uk+1$SwhvlaKWhIh+Tqwm0Q`Qg+dJP zJI_f3x^9ec7V$S9&+@9|^|K;CFUbBM3t*C* zW*miRWtK^N%S?m|=G^o*R( z3NT?UswW$oK(F$-vZXiDkW4NpPq8~nOy)x2s7rdmwnFuMaVU=k^%3@wg}3W9*CJ1L ze%(BbMGf>DRSIBLI;?OUqQS-CI3iyZ!eR|1qU>$g=dU1Y+c}R@%kDe9sA=p`HKh?_ ziBtw_HC*O63OuRnU5~@?eiWwKwV~^2L~_X&qP-J)zB4sqf)mCkN_KUKj0S(qGxrCH zg+YP?_rF5r$#C11w8js%9p)*wCxpspg(-+8F+iaPS@6|%ThvHG8S_6zFxmQpLjw(^ zq;s$wYxu|^;eTeh&Z3+Xcoj*HVQi`9Kuaw)5JvQtKPhrc-lMX)=ke@dF2_MV*v&%$ z-hX($_GGous*Gis(POSv=u=w%Q61N$f?`T*Ne zo|_hk5)2tAwj5Whk<7zv{{sz2c)2gp+M;KV=_TSFF#R<;a5>PZ+SgIjOGkz_7^3B@ zyB=zwoGUJbEQuRIhgZ%%p@IzIq(6zvN5{v~wM2QbH}w1-hNG}#O8MP!aAr$g(v2Ds zlX!+yz$8_3H`$=21ES;1PLF5E5Y8;}x_kuQdJ&7LAxz>4;jcNM!<5;Xd5Qy7M|)U~ zCn8-;CX9z{s-;91>N3`52QkPhF$xjWu~f(s8VgR>F>j*6vB{_;NVCp%fHTRctZ#S| z=*t`ZVuC_rI7BIwF78%0mNIR^!y-%xbOMyl4)EWYCnH4>bczuROQ;K}setKm4p}J_ z?n7bdMu4ZigTYcX@5_9QQEqAh)NZ4k0yayxzx+?~TAApXv{sYaa505Hvv4>KZ0AEz zRUD{g2!ireg~nKE>BfOk#kBznO4ot<;AzG z@gOsmJyi*Z^i5&P^ACeg3V3Be!tK=@z~fEmz^BLmRY&+%M08(v2Z-~yiLaO3*>!=$ z(UU0sSEF5W<6OS?$Gtg#$;`XgMmgDh=Yj96a2$M>oEWe_WrWhB21UYcaJyJ7T(V|w z$CcHJd9#_H3LS137B~0!?JSNyL|s3P#HjTReI`i>y4rFrh?{~NTZVe|KxiSff?y}W zRrRs-*S0crG#Uks@SF5kH4-U?^i<_H{Qib{k}X?J!#*1jpaqB4Z$O`yS;B14D1X-_ zBhK}eVBq^6wU^%@v$enEO?W`_s#Fngh{OklU-Y{s6*PIibU+=3##8#wiy}mh=Wny= zd+1_>=KLitUnWp4J$Lq04HYPTftdO9Si$Gxa|?$qg;KVSq)%~b)@Mz3U)Lz_I+$ud z$IxxX6gw(*%2^=#pc=B7_`Na*JXAsN4mk(f@+ih z2@H0*sISeYUAJ#jUFW&JT5RcZ5i|}P0+*DOoCQ>qNugn3b7aI%!+%mA0H@cu2EVgx zt6PNKj(SE{0PFYE#Wj5EHuY-4;108T|8MvZU3X3+Dvq%^*DVKC(YCeczTWf~AshJJ zq{)*|HddmvkyO#16RbMVAeBDbKOvZn8VUK!63|cmQNg-T<(A7+F8h;M5khPeltBwEx6_5PW zsTxO8nuV4c72^AETiCzZ z955xrHx2e{T&e27$KSJ^^;gDX0m3Fvf^nN@-oBw~KV)9T+Ii+BfiT{UqsEGV*J?@? z)2^nA#P8~!fBwcv50=VUqdV0_GY@5-y=N$zIoO@${Cx=P?9EqXKMPi$)8^qVM)@fTM}{!0Fv;?fdo_HyU~ zU}UAAI@c9cL(iiadv9Ywi1=?2Pue|*Tp?;Hw2D~PyI9%!I z?+9O`66>l%{43#NE!_LIb%UxZ0?8amOG>558tvrTD2G<;k9PBC|JFz5m0>OiOp$t_ z%4$LzkAM1|D0Gp_5WjX9R(o^UK&@sJ*YI(ko2$2V5n`|dv!|GsD<9u(B2{3T3hQ)I zM78W(;V$+a5xWrFP+lvfWR~QgeWxO_mOHlm&zZ& z{^+QCFaFaeP0ve3QvQoin&;CAIVS)JNPl%}nsXL=0#yt}^dElAJ zzuf{dZxSh0SHNp_Id>#O;dOh!>iNlIcsBLv;r z*ET%gc?i;|1Wu%RWIcfQdpJVaJr?HeykSb=%6*7$HV5d>+yS*_#;~qo3nDx`8DKZp zKKEH5apY94^jJq0} z9F3sLO?S}o1f9XQ*%P>QjQasx&R3ZYCzLl`+oK z{A+}r@{i}5kI{@#Wug(G@$ybUgRKxo?Cbsvh?_Gu0o%lW864sd07hp@K#4cd)b4i(ku0@9i z^1`6(Z##r3fxxs~5UrDH3Uu`g5PLN|K=fUHbr5zUy+diOlr8pHXwyO{Mf3nw$nsg6o&{dw!#fSXdktKB z;1wTZ_cXS7>z0{>mCgCo$sepIed-%efTvRb7tLSGhL9W-er449r0;8Q=|lXKQo`4d z4zB66g$M-59m4?jg!T=%%+hicH(b|oK=t?TllQC(pk{ayXEExs$bT~n6eIAv^BBBU z=oCSBmTwS@S^T|2e z{vc`EE&9uI)4|TR9T_ECBe4BWFHy<@@6bB>6Ilkf$u}BygCXr;J<9BTt4@2{KcOB{ zbQb%7;cP27;{`P?rJMO;Qf?Ru#*NBjA?EnZHvM2pNI)Lqdo1DNrt#Rz5+JBSGYy$e z@E1E(<-G66QQW8rX%Bk0c6|Z5&Ym9UM2|g?Ef9Pb!k6sfC!#@+hX*hk`sHeX0)8Q; z(GyggYga&7>?gTmJGwqQH9QI1z9?`&qbNP)KFFrE06Mgbep>(HoOLv1b4AKqK-Q6A14Baq;UVlQVR$o*V`ojO z;6^jN)q&l1llN3sjaUqUS$XCYgfO5e+y{oS-$;$gf&a?dh^MoO9lKqe=KrC(z6P2$LS$W z7&(ybwSQMPG&BxsjM82gAC*2txz2AKh1y8}n3BpBCP<^(n|+Oucwdjdk|fB4Uwb$+ zF$ItF?2Sr^w%SEM4&)dz7q!UZ=MXey<*H`TEu#IWq2}*%Fe9cF6Y1$e z8tOvTk|8NrVJ?QgCRFdqVzQ2LEXth5A(BFkV8%Eb0VuZv*z zdUM=A9Knx617kE%V;P+kOg7F3!n0-PM?VP(_Ldwh8?{h7ybu4$nIHx-yLVDG&b-q9 z7RK8tVVs1*@vL~kDb#lk5}N!r;c}R1Rq~2WKT-B<*Jv&clXk2dp`Y9NT5EggUgK+E zY8X?b9e9kmzy;X3yFP10w!H(Rr^#?x$=q}In~#Sxp)LrdC`n)k>^%W|qm&PlA}XNu z!o7Ahc9ou|6%|G1Rnn0k>&0F1T?(Jt_dNJGEh)i&Eg>Pg-V=dXwOWP8cfa&epv2GK zMiDj=%rB;=Vqe#-==x>#i&OmAG|&>dtz8$7;T+t9SS3_SiqX3(6Q2@^W&Xrr9B7+m zoLmxFF7bz8VX<`QTW0vJ3~6*-Su=E@ka->osXKn^^8baYw}cr>f29z6;gW~-ZCYM2 z-MJWso~f}ox#h(!~*`2QR=WmLlSTL4<*kn zC!NlsKcMkpuAS(Tf`3c*W~_ko?Q5d2FVKU@P~vt8ypJt?(Jz6#(5$@?3N{;EA{ZBp z${nBSL+zc4j3l-g68h5++na?Ag(3I`;LC8n>=O2jq6mlPkJ3|T-cw_F%PH5>_xGE~ zro@HZ0JrkHt9aR>1K0<^M$-QqFAnqaG7vpJKnkg=|68k_nkxZyqxa;b4RBlkC;o^X+u z9|MTChx()Kfo0-K5^Pf{`%-6!@kf%#N!BnT>2T=sPIj?TpLN38_X3Ud5Ro`MZiqkP zX`*&IJ(Typi#!GMFS$I<7Cv#N+3}f3MpCrR3DTO)<gm%fl!XvCyu$~FKp<$~#CLLR^CJg~S0u`*IeXSZF zEli~spmI<7weopkfa1QEn9j9@++?p3!(&cp+>P{e*%G?MB9f&VLaz3_EY^4^X#3_t zE5Vfa&i{`X!9IC((brG#e|9ug6I$ghP)cs|uB?ek%hb}~N1Y}gDW`+r+{_CYnv!s# zOPBCi5EmUP=vN{Zdd092UVBeAO?_xTm)d#~&7|?KbvzzgN!UBxSQLa@XHC%TJsG#3 zFbF;5=3K(&szUfW%Bn*R%LISu|z=G&R;jbz@Z#1&F`G{%Ml0i;Z9ma~S z_6AiDi7`4YsK2*ZjcE0B@bSB&n%RmC;_=USvKW3+ zSPrQo5_i*LA4wK>B~!Usz=Pee*#(nNo2se;UX)e7C)7yew1gIS#0u7Qcg!E#q6=}& z)Z>c!x%P-3HxyvYaX%mh7!()sF**zj_C;Neq9mOoo=pm3&l%?>#S)KjbXvQSp;f!kG7TwD!8Ka#Oqo(y{XoD7?~Ahanj#eLYQQdJSX6RR#y-XJ zhlYGj!ia^!kR`Ts|EfNjmBgCbe*Zhb%~<$_`)II@&USZ4QmK%eL*EQc{9GZ9E^zdl z?w7@w40jUYekoilKfy+7I~54;BZkO$iho{nm{2*%Kk63DB;59-c>+k@^!uvA5^u{0$34D#GXb# z>Ajz{KmhozTJC4Qxk}WtbgW1hh3Mn5gOiD)Dzeq!+#~`ttnb1Fjzc7k;INKDeVI9} z@4n)f@|kz7A*tV;tF!A9AAZHEpRo3udCBcY*Ue5+5mj zF~E_j9=}=@pth2V0|$QI1J8yzDc}9jjIb+mea}KEZ_G_ZZkvOa>Yp4zax}OW;1o%2 zS}m6UcE!frzWkTEf1NIQd%*e1e>r^hZ+4zA zm*cE#!+`NU6d8x$jzSSwiX^bZ`Y7HPas@T0UIJHTfB&^hBt9{er{9qbq!bwq51zts z6Hd$F%19YSc>*Wm#W-sO{*Ga;{$v$O>I*^?bP^9<5ygZlkXagR)guV z$tFgRX#=)U2f8HWn@K|{Wx-x#Fx{OjW^B7+g^M8}lM6M|)V(2alNfl$Dj%hCdZ)Cf)iTbP^bMnyomL&M)63M{V9Q${7rNH5u{h{ z8%AfCQ#u$obWmIh>^Y!)hn!q}t|D~N*!gIwpe1~RfH#$es@zO-}tEn$6xS=h2+8AL=ZM%&i)#WNORqF2>dKTn)VaaT`uYk7fmzi z(tvCl!T&{RKeQ~Or}mI0=3n6>kw-PFP#ei(O5nppcCU>Yv6enZQ2ah7rUf$$g-l7m zKt9G)^OI1_EWw`ToL~s2aX&V+??gAid?^tw(kbeqtFf{02+YZlX{$A&aSWndIQRwi z`(j5@m$RSIPRcFBzd`)Y_n7C~OYr@z`7@zg;o!_xRI*gx0@_2JB6t zK?&lKJwQma6;UMYynMzfan=R*i#)Ta-*YU3 zzB9h`Hef9mb7kaI%!nHT5xFNvfz*D+1ex!>^Kf#28*AAA?!1Rc3B)G$4NUh7UkkA=<;F!FW6KZ_uppla<<=zrrzp_hs|Az ze9)%wM&S-I;}d`1-CH@8TzY$8FZMhd7?L^n z_HVauo?F@qYvj;%>s@RFk8ArHx2a`T!O2{%?CJKLCk~;0CEhev4Id*SQKEhn$wM+~ zv500oK+~u{-G3US7qYU^T1sl9;oLrj0BHohnT|7dN4rPEeQ=^qaPJBM;Y{o}&&*Ig zlSlZ0loX!=t%8>;XcK!c)R~sN9-cE=q-BiMmzdqHpL6$ns4{E*OandU((t&Y?0Ec? z+61Pu)-;Mc)y;l-L2M%IO-&Mla#o9#w@~oNv+(qgjN90-6fl$tMTvQ$Q^l%b74lW@ zrx`JUj-;yLy?Ccl?1PQA;EjD6LxPF~JyU`xN-0hQi_r6iKZYXly1-qPalWMH%H|O;tU$9zkhnwcxAE;)r~1OvPjZ^Np#m(p;_k2iBlh zEW{mfUSlfN#}ZS19aBiFDXXIyoRz{9~O4~R`C_JpR z9G9Ve1bUlQju+p-=HL#L!GVajnu6r~o)(OI-VTrtR-`V8dR=B{Egk!!KzuGSwu_UuqOda3nI&6VW z1bc12W99n?+X9iHykuu~&Mj2VlJrls)^nPk%Fo3r`CFJsPvYmBRfZm6{rCd{I}KA@ ziUfn|Mn4S2c5Pv%5p+KH{&|H9fB!8&ZQ9?>bY3=nvpXtj^LcssMnB0lc;R}8!=Ec6 zVa4>jg*@zJwgG^-_yeWpOY=U}$R!C_v-kW)?R{n`)`-v^cLc5_(wz}7VTqd7L!GsP za6f=O8zqQ2`8g-R_MP@(n;AibOG-(uyONsT8WMNZ7le2=G2D~_oG+N{({U`a z?VJz$TPc+Yp2~?KOlayq9~~@8+9j*h_~!STg(|;e$0!>s7OX4ub>R3k4J$ax;*(FG z9r$$QAv$n7$Z_iy@QDe{|6%@S69Bw!7^Z&+0S)3Vi(xZ#ko&c|uDs*7_tr_g^ooOI zM5_a@biE(%QjuO|kxp<_su1bAzNNq2$pQ<-JjdB6j==R`4fjTwMh^zH1q^~nw$#~< zf;<;JXZHr;V4$>;yps)ZYRiq#1#*<3*N4PKNYQf^z z_&)4-BXCI4y!Nw4>OqG!-h1J|e`<=|hhV#Zl+`sYj<&6N01`em+M^41l@N$#+o68v z_9yY4FA%ATlEm+gsomWh+Ha!~kM+hI>t5QSNQZ|Zk>H2M_=R7iD0TaPkkXi3FUfRz zQ5eCAqU?iTafuRsQ2xsNMR99f`rXIYuu$pEf0iw0emkTD2VkL)*%bTdsgRT&G58zy zL`w9xn%!T{4Z89z%xHLGQ>60RaDMhLKf=Yl#n%%H8I`)_MKqAWxR+23RDOD?1X~(P z{!;xEP4p6J!9B}3C${m`TpA=1Shk=redKr)i?Tqz!Lo`^IGsv30%|83j`tT8-aA7X zKO0RTyG7+N><;Dp1ha#E1(fCSEbdgN!D$>0Xy30^-qlp=n>~5I1H(zZ&EWi5n^RDr z0My$Yi)a}Ph^I7P3l;k|>+{npGRLinl5hzw3}4&*>tCD#8UnKtQcV8gxu_yD7$*b7 zKPWI?E10?N5ehK&kwpo;o_=oedmK)Lazc{BPykAZA)H%IF~Qf3>2Q;=6xCT{D1^j> zK+CDH!odT6>Kv@QnVzYoL5syN%TI_ZMp+taga1Q4tpApY8?12Hs<7SITe>xhL!5G0 z)r#(5Yd2XXh?p;v8)&o#hUk_dGPA(F)SJK@;*}w$zR8==+S3oL5%dhtTCWNBC%Vr% zn1oVZlrB7VMhHB_Vau@&8E3@Dgi{3Xo|?;t`IKP&QM4G z7fPeP`6amQx#fWPZy77e%8RL|vdrPX(Y{F<-(o=BzZyen+|N$*l&C;x%Z0}$pply% zTh>(@yc*My?+(7IQRAtWBq`;F>FvYra4oPXmL=v#NGXJhXYXc|#bZ3o{t8{Zu_1@% zlP9ICAJHAl-pN!((APL~A|gr?&p`4rdq?_IF@*n8Kd^|Ub89}bZ1xVs?+{u0|CpfA zJMHdHSK9-t5}vBz_7z~x#Ya0N{4HAj#VinPB%gc4^(77aED86C9Y)KTZ5TCeo`&<0 z;vv6?+vz(0NDOcpUSAx%DN7U7IzEl9yNKVLXiJHrk(6j+R zQn90;u*yFC5j>JY)Ysl}AzfX1U?wex?UKo+mS7*^@8|QXFnPbI?+)d~Q4JpMFcUO5 z&0Eanmbk}pk91MEBrIzuB#qsk(d4V-l)`SB}U=l4JF^c~-0JlSSis?q1p z*~T&(ye~+X=WTb5e8@jXsf&hL`-%4wHcgV{B(otv?IW?b)4y7(C%&lpy0-w&2?lLr+R!00O6iu(CyoZwN8q9RG{ zILB{{v3M%?dP)~G!`2sKL{Tx1CpJ$oqME6ugu^oy5D;m*e}XG4Bk_=&5>`cOVqM7G zEf7Y?t9G|Y|IpgRt$HHs*H<%_*hrg1s6}wcSdwZB#x*aK3aGkNJiEKH-is1u6Hhya zG1N|5ft5U+2zNF@;i}fqn`ArwYkRuzsL1kEJD^u5N!rjb@9V0}$8jJ`miAO1S=9E3 z?{cozA8z}4GRR)}le%d*c0!k4M9Oaz(Qvu->xXCYD~8Iu4v<3aQ)im*(VU0kh418g zO;;dkSe^IU(a%oz=EYrUi0-p{I?yzN%c@^gC3FRGzbGImj#?v?pxYGQ_T93^DvfYT22K36D@QBB(f<(EkT&@%$5LpWH}lJl>Ae% zJfY=I@qT_5SW<_qyIagVQt63Sb?RB}Vl8`DE zlsQ5Hp@~vlZaL&44 zOH#^tC>NZQpLkl;emJuQM`Upy+E%swjW^4imyI7yv{MkjqfC2Osk)8{4NNW>$LTJl z_{xq@XlE7lX)B64TG);4X5TC`+B)x)r>t%xZ@9&7f~!W;-egSSFvYch7|bK-$WLxR z&}UgJC9Mm$fx*v4R`e9c@s+yk+=62w;!hGZx?vtIgX9qiN@de>Rn7OYnR zU$C1d-4Xl__6HM=0G62zf^7kKr=e*4F7p;*e>4AuTfP;?qD6Mjw|ndF(i0@C%R$J( zf_#m@yjh|#D_tQ%b0f7CgSwLe96;)O1$HGE=phcq(X-$fOjIqr{vsNJYn~am{Hzv_ z=K+#|SWZZOCoAbZ{328Z2U?RBbZ!^tG74je7kOV}gLEpk5B~%&T3pM#A85f&D!bXAron=%*H2~9*Rdnbl6;TeZXpzc@U~`^9tre+Y1C?9@BSB-DG=8i56A(>FhhKdvci< zV}Znj@=+KiiQ%VC&=Eu*hM0AezNDQ(;)81Lqi*D{Qi7ga7e_ztSEm4>qj8UQvW*Cn z{np>6c?-s|t$1IZ3eYdRenq~R5Wv(d*TLipS{tmM!LWBSVY{oIVtv@xJbV!{ zI``tcezh3lAx2SLzwdpl5&n3J#qN;zfG|5E2zkBmMGiixgf;W0q_&86a^~|xjt*Cv z+Y#U1C^#w%<%XziUwm}Gt0Vw#Qz+3uQTB3ACEUNI(e^h+wQX-W19 zh^V0D2qKkG4nO5ZlK1x$s;`$B^VSI$D!X{9t_k|b8XB`dOEka&jO+s$O-s0@ zLS!I$XlWz0#4!;rUVF5Pz%kqsQ(%J0Fjbk@QABq|G9Q9S=RgSDC;d2VSmjq|qFsN@HZyCYxQIkQVJ))76WWNGB<{a+s4 zHr;>HE3+TIFQE8(q-i2jqt{?ri1ddmrq5=O>^?%W|J$zn*)shxS4SPTIE4@0Mk4v- z5&;wfMeYHdUvNXe=Qmt_EEAUeW`MBrLEL8D(ea+aMEj>6l0M7~cJQE?2S`>?1ffRzG_OQEi? zSo-p;RK8A0u*xNHex3Arim5Hq$iWlEZZto`AJ@6>V6#;0`eVO4@5OBfFh5bQMfRjc zkbEU$U1}?6o*iyozM-;{D^#KkjW{N}ujB1~A06bO3Z*W(Gl6Eo{KNMv59lo{w-ura zj+ZvV^V?lA#)ymG#2XqG@x84rjVj(^UuWMuRbDU7xia5YA~g6NV5f0pyB;}ZPt-eI z{kkEz9r~T{b)VMT)(Q}e1+s3kes(fk6R(ft9Q4^&$taI~_r1*2`E{37AaFM;d0RgC z3Jh$Z4Osw@f3qRnG)B=&|0ZRGMmKgjm4~gB(B*y^NPx9=nWwYf%$-lFJ zBQ~2{6{fLsZFH^gSH1T1M&pP2JpsmZLIOZR!`=sCeohFSa=$GYN)v5^ii1-c5X z#_w?@cqIPUQB@rj7MsF&{B+OjnGa z=?L#@Yms>6I21aM(gSxpzGY|mEHU$9 zl+HodDTMQweu8@)19z?V0rJblnJ&Ocws|PAUhxmm4*?6dH||8H2=GWfqWd23SQ;>n zZ{8iV5S>YxjS(4|2qRS#dO|LtLq_8T_|6!<`HUJ5qnP&KiR>x;1q?T1Zp?&85eGWk zKw!vpVrA5TfqI+1NjgHtdE>VGB-XGV>X` z=)t#1qZpDfI>_DSOLZ;4u&Tj+ULaiJJ{ARY43c{@iHU0Kph^GJB7X-44Umf=+J64j zb((a;1G8Q9?}5quu`a@K|NS$xh_L>`Wf2m2MoYM2@_HF#n& zz*oTW*;ZpwfH-##_G4ILm81lgLN;8+PZ|^?Mhm{kPTXbl2AnBLikn2RtOW9DRm1c+ z4qlpc7l8hp(U3J~-NXL|#Rck=)v`{ES-;p1?<4FAElms_9yQIeQnZf8R})8T3qMt}e4_~^W#2h@MK$88iT`6SX0+TK_cwpYN|$`V*fqGdh* zw=sxCay&5N(^05kZ^S&sA~kgJFM2nNtTo9O!|yfsR>!jB=Vq*d?CH{Wx0Q=6WPxJUK=fkyvY_)7fBQ$T|5Mc}Vq~XSsjn!$;CAlc#CfclCIjWFQnpR@V!unUeLN;OR`4tU z^zztxVqZ;3U6K$I?8g&&KN*#x3kpU`yi`q;di=XHLQelO}XKv4p|#b;<1E z3abx{5&^6DlA;=$Nm5gg<|Ce32%3mHGGokDF^peq(i-9{8pT5u%tMpv1c-ZZRqFtT z;sr;KK$Im^sUvo=8`wTi{ zWGJr-wK_UyJ&=|sV)=&+@}$7OuKG2G!F7gv@mG%A7Ay?iDK7ayf3Z?V(YWM+-c20e zXz|q%PxMUoyKIhngp;bJ^zpT9OYNocuZLT(Xb=__{}aD1suVH8gPF|LA*n|Dy{)VK zB*BJT2=9P!0?G!?8_@Fl0ZQHZOn)P$0HdaQ;6Eb8~Nh%bd@~sJhE11ZoC#qM!`+FjQCssrQLCZ01oTnb3nOT zXvEqyl87=w64Fvz5Z1Wyvc}txc8zdUsQ_KBp{EcU++(bjuO|>Dp+N%MUs0Do>-cJX zKF6IdMBpI{KVLka|u-We#-l;%&=gWiiBP=4J<^1nm! z*T@@Yk`bDxkPnCyf%y@v;+G`;)<4emjeD*_)W8`$8&AYBOalVaN`V>;BkS8}{~@d@ zk_z+!h~DL~koq5IRny>HYt$Zxtm%zx{$}j#m9BJ@d*WVR>TwLn7ZXnG}<(f8~z0i5i2K z)h)IGj%k)J$KyvmaT)@uUp@b696Lxy>o6sM{{14$Y6w=Z&_(%j5O?FFd{G9-4)4KkpwsvrMxQ=DztiS#Oh zH)$iVj2gBt7{L4%5#+4j$V zc0CHyC>n1SD>r}_;0&Avqu`CCZde1ruKm(D&CfjjcI7cC9WkNDEUeJ<1INJd)W5Q6(0;(63H=iKXFGEpztti61_zhtNe#gsB1`(!x;zgj%Z>#nYOmQ7+2I-#k{x!@LJ4s~`2NmIjRn zC_Sl|8Q*hsF4s$*ubG=G#IJm1Yo|Fdja7Bs@H+E3i71P{+<{ld z`ADXQsEdRX8Tw3ul}Zu5)GYu_RI|b0`LX9)BW8$sB33^>G*VWWrt7YlL&+Qq_hiMC zibV!p(AT_-)gV%5aX$`1WFKvlLxO}v;pC)=d=%;P5NL1oMv`!~;pJ;CJ&uR9EJ7qW z58LWA*rPZIU=GA{Yo9^-%l6^}9NFZv5u5K0Q$C(y$V+u8^X zOuA2^X5}bO`@{uJbSZ=ul{t9u0OwgS(2ySZZw#`}uO- z>DSU{RZi>88Mm4@o%{I>D9#COSS?O4uv7+}Y9<9)4Jp+>MVut<)Hp0eN)Pp65f3ek z7pc^7qd>%*Bjh`2aUj}vS=f+?;_h-K$|vnaWT?ic2&&>;1QE}szq7+k71J0Ffg+fX zwgv@ntC>*xYZXSr;kWM)9?D>$OWbf+-f8y=PURraCW<-2#+~y!W=Z0i@HA?Bq2KC( ze3Qv1v27H4N*R7ZJUgkc2pVAN(M*emwzz#y`#1AV7{gbNkzIHR&zDo$UwE z=(|_zj|MKvqXN{EgVWW>=zZM3hoW;V-&r)E&Ip=*$E=NCNibzOj-4dJ%#b~mX@YSs z2yT7H&)_x1;zeV#S>7x4CG9Y&%z0-)FxDKy=||*u>@IPJ;=~-uEp+Q1mpf+ZSZ-~o zNycGKl#eQ6^t%+6Z3Xdzu9WHF?-Bm|grvTf&D(vYf6*gucJ}EP!c+3$9`srKj!mtO zV?LuMn(0Tg_3lJ-%b($R@p9);E;YhB=$6eeR-*ias1J8a=Gp)-wgW#!CeH29ICwpx zOt|~sreR&F#?bpr4SKoLo*kc@yP#BX22Zq|- zpWn4hQwtW%X8QS>e{cy#%-BMhpbIjq9o%ifZRLa!5$+90v7n5h zf~It%v#XJ6`6I*@^mqwabkU%|!DOwJx|g7~1I>-NpG}BU1U0F^$LOOGSQ_ch-pFq`ZYgrxBz96*!6gT2Fx+ z*5f@tul|(m8Z2I;S1swTCvz^q7?%28Kd=nR>XxY&vakQW6_6KISnC#}`80!?bxPe; zEhClP*&vzRy*11sg7(p)VaphunEAy0{6q@Xuw+pDkT+6`<)OXXnx1PC2u^m7E_c+A z!TqwMl=@8^v+?qjoQ>$bt#~lo`W0m59W+9ctgt|3La34FMR?;qlBj|t;lHi>b?%Y? ze`k`-E7kS#WrRLW4DZZWjVwO4wjjJqPWR#wV9>K3<%*@}EUy~Jg)v+Kdh`72N{pOD zdr$-jeB?TBVaBNOQ>Aa}G^W>J9rMM@@@Tp<`~LtkQ^v|1FBsQ?Q8g|EpC17{E%nH}-i%`O^(UTrm%}MSZ`lt>=9H;;vX|Z~+wg~+g zc>s3a%2G%riCeMv)glhk39&oQ{H=>P{#!kd9l$oejeT>cRjm9nhh9MjJnvia0@;7H z6f&A4Q#4+ln=?zM!qNvS5bGBMslvoM>}`c{SR{S+Vv3-eX4*~yJtAxZh6fkq?a(PC z3W6|e)c)+O8!KDH2x=PQ&W#376jps_CZKfUTPM)KFyzdBe&XKJvH4czthN}@!VNSL zBT#w?DAp#s{6y1j|Ahx=x$S-A;Q++^Z%c>G1AC?In0Cy3n$Q6X#?TVzpe`Z;m16hr zPnBJ(EQ;B0o6w5&If=a8Hs1I~eO7d*eX8SawF@%KgJU(Y_3#Y44Ae4oSMEh>@nGh9 zpgZ6r=Ntb5lH(F$eBdjd{)i3JQv1Tg5}gsB_uhovvc9Syi8m}uv~NW5W#QK>n^8I1 z9X@ezj5s5l7H9bR2{R1VW2|&BIw0UaG4+*X5J>p*D$`)nJjj0rFrh$uTr&Q}KHl~5 z|FHnd8$*E4D-)1`z|Dqvj;m2YcYmbR5j)L#?t^RTs7N*{r&+ItNfS1degqma%nc~FzsFm=XM}UQ&ho4nSH)Gf2Q$$Z)qD8icGP1&lJ>nU;*P0JsAEyuWEp7fq zph8u?EkeHOF^1#k%L04wpnZTzF=}{M3Gi^Fvn7V${86Rmh@i0WvYn1fYN1`e=pi|h zu<>o`CmpEdwN3eKhBp`8O}IGB4}S54!qUSWW{6t!}+Qo!g1A^m0+n@V2`@|)mWv0&t2 z`Bs~fyci@*7~KYc?2oOroe^SkyiCM59+XaEfqaSDp_xaj8oox}TS&nxpTnG)HHy+` zSD*_`@Tg=4J(Doj$@t3%f?jY$SE1FkN}t|N8Ig;gQ@oSn zE`Nr%xmhxS!J>nc7%~@cL!h2ES?_no&+0IHxFD|W7$jPr(7Sxo!C3Lm;36jcyb2j* z2=UQiLgr0%fc&34^kWXf9Nc4!`1QrbL;*cMf{9{l1fn+`1Bc8A0FVRkNUD#w5goEj zM28xbpl$|d2-A9gUJm!bD;${MueA?j5Dp8N(jXmhM7)o|YiUw`s!FdZjjv>E__jH? zUb1QJpROM(9k9JdxkS>(;fQ+!lz@xg@97}aSk5zz0xYTw_OKhXfA#$Z&PEQXWxnCZ zqp$lFz}g={ugqfkel^VNjk5--TgP(X@1eDGT|2)OlL#eC%)OkXh~UI#_*qyP#Z1f^ zPTV+WwhL?q6z$3~)dpBn+FToQ7iHT#h9d-uz$|W;?ukL$OjAENxZRPqJajGUGbL*& z49I}H!rxENMt4G~0m$L5YKmXsU?~>M5TpZVipRgTX``?oVJ3DLRax>@e!X|p0tRbDuKtao)G&h4L6E8D z5u20UdXmc_Tr5_&RTq~Kj=;wOZJPpSUiaLX%fao{+BjzNG_1XpMAw_wfS<~d)1`rH zc%eno=jXbDFS2f-79U@!Oj}gp2dew|*dN<~cAJG30J8eFeFo*|q&6|tS>L4@a}C_3 zv^wR;b65C1E?zQU0N;=d6IEw(QN8D*%C=qcz{aW1LPh5-Zh0IAumA&L^W7=5$m)O6(=}(i-32_PkzQ(>HkJmBJE<#Q9uUW zpuL|_&oLM-5L`mphKi9xWMQ40@9~MnusXBS!`AphBidjnl4c_P#I}Gkf@$77?JcLz zaHP$3EJv@x_m*$0k{SS?{>`9$ofsp5IW7@GgCFjC11!S1x&Xm{!V1J0Cn>`@jS^M& z8aIsx+cQ(g>OPpaI({T+>c)O4BZu<+HdD7&pvQk^@$qeYyH`IynyXVe&`AeiZv62owXxWf^OnVif%|cK31>Ao?G3 zs^2DRNsu0HvvI~{V?OX#oJE^sN<2M!1M21CgP>;<`gWDhICp0 zw^p|-U?MM*L|Z@5w${hKBoI~CI6bcV6x!dBlnoCB43DG}w2g%jDy}6_Tg(ADK%Ed( z*0xN;y5k|s|8fLx5T3jW%J4B^0fx`lf-SdFp-r1LjY*lWK#{cy5O#gP@TKD-4c8E8 zhnxMb5d6CP@8n|1uD$5`y>$Y#w~hPefL+F!|AXX@eH*lYrsUA;}2MJi(lKraKIMYMuoWY4an%93q+$G!GDeat3k_1;odhi zpO=eF5|XU&HWW5qT?+~-Ez=>bW)SNb&Ql{82UjB6UfY?A5rzX}fmcY;hXSSZJxc_1 z5I|@$Lg?>C~V>anPJCO!ND`ZJA zyhguXJQuGHdrK%YvJeh?gKZ*K6>2h#f){sLupRNY0PE&6Ry{v?=W)ZjV5LoMt`e2s zESgyCBA$ZE+e)bs4h<@SQ5kZ>!DBJvUojlYUuq&>%i&cuNa0ra>fAaqZ zxrI#GUGHjDeD0&<>)SM+Y|smtN3X7o-J&`Qg+UH&m8rfl)7%nyAGi<_01ctszja%2 z&MEHM?A3Fhl&Zz}&|AmFCPv+s%B1kT6-T&TH}F&6RY~MsqD^5Kvh?)F8dRFz*QL|R zYgyfv;BVdX$s!j1sU@jVG>Z;UuqW)>7BmW;VQ~F zo!E%;lslWOA-zkL_iG!=pKjkMR0e93a`#p95*C+`W)N8-5e*3B&up9LC)@qA|9w_9 zHOcyXOV4~^PM##d00NHf7CFUTulfv{yqx8Mt%N6C7+9J8+~N0jme+OWD5{0a_RXI> z;LK^@p$vsM$;rhJp=|(}f!DIC4L6{-uPHV}>HghBQ06C-k4}0zMeDPF{N#(!3Ge$> zj34ZjNGqnJuBPP=vk=h(M4KI{I`rh3rIej67X@R9o5|VEK~0*;y_~`3vD!>`AD?e5 zLqR&bs8{h9|3X9!e!lxB_}dEF(&!p&sp=KziO#IyJC}A}hg@)BTR@Pa24K|&M#Zvi z5Z13V)6^b=uSLJ`Ik*WepqqZ4#j{J-edq2Q2Fuc`+MM2uGH}|H^4D=qYETv{KRLo4 zfnnkD0OG3?cZeDF?hxnLk)QFb`gYq`q3B1?S`O}d_0oWma`r;-7>WtN@B=un-lA`m zX&FZLZB%?etpP-Vn~-$}tLDM|;R;enIO!KTDGh$Xk~XxbEMB|$R2{?2>j9J<<^52L zLFZ0IcJrVYoyA=*dvhY!)>$i{SWe&BBerYv;!Aq6@sXf_v%ke&rN!~&c%AF}4A1WF zeqeL=Q!!={!X2qbqxjajT!3-VA6QV5)kz=?7Qgd?u(Z=T;TMv07MQykTo#M1_#6nCZRQ<mZtbS7{#3BPk? z&saOgeM%k)X=;-<^vYoA-eSq`u6og*P- z^frcbE}6#SwtSK{)>jlr1MQpXD4dC2L&n$OJYiLcI$%4~BTIgT2SuG^Co2mwU(^m@ zo&dduUhVsD(2S_^*$|h`4t={Al^Jic#rKH<#6et{Ghzr z5_xfUy@E|N5s^9l=M_KDGJfF8v$%+7_;px-`Wney{?N6J{j``rdJ%DrsQQoOs6p*rAaP)rl@LeGfq$hj_ylxUfZ8f!r-WQ# zIKZp-Mc?UC&xX8{^=3^snt73rhOufnh-}bVyVa6TaDG&cGB3kjizaX#zx~d?oK|t-)Hw<*kA9H z%uVLboq6M&*NG`fq745riQUT>$ zdv5-GZT_VYnhENfjn>w!j*L*J*l7CPaDm~=kfBxko51b9xIo%8nyN{z%6JcpOyOC@1RPM+CCtiYAw2Q65k#a-lOeKBcDbWfAj`eEYjV>nQE)=3vr4!}& z!>d{4O?0zvOMUqemn8t)_TsS@Lqk2Rf@A0+hAe^xMP?SI`pt0g6;I)-i#4px5-7Z$ zHn)pALnN8j<7N!!xC)M-XIF1;a_48GKe0khj;QuuD?5}SKDkr=I0IDQ>@&T&l;h`3 z8H-hWn_GXHopqU^afI&L5kEnZ zNA=m|Ql~EDGfOVlK|A`)T!|MJPB`vV(D-o7!FzpNLOD#3?l^%ESdPxL^uwb;kK@$A879h&oHh zY$BHFztgD_t+f($8pgV#U&0D=>m^fJh15KqMcRS_w~Rhn+F2b0O4F)@s0my<)}q`^ z!*{xo!XO@t{t|%`8bnx7f2lm-=^lQDdp_J$F+;^!4G|RF4u$`<(vKX7Vf2%7(V6aD z!RE-q_I38N6c(EtTiro7B$OVHCsY^yCzb5#;Q{+mFhWP!r))vxD)fnRVp@e?HGFQ`!6*eGV`0s5i{; z67gu@Y&4f^Pj9&yBc;Bd6xB|HwenxjE}(53-b$W)vK0Z@tVRc5a2IRjV{r1hsoq4r zTwGdb%c)*!*-C72Y92!-t3vA_(L%RH8uKvctNO3~Nf~TNHbY`2Bn^HBv21>2w9msh zTTrERmM(X;swHVf8q`*ghUUdlhiYYTxd(ukg>2W?9#t$gQS3ANlb z$ktvW!W7}C>&vwB&#fg<2=4VU>VEZZpP6b5>|eBO9CA}R!MTItCFiAPtAk+5iI<%w zmqk~diVUU*HsKCwa&QA{Izq zeoid+zx>Wc5ziS9ryHH0XZW@(u+5yXcG?Ls1N|*>=y1(0Yet(bT9uL(;yY^tkD(_W z`)epkZk1Av&Ja!>!vhlnJFO^Y3Vj&cs(>4G-#B_D@7VVNK7MN%OtvoC_#4TMT+b`Iwmr0?Tby zY`oMB13LOa2;@li3STwx%Boihj7|GX_0Vc-_EW*a1|u7NcGd!~t+rHX{`QHP$fefb z-9X}SdMqS-XT^4@|D-?+TO%$X9qP`k3{S56Fg3?Vkmns;{6U!uJOzV~c7t*L0))?$ zf^o|GzQ{X8zUw%iZ)}tuNpq4O&is*+v(E^D+c^77$)kZcIhvM1`$paJ7ntAa6f^-g z?XFG&QYt0;&u;qV2pYq472>kvRs0W?J9e21^TOGq(4J2uTiFd%iQ8N{d z2c>|NLs(eee9{0gY+>(<{*>rWpS=n$Xqzc^MSLL zHwXFp7KkUA6FQxYaGouxA`0xwasB3{Q9SpN)Il3flSR>5s%YE|J z%#YNZpDp1BYab@ekHx9%%=R`m=YPV<_SKu0AcTx z+86hqZ`k~XR%+Z0`X=4`pL)^5!mNY4R~c^;N(HhUSB4vUcYm3_C^E=XT8fEZx7pe3 zLl;bgZQ19g3g_w@beOX;bxarO#tr>6{zSG0w%+8p4~14xxlRj{Q-ry#N-c)5P5Dgy zRKyRR8{UbfP9bp+_1bj)NgyPyl&&2LW~}bgg!xJte*gR;KOcy9h#qBE`g)K@%8fmQ zuJ-UtZ3YSq+7)JO2>!X(qgVs;7?MyM;WDQ_<2qTust5z?dF#o+0#4x7c`Nird?g(C zl7Js{_^j>mKo~Ex47}d<62bUp)GAt`$#FC+7qlcCGjljRZ?!F`N1X;XznP{jq*rME1P>!} zp`?NJo97MDoRvr#7fs+oXIdB4x`CoNMr@%RRhPa@ipB_w<%j*#4TJqBkEH*7t>*M< zOv#4QL#~vhg=rj6PoMU}r}xU=GWwd?#3dYA+wp9)|IMSH)h6I&J8&lkFdV0$C;_JL zTd@sL?@8RB+Lz^1aTd(iZ_6#-D-zvH!R>Fno7gVM`-!27ZHl@q=Xx0#Ic1G17(M274Ex1uI+Ozf>UEmLM|Ys z^NxOacs&e*m1A}Bkx?Us&gZAXKfs|8yH#RHquq)`nvYd} z{jLgIYovF68)Acze--gR2D7nKD}U?$>-AUimK4ugl#-tObF3`3rDc-Z zy%j7SO~kkmy+tS~Ou4hDDg|9kO-fl*G`JKFMN_wltJianxxg2%h1t5}{DQ^1f~Q|y z#oHRYn&0_U^7*yK6v%D^$Fa4DTXcEn7%pahDL!hJAo>Ksw&+BANfuTe9;ad6-v+2v zwi#Jdb5#Y4+|5s*q!MOiBS3bVQh^pGfv*M5!fg(><9bqly^jX3Ks;*HIgqnnF#7%h zg>n)16A&;*SgTtmnLy>mi#ASuaNs@iRc4+0J$#7DZH2lBkwx{SNH-wT*ggxg&cN;? zd6JX-@;m5m+vEH%#KVeX#n0k92xeVvjX^jpQfn)-%&8&2a&R=YU{8w+%S)Ya5ttI& z@Rys$kIh?|?1wBPxo3@xTQeaPGbYeg;~O@jxfWroB&(}&$foJ6w^TM;+QAuR@i!Wo7}-^Nl<6~Yv{&@Cngc`&4I z@+*(#gML}_v#eK0O3;jNC6XPCd2ky4y_DmM)jxa3MK8V6JKoMCB^0xHByNMgjlr0= zMen%2cDBG32a&;Xz}}3S=`b(!chlwRFcXH`&jpB2c42Jz<+Z`odv0_U8NmyBq zLD&PlGW!4g$l0JY*M5!2dA`t$+@k|VY54o^2RKy_pdQ8z!htpBIyB4e7_ush(?C;Q zIuY6FBr4cnyqSmx##5O!)~1xawAnQ*EMXc$BmI_{S6|80v`q-w5MFBxQO}UU{N(Yd zs+|UUYT}lkivqzBN%{Q!(J+?7x$aVcjh-+&SGjwJ|#88B$R!^`UKBAOSfMBkJ z%XzXhgH{SUOJW$N?qD8BlZK1|C|WNebACo=-O^Ii0P+M7H;Lp1K{sT*1_&YEJ zVky}6JSmPEe>sg7ATz}-8iwk;SS2g+@+@Y9QpQz8gl6I=#@cJx9QURQUy$m6?qtrs zq#GQ>N}d1!AbpPk>SeL)o_H(!_(JujR7itx)6p$>ZVB*D-|e|)$WO}b#m?ECn{pK1 z9rzVnqvkxa#SS+)8+3Gm=x1q#! zwgMIS?PZpI-6m{Ft4R(v)RyI#Yo`_Ea3Q5Bp(#NgO<&R#>f)=%lmkXl{^WlCUCkht zQ~)1Zo5!{%cJ@??kDOu2deIfg_dU$plQEfwA1-LvEj5U~qVHhA*haa)csl?kzRr-` zSrm$z{>s=i59?8pv1ZxsQ$5UwA=nxJbZd}|~iKOqyBiY)Ke0jRqa|rEr7}CVjk6r$D1p7%D2z*Ddvws>ymww zL|ckIeMOr5Ppu?3x`rsTl}6L%1ZcFpoq$h2BkVkv+?V=WWrExWQTN0lXwJZF?}f~n zK+~~2Deo%(vd!YaP$K5a`xWP|`Ca~?wY(daAjeDl2pv&2h-kpvlkJ3K0BPr42X2HU zD$#R?hrZJxh`o%Ee~v~Fe10M;862#JZeHgJ+V`13_$TmVU419xz$C-g)|e=3)c=+R zPD6_s>8=dIC(7y{>EraGaZ?mKMMKQn9MYJLavNC?&46tuz9XE=w$v9>DD9{b;9QlA zIlLPYThq8utS8^|Epht!eoEtiq^JFuZO>elh~j<@DigH&GJA@E1VN3|!>e9i6{Ljw zfbH$1?AKmmR{x9eOYy>=4Y2?Oen-1m^CV30G>`8WqX$7s$W4DyIm}riY-ga_+%|k} zvJUzsr=wjf2CyE~v@fk$cwsB_)e*l`*y>^LaE+ z5Uaq(bMh+j4O*pu!?vaWDHyXaW4*b~I~GP%Zd6pZ;ojh3s~r-!#?5%?QOWSB_AN6~ z1fr8U!(gGp`RB^ZApM|cBZ#h`W4{V<;MMSbvwGB9h{k4Tfy)3Qtrdi5Q^n8B)aH7_ zKl5Z?rcU7B=g3!*(2n|D_1@^eX$0LD=j0z%ssCDcB^2u;f6%i)cLv+hiuOsAYd470 zW3iym+#$Q__rW)2=6T*sbY$7*Gy8!X$;L!?kY>J=#W@oFS3DW)X$fVKu0UED&JcQP zU)&d1z>F-fXjtd)F-VbVMIK0XeHVrmIg}x(v+pOM)#3T(&PUen^sehyR)#y(X=Fax zf&8+1by=Y$WaB7eJ!x~vSa(1?eB|zAGOvp0zNdx-tF-9&<4HMqo;d`6wP(YDlpy8} z0coevbldGj#ej}A#gT+rTIhQvQ~$8UHMLGFIf5IEF@4%}JiFy;?PrYX!Dewhap;Fg zZIs&xod^EGL`3Xns*NoyacCq6+DTPAnIa)tu zNj%oGzY%qmcuCti?cb~ud0aRoHh{9WZ!9ch|=h0EY2J-)>>*u9F(|f zXIrCrRO9I%$}c{>?MC60it^Kw!Fb9=3MLb=o5s|w^=z;t{21zkzH~fkL9MtJmrfFbE(9^;Ul_Ir@W5d)?F`%3KL1ylUm_BP&8y!)$a;V@h<#eJy|IaW=s8eJ@3cK-_t4;*zA>?$KzYd^8Jd1H^Zr1ZFeOYmcVZ zLPpeW0As&_OV17$kLR*S)b!0dp7FeFe#wd8Wf&R9@DMp94I*|EE$Er*s?Y32=SKmn z#(d!>zW{cma7)eE^5m%BI#nqW^%0McF{VohIi$9!W?;H-gZ;1yf$5416$3mG9=b;* zzSSey8Q82wOn2H1K54KhIWb{Gm5BPiA1x^yN19;PQ((;Vx40Qqc83D(AiT-KK7YdZ zL%V~_@heVa+d5HEd*WmoVw8FB2otjPWS@kocFK|yu6w-h1J^J+coD(0&~h$O@qR+M z=*!ridf4eXqD&`@&UBy8H($7yh8efl>>9Oot_E5S)`$1svS(g-d%_K(Xq5ACjsG-f zMtnpyI&_-3_i$GZxq&vEgYI&#uSZZOG%QhgcS3yZ*^Y~9nK>&yO~-q;^QpTJ!Tplf zI;bvv+%;Pd$P|kcV{(5L@;qt8Fz(?c<2JzJZBAzXU%FR0WY0PIu+HB|INF?4Jx`YW)zZ%iaXJfq|jl zOu-25ju%iq8es6s@ee?mS!n`yvkeoLKr^u_IO>}JRUd`w)0xfy{?_wqhjjnKq)>gJdgPlO`3;O|q z&Y9A?{ff5e4eMrpDxhEx?%7!V3WKcrxy-78Yf!n&L7BwQ5GH@_=IE{lQI!HeUSQb43jB zi>|^2u6j8NsC&Be&;_gqV|apdT#xXN!OpuenAigy%|Knx-7(!tYQ@ zLzl_l`O!pnAy7}*d3^5~`Ifq>(~=nQ$jFJ;X?D~|r9#nwORJWKvtzk`T_wl1?JoW$ zwU(w)fb<70rh>v#I)53b>Ve&hmJIzA&-~<5u9uaZ_hsi7dSGq)8=9f#WjTRgJ21706Nr`y zvqO^{kA04?A$!DAa_x;{}51{57n9Diu7zss66l_ttHxpu3~w!DOci`x>rBo~2F| zqSl>C)xk7LU<*VDpHZ5`&JXEQ<_83Q5;9#pSZkDc%%%UF#iK)pnpLBEF|!Ik`xEQ) zz(QHoNl6-s)n40sh-r{0d49kG9CtB` zUy)=)3K{nxoCWq3&$9k4Gm8_xb&SoQi#4z-Iq!~NwA?|DUN+3HJ@?BB5Z)%6YbZ3vhTk25-Y9b{{VMbJZ&dnJzhA9 zb*e)qGOB>2J|LmYl!qtPT@*3~hh{@!;8u`$BU&Zrl;{3F+`DyCY?FbVO_KQ55m4#< z2|8xaO?vw7OeMmz+gjHsqqYcJN63_&C0+F-uS##6_3K*_yG0sE=fb0yu?te93E9e0 zw0An+On?K+Zx#-LeD){TEs=~Ozh(niY1SB(Bj*dM8%e<`N;OZ2s3XjJGES;6l?Y`bom|NMBIF!3i^Q^XJI&jQzx09 zl-Dm$9shc{zrVaqc+YEF#C3FZcmXP$1CI?~gBQo4*8aDwo4mz)hqXJOh~8}IeD8`m zPcWW2=9M4_cFP?rJL=5BV?2I$f9i;1>pH!QkxLxY>nUDXCR*)sX(FzYiN2z60#5-w z5Kg=-7c$E^YfLPtW}uS7<8LoT9OTte+tw?_Ri)PbfjebH~2|*HvLQOc^ zu;Va2j?+W*NXwG0$~KJPz+(ahdi$8rxwLFi&0ke7^DNe{kTNylYS!cR=x&zHWvyVo z!-?8UnXrKZ9n27a4XYk1w?YthLcx&<*HK|2ttSvNe`KnG38CQ^f14&kY4pHTfp)5UH(EzrX}zRsm=@`ZF@i&(=N8hK>~!QKnjC@l9J6Th|_U~tN9 z5gW#vYr~e7-B!GUWULSwPQD0NqaOZkG>+KNxx$-SR}VQpy=7R+WWodI<3T{#ps5pa zMctyv0OyxmVo=0fZ7EnZbDa7)OLhx^*_eQ8`$}PY-+>-^8+;3W5CBFa4Evqe;Q+`g z?@`jVk8Dssxu0F`Q&gGZam?Mc4!t+yyYDYoi8Fj3*o%=N7!ty-A-WjHx8wk>HBktA z>+QF9)YjHkH2p*Z0S;g~Qjzlh0c_N;0L@^-sI)o3Y81e|xPCnr3D&*AMeKj8f6Hbu z!fru4qz{?od@M9sEcYj(j?X1o4Jr^esDNK!&O#>+aLP%LkV3;vG{UT;T`D0wLsM*L z`8P_CUhQjm*3PNPkyHU59_ee0@5Rw1?+L+^zklyVxvktInDkuL9ImovmVBl-PdJp( zQ{F#$RUxHuVmCez>8rw;1kaW-GZ}J-nW3+hBtx*n=j!~Gy&y|Mg>`#ro!d&y+&Q|< z)Xu?}^E#x>u!IB@uZe=s4k86()%+!kKT2YUeosZ#8`4T;cZdeGsHGDI&LF{f?4=30 z!WcY^l{6f`=xy4L#4sG-+0XXqc{H1SRO~qFIA&jGCD84#7YJD13dxhbE+nOhxEn#RWiQM0|is zc7aKlnXW|wS7a+j>>`Y~G0phlq?#NpIcANx8W^H&@4>{Yb!xp#ErI=X-uw2pPGS#& zTbN&8|3PhLAt$t--^g%O0g~C>T!5h8u;V|KS^2-iuEpM=QXLAQnP&DI&o3Pa=iwo` z@Y5+PuU$_ZN?G@u?Hu+67z2#TCI#o`O`<&$N8vXHip9Fp*Bz? zEk=SQv1(LU&m~UF0f@<;3kJ?nL9z5v?@tKBv#0J7+tdUG_+6SDVP^{bK0|5!lEGz2 zmigvV*3B@YQ{Sqp>xuotW%QP6Ci4lV*W_mzynPX}-RGwi!=ml=;8WD)we-#ex>MO^ z&_HsD*h4Wipw1n^RF8_7f1mEeA?P(KI42ki!K*L-`Chfvn-ADZ(#uj?46J;DLP zRa`e#?oYpsDDnKl{Ojx7_prJPl%^;jSycO5*B^vXS%W5N;VEc0CsD@yc6%3u8un=2 zh#V*5I2xM`GXBqMR#@iKoiroX_Ck~l=sfX=@EXz(v1TopwS-p4`DeKT0<(Qb-HX2W z0uBKcVEkn<8IMq+YBbgrsfTq`!u-P|W{v!5@i@hZeL~M)sIWQx&hpVtzD6cr53x^F z{9Q1>E$BO2Wqmm5D^=fG4l#DCK5+Bk_J8IS@@e@j(RfIKp}9l(1$RS!gI zefwqjqv#tc>L!J>A~mdzOFTO=9Tr=d=KY76f9N*H4LDR$9nloPo-T_H*AIqk*^j-T z=KO`taBuo(B@?>xW2WHy2@-xn&y>K{6(@}u{A>>r?cNi)D?jQ6Ll6-zyvbLn*PzbD zydSg`Kk%*gOAx5gB^{~ES7B6ii=o>6Zogjn%GsG;)gwH#ymaqooDD{PzqWGh^W)jY zxZmQ=PRXCyLT`s_ccm9n`sd%k*PDq6-c&$6XQ%5VSoqm`pG1iODT~{9Q3GLN%_-qz zd0}x1H?3>c_iki9M`|B&WNui<6$spN{P#^<1Jq)Us`Vl`Msu?jPk>9(O)ZGAz)$yH z*SF9vQDTMzV#Kt;%?Q2%k7H{*?Amf7D1&&4g*4?_bi|2RyG?>rR{Xcad8PwluB3V& zakDo!Kbh^-*r#LmM|{@4UpyR`{nXoQM8CdZ|NK%;oXg>rYqk@mIBXLtryhuN%{7~@ zoTwd7&t62tzgNrAavhfFoyE7Ya_b#ZRz8#h9aX4+IU$iqB(;TiHu-8}6ZQMwUw`K?>)rKt$<9na6lqNm^(4DN zHUSq$EmdYDuh&^2S{@xdp4zTE+TgFEv={#uiK`Zlk=lQMb-?mWr9&`9Yih+fvwAWM zL9X-kOX{Glw2eB5#v(*NqHAN{O~qn!JQAf!U5A7FHEzAb{OP6SSmYRLnw00+?siy15se??bDLy8*{uny}pOy4~Z2LAWa&4Kf zNrxWI8JJ>((#$%&t%2(}_x~$y zbg7@i(zThQyn5`Wb@8Wf87&@Lx%=A{Ly%rPIHzF?0i8!2zFm+;+dZzC< zwLCpe25L{0H)RJZ41Q02$O@^Cu)!S;0!)~uZ%90__6;N0+g2)hx6@LAzkao|R6&6} zJv{VG&!4SpE_w-un3-Od>-p*GF?Yi2)FJztjk1b#`vHN@)-GT#3EtFxJt<9u_BwMh zMY^GOpxQEvBGM+J)1j)PRFx}A5v2;12TzAw&lr>kQ&zX*+YiT?5y;OU`DNLfX zO>LLb64L#@Z$=Nthytg%W9ci~HC_5Yf5FF*Yz@G%cm8jA?oez?Q_2*vw!&=NPawRR_?#Ne|~uxX;}~^z-H7%ij{v@iYK_WBKt{m7wf+Whej6_NTZJEiG}Fir{NMfkeK>}S zVAI3G%!NQlya*7hq@e^I|BCQ zLAt<}27ysxisS0(sa zgZHE;Y#88*;RXRsw~Rz9VKZ^YSRSAI@CW7XWB(R`z}!h%+cb_pQh--S@~KUqvmb`g zMRfKrkiv@aA%}pJ1z2XshYnyt0I1nzC$QD__h#2_iUKp-hp1}gzj4RQuPf>6n~z=9 zhtqGjB#s##5DH0vTtJlX4<`S(2;C;h;+T+&_5pX8YbQXhpkM{d>jhMdaivt! zZvjXk(W<_EUE`W{?$|{3?zZo7K2SySBu28ACvV+km?GlHqyZ+Ns{|`@Bqq3x z{zTMAveOcR82(CA)>Swh#xS7z#|<92lX#y*T9kO6q(w8%$>y+$j3V}29y6v>x|Ijo3D&tuESq}h$v(o zV_z%Y!!(WId4VfJD+L4fjHkQfs1LX=0w9iO83}$r4vx(CTBidq{TOC8phmrNN@w+)Q@ zN{ameu{WyC>}<|o0DWhB!CECaqWJc*{VxcT8F%+%!yoXcr4R}Cg5-4vW|t-SN#Suy zB?z50&4+@y=c3sK2v$vmRmRpaUIs+c|M36oxCS|0_eMjC$3*uov$*WFA7^cZF_8Sg z6+Y%kKs2bp$cHQ`>jKz_qGvif0bhZ}F>Hg;+s1<%Ag_{{x$70UfuhI|x=P-|nqGfg zTDFrnl#PhDaKbx>dh7z`RKp+s0@zlNT}UZU->K4nx9J1tHx$rVGny%!OZbm!*#jh1 z@Q_>Yb+krK^d*v{C6a%S6OC8>FXOiq49n1@Vy|z2pe_)S=^kU*Z_eHr!wSk2xGl@3 z)CJX0Hkwm4zG6@6I0)5jPDDdyL74;(>$XW>7Lsf_xtV$`@Yf_+`g7ai2J& zGswk91mIT;3%^`oeC+IPO?Qved*LVdfCQ=p1uP#bAV2R)>IyCdY(X)Zb@BC!H<)PH zjkWI?kdvvFMo<(r09KK71-K8e`ZPWg9T*X|@;T;tDaKtIN2T*%LQqhk*@Mpww(&v8 zb)(DQxS;v3b%_G+mzod{lB3zdP;Z7w|BWCEEFmn={0|F&kud0S7mcyPCiW_XKLodl z2c%u_??grf|6DY?8lr&V7NV9aDNF}$M{ZMH>f^ao8-QLlI5qu)S}P`l6wLYt1Z~~J z$i(_`obQuJ-V`53MnjtNGa|G9zI+!jJjOByA+kXeCBjP=UUmM{BQ}o-S>rE&5?uuH zSuwu|-cFuW(^d?$F5ns>k}F6u^0CED@PcRQ#&+*U5|rFPb2c(c=smp{`(I)~aOpvt zS3@;`v*B$x^*96%>Xv}jg8jZ;&GS2}cJ+nNUbgn>uysFx+<}ZI$LKYCB|?ECZY6N;W%CP7vI2Ka zgV6)i1bxBM0!o6$Te%|rRlTS6GWsQR$`IEPTrhIjFO-kTdTfw`gR15stUe&bc*;@d z5C}wqaa@b2rs3S7i-Kde6G&C@fXG78S-=%Y(+dns;s=gjql(KM4urmYEs5eviY`JE zIH1nt1SvF;riGQ0#8V$a5ULuRQ=*%VuH|#4=zO-B%)G_1E3-*eqekh)E7Q9N1ohK# zvrhsFaz0A56f7qnDLV&479-85Go~bugD@pOP60D{v;xhT+fF$UsU|@K#*?u?+(<>3 zksur8CH^~Ra(~V_$Q{uODnwN}1Yr;zB-zNoPL*M^AoSO;6%&dS(r{0W0;!iWBujE7 z_o_OvY`f;~M}4G?{88u}+D3iFbd&{2C>cW5`&pmNp0M@e;)9#qu$x9dBJqfrLRn-M zOo*DrSK#XoQi#@0%Z9UA+rU5*QvCfeHMw>{NObaoqf+kAa|BHIm~XNTerSr#`Pilz z^-x=qt6+&A^ZNIp$ac8KEUyJz>3vA9TjM1`u_ZbYS1V6|Fgwnw*pQJ&jd~E*7o>R2 zy0b(Ujnx2qJK`^%58FGIdkbWJQ%t*;1;m8isq6yeFk-&GXBIPN81-;)yqDD%9xe9`h)TaI}Q|Givx zm~=iJxkU<#$7mZW^~O8+W^tKDaNc$J}?nJek>x zBbYe|D+-YaV`WnftvZAN5w8=Lg(`}sz`-~ode8*43KP6&=9;uPAXHyfWf0LTBqYV1 zw|*n@j0)r3j_;rWnCgK5DC7}k&pQRCMi)3sANk7To7V!49soyF+Ej9p85rlNUB}-r zhJ|cM?>7yS<1EbfQwwQu>!Z?Yqj16*W9zz1ltNQU#_nd(7 zKkkHSsQ>Tsn<4q*45D*MYo(1TfFzWYs5$%xp&}X32GC|gcg;>gS0L#an`olYpKqW4 zejY$G5xYJHth9JYR3Q)+ll3@WDIhn%4D>hrA+1(r*q{?+@(x;CSX4CQBmTSB>t)2mN>7{L$5 zK(jV@oBYvsCFa!_W~4&u!hh^%_fy~^ZMCSU7v{0{n0PnBjf5CY8pFBJA9d5u_0#_= z{p7)=;529WrR+2d8U9am2po%6A;id=QK+Rf-iOEQPr?C{r7uPz-PR6f9QU-8fn5p- zMghiZmUD~gR71d&@_rrzi3 z08&7WkAnV#Jp}fIS{q z14_Xz=f*)-X1YU;Q7r^Q3sI2oI+9GI@J?xZXKbjIQAQ4&JWWv$AP)pn7R~I~zCONA zwXq4mc9wB1)wh0GyAGWH48qYZD(6p$vC;HBUFglRk+jMPzIOd>N0GpOsERUM_WG+u z!e?h4^^b@udwiRIa2D&~4XfRr1Hr)@XlZD@?M55HJ~G>^k5x!_(wbnQLs%VQfB3c0 zDa&lG7;cH2?=w*`_A0FV0p~>-x`M<2TBpBPBG-t-ZaGYSVS-AP=fL-37LT6_$z<$p zx+MEf;hU~M9Z+;`^a+yS4+}AeKeI>Ho#k zwFTSq-oiLC3ABQQOLee+ZLX-i=*`Q$T-leo=&w>@x}mh&x@yL)nsc!8GBL=3%4?J= zlz?1wl`$3AfqdawM(3QsXiP64^{kJ>JyP^RpzZRd9PAxpUM-hM_zyf@ zJL63An0A>5eUq%_n-Q}*SB}z9hs2u46;WLgK>}|0MEn73T^c;zHC91p1`TiOJXMB{T;a1DYk8s&JkzddLAzWK;(VQHm3$`-PP8)Xdh`kzY6*$-$I zI57+%hGl&;)Om_~M>mLN&c;1fS=F*XmUp5oCZ|y`g>grLqA5;%D>{>79DL1*xTsLT(Lv z>e+r^-eo{8Yv)Ts?KdsdfOnwmzUur{P=o!m-h>h~!_{71Fao*uynyYm4XaIqPq8x^ zX-pUxDf%)u{MRNV_2>HP!^@iSsR8XFvTDWEph0Az_z23R8mHQxP9IPFi_=W+4?~s! zCmh0*D{^)ip9V)LBAX2@jv=UNghYu3D<=YLE437k*QaqyHL7@lba8uFmcFy$X1Du? z@ONU>iVW!H`xFKubmhm%!c1xifs1W*HD5X~h|uSAJ5^}ERQdZu;oOI161SIB7U(79 zSzQMM--}dVs!#?=)6~L&V@MH}I+A4RGdVv7AEu;G@dvOPfzd5g zioh|bIJrqz8b5S!gUvq*3hJK&;Zw)+$5^2zj%dsr*iQ{B=`*+5QG*9l3}cj2`0!`7 zMwXY({ZVx|D2W+WDcFb^;a{w##Ad%%GmwyQK>mlHV0KU z(xG@)iY00XGQmi6gG9o;ebK+-xD01cGhR73vy=s;_Qj$}7_to2$kq{~c^x&@-T|W; zHb3poV0hDE_q@T`H}x6_CU2LNFWpCbY~bM^Mlhch&g98W{^?M~yxqa%?}m!f_Z$ZG zovGp8hGrj3R_?v_8g(S;D|1BJ?lf1FU_6(QclAuoc+YZDOPoX7^r`O=YLR~m$^T_c zW5icy9a`$L#eP*Qr@hXUg9w9dRHZv|CZ^qThqD+)2rIg-e65m@XL!rFLvC2;cJF*$ zTltb!tcZWT52hZ2ZL6Eqv0hClVA|tUE=t@biA%?_uC_}v(Hyvh1!nDkp{{A9E%ZsQ zvrcJA@d#NtT6eg%Y;|8BD#Mexbw|%hZ~z!L?=uti(tV&BHL4hHo_^8WZwDFZDz= z!HLO%!Tzp)@Vyw!J?J|vHB^E6B;#A-gofY9dt*2Wx{9C4aB18dMlV`XbUwN<431ya zR|A=02Ay1uU3bhjE~I9yx)V{dAk5@Ux&gzb+X11{z6wcoSLO8Wgn8pCgD zK8E^zj2UBD<=Sfr`ciAiW98<+jLf+=Cap(=*C%qO*TrC$Z8zG9nG+&A$4lt7}?;cyIMO=pk65 zwo-fwbkjh!pENmawY>O-GTU?Rjy6+xMI5v3O?`<&jh(Wu9t-1CDCJ^@g}c~)m`Bm_J{oSe61*Qcq>u-b=qL;5w33U9tS;s)zx99d zvx`z#bjT8lzGfOTl;9Kzw8Euia;Fn*o7X0(!riibqu6oOB`2CRncOzq$@Bb7u9Zf| zR}$}A4WF>qpX2@2HTyOd`t{S(u1-8&fa)jiK{dQA8G^Lru)FrJo-F&z@0EW|Rl%q~ z5hY2id0n&HMyB_kLRGWe31!AQ7G0;31Xe4Wlre3FRnSqn>C6-`G_Wsd2n@na)Rt!q z!zJ+7%chFrX{4o741RXhH2kNW2WL?B^B9Sj56Jb{Prvq&DhPT$ecbo}B0UleiH&Kz zx!B(fV{n9@5an}g;M)8eX)lQc%k5&eG;lqmmna~aGM`>53aHRV=z9bi`E`q)OAPJpMs8qPo-jsc!?! zjwnZbJT7U0{K0~~6h77Tl|n!cVpY#y@_Z7!+A~QaV4`}a9IQPdE>Cfl-(=qrZ$MJD zhAxL|^N!GhS1M;q5O1fyO4e|{adM=nY>}Elzzb%&Grw0R@L4~GYu8Ild61$$oQo&g zv+X0x1k44Tb_ev&+a_@rJqj=X@5_RU-k9ivj1Vy0!|i zG;U194U_B#h8y&gBIKE1QOy&%C?;I>(q5LbCJ0gZofZD;$J{+fGLG^ zXcDR@WCPq#qnvpwzG*qR68H>Ko=f#o(90zbFdgo__U{P;EleF|nh<|9wzww4ZYVnu zk0~F(8Z#hB#>sjyFg`MP;{J8lK2tSL%`cKWb2K# za*-FR{|lV$I+ihV`PzLUMyN6bW0^T@mJYI^SqKktT!AReE=>;|Jv+}nM9?zJ2->2N zD!;oAb0i#HBDr)CGwAI6yG(f|*C(g6TdW#|UkN4FsCu6Gg$?7dDEDJp6i1+y$m7DAlt6iF2l{rXnCmM z(eeu<5#yR_F~+HMf`Y(`vct$UbMB)D$4&oVG@S)kR9(Y{8HSMV25CttrMtUZx6m&fa%icYIs;`{6_bu|Ka#pgXbx9L$3I z*?&*7clnb^P_xV#Z(uQk*aikjiIGDU;R9PN`WX?A&bok;a}Prik)Kf-8~l^buD7#%+R9fHmj z2G6QtroJ~E-%|e*ud+|Dea=d*_ZMiWZUPci1k*r+RgzmhNRX5&kZ8Po7SFf6Pk#4ykrl|*YAvmz z^QhJ2jvp{YqW8A1xlHlXF%gMmGwr~kTy!LR8GUy`*Km7P2>m7GX|mLJ6NT;)OgR>` zmE?6Zj1eO5s)ARROP_>wtGiqBk4r?L(?_`P*R4VeY>hGu?>Fs!G;oaJ3fp>2b~jb_ z8V;ZgQe~yTAC{)cD7*gEy|cAFFqyKW5gV*nc>KlFK*#piH+zp|7K=7ayI=1&%aH1u zYKKz3?DLvlC*5h%cXHEbER#fCXul&#_fD#J>MvU=4#N{Yv{X-M5-mc1hHEY>f~Ckg zIV=_>8IV{N+%58f?7srQO_MSm;K}5tifi-xZC3dvaGa)rvMR8-Ae8zwdx7ei zpe9<3EuDg`!ele%uz3a}q`Sn4^>32zKPIg@bUbx_b*zAK*GBI;iU`jcUwxWTIkL#i z4v)Ag*8|U7?@;kb5M-6PH*USk`AdciJG5vXqZHo5Kat<KcXuvU|@-^1+sUc_S{g*?_TwlX%V$7x(+^NJragLdRP9G~V%^hFW zKfGr5b=@w;=9u8^1A;G0Y>dRkw+8GZ2gKV#JUsw7t)(SnVf^f)pU z?nQ@x-y;Xl)$S3D?2GAH29YuaUuDlzj*-!#h>Gb}BY!`vwTj@CN5#_1+^=s%@Vqrh zkXKKp4fMT=xwqS>wHxY}Klz?Tjm{dZIDBtBtPCjc-_3p-c_(~DAdeYPCzIY;PH>+U z=5-?9hVrPyAeOm=ai-ochK!K&6@S3f%U()Ca%QdSqs#>G&>?OlubN>JllW>+z*kHt&x8N9SNm|5N4da!Cnbsz+VCLG}Eg5 z4ziA&%85Xz#ov!F)-7F+r=-|75Mxqi>)`Sn%9+e97%kd~)kSBaS21Rh&LI8>+t=3l zQY|v!KOwqE&zoQ_?B=_0N$hES-&3@bNKy59Q%DTOVthcJS^M#93<6_$X55G8eJU$Y znK|3kk|)_GB<#t)!DTSkBEBtGzZUnr0Z!6Uuetb5iK*h!VJ$bVKjO#~_}-O+6V#=K zSEIO?QHgG`0@N6@LYGQH0WI(ha(3J$oj<{J7SPryxAeU7ek{ddt#U8?;mtRX*f4|QyjoFD>=MW?8y#LsY zAoHH+6oNix!p(ecrXvige&2}U8~wDwVPAl@O4+OzX)7y)`I*dADVgfHN^0{;I-T55 z4K>3GHdc7+t|Cw?{IQ4xi8j##OAYo^1r1-VzuKc%V#xfnOYFcpC7#(6J1LO2@#FXi zxKcR3uEP%!=o;c!sJ;dU8US#{aE+U(-9PAx;U72pgOq8yC!~KT5>|&N7BVVRce}M) zNN#LDLPm+rD`Q(&ExUV`O8KYNsFA=wzF0Nf4h$sc^U0ehC09IzIO?#z8-Q)43c+fUb% zR?SMM5Sahhdmx8vg&i&#-65$qrO zCy@Yqq!-%E>=w>pVh8S3D8xyTDWV-^tx%(4I>~S7f5(Th^e|6a)!kgW9m|dzG})Fo zg>5T8g^SoXeLu)iVKxnbLy1aq19QSfctb`zPwU96r?PN9nE#$3G;qN2zItUIUZi=z zp(_f0olL7vM}tl?K=f!4tJgq=e0Q zZMg0jVvjqj{Id0m0@Pk}iP@AXxI=sgY8v^B+f5;9>orPK$P-4?@qR1+<&HNn-7`q0 zY`QPVaj}9`v{ux0CZ@kCy`1mz7K>IRuv_(q6$2lULT^NJ;J_Ie@-+5)K>VdiqlW!+ z|0Ek@_;ReBWd*+OymzeKl1Dcvt(wrEYq8hu+uGKD*R|ZiHP2{&lGHMsmjm6e7j;MX zNoOu{1Ux@?+ke^5-Axn~5pnaL%S3cHS3hKEZ+zXq+wUjPW0hx;U+_LP zB&Vui4w(lvPL}j>in&0~>#zfu*=u>;bd9j1CtQ&7iQgpTbQNirLZRVV7zt`4-A9TY z2w3-*G#KUV$u`WAulEAjVIHoDhFo9kzrWWmyT3#-MYAp8+BNp&6l(rJ%h9EWW}G{u zNYnbz<%X%!kCDgv#hp<9OjRQmRLbm~wM@5nz{+k*F$Ci?zx69$=4c{0%l6~Iw8rXu zzF+L^^7A5=jp*2#7;CxBLW^CFqxF{m2-<|KzMG*g0SCBvuLBc`BQ_ILO<;}}=jc9s)KOe2=)N~vkgePLj(-`3qTCQjaT5JbWSjxAgE!U!h=JG=Sp~@gz#G-(rg17V64~ z9((D&da4Nm4G3Hz+E#5PyTUuQSxA}hQBmfQd{n5)g>hB0#gyE2xlRm{yHAY!q7d17$B)>6lYdKD zSfME+!I77vvw>ID*nQ>F`-;%P00JMWh-TDm^2jWkMH9&imgV#aR zpMh-c$9_JjOV`H5-oGp2?TaBP{?Nas^`HT&qBQjc{&1RbcBWJzr&*M@{Rx%DDBw*l z`@J-}eAVspiGP&*RjB#vRg&ka3vNiy;`FzH z$4}~*I8=6aRN#luu-c~^7ydh6_E>Z%gL6j3ua|yXI>eI_Y^!t5YM(^g=Y4#4iR<|$ zmCwvM6#XR_AZbI3*h+W?i)#LbBE1mLLH`I19hou~>Tb-cj|ouv;Itfx^9%!8S;`Ix zT>>{eC=>Vj3J<7p6Z78gXF^iwWrU zgk0Ngw~kmFIm@Nu$$bDctNFr)W@}{YZ|Hts{b9e7{n1CuU-EtAuNn*LapV6ce;HK! zPqh8#-O0R^=6{b(uw^F}wA;)qVqs)trxcQEEnCLWvPRa;z`cxQkE(n+#$zyiYHrt3 z=&YDIv|Dm&u3Gzt3SyEA9e&zPQTb?}BS>kQx~gW6%sX{nGl3pf0iy}mdf~F`HyCk; z5BB>JiSsf<#UzE+B(!P-}}u*9U6R{Y;`lRE~zi$n(J zgjkEc$IzD?-+ERc1s|3X;DiAD!%3Af47gBk>0laW1UUw$#)iB%{v#wd;cL!)!UfJvuc1Xr zEa8u3WU&dfxT8xZK&bS8A*;hlH}m4fP>|vIGeD4OE{OXU&Gex+5*6Cw8)x4OuIS~`*#yvIbQ{Z;mZ zv7}}NqdWIOxPaP?6%MvyEkt3gq4~GDiq@{vbLE!GFU@XDISMt6v+rI?yiKSC$BD*b zA+AZ~X2xSpf#U@*Wj74S#PKD!A+r^dIPE&%9~ z_uo(0@j87=iY9$YnSU3~8q3&$bFFvJp7}Tz9 zDnh4xyt_+>BvdVoXUxUPT3p6hA#};>66XP2jCYrpYav3DY%z2}(j@O1&9Eo@RMbwG z7pIKoIA&u!<+CjzavwhRVnAY?e*Z^`V6W^s=%6ns$3}^*7_5fkA|_^6_nT%vO8hJq z{Ao?*6pG|h>>Ex3hKmD$FHO*Jfim3`#m6%xLVV%*Ak4S|sr@;V1%8Hj@Dz3*ffltQ z@9TZ0{RuX?>oyIPQ1IE|_e%Pt(1_U3A*mkV3t;_;v=svv4J0&{6D&19^NB3$te~iD5X85S~!!(3H)^K znleQi6qkW#h>&XUK1;6;u!7R`z4kqyfXw0lGQWd@K!2}4rU831y|TcM8J>8PzxCxc zPW&358hlN@_D_#|1zY7d0Zl!Z{dC<(AdfAGn$-nQg&^R0^2-HCY)Ad>KH#QBx{YrY zJMOPThqW|a-gBrSfv$J%9(|7UkN8O%6p{ZkjdG(=FrfV?42>+4>P~k|idMiMs%4}t zq`hxaGe+b2A+yOSrBx%*G-}H6;Y67d!E&w?|MT)a6$V;{CW?zjGmHA9kBViU(pKq( zUi$ohot4F?{dauLV?Da7rf{f5$`d{fNVQn)hf=50Vq`QtN3*D)MSca${0fK{9ddn+ zXa^gbi-f?cPsNMjVD&h=!GWHpJH(~(ixqj)fLI*rvSq6B;M(R*Yt~0l<7?h_@O|4l zt~2Av2YAkb(HYn?aGOGB57KD(>ChfL@LwdTR{iI#qWJRS@W{i~g z69GMh%Ta!x0H*3qb16K@#ZjNi>r6ZQ6H^TtAgUO)Qn|U!DALgB}v`?p6HB! zKau5bRG(rb0#QSgM(~Qsm0dx%2<$tIj%JvHKCh?KPvEBb6edC5!&_t1Z`pZ$FS>y@ zxS^_d+ve)BR!Z&A-0}5bX)1;?o6mKJh9l)=b8ZeN%*qBR=J(LC-j^M^z}K>+A*x^> zyb4~%{~ms0xxdFz?gpCZ;jc;Fi`E}MP?CxYN+37^u4n|O4nMBj%mox5$YvXRk5HMs zmrzXjZ>Y8++VzSd=jfxs=#+-aO8I>S;1xJl2(N)S2AHOj^zsv4I=maisY?vjpFdzv84d38F6}7`| zgy&EnK(T_$VyxWkKd$`#ljM7l7{w~hNL=-%XJxnxwDYFvERY8&_$mt9dYL)i^M~AP zQK231>~^PzUW?W3f0`x->$?7uE*W`mh&iD2hg0w)3~mBfnUHajf)xAu9-cqlmoq>z z9^;rb@=ZPC>iiF()`_P)M3pK&d+Qi%Bu)nRgQ*x-hNt{o0^U{I(yOr&Z?SO`;BP($ z63T)+2#??O6(51hEG5r|$ASxxy$oj$JXSOti6^;ueBD#YA`IZ&@X!PR@Vz*GxmHXj9ZU~YatEltGpQcg#((DR6%a>h>-e^lJWb30s0?=%YNoY!+N1L#1!pG7epfi@(H_=w} z^;gn9j9u?UELt3-{!(Z(rLHQZ9pTvx>&B6qjG>vOm&e0VFt<%?XDW{tP5rKfKEAa*3F}hho{|sSHugGXgB| zSVGk8U#(~INJJi2W+Pwo%#EP`vG*pJD#Kr4?J^&Ofz^%}|AE_e_t|sc1x)|yTV4dp z?YJ^F8H9JpuyNiAC#h3}li&SXte)lYL)ZH#Frh~mW_hqOA9-HX&4E-SE_QUzB_}O$ z)2(JDGI)t+?%9c+EIPrrMeb8~UcOR;>L!4m#H-+gVa@>Qi)Z}RTK0S#z6>VFBevJN zvU*5K?=uU!Ug8c;af&*ciD#I(R~wHCC&X6#H+r_y-=E;&#J?OGPn1|*yl%v@8UOcQ zodL}lyrockvRHHpL5tbB1q}!O?~pw>x4j3VPk1r zbGhW(7WU!F_27Tc+rYr0@g49yk^xq+b+oI#b`KLSAL!Z0XFCFij|$!ESnLh;kD_5p znL8{hw?%E;2)l&}X@Dk`oQB3ZrS~-uhkwu1G!t^TOD@<+xqvs zH3aN;QI=+F_7-5sC>tyl?^^uIGTOt0FNn(Z4mEebPmRtZxmp!>va&655PP5Pok2Xj zlq>KV0rYu<;$D!$Oo(M4&eZQI2^C!fj@GdTw@XUk@d~o+m$=w7Wr;O6P#?{q-HAUz zF;(~xpK}o0uHln_A#xgtdCq|i-*M!i&p;?8*RS_e&Ik7EbCG_QQ`MwE8flQHek5mq zlM2Z!$|_t#U4l&xE)!SIr68RfpkYoFd6X?9&CSBS!}~8CU;#HE<}I_AO4N#&lC4aK zRYstQC`!E2>(To+fD>n_uC*2yWw{i+OXy)Zt&hodjc&wi3E7bd13LJLv~thLWdM;A zJ9?kAm2Nk3Fb;m(h`JY%>Jrd;WpxRSNnrG?5#?`Rc<}Rlra;Z%>sAy3oK8N7d1}T; z*hhx@vM75q4rAU@@LN@@NuZ@lE`!#Q9F=RWwB*UT*~l?Za2GnoI%6!l{yXU^q+#=) zkm~i3Q_wef0gjCJvQpLM+=94(z%RrTc#ATenIK}@3ND@>cVuH~KOWJ+ap2RV-|94h z?F;5QX)kgn;ae6*0Wb^t&$-asi@km^CUEvZloRdy2*!UtXk*$8XnV)p>Q^ai2q(~W z1yaYQoHG3-`2xIUne)8!OIw_qWNq|}C_U0adssghEBy8I>gqN-;QV!-+6kAB+BCgq z1upJ&!~0@b5aCM{ICD{M6R%YkhvO0GCkcxnxAVcqXop_=8Rx(Y&sEQ#`Y1Vii|Dq^ zFYH?|g{$5|If&`0?;}k7&uP~Q)v)iI`Uy(k-5()}EdSxYIDx9cEw4k5c;PSf05@(6T>GD$NqU zg|=QbMlkHwEE!{>&lz|k5EMWwbcyeA!lOJ}?7`E}_^M-nO~? zJ0{8wG?#cZG^)`{NNZRDI*d*s?NS_a0rn!l9-zHr}Lpn|4(meHpms=m`teW6V;-57FztR1g7}h7gMB& z7jccKVI@@Bx&1Ek?A7oi2z>BVj9ieYCjw)OI0SY$dBY{@vz+$}US6jdoTdhk9rY|u z7q=Q#&#I!<`ag)|iGWUMW>pxP*P4fcC+z-sHbELHu`TafVh+rRY~#NPuOwt3T3cX=XN43Y_0qSBEuK`04Ac@v%Pd zs=WOIl4rs5WvXwlq@TkX^8*!0k2@P z$kt(Vq3^C~R>!2P3E5aQR@j=D@wnZjeG|M=@O4uiEA8lfcJf@e_V7dc``=U zf=Cuq<;NGi_Pj37@_xO^{lm%aa0Q!|+#2jXpZb0q^^jhn`4Oij^Zf~u`_T5cc#{VT z#aPzsw4<<*4Z=nOlCE~3>cu8-5Vp~Hc`zN<$9ZhBXlqH=nDz-uO$~?KKgUM8t8cCh z_ZC7n4|GsOuzwHgAzR4KyoLkLUyB5L}i0kzN$1p5?&E1|TX zG(JjiB(!ej?#u%24_nlNa;V_x1oIa?nlM$4WPB*JBv5v_8NbF?CrO;Ezi<`c$>u2h zoslF-vUn@wcpz)SV~V@0lhbD%c+vocMJngGSwJ=3jmK4<5cqL+v$*La*H0tF@l(^N zQdh*IP16tfuUR@0omp|2_P-5byR>BmFSgwMIkv}V|B*-MGU%+gtUkRy&)a!9Be=^v z{MwHjK=}f%Qn3HF@LTIDbDi8>>ercnTzo4oLl{G^y+_8RmfEnWup?;l3_r-$MU0G> z6SsEZ#7rFG5VGU^qliKb-M?3#*Zz6Uh4Zlq4v8%a4k0KpvbT_u9>S$QAYJLm9_@W8 zg_o)67ra#8-llFQ=Io0enXI7q!8C1Y#a$RH-r3qto;oq@Wj;vqCTJ#R3G=+`usob> zl^NHjnpj4giPIp;guYYsiBUen7M-!@v90@Gbr`D37>abES)wV4#MGzBP`uT81i5%3 zju8o4iV$D~1%3D*LC>I$IYd6&isEi^xaT9Q_ZD-J^gCMcNDJ!uas-&&e|d3 zBFapXNkyhRzyo<(*Kv^J0`O*rFGrTICn9krsFy#*3p@P|X-KQhcq|0IpG4u&z}+yD zXagYCaLOR44J6;thNNnJfKy`OkPqJNd7~8D$Nr!5lkha|lf$si-{ii9%B;1YA)L%L zk9egu5WKW6k4_VM@bzRx@nKLMeAhx0Dqye=;6DE8@88cdK!z#)C;P&@4bq%cEx4-e z{E?T|AdksB!PtVJ0^{)0wDge1x6fwNUve+W5MG2gm8AG+2(4E8#|5Ydx`N1W-b}M2 z_=P0*<2<+=hNccDswnLavMg@?J1@l`LEDw0=6EOEzOMMwcxI>&c2VmoBPvE2n6!m7 zq}UX05?hd}rPVY%Ncanm`#r8zD73p`|2(50~=w4pU(>!s(hmh|} z`y@hicJnhb1ikLRkXbNaCnA9oim(p5ODHzqaeCmQw1gb%N-Z&L<87YePm@0wjszoM z^92$j$Ho?+VL0%|ScoUgh*1-kmPD8@u^Do!uey=c?!gBv383JDs@ zADxg=*{{Cdw`Hb{2A18=qAR#&d^;{d2r8yta^P2C2^??kW`a%)@zCdFb z4eWQ>|YAdBLOyo)C{ zugA74%N#u0Zb1*{vJY3B%~ss^A6XofFn^2ub=4w@>Bd9**%PMUg{-Z z`;k%dATaFDs9O6X6n}q+s{tXFb<}De$5~U$ilkHiVkVOQps8k^fWqPQHtktY;V`uVqt)MYS|oZEDT%QTN)_5~jNLPeT8-JuSP<_~J9{=M7L2)s^!(zX z!kFmqAfQ=fJ^SL6;h2D+&$auvnUAgT{*Wm24YLsCl^sECDS@_&WDJV6_K169D=WL* zF3xy*?m59^W7({aoZs~1qF}oLx0j%xH*-9oYevPSE|A*S;`C7bF%$+G-a8}MDw2ng z7Mdf*gC9mh|0 z#Ex!Hn@&Votxf?0%rGW8?di54jx-)df8>^$H(AKFhdVKQc?e|=WZ@i4G$@`V_C{xk zG@|e1s1M-u`SOO+rT8O!U}E?7VfmFbWm>PXv%DqVQ+HBnN-*aT?xZ~gk7xD=*PABt z22P4mcUPk#y;l05);TqMJxFJQ>?M>j^=&(`A|M*c`0!Kf7%df}OEngge5A2~Ge${U zu^xF|g3eB#y}=Tlr?eIl#`bf3+Hm)N%lO2X6ludo#OqQltWoR(gAGR6vZroktDfI4%b@ z?qi9D7Q7DfraCkKUhK~>yTFP}UdKpE7o2_D8np(*#&!zA{$;z-*~1JeV#D&+ zs@cmL?90S|a|v13UlI7IFg6KFXgt8$(dTAq^0f72#F8Phlqv<7aL!e1w_9uXqUmIi z@|5qv-;@OPRs=hz(d3?#tqs%yWW=L3JZ8$v;u8$b(c5M9oTHlx$R^+#G)8E-nS}>3xg{WothP0cA&=y@tT7B7;BYf?M}9wJg?znJ=+-!f1JAX#ZyTcH^VRus{B# zQz;Y#kS)7r4pak~J%6lNir5_ZPh*f@_TG}Ij2?5@bIe4R2n?A(?cUHeVf6!bRol2NJ122Gz~Vtm29+Z_X& zHhwAJmN7Hm0M*G&zc>n1=0~=cF)rjn{QMoso_APQxF-#TVKV$uD7bL~f(NIQ5!rGW z7fyb#5+~n9rJ8GKAolG-11Y3$R_I;oJ2rGQ!NV-#a0FI^5jw>WH2~wks{1fJ>-T$oSltK)+-UE!0OoMET;4nEK2W%-pGU|R@csI~2eBC_jI zV}>=sW=Q=IP8$BR0}wIBY0kL#Y;+>*c4QYc73vRSvR4}d9nA>9zhg}AjSUlGlZ`je z-VhJAGgQC*>OEy3Gd5`94HL#N-7 zcYpY->t~DVM0MM5h*4q$$*>jwzw~dzhlRmG-KUW;!m`ffuERJN4!BOZNNVKnQ=Au{ ziN%l%5`gi{n>U~M82(K2_QwSNKMMdrSwtIzx#IUfj?pGcoewQp^3-8}9b{^Ja?~zm zb%BQyFRINAIhUb%!KAT_TY%B!Y}#!0ED^YWZ=xJLFw^bmE~p2WJ_)iCUwJsh*OW-b za(!v0tuUZb$6Qj@R)|H{WwzVLy%6y!l#^ADluPlVN-%7TxTS1HTpAUes-j0sH9#hw z_T7tg-J@>0qT{UT)+#|8VkiBc;1S^nH<5Z+{Pf36lxY`56(#*z<6bJC zlff`G0WIdP`NXl=yA!;u2I}Z1`2IP&f6I(X!)BsZ*nZyxM{27$Y0rK2zS1B-Fp|tX zp5KiDp|2Zy^))&>IQ4qpy%-rKDZ{bXOtKxUDVTL8)sxGj91` zXE@|dq$5UjLU6-B7t~jD#Q%UGyO^IcLiGp-tt+n4R$`nyZ_o9lgL#z``_Nm1G;0?@^Bg^6rMzl zsQf*npp_ie50L}4>AL2lhAO4ou>%*L!vA7Y-#IpkG2f+bKnCS!Ow2>osXJuo5JI#I48#;V5EE*{Y@)osL-AyX8+10+1=*+57kp&Br~+|Xo5c+ z6K*^6!VsG!d57K&cA$@h8I;Ner7H*X&4E<#_5k4jry>N4^_U(OXg@&=OX~X5c%mOT zsha}!4fI?z=e#7w{h3be_fSz%6@4)B(G48cW#w*`8%|!T7=eV5+@#M^MF~xDe*T({MmeOFXT&C z(^sccxil0j+WQ4yz!d7=Y0MR;&-b&g*lVvrO}5^<9mr_7Hs&8L&JqB%y4PTFcImG7 zLcRi}BS?;QKM<`?kI3?65ij?kD|9`LBA_p=@_WDjoK4vr`e%G03f!sWJ&=-t$_hoq zFH(@BO^@1Iqb{g?)*w3wMZ4Q@52ai5`Uv^$Ojus4uGkzzaF`7A_8Pztvgx<&)Zx6p zsVZQDnI}b`5VgIk(f15mDdbDh<;qyoK)!nuDTm3RNr~8u$gMk42<`mX^p+k3OtBkS zZRjXt!ZxaO7=|_(q()l>MM!`uPM2}#guj5Y%B(2%A_)I9Mt>H+T9JMRtOeXx_2<=V z9)^6%NQma8CbV*OWnRf z-uok)c5*l3576+x5VI@c>yC_&70{ctv)}4_GjM7H826l8y4@nxwdf*9AuPC#e0L9Z zBZ~a(ql1}NFbfspbv8*1y1`i?rVuHSL$$rOY@}PfaVVWt7JBn%;zq<8@lte;;Je8( zabSGFZvvvO{SDr3kGq%?KRO_}G)GiEIT(=JeTUe|ORNozy&lx+1j2Z~gSepSxkyhL z-a~cfraKk5pVB$2A$Yg`9#TDdBi<_f*rMu`6B>akB0{H~&7S(mqCAXUN(>J5ba_^T z{7iW~ipz+H6;OU^bTB(A3&mH`bR>p9#qWp-&1&^PcW&@e#oH>A)Hw;DUsl~yn*=8f z?=4aJ%;31rq1RcN-AzQ33IcZ&ZW!(g;2?$Kq~8OHojNw3ddqgowQX9WeqA8{V-Pb}`B8Yb z1-HwdkMCPom*CskfdL0;ctaOkvP^`g-AG!YPlfWc?m?)W3|PWfYIjR*z2A=t3V^4S z^?yTAhgD@Zy6N5|c~ojn?|K1V_AZJ?WuBWt`(BFTAmC|}^DR0_V^a`cDy>Um&bgj{ zf>U$z9Y>ZNt1d(3li$DEkg!eZZen<`j9+0d4aKwaN`)P6Y*do+6+N{SvZFPAOt;Sl zXyBB$?YV|QpG~dW#G0z6War-r&125R6Td^u`}wpCKd%;3liEiE&poRnf=*k{<>sK= zym7{)YMCU`Ho5jdZU^MWtyV!n57?gsbl;x~1zgduQfF@IB^hma1$wM<{=w~||Eb-4 zX(i~OFDoD#gTjC;`>d`3+6aMDCSA3UPn7tVs10(^UHT7~=pHJxaasmErHX|PjoJe=Gdc=Rj zUuoo_;jv%^w(j#mp99f4Is`y#c%pTQ{~HU(;2~_XWL7ETBx}jvFHA%#;XQ=jt{wu4 zq5wH*1)T+8rlfrtgWHKXlcPr_L?3;!qJT-=^tLPzUE4YFlS6&h71^BqdPPhLjS3n4 zxQOXGi{LS#wEwuQ^a!B{({&m(lKL)5g7F5E20RA{Bx#_SG|HgG%VY@3Su86YeKkAN zlTPrOJo(6MTR48uWbc-_j(`B<%_n$Pf>J!AN_#sy z+1A6Fp|ZIB^V#){!Ds4LrVT)&yiiJ&#N?+l1dwfUOReq1F4EXWnG_dr;p?Tb$L&_| z=GE-|q2gr_G9-$hjJ|KR?l~bO6CGiE`=jKNMoZKfuBP3 z_oytyj(cZKd@CEcp7SBqU&Vc&6&I5=pWod&9*gN9Vl<2o7gKxpg<`W(DH}J;IBvFl z7Lxty6C1wzb;COVWb(^fycs@z07|7Re-^XHKcE=Of|`b;2FiEU2J@KMj0bb{gggn+gl@zj{n#*4*6>c||VgnhWcW`Ks9IV+i zH~%x`*%&Vs6gOKvG5bnK=H4(a9SS*ocndKit$2-{h1>yg(34evOrv5x zj>t(;JPl0k%}VkYiM{Mq@#(^Vxi6ndpsH?as~}^TDqz?l2WEL;Td0(vZ!15qh#cS& z#XLyotwILTzBom=U6U#&9uBMi{URT~8f<4S=K}YuVg6=Ky7rl3_*^~38Vt_^P<{#; z4h#H8vQj*Bhy!AxIk&U?GlE2J8WVr)lQ^6LWrftYB(N8t?aJ@6G;SmMxZ)Ft&P!~O zEAJ0v6u)BeQNw2q8MVh`ea!>(fWFZ%W3P4B(SCbroZR-7A`MD0gazgTtdq&<{0XPr zUyd8V?{xOsG33|qZs^KE8X}&JQ}AJ3cP~LKqwznKMY_+(_iJ9Oa1unGyRUW4V#1=EeEVJcSvPHXferdphzSz?ofuXRtvvbR}iCFda%a7Hjnr#15? z#pgs&e=Pj{SA&>jP%9y%BX~;rFh>B;6k;?^+2c3ps9nJwdO9A;YgV?S{ds+>C z%P>)l+aE1JXO)tQc|VjX#NJVmSk~R?(E4-Hkw|OlTcq-*a}8wU8g#kR_(O!Ci7)7j0!c_CJxYRQt-t;>g&DvYC?afw zADVKIn!*ab@F&$yU0epP15t}r7s}M<5_}dq()A{Lo^eb4i9V^A<#P{KJUUYFY^-H? z_&p451^cNU{yorFeVeqbVye%1Ve@*?pVhpo@ri4&i zcsbP|1K)G{MkC7bIqR^QJut zRW^POCikp-CW)?!JWWny2IdZF7gNsJIfbzyi zO%8ynE*L@$UrFaK!#J{1kG?>nWjOB93#jM5;aheHW!RgOrA&ZWZ3W&^Tny_Lj6O=N zqx2()!2k|}@SnbaFLN0cPrBu|fFe+2+I9ZQ*}7HU<$&Y$6R#2L5lGM_OiHa+y*V$!v16Q31&ITqpa}-~92%CrE9L!|>?bD! z%Y*zg{);dB25KNiV52UUM(Pk)g(hVxJST;AsE>O_{g$Mdg5V)#D~w-)#>TW|gwCK+ zePmIz3ZzKp{6^o4uwXS|Ts9TeaRc|9UrHnrKWO)``1J18drI?uPV1@G{7(^SKyfoo zTp1kn{b_`>I{q-yjc8!NG)3R}7v=6umjon-uJ5WK6?4Dx{g}yd++Ga2A|%x`vU4co z(<5>ks@^8Bdm*8Cndu3&I;q+`1qXNSnIB+-B_KwR>Ypbz6n<=cc#RY8(oxipzXD=^ zRcr2gzx(??{O5GnE8lGbfs=WmLYd4p8>vf9Y2u&rnF^G(uSOu`-`B619=IuRC#4*g>vS{o@WN0lTd zA%QzD-??C9r0w2&YtnY=SuXJW_uiYn=Sel#xKH=&dA8@Upet`n_;%Ah1m{s{*?cC< zUUf%Tq50p-27(GC2^q*3vYrvv`FC}I-7h~ALzIA1qjSsQ z#?^I>4kUaQblWwFQ`7e}*~fZnI~#EDL6NRIJ=d9Jzn8kzSLNe2=}k9

0Nn=0WE) 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 N8V|Kqf82)#{})efiQ@nO From 934dd2b51711a43fc13124ab0e47b133a330dfad Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:27:56 -0500 Subject: [PATCH 29/41] update link --- docs/examples.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples.rst b/docs/examples.rst index eed4706d9..04e02c6b5 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -173,7 +173,7 @@ Sample Output (first orbit only) Seasonal Averaging of Ion Drifts and Density Profiles ----------------------------------------------------- -In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, the code excerpts below provides a framework for the user. The full code can be found in [demo/cosmic_and_ivm_demo.py](https://github.com/rstoneback/pysat/blob/master/demo/cosmic_and_ivm_demo.py) +In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, the code excerpts below provides a framework for the user. The full code can be found in [demo/cosmic_and_ivm_demo.py](../blob/master/demo/cosmic_and_ivm_demo.py) Note the same averaging routine is used for both COSMIC and IVM, and that both 1D and 2D data are handled correctly. From 4e5927aea727a9cdebf405827e47b5cb0771ccca Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:28:37 -0500 Subject: [PATCH 30/41] fix link format --- docs/examples.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples.rst b/docs/examples.rst index 04e02c6b5..156b28f93 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -173,7 +173,7 @@ Sample Output (first orbit only) Seasonal Averaging of Ion Drifts and Density Profiles ----------------------------------------------------- -In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, the code excerpts below provides a framework for the user. The full code can be found in [demo/cosmic_and_ivm_demo.py](../blob/master/demo/cosmic_and_ivm_demo.py) +In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, the code excerpts below provides a framework for the user. The full code can be found [here](https://github.com/rstoneback/pysat/blob/master/demo/cosmic_and_ivm_demo.py) Note the same averaging routine is used for both COSMIC and IVM, and that both 1D and 2D data are handled correctly. From 61d099da86377a75b77d008549df90eb33c96880 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:32:18 -0500 Subject: [PATCH 31/41] link --- docs/examples.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples.rst b/docs/examples.rst index 156b28f93..8e5ea4b1e 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -173,7 +173,7 @@ Sample Output (first orbit only) Seasonal Averaging of Ion Drifts and Density Profiles ----------------------------------------------------- -In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, the code excerpts below provides a framework for the user. The full code can be found [here](https://github.com/rstoneback/pysat/blob/master/demo/cosmic_and_ivm_demo.py) +In-situ measurements of the ionosphere by the Ion Velocity Meter onboard C/NOFS provides information on plasma density, composition, ion temperature, and ion drifts. This provides a great deal of information on the ionosphere though this information is limited to the immediate vicinity of the satellite. COSMIC GPS measurements, with some processing, provide information on the vertical electron density distribution in the ionosphere. The vertical motion of ions measured by IVM should be reflected in the vertical plasma densities measured by COSMIC. To look at this relationship over all longitudes and local times, for magnetic latitudes near the geomagnetic equator, the code excerpts below provides a framework for the user. The full code can be found at https://github.com/rstoneback/pysat/blob/master/demo/cosmic_and_ivm_demo.py Note the same averaging routine is used for both COSMIC and IVM, and that both 1D and 2D data are handled correctly. From 444c92d7769281901ced1eb75db4e42135c23de1 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Sat, 23 Feb 2019 23:36:36 -0500 Subject: [PATCH 32/41] update examples --- docs/examples.rst | 86 ++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 46 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 8e5ea4b1e..aa6f66936 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -179,53 +179,47 @@ Note the same averaging routine is used for both COSMIC and IVM, and that both 1 .. code:: python - # create IVM Object - ivm = pysat.Instrument(platform='cnofs', name='ivm', clean_level='clean') - - # define function to restrict magnetic latitude - def restrictMLAT(inst, maxMLAT): - idx, = np.where(np.abs(inst['mlat']) <= maxMLAT) - inst.data = inst.data.iloc[idx] - return - - # restrict measurements to those near geomagnetic equator - ivm.custom.add(restrictMLAT, 'modify', maxMLAT=25.) - - # perform seasonal average - startDate = pysat.datetime(2009, 6, 1) - stopDate = pysat.datetime(2009, 8, 31) - ivm.bounds = (startDate, stopDate) - ivmResults = pysat.ssnl.avg.median2D(ivm, - [0, 360, 24], 'apex_long', - [0, 24, 24], 'mlt', - ['iv_mer']) - - # create CODMIC instrument object - cosmic = pysat.Instrument(platform='cosmic2013', name='gps', tag='ionprf', - clean_level='clean', altitude_bin=3) - - # apply custom functions to all data that is loaded through cosmic - cosmic.custom.add(addApexLong, 'add') - - # select locations near the magnetic equator - cosmic.custom.add(filterMLAT, 'modify', mlatRange=(0., 10.)) - - # take the log of NmF2 and add to the dataframe - cosmic.custom.add(addlogNm, 'add') - - # calculates the height above hmF2 to reach Ne < NmF2/e - cosmic.custom.add(addTopsideScaleHeight, 'add') - - # do an average of multiple COSMIC data products from startDate - # through stopDate - # Note that a mixture of 1D and 2D data is averaged - cosmic.bounds(startDate, stopDate) - cosmicResults = pysat.ssnl.avg.median2D(cosmic, [0,360,24], 'apex_long', - [0,24,24],'edmaxlct', - ['profiles', 'edmaxalt', - 'lognm', 'thf2']) + # instantiate IVM Object + ivm = pysat.Instrument(platform='cnofs', + name='ivm', tag='', + clean_level='clean') + # restrict meausurements to those near geomagnetic equator + ivm.custom.add(restrictMLAT, 'modify', maxMLAT=25.) + # perform seasonal average + ivm.bounds = (startDate, stopDate) + ivmResults = pysat.ssnl.avg.median2D(ivm, [0, 360, 24], 'alon', + [0, 24, 24], 'mlt', ['ionVelmeridional']) + + # create COSMIC instrument object + cosmic = pysat.Instrument(platform='cosmic2013', + name='gps', tag='ionprf', + clean_level='clean', + altitude_bin=3) + + # apply custom functions to all data that is loaded through cosmic + cosmic.custom.add(addApexLong, 'add') + + # select locations near the magnetic equator + cosmic.custom.add(filterMLAT, 'modify', mlatRange=(0., 10.)) + + # take the log of NmF2 and add to the dataframe + cosmic.custom.add(addlogNm, 'add') + + # calculates the height above hmF2 to reach Ne < NmF2/e + cosmic.custom.add(addTopsideScaleHeight, 'add') + + # do an average of multiple COSMIC data products + # from startDate through stopDate + # a mixture of 1D and 2D data is averaged + cosmic.bounds = (startDate, stopDate) + cosmicResults = pysat.ssnl.avg.median2D(cosmic, [0, 360, 24], 'apex_long', + [0, 24, 24], 'edmaxlct', + ['profiles', 'edmaxalt', + 'lognm', 'thf2']) + + + # the work is done, plot the results - # the work is done, plot the results .. image:: ./images/ssnl_median_ivm_cosmic_1d.png :align: center From 78963c528577d310377032e3643e7273ff03a077 Mon Sep 17 00:00:00 2001 From: jklenzing Date: Mon, 25 Feb 2019 10:31:57 -0500 Subject: [PATCH 33/41] style --- demo/cnofs_vefi_dc_b_orbit_plots.py | 4 ++-- demo/ssnl_occurrence_by_orbit.py | 4 ++-- docs/examples.rst | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/demo/cnofs_vefi_dc_b_orbit_plots.py b/demo/cnofs_vefi_dc_b_orbit_plots.py index 1a0a5bd91..633ce5e43 100644 --- a/demo/cnofs_vefi_dc_b_orbit_plots.py +++ b/demo/cnofs_vefi_dc_b_orbit_plots.py @@ -1,7 +1,7 @@ -''' +""" Demonstrates iterating over an instrument data set by orbit and plotting the results. -''' +""" import os import pysat diff --git a/demo/ssnl_occurrence_by_orbit.py b/demo/ssnl_occurrence_by_orbit.py index 4e842e15b..44911c573 100644 --- a/demo/ssnl_occurrence_by_orbit.py +++ b/demo/ssnl_occurrence_by_orbit.py @@ -1,7 +1,7 @@ -''' +""" Demonstrates iterating over an instrument data set by orbit and determining the occurrent probability of an event occurring. -''' +""" import os import pysat diff --git a/docs/examples.rst b/docs/examples.rst index aa6f66936..8785e7ad5 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -10,10 +10,10 @@ How often does a particular thing occur on a orbit-by-orbit basis? Let's find ou .. code:: python - ''' + """ Demonstrates iterating over an instrument data set by orbit and determining the occurrent probability of an event occurring. - ''' + """ import os import pysat From 3c521131bcb8379834479eb6562081ac0c080861 Mon Sep 17 00:00:00 2001 From: jklenzing Date: Mon, 25 Feb 2019 11:08:35 -0500 Subject: [PATCH 34/41] updates to new_instrument.rst --- docs/new_instrument.rst | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 4109f637e..49d308ad6 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -143,6 +143,16 @@ Cleans instrument for levels supplied in inst.clean_level. inst is a pysat.Instrument() instance. clean should modify inst in-place as needed; equivalent to a 'modify' custom routine. +**List Remote Files** + +Returns a list of available files on the remote server. + +.. code:: ipython + + def list_remote_files(inst): + return list_like + + Testing Support --------------- All modules defined in the __init__.py for pysat/instruments are automatically @@ -181,6 +191,12 @@ as a tag to delineate that the data contains the UTD developed quality flags. # code normally follows, example terminates here +Data Acknowledgements +===================== + +Acknowledging the source of data is key for scientific collaboration. This can generally be put in the `init` function of each instrument. Relevant citations should be included in the instrument docstring. + + Supported Data Templates ======================== @@ -207,3 +223,43 @@ where supported_tags is defined as dictated by the download function. See the ro .. automodule:: pysat.instruments.nasa_cdaweb_methods :members: + + + Madrigal + ----------- + + A template for Madrigal pysat support is provided. Several of the routines within are intended to be used with functools.partial in the new instrument support code. When writing custom routines with a new instrument file download support would be added via + + .. code:: python + + def download(.....) + + Using the Madrigal template the equivalent action is + + .. code:: python + + def download(date_array, tag='', sat_id='', data_path=None, user=None, + password=None): + madrigal_methods.download(date_array, inst_code=str(madrigal_inst_code), + kindat=str(madrigal_tag[sat_id][tag]), + data_path=data_path, user=user, + password=password) + + See the routines for `dmsp_ivm` and `jro_isr` for practical uses of the Madrigal support code. + + Additionally, use of the madrigal_methods class should acknowledge the CEDAR rules of the road. This can be done by Adding + + .. code:: python + + def init(self): + + print(madrigal_methods.cedar_rules()) + return + + to each routine that uses Madrigal data access. + + |br| + + + .. automodule:: pysat.instruments.madrigal_methods + :members: From 2247635be0048f2acb709b89d9f4d0347031b632 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Mon, 25 Feb 2019 19:28:52 -0500 Subject: [PATCH 35/41] typo --- docs/new_instrument.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 49d308ad6..b7fdd1b77 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -147,7 +147,7 @@ inst is a pysat.Instrument() instance. clean should modify inst in-place as need Returns a list of available files on the remote server. -.. code:: ipython +.. code:: python def list_remote_files(inst): return list_like From bba9f07605cf37a73120f2c346123e3faf4a3541 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Fri, 1 Mar 2019 17:21:45 -0500 Subject: [PATCH 36/41] Merge branch 'develop' into documentation --- pysat/_files.py | 2 +- pysat/_instrument.py | 86 +- pysat/instruments/madrigal_methods.py | 12 +- pysat/instruments/omni_hro.py | 6 +- pysat/instruments/pysat_testadd1.py | 49 +- pysat/instruments/pysat_testadd2.py | 45 +- pysat/instruments/pysat_testadd3.py | 45 +- pysat/instruments/pysat_testadd4.py | 45 +- pysat/instruments/pysat_testing.py | 7 +- pysat/instruments/pysat_testing2d.py | 25 +- pysat/instruments/pysat_testing2d_xarray.py | 24 +- pysat/instruments/pysat_testing_xarray.py | 32 +- pysat/instruments/pysat_testsmall.py | 45 +- pysat/instruments/pysat_testsmall2.py | 45 +- pysat/instruments/sw_f107.py | 2 +- pysat/instruments/sw_kp.py | 2 +- pysat/instruments/sw_methods.py | 10 +- pysat/tests/test_files.py | 110 +- pysat/tests/test_instrument.py | 5 +- pysat/tests/test_utils.py | 476 ++----- pysat/tests/test_utils_coords.py | 492 +++++++ pysat/tests/test_utils_stats.py | 62 + pysat/tests/test_utils_time.py | 163 +++ pysat/utils.py | 1279 ------------------- pysat/utils/__init__.py | 13 + pysat/utils/_core.py | 412 ++++++ pysat/utils/coords.py | 553 ++++++++ pysat/utils/stats.py | 140 ++ pysat/utils/time.py | 214 ++++ 29 files changed, 2581 insertions(+), 1820 deletions(-) create mode 100644 pysat/tests/test_utils_coords.py create mode 100644 pysat/tests/test_utils_stats.py create mode 100644 pysat/tests/test_utils_time.py delete mode 100644 pysat/utils.py create mode 100644 pysat/utils/__init__.py create mode 100644 pysat/utils/_core.py create mode 100644 pysat/utils/coords.py create mode 100644 pysat/utils/stats.py create mode 100644 pysat/utils/time.py diff --git a/pysat/_files.py b/pysat/_files.py index 8ca1af490..996061a37 100644 --- a/pysat/_files.py +++ b/pysat/_files.py @@ -554,7 +554,7 @@ def process_parsed_filenames(stored, two_digit_year_break=None): """ - from pysat.utils import create_datetime_index + from pysat.utils.time import create_datetime_index search_dict = construct_searchstring_from_format(stored['format_str']) keys = search_dict['keys'] diff --git a/pysat/_instrument.py b/pysat/_instrument.py index a97f0794d..f504abf81 100644 --- a/pysat/_instrument.py +++ b/pysat/_instrument.py @@ -378,17 +378,12 @@ def __getitem__(self, key): try: # Assume key[0] is integer (including list or slice) return self.data.loc[self.data.index[key[0]], key[1]] - except KeyError: - try: - # Try to force as integer (eg, if ndarray) - idx = self.data.index[key[0].astype(int)] - return self.data.loc[idx, key[1]] - except ValueError: - estring = '\n'.join(("Unable to sort out data.", - "Instrument has data : " + - str(not self.empty), - "Requested key : ", str(key))) - raise ValueError(estring) + except ValueError: + estring = '\n'.join(("Unable to sort out data.", + "Instrument has data : " + + str(not self.empty), + "Requested key : ", str(key))) + raise ValueError(estring) else: try: # integer based indexing @@ -496,10 +491,12 @@ def __setitem__(self, key, new): try: # Assume key[0] is integer (including list or slice) self.data.loc[self.data.index[key[0]], key[1]] = new - except KeyError: - # Try to force conversion to integer - idx = self.data.index[key[0].astype(int)] - self.data.loc[idx, key[1]] = new + except ValueError: + estring = '\n'.join(("Unable to sort out data access.", + "Instrument has data : " + + str(not self.empty), + "Requested key : ", str(key))) + raise ValueError(estring) self.meta[key[1]] = {} return elif not isinstance(new, dict): @@ -941,14 +938,29 @@ def _load_data(self, date=None, fid=None): if len(fname) > 0: load_fname = [os.path.join(self.files.data_path, f) for f in fname] - data, mdata = self._load_rtn(load_fname, tag=self.tag, - sat_id=self.sat_id, **self.kwargs) - - # ensure units and name are named consistently in new Meta - # object as specified by user upon Instrument instantiation - mdata.accept_default_labels(self) + try: + data, mdata = self._load_rtn(load_fname, tag=self.tag, + sat_id=self.sat_id, **self.kwargs) + # ensure units and name are named consistently in new Meta + # object as specified by user upon Instrument instantiation + mdata.accept_default_labels(self) + bad_datetime = False + except pds.errors.OutOfBoundsDatetime: + bad_datetime = True + data = self._null_data.copy() + mdata = _meta.Meta(units_label=self.units_label, + name_label=self.name_label, + notes_label=self.notes_label, + desc_label=self.desc_label, + plot_label=self.plot_label, + axis_label=self.axis_label, + scale_label=self.scale_label, + min_label=self.min_label, + max_label=self.max_label, + fill_label=self.fill_label) else: + bad_datetime = False data = self._null_data.copy() mdata = _meta.Meta(units_label=self.units_label, name_label=self.name_label, @@ -988,8 +1000,12 @@ def _load_data(self, date=None, fid=None): fname[-1])) else: # no data signal - output_str = ' '.join(('No', output_str, 'data for', - date.strftime('%d %B %Y'))) + if bad_datetime: + output_str = ' '.join(('Bad datetime for', output_str, + date.strftime('%d %B %Y'))) + else: + output_str = ' '.join(('No', output_str, 'data for', + date.strftime('%d %B %Y'))) # remove extra spaces, if any output_str = " ".join(output_str.split()) print(output_str) @@ -1030,7 +1046,7 @@ def _set_load_parameters(self, date=None, fid=None): self.date = date self._fid = fid if date is not None: - year, doy = utils.getyrdoy(date) + year, doy = utils.time.getyrdoy(date) self.yr = year self.doy = doy self._load_by_date = True @@ -1243,7 +1259,7 @@ def load(self, yr=None, doy=None, date=None, fname=None, fid=None, else: temp = self.index[0] self.date = pds.datetime(temp.year, temp.month, temp.day) - self.yr, self.doy = utils.getyrdoy(self.date) + self.yr, self.doy = utils.time.getyrdoy(self.date) if not self.empty: self._default_rtn(self) @@ -1400,7 +1416,7 @@ def download(self, start=None, stop=None, freq='D', user=None, # make sure dates are whole days start = self._filter_datetime_input(start) stop = self._filter_datetime_input(stop) - date_array = utils.season_date_range(start, stop, freq=freq) + date_array = utils.time.season_date_range(start, stop, freq=freq) if user is None: self._download_rtn(date_array, @@ -1488,24 +1504,25 @@ def bounds(self, value=None): self._iter_type = 'date' if self._iter_start[0] is not None: # check here in case Instrument is initialized with no input - self._iter_list = utils.season_date_range(self._iter_start, - self._iter_stop, - freq=step) + self._iter_list = \ + utils.time.season_date_range(self._iter_start, + self._iter_stop, + freq=step) elif((hasattr(start, '__iter__') and not isinstance(start, str)) and (hasattr(end, '__iter__') and not isinstance(end, str))): base = type(start[0]) for s, t in zip(start, end): if (type(s) != type(t)) or (type(s) != base): - raise ValueError(''.join(('Start and end items must all', - ' be of the same type'))) + raise ValueError(' '.join(('Start and end items must all', + 'be of the same type'))) if isinstance(start[0], str): self._iter_type = 'file' self._iter_list = self.files.get_file_array(start, end) elif isinstance(start[0], pds.datetime): self._iter_type = 'date' - self._iter_list = utils.season_date_range(start, end, - freq=step) + self._iter_list = utils.time.season_date_range(start, end, + freq=step) else: raise ValueError('Input is not a known type, string or ' + 'datetime') @@ -1538,7 +1555,8 @@ def bounds(self, value=None): end = self.files.stop_date self._iter_start = [start] self._iter_stop = [end] - self._iter_list = utils.season_date_range(start, end, freq=step) + self._iter_list = utils.time.season_date_range(start, end, + freq=step) self._iter_type = 'date' else: raise ValueError(''.join(('Provided an invalid combination of', diff --git a/pysat/instruments/madrigal_methods.py b/pysat/instruments/madrigal_methods.py index 8758dc2c1..eb08ca35a 100644 --- a/pysat/instruments/madrigal_methods.py +++ b/pysat/instruments/madrigal_methods.py @@ -118,12 +118,12 @@ def load(fnames, tag=None, sat_id=None, xarray_coords=[]): raise ValueError("unable to construct time index, missing " + "{:}".format(time_keys)) - time = pysat.utils.create_datetime_index(year=data.loc[:, 'year'], - month=data.loc[:, 'month'], - day=data.loc[:, 'day'], - uts=3600.0 * data.loc[:, 'hour'] + - 60.0 * data.loc[:, 'min'] + - data.loc[:, 'sec']) + uts = 3600.0 * data.loc[:, 'hour'] + 60.0 * data.loc[:, 'min'] \ + + data.loc[:, 'sec'] + time = pysat.utils.time.create_datetime_index(year=data.loc[:, 'year'], + month=data.loc[:, 'month'], + day=data.loc[:, 'day'], + uts=uts) # Declare index or recast as xarray if len(xarray_coords) > 0: if not np.all([xkey.lower() in data.columns diff --git a/pysat/instruments/omni_hro.py b/pysat/instruments/omni_hro.py index 111b117a1..31c0d186e 100644 --- a/pysat/instruments/omni_hro.py +++ b/pysat/instruments/omni_hro.py @@ -218,9 +218,9 @@ def calculate_imf_steadiness(inst, steady_window=15, min_window_frac=0.75, circ_kwargs = {'high': 360.0, 'low': 0.0} ca = inst['clock_angle'][~np.isnan(inst['clock_angle'])] ca_std = inst['clock_angle'].rolling(min_periods=min_wnum, - window=steady_window, - center=True).apply(pysat.utils.nan_circstd, - kwargs=circ_kwargs) + window=steady_window, \ + center=True).apply(pysat.utils.stats.nan_circstd, + kwargs=circ_kwargs) inst['clock_angle_std'] = pds.Series(ca_std, index=inst.data.index) # Determine how long the clock angle and IMF magnitude are steady diff --git a/pysat/instruments/pysat_testadd1.py b/pysat/instruments/pysat_testadd1.py index f8804a243..b51606ba9 100644 --- a/pysat/instruments/pysat_testadd1.py +++ b/pysat/instruments/pysat_testadd1.py @@ -5,8 +5,10 @@ dummy1 to ascending integers and deletes dummy2-4 """ -import pandas as pds +import os import numpy as np +import pandas as pds + import pysat # pysat required parameters @@ -30,19 +32,49 @@ def init(self): def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, sim_multi_file_left=False, root_date=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + sim_multi_file_right : (boolean) + Adjusts date range to be 12 hours in the future or twelve hours beyond + root_date (default=False) + sim_multi_file_left : (boolean) + Adjusts date range to be 12 hours in the past or twelve hours before + root_date (default=False) + root_date : (NoneType) + Optional central date, uses test_dates if not specified. + (default=None) + + Returns + ------- + data : (pds.DataFrame) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ + # create an artifical satellite data set - parts = fnames[0].split('/') - yr = int('20'+parts[-1][0:2]) - month = int(parts[-3]) - day = int(parts[-2]) + parts = os.path.split(fnames[0])[-1].split('-') + yr = int(parts[0]) + month = int(parts[1]) + day = int(parts[2][0:2]) date = pysat.datetime(yr, month, day) if sim_multi_file_right: root_date = root_date or pysat.datetime(2009, 1, 1, 12) - data_date = date+pds.DateOffset(hours=12) + data_date = date + pds.DateOffset(hours=12) elif sim_multi_file_left: root_date = root_date or pysat.datetime(2008, 12, 31, 12) - data_date = date-pds.DateOffset(hours=12) + data_date = date - pds.DateOffset(hours=12) else: root_date = root_date or pysat.datetime(2009, 1, 1) data_date = date @@ -107,7 +139,8 @@ def list_files(tag=None, sat_id=None, data_path=None, format_str=None): index = pds.date_range(pysat.datetime(2008, 1, 1), pysat.datetime(2010, 12, 31)) - names = [data_path+date.strftime('%D')+'.nofile' for date in index] + names = [data_path + date.strftime('%Y-%m-%d') + '.nofile' + for date in index] return pysat.Series(names, index=index) diff --git a/pysat/instruments/pysat_testadd2.py b/pysat/instruments/pysat_testadd2.py index 62fe3e2ed..4378ca5e0 100644 --- a/pysat/instruments/pysat_testadd2.py +++ b/pysat/instruments/pysat_testadd2.py @@ -5,8 +5,10 @@ dummy1 to negative integers descending from 0 and deletes dummy2-4 """ -import pandas as pds +import os import numpy as np +import pandas as pds + import pysat # pysat required parameters @@ -30,11 +32,41 @@ def init(self): def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, sim_multi_file_left=False, root_date=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + sim_multi_file_right : (boolean) + Adjusts date range to be 12 hours in the future or twelve hours beyond + root_date (default=False) + sim_multi_file_left : (boolean) + Adjusts date range to be 12 hours in the past or twelve hours before + root_date (default=False) + root_date : (NoneType) + Optional central date, uses test_dates if not specified. + (default=None) + + Returns + ------- + data : (pds.DataFrame) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ + # create an artifical satellite data set - parts = fnames[0].split('/') - yr = int('20' + parts[-1][0:2]) - month = int(parts[-3]) - day = int(parts[-2]) + parts = os.path.split(fnames[0])[-1].split('-') + yr = int(parts[0]) + month = int(parts[1]) + day = int(parts[2][0:2]) date = pysat.datetime(yr, month, day) if sim_multi_file_right: @@ -107,7 +139,8 @@ def list_files(tag=None, sat_id=None, data_path=None, format_str=None): index = pds.date_range(pysat.datetime(2008, 1, 1), pysat.datetime(2010, 12, 31)) - names = [data_path + date.strftime('%D') + '.nofile' for date in index] + names = [data_path + date.strftime('%Y-%m-%d') + '.nofile' + for date in index] return pysat.Series(names, index=index) diff --git a/pysat/instruments/pysat_testadd3.py b/pysat/instruments/pysat_testadd3.py index ca631116b..c27d135df 100644 --- a/pysat/instruments/pysat_testadd3.py +++ b/pysat/instruments/pysat_testadd3.py @@ -5,8 +5,10 @@ dummy1 to ascending integers from 10 and deletes dummy2-4 """ -import pandas as pds +import os import numpy as np +import pandas as pds + import pysat # pysat required parameters @@ -30,11 +32,41 @@ def init(self): def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, sim_multi_file_left=False, root_date=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + sim_multi_file_right : (boolean) + Adjusts date range to be 12 hours in the future or twelve hours beyond + root_date (default=False) + sim_multi_file_left : (boolean) + Adjusts date range to be 12 hours in the past or twelve hours before + root_date (default=False) + root_date : (NoneType) + Optional central date, uses test_dates if not specified. + (default=None) + + Returns + ------- + data : (pds.DataFrame) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ + # create an artifical satellite data set - parts = fnames[0].split('/') - yr = int('20' + parts[-1][0:2]) - month = int(parts[-3]) - day = int(parts[-2]) + parts = os.path.split(fnames[0])[-1].split('-') + yr = int(parts[0]) + month = int(parts[1]) + day = int(parts[2][0:2]) date = pysat.datetime(yr, month, day) if sim_multi_file_right: @@ -106,7 +138,8 @@ def list_files(tag=None, sat_id=None, data_path=None, format_str=None): index = pds.date_range(pysat.datetime(2008, 1, 1), pysat.datetime(2010, 12, 31)) - names = [data_path + date.strftime('%D') + '.nofile' for date in index] + names = [data_path + date.strftime('%Y-%m-%d') + '.nofile' + for date in index] return pysat.Series(names, index=index) diff --git a/pysat/instruments/pysat_testadd4.py b/pysat/instruments/pysat_testadd4.py index f4562e8ae..8dd12a57e 100644 --- a/pysat/instruments/pysat_testadd4.py +++ b/pysat/instruments/pysat_testadd4.py @@ -5,8 +5,10 @@ dummy1 to ascending integers and deletes dummy2-4 """ -import pandas as pds +import os import numpy as np +import pandas as pds + import pysat # pysat required parameters @@ -30,11 +32,41 @@ def init(self): def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, sim_multi_file_left=False, root_date=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + sim_multi_file_right : (boolean) + Adjusts date range to be 12 hours in the future or twelve hours beyond + root_date (default=False) + sim_multi_file_left : (boolean) + Adjusts date range to be 12 hours in the past or twelve hours before + root_date (default=False) + root_date : (NoneType) + Optional central date, uses test_dates if not specified. + (default=None) + + Returns + ------- + data : (pds.DataFrame) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ + # create an artifical satellite data set - parts = fnames[0].split('/') - yr = int('20' + parts[-1][0:2]) - month = int(parts[-3]) - day = int(parts[-2]) + parts = os.path.split(fnames[0])[-1].split('-') + yr = int(parts[0]) + month = int(parts[1]) + day = int(parts[2][0:2]) date = pysat.datetime(yr, month, day) if sim_multi_file_right: @@ -107,7 +139,8 @@ def list_files(tag=None, sat_id=None, data_path=None, format_str=None): index = pds.date_range(pysat.datetime(2008, 1, 1), pysat.datetime(2010, 12, 31)) - names = [data_path+date.strftime('%D') + '.nofile' for date in index] + names = [data_path + date.strftime('%Y-%m-%d') + '.nofile' + for date in index] return pysat.Series(names, index=index) diff --git a/pysat/instruments/pysat_testing.py b/pysat/instruments/pysat_testing.py index 28f386d59..f8f77c8f3 100644 --- a/pysat/instruments/pysat_testing.py +++ b/pysat/instruments/pysat_testing.py @@ -7,8 +7,8 @@ import functools import os -import pandas as pds import numpy as np +import pandas as pds import pysat @@ -99,8 +99,8 @@ def init(self): if 'file_date_range' in self.kwargs: # set list files routine to desired date range # attach to the instrument object - self._list_rtn = functools.partial(list_files, \ - file_date_range=self.kwargs['file_date_range']) + fdr = self.kwargs['file_date_range'] + self._list_rtn = functools.partial(list_files, file_date_range=fdr) self.files.refresh() @@ -139,6 +139,7 @@ def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, Metadataxs """ + # create an artifical satellite data set parts = os.path.split(fnames[0])[-1].split('-') yr = int(parts[0]) diff --git a/pysat/instruments/pysat_testing2d.py b/pysat/instruments/pysat_testing2d.py index 06a87f1eb..60ed695c5 100644 --- a/pysat/instruments/pysat_testing2d.py +++ b/pysat/instruments/pysat_testing2d.py @@ -4,11 +4,11 @@ """ from __future__ import print_function from __future__ import absolute_import - import os -import pandas as pds import numpy as np +import pandas as pds + import pysat platform = 'pysat' @@ -42,6 +42,27 @@ def init(self): def load(fnames, tag=None, sat_id=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + + Returns + ------- + data : (pds.DataFrame) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ + # create an artifical satellite data set parts = os.path.split(fnames[0])[-1].split('-') yr = int(parts[0]) diff --git a/pysat/instruments/pysat_testing2d_xarray.py b/pysat/instruments/pysat_testing2d_xarray.py index 008ae0029..6083ecae0 100644 --- a/pysat/instruments/pysat_testing2d_xarray.py +++ b/pysat/instruments/pysat_testing2d_xarray.py @@ -4,12 +4,12 @@ """ from __future__ import print_function from __future__ import absolute_import - import os +import numpy as np import pandas as pds import xarray as xr -import numpy as np + import pysat platform = 'pysat' @@ -23,6 +23,26 @@ def init(self): def load(fnames, tag=None, sat_id=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + + Returns + ------- + data : (xr.Dataset) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ # create an artifical satellite data set parts = os.path.split(fnames[0])[-1].split('-') diff --git a/pysat/instruments/pysat_testing_xarray.py b/pysat/instruments/pysat_testing_xarray.py index d80bcddf1..7a5600811 100644 --- a/pysat/instruments/pysat_testing_xarray.py +++ b/pysat/instruments/pysat_testing_xarray.py @@ -4,14 +4,14 @@ """ from __future__ import print_function from __future__ import absolute_import - import os -import pandas as pds import numpy as np -import pysat +import pandas as pds import xarray +import pysat + # pysat required parameters platform = 'pysat' name = 'testing_xarray' @@ -29,6 +29,32 @@ def init(self): def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, sim_multi_file_left=False): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + sim_multi_file_right : (boolean) + Adjusts date range to be 12 hours in the future or twelve hours beyond + root_date (default=False) + sim_multi_file_left : (boolean) + Adjusts date range to be 12 hours in the past or twelve hours before + root_date (default=False) + + Returns + ------- + data : (xr.Dataset) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ # create an artifical satellite data set parts = os.path.split(fnames[0])[-1].split('-') diff --git a/pysat/instruments/pysat_testsmall.py b/pysat/instruments/pysat_testsmall.py index bd488fdb7..9cf560aa7 100644 --- a/pysat/instruments/pysat_testsmall.py +++ b/pysat/instruments/pysat_testsmall.py @@ -3,8 +3,10 @@ Produces fake instrument data for testing. """ -import pandas as pds +import os import numpy as np +import pandas as pds + import pysat # pysat required parameters @@ -28,11 +30,41 @@ def init(self): def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, sim_multi_file_left=False, root_date=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + sim_multi_file_right : (boolean) + Adjusts date range to be 12 hours in the future or twelve hours beyond + root_date (default=False) + sim_multi_file_left : (boolean) + Adjusts date range to be 12 hours in the past or twelve hours before + root_date (default=False) + root_date : (NoneType) + Optional central date, uses test_dates if not specified. + (default=None) + + Returns + ------- + data : (pds.DataFrame) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ + # create an artifical satellite data set - parts = fnames[0].split('/') - yr = int('20' + parts[-1][0:2]) - month = int(parts[-3]) - day = int(parts[-2]) + parts = os.path.split(fnames[0])[-1].split('-') + yr = int(parts[0]) + month = int(parts[1]) + day = int(parts[2][0:2]) date = pysat.datetime(yr, month, day) if sim_multi_file_right: @@ -106,7 +138,8 @@ def list_files(tag=None, sat_id=None, data_path=None, format_str=None): index = pds.date_range(pysat.datetime(2008, 1, 1), pysat.datetime(2010, 12, 31)) - names = [data_path + date.strftime('%D') + '.nofile' for date in index] + names = [data_path + date.strftime('%Y-%m-%d') + '.nofile' + for date in index] return pysat.Series(names, index=index) diff --git a/pysat/instruments/pysat_testsmall2.py b/pysat/instruments/pysat_testsmall2.py index bd45c3cfe..5cbc99a17 100644 --- a/pysat/instruments/pysat_testsmall2.py +++ b/pysat/instruments/pysat_testsmall2.py @@ -4,8 +4,10 @@ Adapted from existing pysat testing instrument, but has fewer (100) rows """ -import pandas as pds +import os import numpy as np +import pandas as pds + import pysat # pysat required parameters @@ -29,11 +31,41 @@ def init(self): def load(fnames, tag=None, sat_id=None, sim_multi_file_right=False, sim_multi_file_left=False, root_date=None): + """ Loads the test files + + Parameters + ---------- + fnames : (list) + List of filenames + tag : (str or NoneType) + Instrument tag (accepts '' or a number (i.e., '10'), which specifies + the number of times to include in the test instrument) + sat_id : (str or NoneType) + Instrument satellite ID (accepts '') + sim_multi_file_right : (boolean) + Adjusts date range to be 12 hours in the future or twelve hours beyond + root_date (default=False) + sim_multi_file_left : (boolean) + Adjusts date range to be 12 hours in the past or twelve hours before + root_date (default=False) + root_date : (NoneType) + Optional central date, uses test_dates if not specified. + (default=None) + + Returns + ------- + data : (pds.DataFrame) + Testing data + meta : (pysat.Meta) + Metadataxs + + """ + # create an artifical satellite data set - parts = fnames[0].split('/') - yr = int('20' + parts[-1][0:2]) - month = int(parts[-3]) - day = int(parts[-2]) + parts = os.path.split(fnames[0])[-1].split('-') + yr = int(parts[0]) + month = int(parts[1]) + day = int(parts[2][0:2]) date = pysat.datetime(yr, month, day) if sim_multi_file_right: @@ -107,7 +139,8 @@ def list_files(tag=None, sat_id=None, data_path=None, format_str=None): index = pds.date_range(pysat.datetime(2008, 1, 1), pysat.datetime(2010, 12, 31)) - names = [data_path + date.strftime('%D') + '.nofile' for date in index] + names = [data_path + date.strftime('%Y-%m-%d') + '.nofile' + for date in index] return pysat.Series(names, index=index) diff --git a/pysat/instruments/sw_f107.py b/pysat/instruments/sw_f107.py index ac99d0b5e..ee4dc6621 100644 --- a/pysat/instruments/sw_f107.py +++ b/pysat/instruments/sw_f107.py @@ -786,7 +786,7 @@ def calc_f107a(f107_inst, f107_name='f107', f107a_name='f107a', min_pnts=41): f107_fill.set_index('time', inplace=True) # Resample to the original frequency, if it is not equal to 1 day - freq = pysat.utils.calc_freq(f107_inst.index) + freq = pysat.utils.time.calc_freq(f107_inst.index) if freq != "86400S": # Resample to the desired frequency f107_fill = f107_fill.resample(freq).pad() diff --git a/pysat/instruments/sw_kp.py b/pysat/instruments/sw_kp.py index f9cea1bd9..2e3f3ab41 100644 --- a/pysat/instruments/sw_kp.py +++ b/pysat/instruments/sw_kp.py @@ -101,7 +101,7 @@ def load(fnames, tag=None, sat_id=None): """ - from pysat.utils import parse_date + from pysat.utils.time import parse_date meta = pysat.Meta() if tag == '': diff --git a/pysat/instruments/sw_methods.py b/pysat/instruments/sw_methods.py index 0ad3508c1..5a321d062 100644 --- a/pysat/instruments/sw_methods.py +++ b/pysat/instruments/sw_methods.py @@ -86,7 +86,7 @@ def combine_kp(standard_inst=None, recent_inst=None, forecast_inst=None, stimes = [inst.index.max() for inst in all_inst if len(inst.index) > 0] stop = max(stimes) if len(stimes) > 0 else None stop += pds.DateOffset(days=1) - + if start is None or stop is None: raise ValueError("must either load in Instrument objects or provide" + " starting and ending times") @@ -190,7 +190,7 @@ def combine_kp(standard_inst=None, recent_inst=None, forecast_inst=None, notes += "{:})".format(itime.date()) # Determine if the beginning or end of the time series needs to be padded - freq = pysat.utils.calc_freq(kp_times) + freq = pysat.utils.time.calc_freq(kp_times) date_range = pds.date_range(start=start, end=stop-pds.DateOffset(days=1), freq=freq) @@ -324,7 +324,7 @@ def combine_f107(standard_inst, forecast_inst, start=None, stop=None): if fill_val is None: f107_inst.meta = standard_inst.meta fill_val = f107_inst.meta['f107'].fill - + good_vals = standard_inst['f107'][good_times] != fill_val f107_times.extend(list(standard_inst.index[good_times][good_vals])) f107_values.extend(list(standard_inst['f107'][good_times][good_vals])) @@ -373,7 +373,7 @@ def combine_f107(standard_inst, forecast_inst, start=None, stop=None): notes += "{:})".format(itime.date()) # Determine if the beginning or end of the time series needs to be padded - freq = pysat.utils.calc_freq(f107_times) + freq = pysat.utils.time.calc_freq(f107_times) date_range = pds.date_range(start=start, end=stop-pds.DateOffset(days=1), freq=freq) @@ -487,7 +487,7 @@ def calc_daily_Ap(ap_inst, ap_name='3hr_ap', daily_name='Ap', # Save the output for the original time range ap_inst[daily_name] = pds.Series(ap_data[1:], index=ap_data.index[1:]) - + # Add metadata meta_dict = {ap_inst.meta.units_label: '', ap_inst.meta.name_label: 'Ap', diff --git a/pysat/tests/test_files.py b/pysat/tests/test_files.py index a10793bd0..5725304e8 100644 --- a/pysat/tests/test_files.py +++ b/pysat/tests/test_files.py @@ -63,14 +63,14 @@ def create_files(inst, start=None, stop=None, freq='1D', use_doy=True, start = pysat.datetime(2009, 1, 1) if stop is None: stop = pysat.datetime(2013, 12, 31) - dates = pysat.utils.season_date_range(start, stop, freq=freq) + dates = pysat.utils.time.season_date_range(start, stop, freq=freq) if root_fname is None: - root_fname = 'pysat_testing_junk_{year:04d}_gold_{day:03d}_stuff.' + \ - 'pysat_testing_file' + root_fname = ''.join(('pysat_testing_junk_{year:04d}_gold_{day:03d}_', + 'stuff.pysat_testing_file')) # create empty file for date in dates: - yr, doy = pysat.utils.getyrdoy(date) + yr, doy = pysat.utils.time.getyrdoy(date) if use_doy: doy = doy else: @@ -314,7 +314,7 @@ def test_instrument_has_files(self): create_files(self.testInst, start, stop, freq='100min', use_doy=False, root_fname=root_fname) # create the same range of dates - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') pysat.instruments.pysat_testing.list_files = list_files inst = pysat.Instrument(platform='pysat', name='testing', update_files=True) @@ -386,16 +386,17 @@ def test_refresh(self): stop = pysat.datetime(2008, 1, 12) create_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) + use_doy=False, + root_fname=self.root_fname) start = pysat.datetime(2007, 12, 31) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst.files.refresh() assert (np.all(self.testInst.files.files.index == dates)) def test_refresh_on_unchanged_files(self): start = pysat.datetime(2007, 12, 31) stop = pysat.datetime(2008, 1, 10) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst.files.refresh() assert (np.all(self.testInst.files.files.index == dates)) @@ -405,8 +406,9 @@ def test_get_new_files_after_refresh(self): stop = pysat.datetime(2008, 1, 12) create_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst.files.refresh() new_files = self.testInst.files.get_new() @@ -418,8 +420,9 @@ def test_get_new_files_after_multiple_refreshes(self): stop = pysat.datetime(2008, 1, 12) create_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst.files.refresh() self.testInst.files.refresh() self.testInst.files.refresh() @@ -432,8 +435,9 @@ def test_get_new_files_after_adding_files(self): stop = pysat.datetime(2008, 1, 12) create_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') new_files = self.testInst.files.get_new() assert (np.all(new_files.index == dates)) @@ -443,16 +447,18 @@ def test_get_new_files_after_adding_files_and_adding_file(self): stop = pysat.datetime(2008, 1, 12) create_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') new_files = self.testInst.files.get_new() start = pysat.datetime(2008, 1, 15) stop = pysat.datetime(2008, 1, 18) create_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates2 = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates2 = pysat.utils.time.season_date_range(start, stop, freq='100min') new_files2 = self.testInst.files.get_new() assert (np.all(new_files.index == dates) & np.all(new_files2.index == dates2)) @@ -461,7 +467,7 @@ def test_get_new_files_after_deleting_files_and_adding_files(self): # create new files and make sure that new files are captured start = pysat.datetime(2008, 1, 11) stop = pysat.datetime(2008, 1, 12) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') # remove files, same number as will be added to_be_removed = len(dates) @@ -486,7 +492,7 @@ def test_files_non_standard_pysat_directory(self): # create new files and make sure that new files are captured start = pysat.datetime(2008, 1, 11) stop = pysat.datetime(2008, 1, 15) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst = \ pysat.Instrument(inst_module=pysat.instruments.pysat_testing, @@ -506,8 +512,8 @@ def test_files_non_standard_pysat_directory(self): pysat.Instrument(inst_module=pysat.instruments.pysat_testing, clean_level='clean', sat_id='hello', - directory_format='pysat_testing_' + - '{tag}_{sat_id}', + directory_format=''.join(('pysat_testing_', + '{tag}_{sat_id}')), update_files=True, temporary_file_list=self.temporary_file_list) @@ -520,22 +526,24 @@ def test_files_non_standard_file_format_template(self): # create new files and make sure that new files are captured start = pysat.datetime(2008, 1, 11) stop = pysat.datetime(2008, 1, 15) - dates = pysat.utils.season_date_range(start, stop, freq='1D') + dates = pysat.utils.time.season_date_range(start, stop, freq='1D') # clear out old files, create new ones remove_files(self.testInst) create_files(self.testInst, start, stop, freq='1D', use_doy=False, - root_fname='pysat_testing_unique_junk_{year:04d}_gold' + - '_{day:03d}_stuff.pysat_testing_file') + root_fname=''.join(('pysat_testing_unique_junk_', + '{year:04d}_gold_{day:03d}_stuff', + '.pysat_testing_file'))) pysat.instruments.pysat_testing.list_files = list_files self.testInst = \ pysat.Instrument(inst_module=pysat.instruments.pysat_testing, clean_level='clean', - file_format='pysat_testing_unique_' + - 'junk_{year:04d}_gold_{day:03d}_' + - 'stuff.pysat_testing_file', + file_format=''.join(('pysat_testing_unique_', + 'junk_{year:04d}_gold_', + '{day:03d}_stuff', + '.pysat_testing_file')), update_files=True, temporary_file_list=self.temporary_file_list) @@ -548,8 +556,9 @@ def test_files_non_standard_file_format_template_misformatted(self): self.testInst = \ pysat.Instrument(inst_module=pysat.instruments.pysat_testing, clean_level='clean', - file_format='pysat_testing_unique_' + - 'junk_stuff.pysat_testing_file', + file_format=''.join(('pysat_testing_unique_', + 'junk_stuff.pysat_testing', + '_file')), update_files=True, temporary_file_list=self.temporary_file_list) @@ -578,7 +587,7 @@ def create_versioned_files(inst, start=None, stop=None, freq='1D', start = pysat.datetime(2009, 1, 1) if stop is None: stop = pysat.datetime(2013, 12, 31) - dates = pysat.utils.season_date_range(start, stop, freq=freq) + dates = pysat.utils.time.season_date_range(start, stop, freq=freq) versions = np.array([1, 2]) revisions = np.array([0, 1]) @@ -591,7 +600,7 @@ def create_versioned_files(inst, start=None, stop=None, freq='1D', for date in dates: for version in versions: for revision in revisions: - yr, doy = pysat.utils.getyrdoy(date) + yr, doy = pysat.utils.time.getyrdoy(date) if use_doy: doy = doy else: @@ -691,7 +700,7 @@ def test_refresh(self): root_fname=self.root_fname) # create list of dates for all files that should be there start = pysat.datetime(2007, 12, 31) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') # update instrument file list self.testInst.files.refresh() assert (np.all(self.testInst.files.files.index == dates)) @@ -700,7 +709,7 @@ def test_refresh_on_unchanged_files(self): start = pysat.datetime(2007, 12, 31) stop = pysat.datetime(2008, 1, 10) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst.files.refresh() assert (np.all(self.testInst.files.files.index == dates)) @@ -710,8 +719,9 @@ def test_get_new_files_after_refresh(self): stop = pysat.datetime(2008, 1, 12) create_versioned_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst.files.refresh() new_files = self.testInst.files.get_new() @@ -723,8 +733,9 @@ def test_get_new_files_after_multiple_refreshes(self): stop = pysat.datetime(2008, 1, 12) create_versioned_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') self.testInst.files.refresh() self.testInst.files.refresh() self.testInst.files.refresh() @@ -738,8 +749,9 @@ def test_get_new_files_after_adding_files(self): stop = pysat.datetime(2008, 1, 12) create_versioned_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') new_files = self.testInst.files.get_new() assert (np.all(new_files.index == dates)) @@ -749,16 +761,18 @@ def test_get_new_files_after_adding_files_and_adding_file(self): stop = pysat.datetime(2008, 1, 12) create_versioned_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') new_files = self.testInst.files.get_new() start = pysat.datetime(2008, 1, 15) stop = pysat.datetime(2008, 1, 18) create_versioned_files(self.testInst, start, stop, freq='100min', - use_doy=False, root_fname=self.root_fname) - dates2 = pysat.utils.season_date_range(start, stop, freq='100min') + use_doy=False, + root_fname=self.root_fname) + dates2 = pysat.utils.time.season_date_range(start, stop, freq='100min') new_files2 = self.testInst.files.get_new() assert (np.all(new_files.index == dates) & np.all(new_files2.index == dates2)) @@ -767,7 +781,7 @@ def test_get_new_files_after_deleting_files_and_adding_files(self): # create new files and make sure that new files are captured start = pysat.datetime(2008, 1, 11) stop = pysat.datetime(2008, 1, 12) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') # remove files, same number as will be added to_be_removed = len(dates) for the_file in os.listdir(self.testInst.files.data_path): @@ -795,7 +809,7 @@ def test_files_non_standard_pysat_directory(self): # create new files and make sure that new files are captured start = pysat.datetime(2008, 1, 11) stop = pysat.datetime(2008, 1, 15) - dates = pysat.utils.season_date_range(start, stop, freq='100min') + dates = pysat.utils.time.season_date_range(start, stop, freq='100min') pysat.instruments.pysat_testing.list_files = list_versioned_files self.testInst = \ pysat.Instrument(inst_module=pysat.instruments.pysat_testing, @@ -827,7 +841,7 @@ def test_files_non_standard_file_format_template(self): # create new files and make sure that new files are captured start = pysat.datetime(2008, 1, 11) stop = pysat.datetime(2008, 1, 15) - dates = pysat.utils.season_date_range(start, stop, freq='1D') + dates = pysat.utils.time.season_date_range(start, stop, freq='1D') # clear out old files, create new ones remove_files(self.testInst) @@ -852,7 +866,7 @@ def test_files_when_duplicates_forced(self): # create new files and make sure that new files are captured start = pysat.datetime(2008, 1, 11) stop = pysat.datetime(2008, 1, 15) - dates = pysat.utils.season_date_range(start, stop, freq='1D') + dates = pysat.utils.time.season_date_range(start, stop, freq='1D') # clear out old files, create new ones remove_files(self.testInst) diff --git a/pysat/tests/test_instrument.py b/pysat/tests/test_instrument.py index ff6cd755b..5cabc1e4e 100644 --- a/pysat/tests/test_instrument.py +++ b/pysat/tests/test_instrument.py @@ -192,14 +192,14 @@ def test_instrument_init(self): # def test_getyrdoy_1(self): # """Test the date to year, day of year code functionality""" # date = pds.datetime(2009,1,1) -# yr, doy = pysat.utils.getyrdoy(date) +# yr, doy = pysat.utils.time.getyrdoy(date) # assert ((yr == 2009) & (doy == 1)) # # def test_getyrdoy_leap_year(self): # """Test the date to year, day of year code functionality # (leap_year)""" # date = pds.datetime(2008,12,31) -# yr, doy = pysat.utils.getyrdoy(date) +# yr, doy = pysat.utils.time.getyrdoy(date) # assert ((yr == 2008) & (doy == 366)) def test_custom_instrument_load(self): @@ -409,7 +409,6 @@ def test_getting_all_data_by_numpy_array_of_int(self): else: assert a.sizes['time'] == 5 -####################### # check iteration behavior @raises(StopIteration) def test_left_bounds_with_prev(self): diff --git a/pysat/tests/test_utils.py b/pysat/tests/test_utils.py index 78a8fb833..99284d39f 100644 --- a/pysat/tests/test_utils.py +++ b/pysat/tests/test_utils.py @@ -1,43 +1,21 @@ """ tests the pysat utils area """ -import os import numpy as np -import pandas as pds +import os +import tempfile import nose.tools from nose.tools import assert_raises, raises -import tempfile import pysat -import pysat.instruments.pysat_testing import sys if sys.version_info[0] >= 3: - if sys.version_info[1] < 4: - import imp - re_load = imp.reload - else: - import importlib - re_load = importlib.reload + import importlib + re_load = importlib.reload else: re_load = reload -# ------------------- -# basic yrdoy tests -def test_getyrdoy_1(): - """Test the date to year, day of year code functionality""" - date = pds.datetime(2009, 1, 1) - yr, doy = pysat.utils.getyrdoy(date) - assert ((yr == 2009) & (doy == 1)) - - -def test_getyrdoy_leap_year(): - """Test the date to year, day of year code functionality (leap_year)""" - date = pds.datetime(2008, 12, 31) - yr, doy = pysat.utils.getyrdoy(date) - assert ((yr == 2008) & (doy == 366)) - - # ---------------------------------- # test netCDF export file support @@ -67,6 +45,72 @@ def remove_files(inst): class TestBasics(): + def setup(self): + """Runs before every method to create a clean testing setup.""" + # store current pysat directory + self.data_path = pysat.data_dir + + def teardown(self): + """Runs after every method to clean up previous testing.""" + + ####################### + # test pysat data dir options + def test_set_data_dir(self): + saved_dir = self.data_path + # update data_dir + pysat.utils.set_data_dir('.') + check1 = (pysat.data_dir == '.') + if saved_dir is not '': + pysat.utils.set_data_dir(saved_dir) + check2 = (pysat.data_dir == saved_dir) + else: + check2 = True + assert check1 & check2 + + def test_set_data_dir_no_store(self): + saved_dir = self.data_path + # update data_dir + pysat.utils.set_data_dir('.', store=False) + check1 = (pysat.data_dir == '.') + pysat._files = re_load(pysat._files) + pysat._instrument = re_load(pysat._instrument) + re_load(pysat) + + check2 = (pysat.data_dir == saved_dir) + if saved_dir is not '': + pysat.utils.set_data_dir(saved_dir, store=False) + check3 = (pysat.data_dir == saved_dir) + else: + check3 = True + + assert check1 & check2 & check3 + + def test_initial_pysat_load(self): + import shutil + saved = False + try: + root = os.path.join(os.getenv('HOME'), '.pysat') + new_root = os.path.join(os.getenv('HOME'), '.saved_pysat') + shutil.move(root, new_root) + saved = True + except: + pass + + re_load(pysat) + + try: + if saved: + # remove directory, trying to be careful + os.remove(os.path.join(root, 'data_path.txt')) + os.rmdir(root) + shutil.move(new_root, root) + except: + pass + + assert True + + +class TestBasicNetCDF4(): def setup(self): """Runs before every method to create a clean testing setup.""" # store current pysat directory @@ -76,34 +120,13 @@ def setup(self): dir_name = tempfile.mkdtemp() pysat.utils.set_data_dir(dir_name, store=False) - self.testInst = pysat.Instrument( - inst_module=pysat.instruments.pysat_testing, - clean_level='clean') + self.testInst = pysat.Instrument(platform='pysat', + name='testing', + clean_level='clean') self.testInst.pandas_format = True - # create testing directory prep_dir(self.testInst) - # Add testing data for circular statistics - self.test_angles = np.array([340.0, 348.0, 358.9, 0.5, 5.0, 9.87]) - self.test_nan = [340.0, 348.0, 358.9, 0.5, 5.0, 9.87, np.nan] - self.circ_kwargs = {"high": 360.0, "low": 0.0} - self.deg_units = ["deg", "degree", "degrees", "rad", "radian", - "radians", "h", "hr", "hrs", "hours"] - self.dist_units = ["m", "km", "cm"] - self.vel_units = ["m/s", "cm/s", "km/s"] - - # Add longitude to the test instrument - ones = np.ones(shape=len(self.test_angles)) - time = pysat.utils.create_datetime_index(year=ones*2001, month=ones, - uts=np.arange(0.0, len(ones), - 1.0)) - - self.testInst.data = \ - pds.DataFrame(np.array([time, self.test_angles]).transpose(), - index=time, - columns=["time", "longitude"]) - def teardown(self): """Runs after every method to clean up previous testing.""" remove_files(self.testInst) @@ -111,10 +134,9 @@ def teardown(self): pysat.utils.set_data_dir(self.data_path, store=False) except: pass - del self.testInst, self.test_angles, self.test_nan, self.circ_kwargs - del self.deg_units, self.dist_units, self.vel_units + del self.testInst - def test_basic_writing_and_reading_netcdf4_default_format(self): + def test_basic_write_and_read_netcdf4_default_format(self): # create a bunch of files by year and doy from unittest.case import SkipTest try: @@ -128,8 +150,9 @@ def test_basic_writing_and_reading_netcdf4_default_format(self): self.testInst.to_netcdf4(outfile) loaded_inst, meta = pysat.utils.load_netcdf4(outfile) - self.testInst.data = self.testInst.data.reindex( - sorted(self.testInst.data.columns), axis=1) + self.testInst.data = \ + self.testInst.data.reindex(sorted(self.testInst.data.columns), + axis=1) loaded_inst = loaded_inst.reindex(sorted(loaded_inst.columns), axis=1) for key in self.testInst.data.columns: @@ -137,7 +160,7 @@ def test_basic_writing_and_reading_netcdf4_default_format(self): assert(np.all(self.testInst[key] == loaded_inst[key])) # assert(np.all(self.testInst.data == loaded_inst)) - def test_basic_writing_and_reading_netcdf4_default_format_w_compression(self): + def test_write_and_read_netcdf4_default_format_w_compression(self): # create a bunch of files by year and doy from unittest.case import SkipTest try: @@ -161,7 +184,7 @@ def test_basic_writing_and_reading_netcdf4_default_format_w_compression(self): assert (np.all(self.testInst[key] == loaded_inst[key])) # assert(np.all(self.testInst.data == loaded_inst)) - def test_basic_writing_and_reading_netcdf4_default_format_w_weird_epoch_name(self): + def test_write_and_read_netcdf4_default_format_w_weird_epoch_name(self): # create a bunch of files by year and doy from unittest.case import SkipTest try: @@ -185,27 +208,27 @@ def test_basic_writing_and_reading_netcdf4_default_format_w_weird_epoch_name(sel print('Testing Data Equality to filesystem and back ', key) assert (np.all(self.testInst[key] == loaded_inst[key])) - def test_basic_writing_and_reading_netcdf4_default_format_higher_order(self): + def test_write_and_read_netcdf4_default_format_higher_order(self): # create a bunch of files by year and doy from unittest.case import SkipTest try: import netCDF4 except ImportError: raise SkipTest + test_inst = pysat.Instrument('pysat', 'testing2d') prep_dir(test_inst) outfile = os.path.join(test_inst.files.data_path, 'test_ncdf.nc') test_inst.load(2009, 1) test_inst.to_netcdf4(outfile) loaded_inst, meta = pysat.utils.load_netcdf4(outfile) - test_inst.data = \ - test_inst.data.reindex(sorted(test_inst.data.columns), axis=1) + test_inst.data = test_inst.data.reindex(sorted(test_inst.data.columns), + axis=1) loaded_inst = loaded_inst.reindex(sorted(loaded_inst.columns), axis=1) prep_dir(test_inst) # test Series of DataFrames test_list = [] - # print (loaded_inst.columns) for frame1, frame2 in zip(test_inst.data['profiles'], loaded_inst['profiles']): test_list.append(np.all((frame1 == frame2).all())) @@ -224,21 +247,13 @@ def test_basic_writing_and_reading_netcdf4_default_format_higher_order(self): loaded_inst['series_profiles']): test_list.append(np.all((frame1 == frame2).all())) - # Debugging statements - # print(test_inst['series_profiles'][0], - # loaded_inst['series_profiles'][0]) - # print(type(test_inst['series_profiles'][0]), - # type(loaded_inst['series_profiles'][0])) - # print((test_inst['series_profiles'][0]) == - # (loaded_inst['series_profiles'][0])) - loaded_inst.drop('series_profiles', inplace=True, axis=1) test_inst.data.drop('series_profiles', inplace=True, axis=1) assert(np.all((test_inst.data == loaded_inst).all())) assert np.all(test_list) - def test_basic_writing_and_reading_netcdf4_default_format_higher_order_w_Compression(self): + def test_write_and_read_netcdf4_default_format_higher_order_w_zlib(self): # create a bunch of files by year and doy from unittest.case import SkipTest try: @@ -284,324 +299,3 @@ def test_basic_writing_and_reading_netcdf4_default_format_higher_order_w_Compres assert (np.all((test_inst.data == loaded_inst).all())) # print (test_list) assert np.all(test_list) - - # def test_basic_writing_and_reading_netcdf4_multiple_formats(self): - # # create a bunch of files by year and doy - # from unittest.case import SkipTest - # try: - # import netCDF4 - # except ImportError: - # raise SkipTest - # - # outfile = os.path.join(self.testInst.files.data_path, 'test_ncdf.nc') - # self.testInst.load(2009,1) - # check = [] - # for format in ['NETCDF3_CLASSIC','NETCDF3_64BIT', 'NETCDF4_CLASSIC', - # 'NETCDF4']: - # self.testInst.to_netcdf4(outfile, file_format=format) - # loaded_inst, meta = pysat.utils.load_netcdf4(outfile, - # file_format=format) - # self.testInst.data = self.testInst.data.reindex(sorted(self.testInst.data.columns), axis=1) - # loaded_inst = loaded_inst.reindex(sorted(loaded_inst.columns), - # axis=1) - # check.append(np.all(self.testInst.data == loaded_inst)) - # print(loaded_inst['string_dummy']) - # - # assert(np.all(check)) - - ####################### - # test pysat data dir options - def test_set_data_dir(self): - saved_dir = self.data_path - # update data_dir - pysat.utils.set_data_dir('.') - check1 = (pysat.data_dir == '.') - if saved_dir is not '': - pysat.utils.set_data_dir(saved_dir) - check2 = (pysat.data_dir == saved_dir) - else: - check2 = True - assert check1 & check2 - - def test_set_data_dir_no_store(self): - import sys - if sys.version_info[0] >= 3: - if sys.version_info[1] < 4: - import imp - re_load = imp.reload - else: - import importlib - re_load = importlib.reload - else: - re_load = reload - - saved_dir = self.data_path - # update data_dir - pysat.utils.set_data_dir('.', store=False) - check1 = (pysat.data_dir == '.') - pysat._files = re_load(pysat._files) - pysat._instrument = re_load(pysat._instrument) - re_load(pysat) - - check2 = (pysat.data_dir == saved_dir) - if saved_dir is not '': - pysat.utils.set_data_dir(saved_dir, store=False) - check3 = (pysat.data_dir == saved_dir) - else: - check3 = True - - assert check1 & check2 & check3 - - def test_initial_pysat_load(self): - import shutil - saved = False - try: - root = os.path.join(os.getenv('HOME'), '.pysat') - new_root = os.path.join(os.getenv('HOME'), '.saved_pysat') - shutil.move(root, new_root) - saved = True - except: - pass - - re_load(pysat) - - try: - if saved: - # remove directory, trying to be careful - os.remove(os.path.join(root, 'data_path.txt')) - os.rmdir(root) - shutil.move(new_root, root) - except: - pass - - assert True - - def test_circmean(self): - """ Test custom circular mean.""" - from scipy import stats - - ref_mean = stats.circmean(self.test_angles, **self.circ_kwargs) - test_mean = pysat.utils.nan_circmean(self.test_angles, - **self.circ_kwargs) - ans1 = ref_mean == test_mean - - assert ans1 - - def test_circstd_nan(self): - """ Test custom circular mean with NaN.""" - from scipy import stats - - ref_mean = stats.circmean(self.test_angles, **self.circ_kwargs) - ref_nan = stats.circmean(self.test_nan, **self.circ_kwargs) - test_nan = pysat.utils.nan_circmean(self.test_nan, **self.circ_kwargs) - - assert np.isnan(ref_nan) - assert ref_mean == test_nan - - def test_circstd(self): - """ Test custom circular std.""" - from scipy import stats - - ref_std = stats.circstd(self.test_angles, **self.circ_kwargs) - test_std = pysat.utils.nan_circstd(self.test_angles, - **self.circ_kwargs) - ans1 = ref_std == test_std - - assert ans1 - - def test_circstd_nan(self): - """ Test custom circular std with NaN.""" - from scipy import stats - - ref_std = stats.circstd(self.test_angles, **self.circ_kwargs) - ref_nan = stats.circstd(self.test_nan, **self.circ_kwargs) - test_nan = pysat.utils.nan_circstd(self.test_nan, **self.circ_kwargs) - - assert np.isnan(ref_nan) - assert ref_std == test_nan - - def test_adjust_cyclic_data_default(self): - """ Test adjust_cyclic_data with default range """ - - test_in = np.radians(self.test_angles) - np.pi - test_angles = pysat.utils.adjust_cyclic_data(test_in) - - assert test_angles.max() < 2.0 * np.pi - assert test_angles.min() >= 0.0 - - def test_adjust_cyclic_data_custom(self): - """ Test adjust_cyclic_data with a custom range """ - - test_angles = pysat.utils.adjust_cyclic_data(self.test_angles, - high=180.0, low=-180.0) - - assert test_angles.max() < 180.0 - assert test_angles.min() >= -180.0 - - def test_update_longitude(self): - """Test update_longitude """ - - pysat.utils.update_longitude(self.testInst, lon_name="longitude") - - assert np.all(self.testInst.data['longitude'] < 180.0) - assert np.all(self.testInst.data['longitude'] >= -180.0) - - def test_bad_lon_name_update_longitude(self): - """Test update_longitude with a bad longitude name""" - - assert_raises(ValueError, pysat.utils.update_longitude, - self.testInst) - - def test_scale_units_same(self): - """ Test scale_units when both units are the same """ - - scale = pysat.utils.scale_units("happy", "happy") - - assert scale == 1.0 - - def test_scale_units_angles(self): - """Test scale_units for angles """ - - for out_unit in self.deg_units: - scale = pysat.utils.scale_units(out_unit, "deg") - - if out_unit.find("deg") == 0: - assert scale == 1.0 - elif out_unit.find("rad") == 0: - assert scale == np.pi / 180.0 - else: - assert scale == 1.0 / 15.0 - - def test_scale_units_dist(self): - """Test scale_units for distances """ - - for out_unit in self.dist_units: - scale = pysat.utils.scale_units(out_unit, "m") - - if out_unit == "m": - assert scale == 1.0 - elif out_unit.find("km") == 0: - assert scale == 0.001 - else: - assert scale == 100.0 - - def test_scale_units_vel(self): - """Test scale_units for velocities """ - - for out_unit in self.vel_units: - scale = pysat.utils.scale_units(out_unit, "m/s") - - if out_unit == "m/s": - assert scale == 1.0 - elif out_unit.find("km/s") == 0: - assert scale == 0.001 - else: - assert scale == 100.0 - - def test_scale_units_bad(self): - """Test scale_units for mismatched input""" - - assert_raises(ValueError, pysat.utils.scale_units, "happy", "m") - assert_raises(ValueError, pysat.utils.scale_units, "m", "happy") - assert_raises(ValueError, pysat.utils.scale_units, "m", "m/s") - assert_raises(ValueError, pysat.utils.scale_units, "m", "deg") - assert_raises(ValueError, pysat.utils.scale_units, "h", "km/s") - - def test_geodetic_to_geocentric_single(self): - """Test conversion from geodetic to geocentric coordinates""" - - lat, lon, rad = pysat.utils.geodetic_to_geocentric(45.0, - lon_in=9.0) - - assert (abs(lat - 44.807576784018046) < 1.0e-6) - assert (abs(lon - 9.0) < 1.0e-6) - assert (abs(rad - 6367.489543863465) < 1.0e-6) - - def test_geodetic_to_geocentric_mult(self): - """Test array conversion from geodetic to geocentric coordinates""" - - arr = np.ones(shape=(10,), dtype=float) - lat, lon, rad = pysat.utils.geodetic_to_geocentric(45.0*arr, - lon_in=9.0*arr) - - assert lat.shape == arr.shape - assert lon.shape == arr.shape - assert rad.shape == arr.shape - assert (abs(lat - 44.807576784018046).max() < 1.0e-6) - assert (abs(lon - 9.0).max() < 1.0e-6) - assert (abs(rad - 6367.489543863465).max() < 1.0e-6) - - def test_spherical_to_cartesian_single(self): - """Test conversion from spherical to cartesian coordinates""" - - x, y, z = pysat.utils.spherical_to_cartesian(45.0, 30.0, 1.0) - - assert abs(x - y) < 1.0e-6 - assert abs(z - 0.5) < 1.0e-6 - - def test_cartesian_to_spherical_single(self): - """Test conversion from cartesian to spherical coordinates""" - - x = 0.6123724356957946 - az, el, r = pysat.utils.spherical_to_cartesian(x, x, 0.5, inverse=True) - - assert abs(az - 45.0) < 1.0e-6 - assert abs(el - 30.0) < 1.0e-6 - assert abs(r - 1.0) < 1.0e-6 - - def test_spherical_to_cartesian_mult(self): - """Test array conversion from spherical to cartesian coordinates""" - - arr = np.ones(shape=(10,), dtype=float) - x, y, z = pysat.utils.spherical_to_cartesian(45.0 * arr, - 30.0 * arr, - arr) - - assert x.shape == arr.shape - assert y.shape == arr.shape - assert z.shape == arr.shape - assert abs(x - y).max() < 1.0e-6 - assert abs(z - 0.5).max() < 1.0e-6 - - def test_cartesian_to_spherical_mult(self): - """Test array conversion from cartesian to spherical coordinates""" - - arr = np.ones(shape=(10,), dtype=float) - x = 0.6123724356957946 - az, el, r = pysat.utils.spherical_to_cartesian(x*arr, x*arr, 0.5*arr, - inverse=True) - - assert az.shape == arr.shape - assert el.shape == arr.shape - assert r.shape == arr.shape - assert abs(az - 45.0).max() < 1.0e-6 - assert abs(el - 30.0).max() < 1.0e-6 - assert abs(r - 1.0).max() < 1.0e-6 - - def test_calc_freq(self): - """Test index frequency calculation""" - - self.testInst.load(2009, 1) - self.testInst.index.freq = pysat.utils.calc_freq(self.testInst.index) - - assert self.testInst.index.freq.freqstr.find("S") == 0 - - def test_calc_freq_ns(self): - """Test index frequency calculation with nanosecond output""" - - tind = pysat.utils.create_datetime_index(year=np.ones(shape=(4,))*2001, - month=np.ones(shape=(4,)), - uts=np.arange(0.0, 0.04, .01)) - freq = pysat.utils.calc_freq(tind) - - assert freq.find("10000000N") == 0 - - def test_calc_freq_len_fail(self): - """Test index frequency calculation with empty list""" - - assert_raises(ValueError, pysat.utils.calc_freq, list()) - - def test_calc_freq_type_fail(self): - """Test index frequency calculation with non-datetime list""" - - assert_raises(AttributeError, pysat.utils.calc_freq, [1, 2, 3, 4]) diff --git a/pysat/tests/test_utils_coords.py b/pysat/tests/test_utils_coords.py new file mode 100644 index 000000000..4c5a4f087 --- /dev/null +++ b/pysat/tests/test_utils_coords.py @@ -0,0 +1,492 @@ +""" +tests the pysat coords area +""" +import numpy as np +import pandas as pds +from nose.tools import assert_raises, raises +import pysat +from pysat.utils import coords, time + + +class TestBasics(): + def setup(self): + """Runs before every method to create a clean testing setup.""" + self.test_angles = np.array([340.0, 348.0, 358.9, 0.5, 5.0, 9.87]) + + self.testInst = pysat.Instrument(platform='pysat', + name='testing', + clean_level='clean') + # Add longitude to the test instrument + ones = np.ones(shape=len(self.test_angles)) + tind = time.create_datetime_index(year=ones*2001, + month=ones, + uts=np.arange(0.0, len(ones), 1.0)) + + self.testInst.data = \ + pds.DataFrame(np.array([tind, self.test_angles]).transpose(), + index=tind, columns=["time", "longitude"]) + + self.deg_units = ["deg", "degree", "degrees", "rad", "radian", + "radians", "h", "hr", "hrs", "hours"] + self.dist_units = ["m", "km", "cm"] + self.vel_units = ["m/s", "cm/s", "km/s"] + + def teardown(self): + """Runs after every method to clean up previous testing.""" + del self.test_angles, self.testInst + del self.deg_units, self.dist_units, self.vel_units + + ##################################### + # Cyclic data conversions + + def test_adjust_cyclic_data_default(self): + """ Test adjust_cyclic_data with default range """ + + test_in = np.radians(self.test_angles) - np.pi + test_angles = coords.adjust_cyclic_data(test_in) + + assert test_angles.max() < 2.0 * np.pi + assert test_angles.min() >= 0.0 + + def test_adjust_cyclic_data_custom(self): + """ Test adjust_cyclic_data with a custom range """ + + test_angles = coords.adjust_cyclic_data(self.test_angles, + high=180.0, low=-180.0) + + assert test_angles.max() < 180.0 + assert test_angles.min() >= -180.0 + + ##################################### + # Update Longitude + + def test_update_longitude(self): + """Test update_longitude """ + + coords.update_longitude(self.testInst, lon_name="longitude") + + assert np.all(self.testInst.data['longitude'] < 180.0) + assert np.all(self.testInst.data['longitude'] >= -180.0) + + @raises(ValueError) + def test_bad_lon_name_update_longitude(self): + """Test update_longitude with a bad longitude name""" + + coords.update_longitude(self.testInst, lon_name="not longitude") + + ######################### + # calc_solar_local_time + + def test_calc_solar_local_time(self): + """Test calc_solar_local_time""" + + coords.calc_solar_local_time(self.testInst, lon_name="longitude", + slt_name='slt') + target = np.array([22.66666667, 23.20027778, 23.92722222, + 0.03416667, 0.33444444, 0.65938889]) + + assert (abs(self.testInst['slt'] - target)).max() < 1.0e-6 + + def test_calc_solar_local_time_w_update_longitude(self): + """Test calc_solar_local_time with update_longitude""" + + coords.calc_solar_local_time(self.testInst, lon_name="longitude", + slt_name='slt') + coords.update_longitude(self.testInst, lon_name="longitude") + coords.calc_solar_local_time(self.testInst, lon_name="longitude", + slt_name='slt2') + + assert (abs(self.testInst['slt'] + - self.testInst['slt2'])).max() < 1.0e-6 + + @raises(ValueError) + def test_bad_lon_name_calc_solar_local_time(self): + """Test calc_solar_local_time with a bad longitude name""" + + coords.calc_solar_local_time(self.testInst, lon_name="not longitude", + slt_name='slt') + + ##################################### + # Scale units + + def test_scale_units_same(self): + """ Test scale_units when both units are the same """ + + scale = coords.scale_units("happy", "happy") + + assert scale == 1.0 + + def test_scale_units_angles(self): + """Test scale_units for angles """ + + for out_unit in self.deg_units: + scale = coords.scale_units(out_unit, "deg") + + if out_unit.find("deg") == 0: + assert scale == 1.0 + elif out_unit.find("rad") == 0: + assert scale == np.pi / 180.0 + else: + assert scale == 1.0 / 15.0 + + def test_scale_units_dist(self): + """Test scale_units for distances """ + + for out_unit in self.dist_units: + scale = coords.scale_units(out_unit, "m") + + if out_unit == "m": + assert scale == 1.0 + elif out_unit.find("km") == 0: + assert scale == 0.001 + else: + assert scale == 100.0 + + def test_scale_units_vel(self): + """Test scale_units for velocities """ + + for out_unit in self.vel_units: + scale = coords.scale_units(out_unit, "m/s") + + if out_unit == "m/s": + assert scale == 1.0 + elif out_unit.find("km/s") == 0: + assert scale == 0.001 + else: + assert scale == 100.0 + + def test_scale_units_bad(self): + """Test scale_units for mismatched input""" + + assert_raises(ValueError, coords.scale_units, "happy", "m") + assert_raises(ValueError, coords.scale_units, "m", "happy") + assert_raises(ValueError, coords.scale_units, "m", "m/s") + assert_raises(ValueError, coords.scale_units, "m", "deg") + assert_raises(ValueError, coords.scale_units, "h", "km/s") + + ##################################### + # Geodetic / Geocentric conversions + + def test_geodetic_to_geocentric_single(self): + """Test conversion from geodetic to geocentric coordinates""" + + lat, lon, rad = coords.geodetic_to_geocentric(45.0, lon_in=8.0) + + assert abs(lat - 44.807576784018046) < 1.0e-6 + assert abs(lon - 8.0) < 1.0e-6 + assert abs(rad - 6367.489543863465) < 1.0e-6 + + def test_geocentric_to_geodetic_single(self): + """Test conversion from geocentric to geodetic coordinates""" + + lat, lon, rad = coords.geodetic_to_geocentric(45.0, lon_in=8.0, + inverse=True) + + assert abs(lat - 45.192423215981954) < 1.0e-6 + assert abs(lon - 8.0) < 1.0e-6 + assert abs(rad - 6367.345908499981) < 1.0e-6 + + def test_geodetic_to_geocentric_mult(self): + """Test array conversion from geodetic to geocentric coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + lat, lon, rad = coords.geodetic_to_geocentric(45.0*arr, lon_in=8.0*arr) + + assert lat.shape == arr.shape + assert lon.shape == arr.shape + assert rad.shape == arr.shape + assert abs(lat - 44.807576784018046).max() < 1.0e-6 + assert abs(lon - 8.0).max() < 1.0e-6 + assert abs(rad - 6367.489543863465).max() < 1.0e-6 + + def test_geocentric_to_geodetic_mult(self): + """Test array conversion from geocentric to geodetic coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + lat, lon, rad = coords.geodetic_to_geocentric(45.0*arr, lon_in=8.0*arr, + inverse=True) + + assert lat.shape == arr.shape + assert lon.shape == arr.shape + assert rad.shape == arr.shape + assert abs(lat - 45.192423215981954).max() < 1.0e-6 + assert abs(lon - 8.0).max() < 1.0e-6 + assert abs(rad - 6367.345908499981).max() < 1.0e-6 + + def test_geodetic_to_geocentric_inverse(self): + """Tests the reversibility of geodetic to geocentric conversions""" + + lat1 = 37.5 + lon1 = 117.3 + lat2, lon2, rad_e = coords.geodetic_to_geocentric(lat1, lon_in=lon1, + inverse=False) + lat3, lon3, rad_e = coords.geodetic_to_geocentric(lat2, lon_in=lon2, + inverse=True) + assert abs(lon1-lon3) < 1.0e-6 + assert abs(lat1-lat3) < 1.0e-6 + + ############################################### + # Geodetic / Geocentric Horizontal conversions + + def test_geodetic_to_geocentric_horz_single(self): + """Test conversion from geodetic to geocentric coordinates""" + + lat, lon, rad, az, el = \ + coords.geodetic_to_geocentric_horizontal(45.0, 8.0, 52.0, 63.0) + + assert abs(lat - 44.807576784018046) < 1.0e-6 + assert abs(lon - 8.0) < 1.0e-6 + assert abs(rad - 6367.489543863465) < 1.0e-6 + assert abs(az - 51.70376774257361) < 1.0e-6 + assert abs(el - 62.8811403841008) < 1.0e-6 + + def test_geocentric_to_geodetic_horz_single(self): + """Test conversion from geocentric to geodetic coordinates""" + + lat, lon, rad, az, el = \ + coords.geodetic_to_geocentric_horizontal(45.0, 8.0, 52.0, 63.0, + inverse=True) + + assert abs(lat - 45.192423215981954) < 1.0e-6 + assert abs(lon - 8.0) < 1.0e-6 + assert abs(rad - 6367.345908499981) < 1.0e-6 + assert abs(az - 52.29896101551479) < 1.0e-6 + assert abs(el - 63.118072033649916) < 1.0e-6 + + def test_geodetic_to_geocentric_horz_mult(self): + """Test array conversion from geodetic to geocentric coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + lat, lon, rad, az, el = \ + coords.geodetic_to_geocentric_horizontal(45.0*arr, 8.0*arr, + 52.0*arr, 63.0*arr) + + assert lat.shape == arr.shape + assert lon.shape == arr.shape + assert rad.shape == arr.shape + assert az.shape == arr.shape + assert el.shape == arr.shape + assert abs(lat - 44.807576784018046).max() < 1.0e-6 + assert abs(lon - 8.0).max() < 1.0e-6 + assert abs(rad - 6367.489543863465).max() < 1.0e-6 + assert abs(az - 51.70376774257361).max() < 1.0e-6 + assert abs(el - 62.8811403841008).max() < 1.0e-6 + + def test_geocentric_to_geodetic_horz_mult(self): + """Test array conversion from geocentric to geodetic coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + lat, lon, rad, az, el = \ + coords.geodetic_to_geocentric_horizontal(45.0*arr, 8.0*arr, + 52.0*arr, 63.0*arr, + inverse=True) + + assert lat.shape == arr.shape + assert lon.shape == arr.shape + assert rad.shape == arr.shape + assert az.shape == arr.shape + assert el.shape == arr.shape + assert abs(lat - 45.192423215981954).max() < 1.0e-6 + assert abs(lon - 8.0).max() < 1.0e-6 + assert abs(rad - 6367.345908499981).max() < 1.0e-6 + assert abs(az - 52.29896101551479).max() < 1.0e-6 + assert abs(el - 63.118072033649916).max() < 1.0e-6 + + def test_geodetic_to_geocentric_horizontal_inverse(self): + """Tests the reversibility of geodetic to geocentric horiz conversions + + Note: inverse of az and el angles currently non-functional""" + + lat1 = -17.5 + lon1 = 187.3 + az1 = 52.0 + el1 = 63.0 + lat2, lon2, rad_e, az2, el2 = \ + coords.geodetic_to_geocentric_horizontal(lat1, lon1, az1, el1, + inverse=False) + lat3, lon3, rad_e, az3, el3 = \ + coords.geodetic_to_geocentric_horizontal(lat2, lon2, az2, el2, + inverse=True) + + assert abs(lon1-lon3) < 1.0e-6 + assert abs(lat1-lat3) < 1.0e-6 + assert abs(az1-az3) < 1.0e-6 + assert abs(el1-el3) < 1.0e-6 + + #################################### + # Spherical / Cartesian conversions + + def test_spherical_to_cartesian_single(self): + """Test conversion from spherical to cartesian coordinates""" + + x, y, z = coords.spherical_to_cartesian(45.0, 30.0, 1.0) + + assert abs(x - y) < 1.0e-6 + assert abs(z - 0.5) < 1.0e-6 + + def test_cartesian_to_spherical_single(self): + """Test conversion from cartesian to spherical coordinates""" + + x = 0.6123724356957946 + az, el, r = coords.spherical_to_cartesian(x, x, 0.5, + inverse=True) + + assert abs(az - 45.0) < 1.0e-6 + assert abs(el - 30.0) < 1.0e-6 + assert abs(r - 1.0) < 1.0e-6 + + def test_spherical_to_cartesian_mult(self): + """Test array conversion from spherical to cartesian coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + x, y, z = coords.spherical_to_cartesian(45.0*arr, 30.0*arr, arr) + + assert x.shape == arr.shape + assert y.shape == arr.shape + assert z.shape == arr.shape + assert abs(x - y).max() < 1.0e-6 + assert abs(z - 0.5).max() < 1.0e-6 + + def test_cartesian_to_spherical_mult(self): + """Test array conversion from cartesian to spherical coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + x = 0.6123724356957946 + az, el, r = coords.spherical_to_cartesian(x*arr, x*arr, 0.5*arr, + inverse=True) + + assert az.shape == arr.shape + assert el.shape == arr.shape + assert r.shape == arr.shape + assert abs(az - 45.0).max() < 1.0e-6 + assert abs(el - 30.0).max() < 1.0e-6 + assert abs(r - 1.0).max() < 1.0e-6 + + def test_spherical_to_cartesian_inverse(self): + """Tests the reversibility of spherical to cartesian conversions""" + + x1 = 3000.0 + y1 = 2000.0 + z1 = 2500.0 + az, el, r = coords.spherical_to_cartesian(x1, y1, z1, + inverse=True) + x2, y2, z2 = coords.spherical_to_cartesian(az, el, r, + inverse=False) + + assert abs(x1-x2) < 1.0e-6 + assert abs(y1-y2) < 1.0e-6 + assert abs(z1-z2) < 1.0e-6 + + ######################################## + # Global / Local Cartesian conversions + + def test_global_to_local_cartesian_single(self): + """Test conversion from global to local cartesian coordinates""" + + x, y, z = coords.global_to_local_cartesian(7000.0, 8000.0, 9000.0, + 37.5, 289.0, 6380.0) + + assert abs(x + 9223.175264852474) < 1.0e-6 + assert abs(y + 2239.835278362686) < 1.0e-6 + assert abs(z - 11323.126851088331) < 1.0e-6 + + def test_local_cartesian_to_global_single(self): + """Test conversion from local cartesian to global coordinates""" + + x, y, z = coords.global_to_local_cartesian(7000.0, 8000.0, 9000.0, + 37.5, 289.0, 6380.0, + inverse=True) + + assert abs(x + 5709.804676635975) < 1.0e-6 + assert abs(y + 4918.397556010223) < 1.0e-6 + assert abs(z - 15709.577500484005) < 1.0e-6 + + def test_global_to_local_cartesian_mult(self): + """Test array conversion from global to local cartesian coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + x, y, z = coords.global_to_local_cartesian(7000.0*arr, 8000.0*arr, + 9000.0*arr, 37.5*arr, + 289.0*arr, 6380.0*arr) + + assert x.shape == arr.shape + assert y.shape == arr.shape + assert z.shape == arr.shape + assert abs(x + 9223.175264852474).max() < 1.0e-6 + assert abs(y + 2239.835278362686).max() < 1.0e-6 + assert abs(z - 11323.126851088331).max() < 1.0e-6 + + def test_local_cartesian_to_global_mult(self): + """Test array conversion from local cartesian to global coordinates""" + + arr = np.ones(shape=(10,), dtype=float) + x, y, z = coords.global_to_local_cartesian(7000.0*arr, 8000.0*arr, + 9000.0*arr, 37.5*arr, + 289.0*arr, 6380.0*arr, + inverse=True) + + assert x.shape == arr.shape + assert y.shape == arr.shape + assert z.shape == arr.shape + assert abs(x + 5709.804676635975).max() < 1.0e-6 + assert abs(y + 4918.397556010223).max() < 1.0e-6 + assert abs(z - 15709.577500484005).max() < 1.0e-6 + + def test_global_to_local_cartesian_inverse(self): + """Tests the reversibility of the global to loc cartesian transform""" + + x1 = 7000.0 + y1 = 8000.0 + z1 = 9500.0 + lat = 37.5 + lon = 289.0 + rad = 6380.0 + x2, y2, z2 = coords.global_to_local_cartesian(x1, y1, z1, + lat, lon, rad, + inverse=False) + x3, y3, z3 = coords.global_to_local_cartesian(x2, y2, z2, + lat, lon, rad, + inverse=True) + assert abs(x1-x3) < 1.0e-6 + assert abs(y1-y3) < 1.0e-6 + assert abs(z1-z3) < 1.0e-6 + + ######################################## + # Local Horizontal / Global conversions + + def test_local_horizontal_to_global_geo_geodetic(self): + """Tests the conversion of the local horizontal to global geo""" + + az = 30.0 + el = 45.0 + dist = 1000.0 + lat0 = 45.0 + lon0 = 0.0 + alt0 = 400.0 + + lat, lon, rad = \ + coords.local_horizontal_to_global_geo(az, el, dist, + lat0, lon0, alt0) + + assert abs(lat - 50.419037572472625) < 1.0e-6 + assert abs(lon + 7.694008395350697) < 1.0e-6 + assert abs(rad - 7172.15486518744) < 1.0e-6 + + def test_local_horizontal_to_global_geo(self): + """Tests the conversion of the local horizontal to global geo""" + + az = 30.0 + el = 45.0 + dist = 1000.0 + lat0 = 45.0 + lon0 = 0.0 + alt0 = 400.0 + + lat, lon, rad = \ + coords.local_horizontal_to_global_geo(az, el, dist, + lat0, lon0, alt0, + geodetic=False) + + assert abs(lat - 50.414315865044202) < 1.0e-6 + assert abs(lon + 7.6855551809119502) < 1.0e-6 + assert abs(rad - 7185.6983665760772) < 1.0e-6 diff --git a/pysat/tests/test_utils_stats.py b/pysat/tests/test_utils_stats.py new file mode 100644 index 000000000..1ad05eb50 --- /dev/null +++ b/pysat/tests/test_utils_stats.py @@ -0,0 +1,62 @@ +""" +tests the pysat utils.stats area +""" +import numpy as np +import pandas as pds +from scipy import stats as scistats +from nose.tools import assert_raises, raises +import pysat +from pysat.utils import stats as pystats + + +class TestBasics(): + def setup(self): + """Runs before every method to create a clean testing setup.""" + + # Add testing data for circular statistics + self.test_angles = np.array([340.0, 348.0, 358.9, 0.5, 5.0, 9.87]) + self.test_nan = [340.0, 348.0, 358.9, 0.5, 5.0, 9.87, np.nan] + self.circ_kwargs = {"high": 360.0, "low": 0.0} + + def teardown(self): + """Runs after every method to clean up previous testing.""" + + del self.test_angles, self.test_nan, self.circ_kwargs + + def test_circmean(self): + """ Test custom circular mean.""" + + ref_mean = scistats.circmean(self.test_angles, **self.circ_kwargs) + test_mean = pystats.nan_circmean(self.test_angles, **self.circ_kwargs) + ans1 = ref_mean == test_mean + + assert ans1 + + def test_circmean_nan(self): + """ Test custom circular mean with NaN.""" + + ref_mean = scistats.circmean(self.test_angles, **self.circ_kwargs) + ref_nan = scistats.circmean(self.test_nan, **self.circ_kwargs) + test_nan = pystats.nan_circmean(self.test_nan, **self.circ_kwargs) + + assert np.isnan(ref_nan) + assert ref_mean == test_nan + + def test_circstd(self): + """ Test custom circular std.""" + + ref_std = scistats.circstd(self.test_angles, **self.circ_kwargs) + test_std = pystats.nan_circstd(self.test_angles, **self.circ_kwargs) + ans1 = ref_std == test_std + + assert ans1 + + def test_circstd_nan(self): + """ Test custom circular std with NaN.""" + + ref_std = scistats.circstd(self.test_angles, **self.circ_kwargs) + ref_nan = scistats.circstd(self.test_nan, **self.circ_kwargs) + test_nan = pystats.nan_circstd(self.test_nan, **self.circ_kwargs) + + assert np.isnan(ref_nan) + assert ref_std == test_nan diff --git a/pysat/tests/test_utils_time.py b/pysat/tests/test_utils_time.py new file mode 100644 index 000000000..d879d9a4e --- /dev/null +++ b/pysat/tests/test_utils_time.py @@ -0,0 +1,163 @@ +""" +tests the pysat utils.time area +""" +import numpy as np +import pandas as pds +from nose.tools import assert_raises, raises +import pysat +from pysat.utils import time as pytime + + +########### +# getyrdoy + +def test_getyrdoy_1(): + """Test the date to year, day of year code functionality""" + + date = pds.datetime(2009, 1, 1) + yr, doy = pytime.getyrdoy(date) + + assert ((yr == 2009) & (doy == 1)) + + +def test_getyrdoy_leap_year(): + """Test the date to year, day of year code functionality (leap_year)""" + + date = pds.datetime(2008, 12, 31) + yr, doy = pytime.getyrdoy(date) + + assert ((yr == 2008) & (doy == 366)) + + +############# +# parse_date + +def test_parse_date_2_digit_year(): + """Test the ability to parse a str to produce a pandas datetime""" + + date = pytime.parse_date('14', '10', '31') + + assert date == pds.datetime(2014, 10, 31) + + +def test_parse_date_2_digit_year_last_century(): + """Test the ability to parse a str to produce a pandas datetime + pre-2000""" + + date = pytime.parse_date('94', '10', '31', century=1900) + + assert date == pds.datetime(1994, 10, 31) + + +def test_parse_date_4_digit_year(): + """Test the ability to parse a str to produce a pandas datetime""" + + date = pytime.parse_date('1994', '10', '31') + + assert date == pds.datetime(1994, 10, 31) + + +@raises(ValueError) +def test_parse_date_bad_input(): + """Test the ability to idenitfy a non-physical date""" + date = pytime.parse_date('194', '15', '31') + + +############ +# calc_freq + +def test_calc_freq(): + """Test index frequency calculation""" + + tind = pytime.create_datetime_index(year=np.ones(shape=(4,))*2001, + month=np.ones(shape=(4,)), + uts=np.arange(0.0, 4.0, 1.0)) + freq = pytime.calc_freq(tind) + + assert freq.find("1S") == 0 + + +def test_calc_freq_ns(): + """Test index frequency calculation with nanosecond output""" + + tind = pytime.create_datetime_index(year=np.ones(shape=(4,))*2001, + month=np.ones(shape=(4,)), + uts=np.arange(0.0, 0.04, .01)) + freq = pytime.calc_freq(tind) + + assert freq.find("10000000N") == 0 + + +def test_calc_freq_len_fail(): + """Test index frequency calculation with empty list""" + + assert_raises(ValueError, pytime.calc_freq, list()) + + +def test_calc_freq_type_fail(): + """Test index frequency calculation with non-datetime list""" + + assert_raises(AttributeError, pytime.calc_freq, [1, 2, 3, 4]) + + +#################### +# season_date_range + +def test_season_date_range(): + """Test ability to generate season list""" + + start = pds.datetime(2012, 2, 28) + stop = pds.datetime(2012, 3, 1) + season = pytime.season_date_range(start, stop, freq='D') + + assert season[0] == start + assert season[-1] == stop + assert len(season) == 3 + + +def test_season_date_range_w_gaps(): + """Test ability to generate season list""" + + start = [pds.datetime(2012, 2, 28), pds.datetime(2013, 2, 28)] + stop = [pds.datetime(2012, 3, 1), pds.datetime(2013, 3, 1)] + season = pytime.season_date_range(start, stop, freq='D') + + assert season[0] == start[0] + assert season[-1] == stop[-1] + assert len(season) == 5 + + +######################### +# create_datetime_index + +def test_create_datetime_index(): + """Tests ability to create an array of datetime objects from distinct + arrays of input paramters""" + + arr = np.ones(4) + + dates = pytime.create_datetime_index(year=2012*arr, month=2*arr, + day=28*arr, uts=np.arange(0, 4)) + + assert dates[0] == pds.datetime(2012, 2, 28) + assert dates[-1] == pds.datetime(2012, 2, 28, 0, 0, 3) + assert len(dates) == 4 + + +@raises(ValueError) +def test_create_datetime_index_wo_year(): + """Must include a year""" + + dates = pytime.create_datetime_index() + + +def test_create_datetime_index_wo_month_day_uts(): + """Tests ability to generate missing paramters""" + + arr = np.ones(4) + + dates = pytime.create_datetime_index(year=2012*arr) + + assert dates[0] == pds.datetime(2012, 1, 1) + assert dates[-1] == pds.datetime(2012, 1, 1) + assert len(dates) == 4 diff --git a/pysat/utils.py b/pysat/utils.py deleted file mode 100644 index 50992981c..000000000 --- a/pysat/utils.py +++ /dev/null @@ -1,1279 +0,0 @@ -""" -pysat.utils - utilities for running pysat -========================================= - -pysat.utils contains a number of functions used -throughout the pysat package. This includes conversion -of formats, loading of files, and user-supplied info -for the pysat data directory structure. -""" - -from __future__ import print_function -from __future__ import absolute_import - -import pandas as pds -import numpy as np -import copy -# python 2/3 compatibility -try: - basestring -except NameError: - # print ('setting basestring') - basestring = str - -from pysat import DataFrame, Series, datetime, Panel - - -def computational_form(data): - """ - Input Series of numbers, Series, or DataFrames repackaged - for calculation. - - Parameters - ---------- - data : pandas.Series - Series of numbers, Series, DataFrames - - Returns - ------- - pandas.Series, DataFrame, or Panel - repacked data, aligned by indices, ready for calculation - """ - - if isinstance(data.iloc[0], DataFrame): - dslice = Panel.from_dict(dict([(i, data.iloc[i]) - for i in xrange(len(data))])) - elif isinstance(data.iloc[0], Series): - dslice = DataFrame(data.tolist()) - dslice.index = data.index - else: - dslice = data - return dslice - - -def set_data_dir(path=None, store=None): - """ - Set the top level directory pysat uses to look for data and reload. - - Parameters - ---------- - path : string - valid path to directory pysat uses to look for data - store : bool - if True, store data directory for future runs - """ - import sys - import os - import pysat - if sys.version_info[0] >= 3: - if sys.version_info[1] < 4: - import imp - re_load = imp.reload - else: - import importlib - re_load = importlib.reload - else: - re_load = reload - if store is None: - store = True - if os.path.isdir(path): - if store: - with open(os.path.join(os.path.expanduser('~'), '.pysat', - 'data_path.txt'), 'w') as f: - f.write(path) - pysat.data_dir = path - pysat._files = re_load(pysat._files) - pysat._instrument = re_load(pysat._instrument) - else: - raise ValueError('Path %s does not lead to a valid directory.' % path) - - -def load_netcdf4(fnames=None, strict_meta=False, file_format=None, - epoch_name='Epoch', units_label='units', - name_label='long_name', notes_label='notes', - desc_label='desc', plot_label='label', axis_label='axis', - scale_label='scale', min_label='value_min', - max_label='value_max', fill_label='fill'): - # unix_time=False, **kwargs): - """Load netCDF-3/4 file produced by pysat. - - Parameters - ---------- - fnames : string or array_like of strings (None) - filenames to load - strict_meta : boolean (False) - check if metadata across fnames is the same - file_format : string (None) - file_format keyword passed to netCDF4 routine - NETCDF3_CLASSIC, NETCDF3_64BIT, NETCDF4_CLASSIC, and NETCDF4 - epoch_name : string ('Epoch') - units_label : string ('units') - keyword for unit information - name_label : string ('long_name') - keyword for informative name label - notes_label : string ('notes') - keyword for file notes - desc_label : string ('desc') - keyword for data descriptions - plot_label : string ('label') - keyword for name to use on plot labels - axis_label : string ('axis') - keyword for axis labels - scale_label : string ('scale') - keyword for plot scaling - min_label : string ('value_min') - keyword for minimum in allowable value range - max_label : string ('value_max') - keyword for maximum in allowable value range - fill_label : string ('fill') - keyword for fill values - - Returns - -------- - out : pandas.core.frame.DataFrame - DataFrame output - mdata : pysat._meta.Meta - Meta data - """ - import netCDF4 - import string - import pysat - - if fnames is None: - raise ValueError("Must supply a filename/list of filenames") - if isinstance(fnames, basestring): - fnames = [fnames] - - if file_format is None: - file_format = 'NETCDF4' - else: - file_format = file_format.upper() - - saved_mdata = None - running_idx = 0 - running_store = [] - two_d_keys = [] - two_d_dims = [] - three_d_keys = [] - three_d_dims = [] - - for fname in fnames: - with netCDF4.Dataset(fname, mode='r', format=file_format) as data: - # build up dictionary with all global ncattrs - # and add those attributes to a pysat meta object - ncattrsList = data.ncattrs() - mdata = pysat.Meta(units_label=units_label, name_label=name_label, - notes_label=notes_label, desc_label=desc_label, - plot_label=plot_label, axis_label=axis_label, - scale_label=scale_label, - min_label=min_label, max_label=max_label, - fill_label=fill_label) - for d in ncattrsList: - if hasattr(mdata, d): - mdata.__setattr__(d+'_', data.getncattr(d)) - else: - mdata.__setattr__(d, data.getncattr(d)) - - # loadup all of the variables in the netCDF - loadedVars = {} - for key in data.variables.keys(): - # load up metadata. From here group unique - # dimensions and act accordingly, 1D, 2D, 3D - if len(data.variables[key].dimensions) == 1: - # load 1D data variable - # assuming basic time dimension - loadedVars[key] = data.variables[key][:] - # if key != epoch_name: - # load up metadata - meta_dict = {} - for nc_key in data.variables[key].ncattrs(): - meta_dict[nc_key] = \ - data.variables[key].getncattr(nc_key) - mdata[key] = meta_dict - if len(data.variables[key].dimensions) == 2: - # part of dataframe within dataframe - two_d_keys.append(key) - two_d_dims.append(data.variables[key].dimensions) - - if len(data.variables[key].dimensions) == 3: - # part of full/dedicated dataframe within dataframe - three_d_keys.append(key) - three_d_dims.append(data.variables[key].dimensions) - - # we now have a list of keys that need to go into a dataframe, - # could be more than one, collect unique dimensions for 2D keys - for dim in set(two_d_dims): - # first dimension should be epoch - # second dimension name used as variable name - obj_key_name = dim[1] - # collect variable names associated with dimension - idx_bool = [dim == i for i in two_d_dims] - idx, = np.where(np.array(idx_bool)) - obj_var_keys = [] - clean_var_keys = [] - for i in idx: - obj_var_keys.append(two_d_keys[i]) - clean_var_keys.append( - two_d_keys[i].split(obj_key_name + '_')[-1]) - - # figure out how to index this data, it could provide its own - # index - or we may have to create simple integer based - # DataFrame access. If the dimension is stored as its own - # variable then use that info for index - if obj_key_name in obj_var_keys: - # string used to indentify dimension also in data.variables - # will be used as an index - index_key_name = obj_key_name - # if the object index uses UNIX time, process into datetime - # index - if data.variables[obj_key_name].getncattr(name_label) == \ - epoch_name: - # name to be used in DataFrame index - index_name = epoch_name - time_index_flag = True - else: - time_index_flag = False - # label to be used in DataFrame index - index_name = \ - data.variables[obj_key_name].getncattr(name_label) - else: - # dimension is not itself a variable - index_key_name = None - - # iterate over the variables and grab metadata - dim_meta_data = pysat.Meta(units_label=units_label, - name_label=name_label, - notes_label=notes_label, - desc_label=desc_label, - plot_label=plot_label, - axis_label=axis_label, - scale_label=scale_label, - min_label=min_label, - max_label=max_label, - fill_label=fill_label) - - for key, clean_key in zip(obj_var_keys, clean_var_keys): - # store attributes in metadata, exept for dim name - meta_dict = {} - for nc_key in data.variables[key].ncattrs(): - meta_dict[nc_key] = \ - data.variables[key].getncattr(nc_key) - dim_meta_data[clean_key] = meta_dict - - # print (dim_meta_data) - dim_meta_dict = {'meta': dim_meta_data} - if index_key_name is not None: - # add top level meta - for nc_key in data.variables[obj_key_name].ncattrs(): - dim_meta_dict[nc_key] = \ - data.variables[obj_key_name].getncattr(nc_key) - mdata[obj_key_name] = dim_meta_dict - - # iterate over all variables with this dimension and store data - # data storage, whole shebang - loop_dict = {} - # list holds a series of slices, parsed from dict above - loop_list = [] - for key, clean_key in zip(obj_var_keys, clean_var_keys): - # data - loop_dict[clean_key] = \ - data.variables[key][:, :].flatten(order='C') - # number of values in time - loop_lim = data.variables[obj_var_keys[0]].shape[0] - # number of values per time - step_size = len(data.variables[obj_var_keys[0]][0, :]) - # check if there is an index we should use - if not (index_key_name is None): - # an index was found - time_var = loop_dict.pop(index_key_name) - if time_index_flag: - # create datetime index from data - if file_format == 'NETCDF4': - time_var = pds.to_datetime(1E6 * time_var) - else: - time_var = pds.to_datetime(1E6 * time_var) - new_index = time_var - new_index_name = index_name - else: - # using integer indexing - new_index = np.arange(loop_lim*step_size, - dtype=int) % step_size - new_index_name = 'index' - # load all data into frame - if len(loop_dict.keys()) > 1: - loop_frame = pds.DataFrame(loop_dict, - columns=clean_var_keys) - if obj_key_name in loop_frame: - del loop_frame[obj_key_name] - # break massive frame into bunch of smaller frames - for i in np.arange(loop_lim, dtype=int): - loop_list.append(loop_frame.iloc[step_size*i: - step_size*(i+1), - :]) - loop_list[-1].index = new_index[step_size*i: - step_size*(i+1)] - loop_list[-1].index.name = new_index_name - else: - loop_frame = pds.Series(loop_dict[clean_var_keys[0]], - name=obj_var_keys[0]) - # break massive series into bunch of smaller series - for i in np.arange(loop_lim, dtype=int): - loop_list.append(loop_frame.iloc[step_size*i: - step_size*(i+1)]) - loop_list[-1].index = new_index[step_size*i: - step_size*(i+1)] - loop_list[-1].index.name = new_index_name - # print (loop_frame.columns) - - # add 2D object data, all based on a unique dimension within - # netCDF, to loaded data dictionary - loadedVars[obj_key_name] = loop_list - del loop_list - - # we now have a list of keys that need to go into a dataframe, - # could be more than one, collect unique dimensions for 2D keys - for dim in set(three_d_dims): - # collect variable names associated with dimension - idx_bool = [dim == i for i in three_d_dims] - idx, = np.where(np.array(idx_bool)) - obj_var_keys = [] - for i in idx: - obj_var_keys.append(three_d_keys[i]) - - for obj_key_name in obj_var_keys: - # store attributes in metadata - meta_dict = {} - for nc_key in data.variables[obj_key_name].ncattrs(): - meta_dict[nc_key] = \ - data.variables[obj_key_name].getncattr(nc_key) - mdata[obj_key_name] = meta_dict - - # iterate over all variables with this dimension and store - # data - # data storage, whole shebang - loop_dict = {} - # list holds a series of slices, parsed from dict above - loop_list = [] - loop_dict[obj_key_name] = \ - data.variables[obj_key_name][:, :, :] - # number of values in time - loop_lim = data.variables[obj_key_name].shape[0] - # number of values per time - step_size_x = len(data.variables[obj_key_name][0, :, 0]) - step_size_y = len(data.variables[obj_key_name][0, 0, :]) - step_size = step_size_x - loop_dict[obj_key_name] = \ - loop_dict[obj_key_name].reshape((loop_lim * step_size_x, - step_size_y)) - # check if there is an index we should use - if not (index_key_name is None): - # an index was found - time_var = loop_dict.pop(index_key_name) - if time_index_flag: - # create datetime index from data - if file_format == 'NETCDF4': - time_var = pds.to_datetime(1E6 * time_var) - else: - time_var = pds.to_datetime(1E6 * time_var) - new_index = time_var - new_index_name = index_name - else: - # using integer indexing - new_index = np.arange(loop_lim * step_size, - dtype=int) % step_size - new_index_name = 'index' - # load all data into frame - loop_frame = pds.DataFrame(loop_dict[obj_key_name]) - # del loop_frame['dimension_1'] - # break massive frame into bunch of smaller frames - for i in np.arange(loop_lim, dtype=int): - loop_list.append(loop_frame.iloc[step_size * i: - step_size * (i + 1), - :]) - loop_list[-1].index = new_index[step_size * i: - step_size * (i + 1)] - loop_list[-1].index.name = new_index_name - - # add 2D object data, all based on a unique dimension - # within netCDF, to loaded data dictionary - loadedVars[obj_key_name] = loop_list - del loop_list - - # prepare dataframe index for this netcdf file - time_var = loadedVars.pop(epoch_name) - - # convert from GPS seconds to seconds used in pandas (unix time, - # no leap) - # time_var = convert_gps_to_unix_seconds(time_var) - if file_format == 'NETCDF4': - loadedVars[epoch_name] = \ - pds.to_datetime((1E6 * time_var).astype(int)) - else: - loadedVars[epoch_name] = \ - pds.to_datetime((time_var * 1E6).astype(int)) - # loadedVars[epoch_name] = pds.to_datetime((time_var*1E6).astype(int)) - running_store.append(loadedVars) - running_idx += len(loadedVars[epoch_name]) - - if strict_meta: - if saved_mdata is None: - saved_mdata = copy.deepcopy(mdata) - elif (mdata != saved_mdata): - raise ValueError('Metadata across filenames is not the ' + - 'same.') - - # combine all of the data loaded across files together - out = [] - for item in running_store: - out.append(pds.DataFrame.from_records(item, index=epoch_name)) - out = pds.concat(out, sort=True, axis=0) - return out, mdata - - -def getyrdoy(date): - """Return a tuple of year, day of year for a supplied datetime object. - - Parameters - ---------- - date : datetime.datetime - Datetime object - - Returns - ------- - year : int - Integer year - doy : int - Integer day of year - - """ - - try: - doy = date.toordinal() - datetime(date.year, 1, 1).toordinal() + 1 - except AttributeError: - raise AttributeError("Must supply a pandas datetime object or " + - "equivalent") - else: - return date.year, doy - - -def parse_date(str_yr, str_mo, str_day, str_hr='0', str_min='0', str_sec='0', - century=2000): - """ Basic date parser for file reading - - Parameters - ---------- - str_yr : string - String containing the year (2 or 4 digits) - str_mo : string - String containing month digits - str_day : string - String containing day of month digits - str_hr : string ('0') - String containing the hour of day - str_min : string ('0') - String containing the minutes of hour - str_sec : string ('0') - String containing the seconds of minute - century : int (2000) - Century, only used if str_yr is a 2-digit year - - Returns - ------- - out_date : pds.datetime - Pandas datetime object - - """ - - yr = int(str_yr) + century if len(str_yr) == 2 else int(str_yr) - out_date = pds.datetime(yr, int(str_mo), int(str_day), int(str_hr), - int(str_min), int(str_sec)) - - return out_date - - -def calc_freq(index): - """ Determine the frequency for a time index - - Parameters - ---------- - index : (array-like) - Datetime list, array, or Index - - Returns - ------- - freq : (str) - Frequency string as described in Pandas Offset Aliases - - Notes - ----- - Calculates the minimum time difference and sets that as the frequency. - - To reduce the amount of calculations done, the returned frequency is - either in seconds (if no sub-second resolution is found) or nanoseconds. - - """ - - # Test the length of the input - if len(index) < 2: - raise ValueError("insufficient data to calculate frequency") - - # Calculate the minimum temporal difference - del_time = (np.array(index[1:]) - np.array(index[:-1])).min() - - # Convert minimum to seconds - try: - # First try as timedelta - freq_sec = del_time.total_seconds() - except AttributeError as err: - # Now try as numpy.timedelta64 - if isinstance(del_time, np.timedelta64): - freq_sec = float(del_time) * 1.0e-9 - else: - raise AttributeError("Input should be times: {:}".format(err)) - - # Format output frequency - if np.floor(freq_sec) == freq_sec: - # The frequency is on the order of seconds or greater - freq = "{:.0f}S".format(freq_sec) - else: - # There are sub-seconds. Go straigt to nanosec for best resoution - freq = "{:.0f}N".format(freq_sec * 1.0e9) - - return freq - - -def season_date_range(start, stop, freq='D'): - """ - Return array of datetime objects using input frequency from start to stop - - Supports single datetime object or list, tuple, ndarray of start and - stop dates. - - freq codes correspond to pandas date_range codes, D daily, M monthly, - S secondly - - """ - - if hasattr(start, '__iter__'): - # missing check for datetime - season = pds.date_range(start[0], stop[0], freq=freq) - for (sta, stp) in zip(start[1:], stop[1:]): - season = season.append(pds.date_range(sta, stp, freq=freq)) - else: - season = pds.date_range(start, stop, freq=freq) - return season - - -# determine the median in 1 dimension -def median1D(self, bin_params, bin_label, data_label): - - bins = np.arange(bin_params[0], bin_params[1] + bin_params[2], - bin_params[2]) - ans = 0.*bins[0:-1] - ind = np.digitize(self.data[bin_label], bins) - - for i in xrange(bins.size-1): - index, = np.where(ind==(i+1)) - if len(index)>0: - idx = self.data.index[index.astype(int)] - ans[i] = self.data.loc[idx, data_label].median() - - return ans - - -def create_datetime_index(year=None, month=None, day=None, uts=None): - """Create a timeseries index using supplied year, month, day, and ut in - seconds. - - Parameters - ---------- - year : array_like of ints - month : array_like of ints or None - day : array_like of ints - for day (default) or day of year (use month=None) - uts : array_like of floats - - Returns - ------- - Pandas timeseries index. - - Note - ---- - Leap seconds have no meaning here. - - """ - # need a timeseries index for storing satellite data in pandas but - # creating a datetime object for everything is too slow - # so I calculate the number of nanoseconds elapsed since first sample, - # and create timeseries index from that. - # Factor of 20 improvement compared to previous method, - # which itself was an order of magnitude faster than datetime. - - # get list of unique year, and month - if not hasattr(year, '__iter__'): - raise ValueError('Must provide an iterable for all inputs.') - if len(year) == 0: - raise ValueError('Length of array must be larger than 0.') - year = year.astype(int) - if month is None: - month = np.ones(len(year), dtype=int) - else: - month = month.astype(int) - - if uts is None: - uts = np.zeros(len(year)) - if day is None: - day = np.ones(len(year)) - day = day.astype(int) - # track changes in seconds - uts_del = uts.copy().astype(float) - # determine where there are changes in year and month that need to be - # accounted for - _, idx = np.unique(year * 100. + month, return_index=True) - # create another index array for faster algorithm below - idx2 = np.hstack((idx, len(year) + 1)) - # computes UTC seconds offset for each unique set of year and month - for _idx, _idx2 in zip(idx[1:], idx2[2:]): - temp = (datetime(year[_idx], month[_idx], 1) - - datetime(year[0], month[0], 1)) - uts_del[_idx:_idx2] += temp.total_seconds() - - # add in UTC seconds for days, ignores existence of leap seconds - uts_del += (day - 1) * 86400 - # add in seconds since unix epoch to first day - uts_del += (datetime(year[0], month[0], 1) - - datetime(1970, 1, 1)).total_seconds() - # going to use routine that defaults to nanseconds for epoch - uts_del *= 1E9 - return pds.to_datetime(uts_del) - - -def nan_circmean(samples, high=2.0*np.pi, low=0.0, axis=None): - """NaN insensitive version of scipy's circular mean routine - - Parameters - ----------- - samples : array_like - Input array - high: float or int - Upper boundary for circular standard deviation range (default=2 pi) - low : float or int - Lower boundary for circular standard deviation range (default=0) - axis : int or NoneType - Axis along which standard deviations are computed. The default is to - compute the standard deviation of the flattened array - - Returns - -------- - circmean : float - Circular mean - - """ - - samples = np.asarray(samples) - samples = samples[~np.isnan(samples)] - if samples.size == 0: - return np.nan - - # Ensure the samples are in radians - ang = (samples - low) * 2.0 * np.pi / (high - low) - - # Calculate the means of the sine and cosine, as well as the length - # of their unit vector - ssum = np.sin(ang).sum(axis=axis) - csum = np.cos(ang).sum(axis=axis) - res = np.arctan2(ssum, csum) - - # Bring the range of the result between 0 and 2 pi - mask = res < 0.0 - - if mask.ndim > 0: - res[mask] += 2.0 * np.pi - elif mask: - res += 2.0 * np.pi - - # Calculate the circular standard deviation - circmean = res * (high - low) / (2.0 * np.pi) + low - return circmean - - -def nan_circstd(samples, high=2.0*np.pi, low=0.0, axis=None): - """NaN insensitive version of scipy's circular standard deviation routine - - Parameters - ----------- - samples : array_like - Input array - high: float or int - Upper boundary for circular standard deviation range (default=2 pi) - low : float or int - Lower boundary for circular standard deviation range (default=0) - axis : int or NoneType - Axis along which standard deviations are computed. The default is to - compute the standard deviation of the flattened array - - Returns - -------- - circstd : float - Circular standard deviation - - """ - - samples = np.asarray(samples) - samples = samples[~np.isnan(samples)] - if samples.size == 0: - return np.nan - - # Ensure the samples are in radians - ang = (samples - low) * 2.0 * np.pi / (high - low) - - # Calculate the means of the sine and cosine, as well as the length - # of their unit vector - smean = np.sin(ang).mean(axis=axis) - cmean = np.cos(ang).mean(axis=axis) - rmean = np.sqrt(smean**2 + cmean**2) - - # Calculate the circular standard deviation - circstd = (high - low) * np.sqrt(-2.0 * np.log(rmean)) / (2.0 * np.pi) - return circstd - - -def adjust_cyclic_data(samples, high=2.0*np.pi, low=0.0): - """Adjust cyclic values such as longitude to a different scale - - Parameters - ----------- - samples : array_like - Input array - high: float or int - Upper boundary for circular standard deviation range (default=2 pi) - low : float or int - Lower boundary for circular standard deviation range (default=0) - axis : int or NoneType - Axis along which standard deviations are computed. The default is to - compute the standard deviation of the flattened array - - Returns - -------- - out_samples : float - Circular standard deviation - - """ - - out_samples = np.asarray(samples) - sample_range = high - low - out_samples[out_samples >= high] -= sample_range - out_samples[out_samples < low] += sample_range - - return out_samples - - -def update_longitude(inst, lon_name=None, high=180.0, low=-180.0): - """ Update longitude to the desired range - - Parameters - ------------ - inst : pysat.Instrument instance - instrument object to be updated - lon_name : string - name of the longtiude data - high : float - Highest allowed longitude value (default=180.0) - low : float - Lowest allowed longitude value (default=-180.0) - - Returns - --------- - updates instrument data in column 'lon_name' - - """ - from pysat.utils import adjust_cyclic_data - - if lon_name not in inst.data.keys(): - raise ValueError('uknown longitude variable name') - - new_lon = adjust_cyclic_data(inst[lon_name], high=high, low=low) - - # Update based on data type - if inst.pandas_format: - inst[lon_name] = new_lon - else: - inst[lon_name].data = new_lon - - return - - -def calc_solar_local_time(inst, lon_name=None, slt_name='slt'): - """ Append solar local time to an instrument object - - Parameters - ------------ - inst : pysat.Instrument instance - instrument object to be updated - lon_name : string - name of the longtiude data key (assumes data are in degrees) - slt_name : string - name of the output solar local time data key (default='slt') - - Returns - --------- - updates instrument data in column specified by slt_name - - """ - import datetime as dt - - if lon_name not in inst.data.keys(): - raise ValueError('uknown longitude variable name') - - # Convert from numpy epoch nanoseconds to UT seconds of day - utsec = list() - for nptime in inst.index.values.astype(int): - # Numpy times come out in nanoseconds and timestamp converts - # from seconds - dtime = dt.datetime.fromtimestamp(nptime * 1.0e-9) - utsec.append((dtime.hour * 3600.0 + dtime.minute * 60.0 + - dtime.second + dtime.microsecond * 1.0e-6) / 3600.0) - - # Calculate solar local time - slt = np.array([t + inst[lon_name][i] / 15.0 for i, t in enumerate(utsec)]) - - # Ensure that solar local time falls between 0 and 24 hours - slt[slt >= 24.0] -= 24.0 - slt[slt < 0.0] += 24.0 - - # Add the solar local time to the instrument - if inst.pandas_format: - inst[slt_name] = pds.Series(slt, index=inst.data.index) - else: - data = inst.data.assign(pysat_slt=(inst.data.coords.keys(), slt)) - data.rename({"pysat_slt": slt_name}, inplace=True) - inst.data = data - - # Add units to the metadata - inst.meta.__setitem__(slt_name, {inst.meta.units_label: 'h', - inst.meta.name_label: "Solar Local Time", - inst.meta.desc_label: "Solar local time", - inst.meta.plot_label: "SLT", - inst.meta.axis_label: "SLT", - inst.meta.scale_label: "linear", - inst.meta.min_label: 0.0, - inst.meta.max_label: 24.0, - inst.meta.fill_label: np.nan}) - - return - - -def scale_units(out_unit, in_unit): - """ Determine the scaling factor between two units - - Parameters - ------------- - out_unit : str - Desired unit after scaling - in_unit : str - Unit to be scaled - - Returns - ----------- - unit_scale : float - Scaling factor that will convert from in_units to out_units - - Notes - ------- - Accepted units include degrees ('deg', 'degree', 'degrees'), - radians ('rad', 'radian', 'radians'), - hours ('h', 'hr', 'hrs', 'hour', 'hours'), and lengths ('m', 'km', 'cm'). - Can convert between degrees, radians, and hours or different lengths. - - Example - ----------- - :: - import numpy as np - two_pi = 2.0 * np.pi - scale = scale_units("deg", "RAD") - two_pi *= scale - two_pi # will show 360.0 - - - """ - - if out_unit == in_unit: - return 1.0 - - accepted_units = {'deg': ['deg', 'degree', 'degrees'], - 'rad': ['rad', 'radian', 'radians'], - 'h': ['h', 'hr', 'hrs', 'hours'], - 'm': ['m', 'km', 'cm'], - 'm/s': ['m/s', 'cm/s', 'km/s']} - - scales = {'deg': 180.0, 'rad': np.pi, 'h': 12.0, - 'm': 1.0, 'km': 0.001, 'cm': 100.0, - 'm/s': 1.0, 'cm/s': 100.0, 'km/s': 0.001} - - # Test input and determine transformation type - out_key = None - in_key = None - for kk in accepted_units.keys(): - if out_unit.lower() in accepted_units[kk]: - out_key = kk - if in_unit.lower() in accepted_units[kk]: - in_key = kk - - if out_key is None: - raise ValueError('Unknown output unit {:}'.format(out_unit)) - - if in_key is None: - raise ValueError('Unknown input unit {:}'.format(in_unit)) - - if out_key == 'm' or out_key == 'm/s' or in_key == 'm' or in_key == 'm/s': - if in_key != out_key: - raise ValueError('Cannot scale {:s} and {:s}'.format(out_unit, - in_unit)) - # Recast units as keys for the scales dictionary - out_key = out_unit - in_key = in_unit - - unit_scale = scales[out_key.lower()] / scales[in_key.lower()] - - return unit_scale - - -def geodetic_to_geocentric(lat_in, lon_in=None, inverse=False): - """Converts position from geodetic to geocentric or vice-versa. - - Parameters - ---------- - lat_in : float - latitude in degrees. - lon_in : float or NoneType - longitude in degrees. Remains unchanged, so does not need to be - included. (default=None) - inverse : bool - False for geodetic to geocentric, True for geocentric to geodetic. - (default=False) - - Returns - ------- - lat_out : float - latitude [degree] (geocentric/detic if inverse=False/True) - lon_out : float or NoneType - longitude [degree] (geocentric/detic if inverse=False/True) - rad_earth : float - Earth radius [km] (geocentric/detic if inverse=False/True) - - Notes - ----- - Uses WGS-84 values - - References - ---------- - Based on J.M. Ruohoniemi's geopack and R.J. Barnes radar.pro - - """ - rad_eq = 6378.1370 # WGS-84 semi-major axis - flat = 1.0 / 298.257223563 # WGS-84 flattening - rad_pol = rad_eq * (1.0 - flat) # WGS-84 semi-minor axis - - # The ratio between the semi-major and minor axis is used several times - rad_ratio_sq = (rad_eq / rad_pol)**2 - - # Calculate the square of the second eccentricity (e') - eprime_sq = rad_ratio_sq - 1.0 - - # Calculate the tangent of the input latitude - tan_in = np.tan(np.radians(lat_in)) - - # If converting from geodetic to geocentric, take the inverse of the - # radius ratio - rad_ratio_sq = 1.0 / rad_ratio_sq - - # Calculate the output latitude - lat_out = np.degrees(np.arctan(rad_ratio_sq * tan_in)) - - # Calculate the Earth radius at this latitude - rad_earth = rad_eq / np.sqrt(1.0 + eprime_sq * - np.sin(np.radians(lat_out))**2) - - # longitude remains unchanged - lon_out = lon_in - - return lat_out, lon_out, rad_earth - - -def geodetic_to_geocentric_horizontal(lat_in, lon_in, az_in, el_in, - inverse=False): - """Converts from local horizontal coordinates in a geodetic system to local - horizontal coordinates in a geocentric system - - Parameters - ---------- - lat_in : float - latitude in degrees of the local horizontal coordinate system center - lon_in : float - longitude in degrees of the local horizontal coordinate system center - az_in : float - azimuth in degrees within the local horizontal coordinate system - el_in : float - elevation in degrees within the local horizontal coordinate system - inverse : bool - False for geodetic to geocentric, True for inverse (default=False) - - Returns - ------- - lat_out : float - latitude in degrees of the converted horizontal coordinate system - center - lon_out : float - longitude in degrees of the converted horizontal coordinate system - center - rad_earth : float - Earth radius in km at the geocentric/detic (False/True) location - az_out : float - azimuth in degrees of the converted horizontal coordinate system - el_out : float - elevation in degrees of the converted horizontal coordinate system - - References - ---------- - Based on J.M. Ruohoniemi's geopack and R.J. Barnes radar.pro - - """ - az = np.radians(az_in) - el = np.radians(el_in) - - # Transform the location of the local horizontal coordinate system center - lat_out, lon_out, rad_earth = geodetic_to_geocentric(lat_in, lon_in, - inverse=inverse) - - # Calcualte the deviation from vertical in radians - dev_vert = np.radians(lat_in - lat_out) - - # Calculate cartesian coordinated in local system - x_local = np.cos(el) * np.sin(az) - y_local = np.cos(el) * np.cos(az) - z_local = np.sin(el) - - # Now rotate system about the x axis to align local vertical vector - # with Earth radial vector - x_out = x_local - y_out = y_local * np.cos(dev_vert) + z_local * np.sin(dev_vert) - z_out = -y_local * np.sin(dev_vert) + z_local * np.cos(dev_vert) - - # Transform the azimuth and elevation angles - az_out = np.degrees(np.arctan2(x_out, y_out)) - el_out = np.degrees(np.arctan(z_out / np.sqrt(x_out**2 + y_out**2))) - - return lat_out, lon_out, rad_earth, az_out, el_out - - -def spherical_to_cartesian(az_in, el_in, r_in, inverse=False): - """Convert a position from spherical to cartesian, or vice-versa - - Parameters - ---------- - az_in : float - azimuth/longitude in degrees or cartesian x in km (inverse=False/True) - el_in : float - elevation/latitude in degrees or cartesian y in km (inverse=False/True) - r_in : float - distance from origin in km or cartesian z in km (inverse=False/True) - inverse : boolian - False to go from spherical to cartesian and True for the inverse - - Returns - ------- - x_out : float - cartesian x in km or azimuth/longitude in degrees (inverse=False/True) - y_out : float - cartesian y in km or elevation/latitude in degrees (inverse=False/True) - z_out : float - cartesian z in km or distance from origin in km (inverse=False/True) - - Notes - ------ - This transform is the same for local or global spherical/cartesian - transformations. - - Returns elevation angle (angle from the xy plane) rather than zenith angle - (angle from the z-axis) - - """ - - if inverse: - # Cartesian to Spherical - xy_sq = az_in**2 + el_in**2 - z_out = np.sqrt(xy_sq + r_in**2) # This is r - y_out = np.degrees(np.arctan2(np.sqrt(xy_sq), r_in)) # This is zenith - y_out = 90.0 - y_out # This is the elevation - x_out = np.degrees(np.arctan2(el_in, az_in)) # This is azimuth - else: - # Spherical coordinate system uses zenith angle (degrees from the - # z-axis) and not the elevation angle (degrees from the x-y plane) - zen_in = np.radians(90.0 - el_in) - - # Spherical to Cartesian - x_out = r_in * np.sin(zen_in) * np.cos(np.radians(az_in)) - y_out = r_in * np.sin(zen_in) * np.sin(np.radians(az_in)) - z_out = r_in * np.cos(zen_in) - - return x_out, y_out, z_out - - -def global_to_local_cartesian(x_in, y_in, z_in, lat_cent, lon_cent, rad_cent, - inverse=False): - """Converts a position from global to local cartesian or vice-versa - - Parameters - ---------- - x_in : float - global or local cartesian x in km (inverse=False/True) - y_in : float - global or local cartesian y in km (inverse=False/True) - z_in : float - global or local cartesian z in km (inverse=False/True) - lat_cent : float - geocentric latitude in degrees of local cartesian system origin - lon_cent : float - geocentric longitude in degrees of local cartesian system origin - rad_cent : float - distance from center of the Earth in km of local cartesian system - origin - inverse : bool - False to convert from global to local cartesian coodiantes, and True - for the inverse (default=False) - - Returns - ------- - x_out : float - local or global cartesian x in km (inverse=False/True) - y_out : float - local or global cartesian y in km (inverse=False/True) - z_out : float - local or global cartesian z in km (inverse=False/True) - - Notes - ------- - The global cartesian coordinate system has its origin at the center of the - Earth, while the local system has its origin specified by the input - latitude, longitude, and radius. The global system has x intersecting - the equatorial plane and the prime meridian, z pointing North along the - rotational axis, and y completing the right-handed coodinate system. - The local system has z pointing up, y pointing North, and x pointing East. - - """ - - # Get the global cartesian coordinates of local origin - x_cent, y_cent, z_cent = spherical_to_cartesian(lon_cent, lat_cent, - rad_cent) - - # Get the amount of rotation needed to align the x-axis with the - # Earth's rotational axis - ax_rot = np.radians(90.0 - lat_cent) - - # Get the amount of rotation needed to align the global x-axis with the - # prime meridian - mer_rot = np.radians(lon_cent - 90.0) - - if inverse: - # Rotate about the x-axis to align the z-axis with the Earth's - # rotational axis - xrot = x_in - yrot = y_in * np.cos(ax_rot) - z_in * np.sin(ax_rot) - zrot = y_in * np.sin(ax_rot) + z_in * np.cos(ax_rot) - - # Rotate about the global z-axis to get the global x-axis aligned - # with the prime meridian and translate the local center to the - # global origin - x_out = xrot * np.cos(mer_rot) - yrot * np.sin(mer_rot) + x_cent - y_out = xrot * np.sin(mer_rot) - yrot * np.cos(mer_rot) + y_cent - z_out = zrot + z_cent - else: - # Translate global origin to the local origin - xtrans = x_in - x_cent - ytrans = y_in - y_cent - ztrans = z_in - z_cent - - # Rotate about the global z-axis to get the local x-axis pointing East - xrot = xtrans * np.cos(-mer_rot) - ytrans * np.sin(-mer_rot) - yrot = xtrans * np.sin(-mer_rot) + ytrans * np.cos(-mer_rot) - zrot = ztrans - - # Rotate about the x-axis to get the z-axis pointing up - x_out = xrot - y_out = yrot * np.cos(-ax_rot) - zrot * np.sin(-ax_rot) - z_out = yrot * np.sin(-ax_rot) + zrot * np.cos(-ax_rot) - - return x_out, y_out, z_out - - -def local_horizontal_to_global_geo(az, el, dist, lat_orig, lon_orig, alt_orig, - geodetic=True): - """ Convert from local horizontal coordinates to geodetic or geocentric - coordinates - - Parameters - ---------- - az : float - Azimuth (angle from North) of point in degrees - el : float - Elevation (angle from ground) of point in degrees - dist : float - Distance from origin to point in km - lat_orig : float - Latitude of origin in degrees - lon_orig : float - Longitude of origin in degrees - alt_orig : float - Altitude of origin in km from the surface of the Earth - geodetic : bool - True if origin coordinates are geodetic, False if they are geocentric. - Will return coordinates in the same system as the origin input. - (default=True) - - Returns - ------- - lat_pnt : float - Latitude of point in degrees - lon_pnt : float - Longitude of point in degrees - rad_pnt : float - Distance to the point from the centre of the Earth in km - - References - ---------- - Based on J.M. Ruohoniemi's geopack and R.J. Barnes radar.pro - - """ - - # If the data are in geodetic coordiantes, convert to geocentric - if geodetic: - (glat, glon, rearth, gaz, gel) = \ - geodetic_to_geocentric_horizontal(lat_orig, lon_orig, az, el, - inverse=False) - grad = rearth + alt_orig - else: - glat = lat_orig - glon = lon_orig - grad = alt_orig + 6371.0 # Add the mean earth radius in km - gaz = az - gel = el - - # Convert from local horizontal to local cartesian coordiantes - x_loc, y_loc, z_loc = spherical_to_cartesian(gaz, gel, dist, inverse=False) - - # Convert from local to global cartesian coordiantes - x_glob, y_glob, z_glob = global_to_local_cartesian(x_loc, y_loc, z_loc, - glat, glon, grad, - inverse=True) - - # Convert from global cartesian to geocentric coordinates - lon_pnt, lat_pnt, rad_pnt = spherical_to_cartesian(x_glob, y_glob, z_glob, - inverse=True) - - # Convert from geocentric to geodetic, if desired - if geodetic: - lat_pnt, lon_pnt, rearth = geodetic_to_geocentric(lat_pnt, lon_pnt, - inverse=True) - rad_pnt = rearth + rad_pnt - 6371.0 - - return lat_pnt, lon_pnt, rad_pnt diff --git a/pysat/utils/__init__.py b/pysat/utils/__init__.py new file mode 100644 index 000000000..c741a428c --- /dev/null +++ b/pysat/utils/__init__.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +""" +pysat.utils - utilities for running pysat +========================================= + +pysat.utils contains a number of functions used +throughout the pysat package. This includes conversion +of formats, loading of files, and user-supplied info +for the pysat data directory structure. +""" + +from . import coords, stats, time +from ._core import set_data_dir, computational_form, load_netcdf4 diff --git a/pysat/utils/_core.py b/pysat/utils/_core.py new file mode 100644 index 000000000..857b01cc1 --- /dev/null +++ b/pysat/utils/_core.py @@ -0,0 +1,412 @@ +from __future__ import print_function +from __future__ import absolute_import + +import numpy as np + + +def set_data_dir(path=None, store=None): + """ + Set the top level directory pysat uses to look for data and reload. + + Parameters + ---------- + path : string + valid path to directory pysat uses to look for data + store : bool + if True, store data directory for future runs + """ + + import os + import sys + import pysat + if sys.version_info[0] >= 3: + import importlib + re_load = importlib.reload + else: + re_load = reload + + if store is None: + store = True + + if os.path.isdir(path): + if store: + with open(os.path.join(os.path.expanduser('~'), '.pysat', + 'data_path.txt'), 'w') as f: + f.write(path) + pysat.data_dir = path + pysat._files = re_load(pysat._files) + pysat._instrument = re_load(pysat._instrument) + else: + raise ValueError('Path %s does not lead to a valid directory.' % path) + + +def computational_form(data): + """ + Repackages numbers, Series, or DataFrames + + Regardless of input format, mathematical operations may be performed on the output via the same pandas mechanisms. + + This method may be particularly useful in analysis methods that aim to be instrument independent. pysat.Instrument objects can package data in a variety of ways within a DataFrame, depending upon the scientific data source. Thus, a variety of data types will be encountered by instrument independent methods and computational_form method may reduce the effort required to support more generalized processing. + + Parameters + ---------- + data : pandas.Series + Series of numbers, Series, DataFrames + + Returns + ------- + pandas.Series, DataFrame, or Panel + repacked data, aligned by indices, ready for calculation + """ + + from pysat import DataFrame, Series, datetime, Panel + + if isinstance(data.iloc[0], DataFrame): + dslice = Panel.from_dict(dict([(i, data.iloc[i]) + for i in xrange(len(data))])) + elif isinstance(data.iloc[0], Series): + dslice = DataFrame(data.tolist()) + dslice.index = data.index + else: + dslice = data + return dslice + + +def load_netcdf4(fnames=None, strict_meta=False, file_format=None, + epoch_name='Epoch', units_label='units', + name_label='long_name', notes_label='notes', + desc_label='desc', plot_label='label', axis_label='axis', + scale_label='scale', min_label='value_min', + max_label='value_max', fill_label='fill'): + # unix_time=False, **kwargs): + """Load netCDF-3/4 file produced by pysat. + + Parameters + ---------- + fnames : string or array_like of strings (None) + filenames to load + strict_meta : boolean (False) + check if metadata across fnames is the same + file_format : string (None) + file_format keyword passed to netCDF4 routine + NETCDF3_CLASSIC, NETCDF3_64BIT, NETCDF4_CLASSIC, and NETCDF4 + epoch_name : string ('Epoch') + units_label : string ('units') + keyword for unit information + name_label : string ('long_name') + keyword for informative name label + notes_label : string ('notes') + keyword for file notes + desc_label : string ('desc') + keyword for data descriptions + plot_label : string ('label') + keyword for name to use on plot labels + axis_label : string ('axis') + keyword for axis labels + scale_label : string ('scale') + keyword for plot scaling + min_label : string ('value_min') + keyword for minimum in allowable value range + max_label : string ('value_max') + keyword for maximum in allowable value range + fill_label : string ('fill') + keyword for fill values + + Returns + -------- + out : pandas.core.frame.DataFrame + DataFrame output + mdata : pysat._meta.Meta + Meta data + """ + + import copy + import netCDF4 + import pandas as pds + import string + import pysat + try: + basestring + except NameError: + basestring = str + + if fnames is None: + raise ValueError("Must supply a filename/list of filenames") + if isinstance(fnames, basestring): + fnames = [fnames] + + if file_format is None: + file_format = 'NETCDF4' + else: + file_format = file_format.upper() + + saved_mdata = None + running_idx = 0 + running_store = [] + two_d_keys = [] + two_d_dims = [] + three_d_keys = [] + three_d_dims = [] + + for fname in fnames: + with netCDF4.Dataset(fname, mode='r', format=file_format) as data: + # build up dictionary with all global ncattrs + # and add those attributes to a pysat meta object + ncattrsList = data.ncattrs() + mdata = pysat.Meta(units_label=units_label, name_label=name_label, + notes_label=notes_label, desc_label=desc_label, + plot_label=plot_label, axis_label=axis_label, + scale_label=scale_label, + min_label=min_label, max_label=max_label, + fill_label=fill_label) + for d in ncattrsList: + if hasattr(mdata, d): + mdata.__setattr__(d+'_', data.getncattr(d)) + else: + mdata.__setattr__(d, data.getncattr(d)) + + # loadup all of the variables in the netCDF + loadedVars = {} + for key in data.variables.keys(): + # load up metadata. From here group unique + # dimensions and act accordingly, 1D, 2D, 3D + if len(data.variables[key].dimensions) == 1: + # load 1D data variable + # assuming basic time dimension + loadedVars[key] = data.variables[key][:] + # if key != epoch_name: + # load up metadata + meta_dict = {} + for nc_key in data.variables[key].ncattrs(): + meta_dict[nc_key] = \ + data.variables[key].getncattr(nc_key) + mdata[key] = meta_dict + if len(data.variables[key].dimensions) == 2: + # part of dataframe within dataframe + two_d_keys.append(key) + two_d_dims.append(data.variables[key].dimensions) + + if len(data.variables[key].dimensions) == 3: + # part of full/dedicated dataframe within dataframe + three_d_keys.append(key) + three_d_dims.append(data.variables[key].dimensions) + + # we now have a list of keys that need to go into a dataframe, + # could be more than one, collect unique dimensions for 2D keys + for dim in set(two_d_dims): + # first dimension should be epoch + # second dimension name used as variable name + obj_key_name = dim[1] + # collect variable names associated with dimension + idx_bool = [dim == i for i in two_d_dims] + idx, = np.where(np.array(idx_bool)) + obj_var_keys = [] + clean_var_keys = [] + for i in idx: + obj_var_keys.append(two_d_keys[i]) + clean_var_keys.append( + two_d_keys[i].split(obj_key_name + '_')[-1]) + + # figure out how to index this data, it could provide its own + # index - or we may have to create simple integer based + # DataFrame access. If the dimension is stored as its own + # variable then use that info for index + if obj_key_name in obj_var_keys: + # string used to indentify dimension also in data.variables + # will be used as an index + index_key_name = obj_key_name + # if the object index uses UNIX time, process into datetime + # index + if data.variables[obj_key_name].getncattr(name_label) == \ + epoch_name: + # name to be used in DataFrame index + index_name = epoch_name + time_index_flag = True + else: + time_index_flag = False + # label to be used in DataFrame index + index_name = \ + data.variables[obj_key_name].getncattr(name_label) + else: + # dimension is not itself a variable + index_key_name = None + + # iterate over the variables and grab metadata + dim_meta_data = pysat.Meta(units_label=units_label, + name_label=name_label, + notes_label=notes_label, + desc_label=desc_label, + plot_label=plot_label, + axis_label=axis_label, + scale_label=scale_label, + min_label=min_label, + max_label=max_label, + fill_label=fill_label) + + for key, clean_key in zip(obj_var_keys, clean_var_keys): + # store attributes in metadata, exept for dim name + meta_dict = {} + for nc_key in data.variables[key].ncattrs(): + meta_dict[nc_key] = \ + data.variables[key].getncattr(nc_key) + dim_meta_data[clean_key] = meta_dict + + # print (dim_meta_data) + dim_meta_dict = {'meta': dim_meta_data} + if index_key_name is not None: + # add top level meta + for nc_key in data.variables[obj_key_name].ncattrs(): + dim_meta_dict[nc_key] = \ + data.variables[obj_key_name].getncattr(nc_key) + mdata[obj_key_name] = dim_meta_dict + + # iterate over all variables with this dimension and store data + # data storage, whole shebang + loop_dict = {} + # list holds a series of slices, parsed from dict above + loop_list = [] + for key, clean_key in zip(obj_var_keys, clean_var_keys): + # data + loop_dict[clean_key] = \ + data.variables[key][:, :].flatten(order='C') + # number of values in time + loop_lim = data.variables[obj_var_keys[0]].shape[0] + # number of values per time + step_size = len(data.variables[obj_var_keys[0]][0, :]) + # check if there is an index we should use + if not (index_key_name is None): + # an index was found + time_var = loop_dict.pop(index_key_name) + if time_index_flag: + # create datetime index from data + if file_format == 'NETCDF4': + time_var = pds.to_datetime(1E6*time_var) + else: + time_var = pds.to_datetime(1E6*time_var) + new_index = time_var + new_index_name = index_name + else: + # using integer indexing + new_index = np.arange(loop_lim*step_size, + dtype=int) % step_size + new_index_name = 'index' + # load all data into frame + if len(loop_dict.keys()) > 1: + loop_frame = pds.DataFrame(loop_dict, + columns=clean_var_keys) + if obj_key_name in loop_frame: + del loop_frame[obj_key_name] + # break massive frame into bunch of smaller frames + for i in np.arange(loop_lim, dtype=int): + loop_list.append(loop_frame.iloc[step_size*i:step_size*(i+1), :]) + loop_list[-1].index = new_index[step_size*i:step_size*(i+1)] + loop_list[-1].index.name = new_index_name + else: + loop_frame = pds.Series(loop_dict[clean_var_keys[0]], + name=obj_var_keys[0]) + # break massive series into bunch of smaller series + for i in np.arange(loop_lim, dtype=int): + loop_list.append(loop_frame.iloc[step_size*i:step_size*(i+1)]) + loop_list[-1].index = new_index[step_size*i:step_size*(i+1)] + loop_list[-1].index.name = new_index_name + # print (loop_frame.columns) + + # add 2D object data, all based on a unique dimension within + # netCDF, to loaded data dictionary + loadedVars[obj_key_name] = loop_list + del loop_list + + # we now have a list of keys that need to go into a dataframe, + # could be more than one, collect unique dimensions for 2D keys + for dim in set(three_d_dims): + # collect variable names associated with dimension + idx_bool = [dim == i for i in three_d_dims] + idx, = np.where(np.array(idx_bool)) + obj_var_keys = [] + for i in idx: + obj_var_keys.append(three_d_keys[i]) + + for obj_key_name in obj_var_keys: + # store attributes in metadata + meta_dict = {} + for nc_key in data.variables[obj_key_name].ncattrs(): + meta_dict[nc_key] = \ + data.variables[obj_key_name].getncattr(nc_key) + mdata[obj_key_name] = meta_dict + + # iterate over all variables with this dimension and store data + # data storage, whole shebang + loop_dict = {} + # list holds a series of slices, parsed from dict above + loop_list = [] + loop_dict[obj_key_name] = \ + data.variables[obj_key_name][:, :, :] + # number of values in time + loop_lim = data.variables[obj_key_name].shape[0] + # number of values per time + step_size_x = len(data.variables[obj_key_name][0, :, 0]) + step_size_y = len(data.variables[obj_key_name][0, 0, :]) + step_size = step_size_x + loop_dict[obj_key_name] = \ + loop_dict[obj_key_name].reshape((loop_lim*step_size_x, + step_size_y)) + # check if there is an index we should use + if not (index_key_name is None): + # an index was found + time_var = loop_dict.pop(index_key_name) + if time_index_flag: + # create datetime index from data + if file_format == 'NETCDF4': + time_var = pds.to_datetime(1E6*time_var) + else: + time_var = pds.to_datetime(1E6*time_var) + new_index = time_var + new_index_name = index_name + else: + # using integer indexing + new_index = np.arange(loop_lim*step_size, + dtype=int) % step_size + new_index_name = 'index' + # load all data into frame + loop_frame = pds.DataFrame(loop_dict[obj_key_name]) + # del loop_frame['dimension_1'] + # break massive frame into bunch of smaller frames + for i in np.arange(loop_lim, dtype=int): + loop_list.append(loop_frame.iloc[step_size*i:step_size*(i+1), :]) + loop_list[-1].index = new_index[step_size*i:step_size*(i+1)] + loop_list[-1].index.name = new_index_name + + # add 2D object data, all based on a unique dimension within netCDF, + # to loaded data dictionary + loadedVars[obj_key_name] = loop_list + del loop_list + + # prepare dataframe index for this netcdf file + time_var = loadedVars.pop(epoch_name) + + # convert from GPS seconds to seconds used in pandas (unix time, + # no leap) + # time_var = convert_gps_to_unix_seconds(time_var) + if file_format == 'NETCDF4': + loadedVars[epoch_name] = pds.to_datetime((1E6 * + time_var).astype(int)) + else: + loadedVars[epoch_name] = pds.to_datetime((time_var * + 1E6).astype(int)) + # loadedVars[epoch_name] = pds.to_datetime((time_var*1E6).astype(int)) + running_store.append(loadedVars) + running_idx += len(loadedVars[epoch_name]) + + if strict_meta: + if saved_mdata is None: + saved_mdata = copy.deepcopy(mdata) + elif (mdata != saved_mdata): + raise ValueError('Metadata across filenames is not the ' + + 'same.') + + # combine all of the data loaded across files together + out = [] + for item in running_store: + out.append(pds.DataFrame.from_records(item, index=epoch_name)) + out = pds.concat(out, axis=0) + return out, mdata diff --git a/pysat/utils/coords.py b/pysat/utils/coords.py new file mode 100644 index 000000000..8e60fadc0 --- /dev/null +++ b/pysat/utils/coords.py @@ -0,0 +1,553 @@ +""" +pysat.coords - coordinate transformations for pysat +========================================= + +pysat.coords contains a number of coordinate-transformation +functions used throughout the pysat package. +""" + +import numpy as np +import pandas as pds + + +def adjust_cyclic_data(samples, high=2.0*np.pi, low=0.0): + """Adjust cyclic values such as longitude to a different scale + + Parameters + ----------- + samples : array_like + Input array + high: float or int + Upper boundary for circular standard deviation range (default=2 pi) + low : float or int + Lower boundary for circular standard deviation range (default=0) + axis : int or NoneType + Axis along which standard deviations are computed. The default is to + compute the standard deviation of the flattened array + + Returns + -------- + out_samples : float + Circular standard deviation + + """ + + out_samples = np.asarray(samples) + sample_range = high - low + out_samples[out_samples >= high] -= sample_range + out_samples[out_samples < low] += sample_range + + return out_samples + + +def update_longitude(inst, lon_name=None, high=180.0, low=-180.0): + """ Update longitude to the desired range + + Parameters + ------------ + inst : pysat.Instrument instance + instrument object to be updated + lon_name : string + name of the longtiude data + high : float + Highest allowed longitude value (default=180.0) + low : float + Lowest allowed longitude value (default=-180.0) + + Returns + --------- + updates instrument data in column 'lon_name' + + """ + + from pysat.utils.coords import adjust_cyclic_data + + if lon_name not in inst.data.keys(): + raise ValueError('uknown longitude variable name') + + new_lon = adjust_cyclic_data(inst[lon_name], high=high, low=low) + + # Update based on data type + if inst.pandas_format: + inst[lon_name] = new_lon + else: + inst[lon_name].data = new_lon + + return + + +def calc_solar_local_time(inst, lon_name=None, slt_name='slt'): + """ Append solar local time to an instrument object + + Parameters + ------------ + inst : pysat.Instrument instance + instrument object to be updated + lon_name : string + name of the longtiude data key (assumes data are in degrees) + slt_name : string + name of the output solar local time data key (default='slt') + + Returns + --------- + updates instrument data in column specified by slt_name + + """ + + import datetime as dt + + if lon_name not in inst.data.keys(): + raise ValueError('uknown longitude variable name') + + # Convert from numpy epoch nanoseconds to UT seconds of day + ut_hr = list() + for nptime in inst.index.values.astype(int): + # Numpy times come out in nanoseconds and timestamp converts + # from seconds + dtime = dt.datetime.utcfromtimestamp(nptime * 1.0e-9) + ut_hr.append((dtime.hour * 3600.0 + dtime.minute * 60.0 + + dtime.second + dtime.microsecond * 1.0e-6) / 3600.0) + # Calculate solar local time + slt = np.array([t + inst[lon_name][i] / 15.0 for i, t in enumerate(ut_hr)]) + + # Ensure that solar local time falls between 0 and 24 hours + slt = np.mod(slt, 24.0) + + # Add the solar local time to the instrument + if inst.pandas_format: + inst[slt_name] = pds.Series(slt, index=inst.data.index) + else: + data = inst.data.assign(pysat_slt=(inst.data.coords.keys(), slt)) + data.rename({"pysat_slt": slt_name}, inplace=True) + inst.data = data + + # Add units to the metadata + inst.meta[slt_name] = {inst.meta.units_label: 'h', + inst.meta.name_label: "Solar Local Time", + inst.meta.desc_label: "Solar local time", + inst.meta.plot_label: "SLT", + inst.meta.axis_label: "SLT", + inst.meta.scale_label: "linear", + inst.meta.min_label: 0.0, + inst.meta.max_label: 24.0, + inst.meta.fill_label: np.nan} + + return + + +def scale_units(out_unit, in_unit): + """ Determine the scaling factor between two units + + Parameters + ------------- + out_unit : str + Desired unit after scaling + in_unit : str + Unit to be scaled + + Returns + ----------- + unit_scale : float + Scaling factor that will convert from in_units to out_units + + Notes + ------- + Accepted units include degrees ('deg', 'degree', 'degrees'), + radians ('rad', 'radian', 'radians'), + hours ('h', 'hr', 'hrs', 'hour', 'hours'), and lengths ('m', 'km', 'cm'). + Can convert between degrees, radians, and hours or different lengths. + + Example + ----------- + :: + import numpy as np + two_pi = 2.0 * np.pi + scale = scale_units("deg", "RAD") + two_pi *= scale + two_pi # will show 360.0 + + + """ + + if out_unit == in_unit: + return 1.0 + + accepted_units = {'deg': ['deg', 'degree', 'degrees'], + 'rad': ['rad', 'radian', 'radians'], + 'h': ['h', 'hr', 'hrs', 'hours'], + 'm': ['m', 'km', 'cm'], + 'm/s': ['m/s', 'cm/s', 'km/s']} + + scales = {'deg': 180.0, 'rad': np.pi, 'h': 12.0, + 'm': 1.0, 'km': 0.001, 'cm': 100.0, + 'm/s': 1.0, 'cm/s': 100.0, 'km/s': 0.001} + + # Test input and determine transformation type + out_key = None + in_key = None + for kk in accepted_units.keys(): + if out_unit.lower() in accepted_units[kk]: + out_key = kk + if in_unit.lower() in accepted_units[kk]: + in_key = kk + + if out_key is None: + raise ValueError('Unknown output unit {:}'.format(out_unit)) + + if in_key is None: + raise ValueError('Unknown input unit {:}'.format(in_unit)) + + if out_key == 'm' or out_key == 'm/s' or in_key == 'm' or in_key == 'm/s': + if in_key != out_key: + raise ValueError('Cannot scale {:s} and {:s}'.format(out_unit, + in_unit)) + # Recast units as keys for the scales dictionary + out_key = out_unit + in_key = in_unit + + unit_scale = scales[out_key.lower()] / scales[in_key.lower()] + + return unit_scale + + +def geodetic_to_geocentric(lat_in, lon_in=None, inverse=False): + """Converts position from geodetic to geocentric or vice-versa. + + Parameters + ---------- + lat_in : float + latitude in degrees. + lon_in : float or NoneType + longitude in degrees. Remains unchanged, so does not need to be + included. (default=None) + inverse : bool + False for geodetic to geocentric, True for geocentric to geodetic. + (default=False) + + Returns + ------- + lat_out : float + latitude [degree] (geocentric/detic if inverse=False/True) + lon_out : float or NoneType + longitude [degree] (geocentric/detic if inverse=False/True) + rad_earth : float + Earth radius [km] (geocentric/detic if inverse=False/True) + + Notes + ----- + Uses WGS-84 values + + References + ---------- + Based on J.M. Ruohoniemi's geopack and R.J. Barnes radar.pro + + """ + rad_eq = 6378.1370 # WGS-84 semi-major axis + flat = 1.0 / 298.257223563 # WGS-84 flattening + rad_pol = rad_eq * (1.0 - flat) # WGS-84 semi-minor axis + + # The ratio between the semi-major and minor axis is used several times + rad_ratio_sq = (rad_eq / rad_pol)**2 + + # Calculate the square of the second eccentricity (e') + eprime_sq = rad_ratio_sq - 1.0 + + # Calculate the tangent of the input latitude + tan_in = np.tan(np.radians(lat_in)) + + # If converting from geodetic to geocentric, take the inverse of the + # radius ratio + if not inverse: + rad_ratio_sq = 1.0 / rad_ratio_sq + + # Calculate the output latitude + lat_out = np.degrees(np.arctan(rad_ratio_sq * tan_in)) + + # Calculate the Earth radius at this latitude + rad_earth = rad_eq / np.sqrt(1.0 + eprime_sq * + np.sin(np.radians(lat_out))**2) + + # longitude remains unchanged + lon_out = lon_in + + return lat_out, lon_out, rad_earth + + +def geodetic_to_geocentric_horizontal(lat_in, lon_in, az_in, el_in, + inverse=False): + """Converts from local horizontal coordinates in a geodetic system to local + horizontal coordinates in a geocentric system + + Parameters + ---------- + lat_in : float + latitude in degrees of the local horizontal coordinate system center + lon_in : float + longitude in degrees of the local horizontal coordinate system center + az_in : float + azimuth in degrees within the local horizontal coordinate system + el_in : float + elevation in degrees within the local horizontal coordinate system + inverse : bool + False for geodetic to geocentric, True for inverse (default=False) + + Returns + ------- + lat_out : float + latitude in degrees of the converted horizontal coordinate system + center + lon_out : float + longitude in degrees of the converted horizontal coordinate system + center + rad_earth : float + Earth radius in km at the geocentric/detic (False/True) location + az_out : float + azimuth in degrees of the converted horizontal coordinate system + el_out : float + elevation in degrees of the converted horizontal coordinate system + + References + ---------- + Based on J.M. Ruohoniemi's geopack and R.J. Barnes radar.pro + + """ + + az = np.radians(az_in) + el = np.radians(el_in) + + # Transform the location of the local horizontal coordinate system center + lat_out, lon_out, rad_earth = geodetic_to_geocentric(lat_in, lon_in, + inverse=inverse) + + # Calcualte the deviation from vertical in radians + dev_vert = np.radians(lat_in - lat_out) + + # Calculate cartesian coordinated in local system + x_local = np.cos(el) * np.sin(az) + y_local = np.cos(el) * np.cos(az) + z_local = np.sin(el) + + # Now rotate system about the x axis to align local vertical vector + # with Earth radial vector + x_out = x_local + y_out = y_local * np.cos(dev_vert) + z_local * np.sin(dev_vert) + z_out = -y_local * np.sin(dev_vert) + z_local * np.cos(dev_vert) + + # Transform the azimuth and elevation angles + az_out = np.degrees(np.arctan2(x_out, y_out)) + el_out = np.degrees(np.arctan(z_out / np.sqrt(x_out**2 + y_out**2))) + + return lat_out, lon_out, rad_earth, az_out, el_out + + +def spherical_to_cartesian(az_in, el_in, r_in, inverse=False): + """Convert a position from spherical to cartesian, or vice-versa + + Parameters + ---------- + az_in : float + azimuth/longitude in degrees or cartesian x in km (inverse=False/True) + el_in : float + elevation/latitude in degrees or cartesian y in km (inverse=False/True) + r_in : float + distance from origin in km or cartesian z in km (inverse=False/True) + inverse : boolian + False to go from spherical to cartesian and True for the inverse + + Returns + ------- + x_out : float + cartesian x in km or azimuth/longitude in degrees (inverse=False/True) + y_out : float + cartesian y in km or elevation/latitude in degrees (inverse=False/True) + z_out : float + cartesian z in km or distance from origin in km (inverse=False/True) + + Notes + ------ + This transform is the same for local or global spherical/cartesian + transformations. + + Returns elevation angle (angle from the xy plane) rather than zenith angle + (angle from the z-axis) + + """ + + if inverse: + # Cartesian to Spherical + xy_sq = az_in**2 + el_in**2 + z_out = np.sqrt(xy_sq + r_in**2) # This is r + y_out = np.degrees(np.arctan2(np.sqrt(xy_sq), r_in)) # This is zenith + y_out = 90.0 - y_out # This is the elevation + x_out = np.degrees(np.arctan2(el_in, az_in)) # This is azimuth + else: + # Spherical coordinate system uses zenith angle (degrees from the + # z-axis) and not the elevation angle (degrees from the x-y plane) + zen_in = np.radians(90.0 - el_in) + + # Spherical to Cartesian + x_out = r_in * np.sin(zen_in) * np.cos(np.radians(az_in)) + y_out = r_in * np.sin(zen_in) * np.sin(np.radians(az_in)) + z_out = r_in * np.cos(zen_in) + + return x_out, y_out, z_out + + +def global_to_local_cartesian(x_in, y_in, z_in, lat_cent, lon_cent, rad_cent, + inverse=False): + """Converts a position from global to local cartesian or vice-versa + + Parameters + ---------- + x_in : float + global or local cartesian x in km (inverse=False/True) + y_in : float + global or local cartesian y in km (inverse=False/True) + z_in : float + global or local cartesian z in km (inverse=False/True) + lat_cent : float + geocentric latitude in degrees of local cartesian system origin + lon_cent : float + geocentric longitude in degrees of local cartesian system origin + rad_cent : float + distance from center of the Earth in km of local cartesian system + origin + inverse : bool + False to convert from global to local cartesian coodiantes, and True + for the inverse (default=False) + + Returns + ------- + x_out : float + local or global cartesian x in km (inverse=False/True) + y_out : float + local or global cartesian y in km (inverse=False/True) + z_out : float + local or global cartesian z in km (inverse=False/True) + + Notes + ------- + The global cartesian coordinate system has its origin at the center of the + Earth, while the local system has its origin specified by the input + latitude, longitude, and radius. The global system has x intersecting + the equatorial plane and the prime meridian, z pointing North along the + rotational axis, and y completing the right-handed coodinate system. + The local system has z pointing up, y pointing North, and x pointing East. + + """ + + # Get the global cartesian coordinates of local origin + x_cent, y_cent, z_cent = spherical_to_cartesian(lon_cent, lat_cent, + rad_cent) + + # Get the amount of rotation needed to align the x-axis with the + # Earth's rotational axis + ax_rot = np.radians(90.0 - lat_cent) + + # Get the amount of rotation needed to align the global x-axis with the + # prime meridian + mer_rot = np.radians(lon_cent - 90.0) + + if inverse: + # Rotate about the x-axis to align the z-axis with the Earth's + # rotational axis + xrot = x_in + yrot = y_in * np.cos(ax_rot) - z_in * np.sin(ax_rot) + zrot = y_in * np.sin(ax_rot) + z_in * np.cos(ax_rot) + + # Rotate about the global z-axis to get the global x-axis aligned + # with the prime meridian and translate the local center to the + # global origin + x_out = xrot * np.cos(mer_rot) - yrot * np.sin(mer_rot) + x_cent + y_out = xrot * np.sin(mer_rot) + yrot * np.cos(mer_rot) + y_cent + z_out = zrot + z_cent + else: + # Translate global origin to the local origin + xtrans = x_in - x_cent + ytrans = y_in - y_cent + ztrans = z_in - z_cent + + # Rotate about the global z-axis to get the local x-axis pointing East + xrot = xtrans * np.cos(-mer_rot) - ytrans * np.sin(-mer_rot) + yrot = xtrans * np.sin(-mer_rot) + ytrans * np.cos(-mer_rot) + zrot = ztrans + + # Rotate about the x-axis to get the z-axis pointing up + x_out = xrot + y_out = yrot * np.cos(-ax_rot) - zrot * np.sin(-ax_rot) + z_out = yrot * np.sin(-ax_rot) + zrot * np.cos(-ax_rot) + + return x_out, y_out, z_out + + +def local_horizontal_to_global_geo(az, el, dist, lat_orig, lon_orig, alt_orig, + geodetic=True): + """ Convert from local horizontal coordinates to geodetic or geocentric + coordinates + + Parameters + ---------- + az : float + Azimuth (angle from North) of point in degrees + el : float + Elevation (angle from ground) of point in degrees + dist : float + Distance from origin to point in km + lat_orig : float + Latitude of origin in degrees + lon_orig : float + Longitude of origin in degrees + alt_orig : float + Altitude of origin in km from the surface of the Earth + geodetic : bool + True if origin coordinates are geodetic, False if they are geocentric. + Will return coordinates in the same system as the origin input. + (default=True) + + Returns + ------- + lat_pnt : float + Latitude of point in degrees + lon_pnt : float + Longitude of point in degrees + rad_pnt : float + Distance to the point from the centre of the Earth in km + + References + ---------- + Based on J.M. Ruohoniemi's geopack and R.J. Barnes radar.pro + + """ + + # If the data are in geodetic coordiantes, convert to geocentric + if geodetic: + (glat, glon, rearth, gaz, gel) = \ + geodetic_to_geocentric_horizontal(lat_orig, lon_orig, az, el, + inverse=False) + grad = rearth + alt_orig + else: + glat = lat_orig + glon = lon_orig + grad = alt_orig + 6371.0 # Add the mean earth radius in km + gaz = az + gel = el + + # Convert from local horizontal to local cartesian coordiantes + x_loc, y_loc, z_loc = spherical_to_cartesian(gaz, gel, dist, inverse=False) + + # Convert from local to global cartesian coordiantes + x_glob, y_glob, z_glob = global_to_local_cartesian(x_loc, y_loc, z_loc, + glat, glon, grad, + inverse=True) + + # Convert from global cartesian to geocentric coordinates + lon_pnt, lat_pnt, rad_pnt = spherical_to_cartesian(x_glob, y_glob, z_glob, + inverse=True) + + # Convert from geocentric to geodetic, if desired + if geodetic: + lat_pnt, lon_pnt, rearth = geodetic_to_geocentric(lat_pnt, lon_pnt, + inverse=True) + rad_pnt = rearth + rad_pnt - 6371.0 + + return lat_pnt, lon_pnt, rad_pnt diff --git a/pysat/utils/stats.py b/pysat/utils/stats.py new file mode 100644 index 000000000..9973337d9 --- /dev/null +++ b/pysat/utils/stats.py @@ -0,0 +1,140 @@ +""" +pysat.utils.stats - statistical operations in pysat +========================================= + +pysat.coords contains a number of coordinate-transformation +functions used throughout the pysat package. +""" + +import numpy as np + + +def median1D(self, bin_params, bin_label, data_label): + """Calculates the median for a series of binned data. + + ** Will be remvoed in a future version now that ssnl.avgs has a + similar function + + Parameters + ---------- + bin_params : array_like + Input array defining the bins in which the median is calculated + bin_label : string + Name of data parameter which the bins cover + data_level : string + Name of data parameter to take the median of in each bin + + Returns + ------- + medians : array_like + The median data value in each bin + + """ + + warnings.warn( + "utils.stats.median1D is deprecated, use ssnl.avg.median1D instead", + DeprecationWarning + ) + + bins = np.arange(bin_params[0], bin_params[1] + bin_params[2], + bin_params[2]) + medians = 0. * bins[0:-1] + ind = np.digitize(self.data[bin_label], bins) + + for i in xrange(bins.size-1): + index, = np.where(ind == (i + 1)) + if len(index) > 0: + idx = self.data.index[index.astype(int)] + medians[i] = self.data.loc[idx, data_label].median() + + return medians + + +def nan_circmean(samples, high=2.0*np.pi, low=0.0, axis=None): + """NaN insensitive version of scipy's circular mean routine + + Parameters + ----------- + samples : array_like + Input array + high: float or int + Upper boundary for circular standard deviation range (default=2 pi) + low : float or int + Lower boundary for circular standard deviation range (default=0) + axis : int or NoneType + Axis along which standard deviations are computed. The default is to + compute the standard deviation of the flattened array + + Returns + -------- + circmean : float + Circular mean + + """ + + samples = np.asarray(samples) + samples = samples[~np.isnan(samples)] + if samples.size == 0: + return np.nan + + # Ensure the samples are in radians + ang = (samples - low) * 2.0 * np.pi / (high - low) + + # Calculate the means of the sine and cosine, as well as the length + # of their unit vector + ssum = np.sin(ang).sum(axis=axis) + csum = np.cos(ang).sum(axis=axis) + res = np.arctan2(ssum, csum) + + # Bring the range of the result between 0 and 2 pi + mask = res < 0.0 + + if mask.ndim > 0: + res[mask] += 2.0 * np.pi + elif mask: + res += 2.0 * np.pi + + # Calculate the circular standard deviation + circmean = res * (high - low) / (2.0 * np.pi) + low + return circmean + + +def nan_circstd(samples, high=2.0*np.pi, low=0.0, axis=None): + """NaN insensitive version of scipy's circular standard deviation routine + + Parameters + ----------- + samples : array_like + Input array + high: float or int + Upper boundary for circular standard deviation range (default=2 pi) + low : float or int + Lower boundary for circular standard deviation range (default=0) + axis : int or NoneType + Axis along which standard deviations are computed. The default is to + compute the standard deviation of the flattened array + + Returns + -------- + circstd : float + Circular standard deviation + + """ + + samples = np.asarray(samples) + samples = samples[~np.isnan(samples)] + if samples.size == 0: + return np.nan + + # Ensure the samples are in radians + ang = (samples - low) * 2.0 * np.pi / (high - low) + + # Calculate the means of the sine and cosine, as well as the length + # of their unit vector + smean = np.sin(ang).mean(axis=axis) + cmean = np.cos(ang).mean(axis=axis) + rmean = np.sqrt(smean**2 + cmean**2) + + # Calculate the circular standard deviation + circstd = (high - low) * np.sqrt(-2.0 * np.log(rmean)) / (2.0 * np.pi) + return circstd diff --git a/pysat/utils/time.py b/pysat/utils/time.py new file mode 100644 index 000000000..0ee91594d --- /dev/null +++ b/pysat/utils/time.py @@ -0,0 +1,214 @@ +""" +pysat.utils.time - date and time operations in pysat +========================================= + +pysat.utils.time contains a number of functions used throughout +the pysat package, including interactions with datetime objects, +seasons, and calculation of solar local time +""" + +import numpy as np +import pandas as pds +from pysat import DataFrame, Series, datetime + + +def getyrdoy(date): + """Return a tuple of year, day of year for a supplied datetime object. + + Parameters + ---------- + date : datetime.datetime + Datetime object + + Returns + ------- + year : int + Integer year + doy : int + Integer day of year + + """ + + try: + doy = date.toordinal() - datetime(date.year, 1, 1).toordinal() + 1 + except AttributeError: + raise AttributeError("Must supply a pandas datetime object or " + + "equivalent") + else: + return date.year, doy + + +def parse_date(str_yr, str_mo, str_day, str_hr='0', str_min='0', str_sec='0', + century=2000): + """ Basic date parser for file reading + + Parameters + ---------- + str_yr : string + String containing the year (2 or 4 digits) + str_mo : string + String containing month digits + str_day : string + String containing day of month digits + str_hr : string ('0') + String containing the hour of day + str_min : string ('0') + String containing the minutes of hour + str_sec : string ('0') + String containing the seconds of minute + century : int (2000) + Century, only used if str_yr is a 2-digit year + + Returns + ------- + out_date : pds.datetime + Pandas datetime object + + """ + + yr = int(str_yr) + century if len(str_yr) == 2 else int(str_yr) + out_date = pds.datetime(yr, int(str_mo), int(str_day), int(str_hr), + int(str_min), int(str_sec)) + + return out_date + + +def calc_freq(index): + """ Determine the frequency for a time index + + Parameters + ---------- + index : (array-like) + Datetime list, array, or Index + + Returns + ------- + freq : (str) + Frequency string as described in Pandas Offset Aliases + + Notes + ----- + Calculates the minimum time difference and sets that as the frequency. + + To reduce the amount of calculations done, the returned frequency is + either in seconds (if no sub-second resolution is found) or nanoseconds. + + """ + + # Test the length of the input + if len(index) < 2: + raise ValueError("insufficient data to calculate frequency") + + # Calculate the minimum temporal difference + del_time = (np.array(index[1:]) - np.array(index[:-1])).min() + + # Convert minimum to seconds + try: + # First try as timedelta + freq_sec = del_time.total_seconds() + except AttributeError as err: + # Now try as numpy.timedelta64 + if isinstance(del_time, np.timedelta64): + freq_sec = float(del_time) * 1.0e-9 + else: + raise AttributeError("Input should be times: {:}".format(err)) + + # Format output frequency + if np.floor(freq_sec) == freq_sec: + # The frequency is on the order of seconds or greater + freq = "{:.0f}S".format(freq_sec) + else: + # There are sub-seconds. Go straigt to nanosec for best resoution + freq = "{:.0f}N".format(freq_sec * 1.0e9) + + return freq + + +def season_date_range(start, stop, freq='D'): + """ + Return array of datetime objects using input frequency from start to stop + + Supports single datetime object or list, tuple, ndarray of start and + stop dates. + + freq codes correspond to pandas date_range codes, D daily, M monthly, + S secondly + + """ + + if hasattr(start, '__iter__'): + # missing check for datetime + season = pds.date_range(start[0], stop[0], freq=freq) + for (sta, stp) in zip(start[1:], stop[1:]): + season = season.append(pds.date_range(sta, stp, freq=freq)) + else: + season = pds.date_range(start, stop, freq=freq) + return season + + +def create_datetime_index(year=None, month=None, day=None, uts=None): + """Create a timeseries index using supplied year, month, day, and ut in + seconds. + + Parameters + ---------- + year : array_like of ints + month : array_like of ints or None + day : array_like of ints + for day (default) or day of year (use month=None) + uts : array_like of floats + + Returns + ------- + Pandas timeseries index. + + Note + ---- + Leap seconds have no meaning here. + + """ + + # need a timeseries index for storing satellite data in pandas but + # creating a datetime object for everything is too slow + # so I calculate the number of nanoseconds elapsed since first sample, + # and create timeseries index from that. + # Factor of 20 improvement compared to previous method, + # which itself was an order of magnitude faster than datetime. + + # get list of unique year, and month + if not hasattr(year, '__iter__'): + raise ValueError('Must provide an iterable for all inputs.') + if len(year) == 0: + raise ValueError('Length of array must be larger than 0.') + year = year.astype(int) + if month is None: + month = np.ones(len(year), dtype=int) + else: + month = month.astype(int) + + if uts is None: + uts = np.zeros(len(year)) + if day is None: + day = np.ones(len(year)) + day = day.astype(int) + # track changes in seconds + uts_del = uts.copy().astype(float) + # determine where there are changes in year and month that need to be + # accounted for + _, idx = np.unique(year*100.+month, return_index=True) + # create another index array for faster algorithm below + idx2 = np.hstack((idx, len(year) + 1)) + # computes UTC seconds offset for each unique set of year and month + for _idx, _idx2 in zip(idx[1:], idx2[2:]): + temp = (datetime(year[_idx], month[_idx], 1) - + datetime(year[0], month[0], 1)) + uts_del[_idx:_idx2] += temp.total_seconds() + + # add in UTC seconds for days, ignores existence of leap seconds + uts_del += (day - 1) * 86400 + # add in seconds since unix epoch to first day + uts_del += (datetime(year[0], month[0], 1) - + datetime(1970, 1, 1)).total_seconds() + # going to use routine that defaults to nanseconds for epoch + uts_del *= 1E9 + return pds.to_datetime(uts_del) From 67de470f009202a274241c431973f482cd6bffdf Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Fri, 1 Mar 2019 17:26:27 -0500 Subject: [PATCH 37/41] formatting --- docs/new_instrument.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index b7fdd1b77..6f79a5678 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -230,13 +230,13 @@ where supported_tags is defined as dictated by the download function. See the ro A template for Madrigal pysat support is provided. Several of the routines within are intended to be used with functools.partial in the new instrument support code. When writing custom routines with a new instrument file download support would be added via - .. code:: python +.. code:: python - def download(.....) + def download(.....) - Using the Madrigal template the equivalent action is +Using the Madrigal template the equivalent action is - .. code:: python +.. code:: python def download(date_array, tag='', sat_id='', data_path=None, user=None, password=None): @@ -245,18 +245,18 @@ where supported_tags is defined as dictated by the download function. See the ro data_path=data_path, user=user, password=password) - See the routines for `dmsp_ivm` and `jro_isr` for practical uses of the Madrigal support code. +See the routines for `dmsp_ivm` and `jro_isr` for practical uses of the Madrigal support code. - Additionally, use of the madrigal_methods class should acknowledge the CEDAR rules of the road. This can be done by Adding +Additionally, use of the madrigal_methods class should acknowledge the CEDAR rules of the road. This can be done by Adding - .. code:: python +.. code:: python def init(self): print(madrigal_methods.cedar_rules()) return - to each routine that uses Madrigal data access. +to each routine that uses Madrigal data access. |br| From 022f0805b78c0a9d3a98494e9cb2ca30d0ebd8d6 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Fri, 1 Mar 2019 17:27:10 -0500 Subject: [PATCH 38/41] formatting --- docs/new_instrument.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 6f79a5678..152df6a10 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -225,10 +225,10 @@ where supported_tags is defined as dictated by the download function. See the ro :members: - Madrigal - ----------- +Madrigal +----------- - A template for Madrigal pysat support is provided. Several of the routines within are intended to be used with functools.partial in the new instrument support code. When writing custom routines with a new instrument file download support would be added via +A template for Madrigal pysat support is provided. Several of the routines within are intended to be used with functools.partial in the new instrument support code. When writing custom routines with a new instrument file download support would be added via .. code:: python @@ -261,5 +261,5 @@ to each routine that uses Madrigal data access. |br| - .. automodule:: pysat.instruments.madrigal_methods - :members: +.. automodule:: pysat.instruments.madrigal_methods + :members: From 6cacaa9e81ca1c41b910fa5f03e0c62491b7880e Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Fri, 1 Mar 2019 17:30:34 -0500 Subject: [PATCH 39/41] post-review comments --- docs/new_instrument.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 152df6a10..0dd817fbd 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -51,7 +51,10 @@ The list_files function can be invoked from within ipython by calling instrument.files.files -where instrument is the name of the instrument object. +where instrument is the name of the instrument object. Likewise, files can be directly listed when instantiating an instrument object by adding `update_files=True`. + +.. code:: python + inst = pysat.Instrument(platform=platform, name=name, update_files=True) Load Data From 6aafc89cd9c00fbc308f312fc5feb9b393904d66 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Fri, 1 Mar 2019 17:36:47 -0500 Subject: [PATCH 40/41] format --- docs/new_instrument.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 0dd817fbd..0ffb31cec 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -261,7 +261,7 @@ Additionally, use of the madrigal_methods class should acknowledge the CEDAR rul to each routine that uses Madrigal data access. - |br| +|br| .. automodule:: pysat.instruments.madrigal_methods From a81dd25984e73e7514ba1dfe9af86d4ccd20c3b2 Mon Sep 17 00:00:00 2001 From: Jeff Klenzing Date: Fri, 1 Mar 2019 17:37:37 -0500 Subject: [PATCH 41/41] format --- docs/new_instrument.rst | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/new_instrument.rst b/docs/new_instrument.rst index 0ffb31cec..b4db84f09 100644 --- a/docs/new_instrument.rst +++ b/docs/new_instrument.rst @@ -223,11 +223,9 @@ Using the CDAWeb template the equivalent action is where supported_tags is defined as dictated by the download function. See the routines for cnofs_vefi and cnofs_ivm for practical uses of the NASA CDAWeb support code. |br| - .. automodule:: pysat.instruments.nasa_cdaweb_methods :members: - Madrigal ----------- @@ -260,9 +258,7 @@ Additionally, use of the madrigal_methods class should acknowledge the CEDAR rul return to each routine that uses Madrigal data access. - |br| - .. automodule:: pysat.instruments.madrigal_methods :members: