Hello community,

here is the log from the commit of package python-drms for openSUSE:Factory 
checked in at 2019-11-21 12:59:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-drms (Old)
 and      /work/SRC/openSUSE:Factory/.python-drms.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-drms"

Thu Nov 21 12:59:06 2019 rev:2 rq:749993 version:0.5.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-drms/python-drms.changes  2019-07-28 
10:22:15.416568444 +0200
+++ /work/SRC/openSUSE:Factory/.python-drms.new.26869/python-drms.changes       
2019-11-21 12:59:10.910518366 +0100
@@ -1,0 +2,13 @@
+Wed Nov 20 20:02:19 UTC 2019 - Todd R <[email protected]>
+
+- Use github source
+
+-------------------------------------------------------------------
+Tue Nov 19 21:15:03 UTC 2019 - Todd R <[email protected]>
+
+- Update to version 0.5.7
+  * Updated examples and documentation
+  * Fixed some pandas future warnings
+  * Added JOSS paper
+
+-------------------------------------------------------------------

Old:
----
  drms-0.5.6.tar.gz

New:
----
  drms-0.5.7.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-drms.spec ++++++
--- /var/tmp/diff_new_pack.6kUOo4/_old  2019-11-21 12:59:11.318518240 +0100
+++ /var/tmp/diff_new_pack.6kUOo4/_new  2019-11-21 12:59:11.322518239 +0100
@@ -12,32 +12,31 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-drms
-Version:        0.5.6
+Version:        0.5.7
 Release:        0
-License:        MIT
 Summary:        Tool to access HMI, AIA and MDI data with Python
-Url:            https://github.com/sunpy/drms
-Group:          Development/Languages/Python
-Source:         
https://github.com/sunpy/drms/archive/v0.5.6.tar.gz#/drms-%{version}.tar.gz
+License:        MIT
+URL:            https://github.com/sunpy/drms
+Source:         
https://github.com/sunpy/drms/archive/v%{version}.tar.gz#/drms-%{version}.tar.gz
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
+Requires:       python-numpy >= 1.9.0
+Requires:       python-pandas >= 0.15.0
+Requires:       python-six >= 1.8.0
+BuildArch:      noarch
 # SECTION test requirements
 BuildRequires:  %{python_module numpy >= 1.9.0}
 BuildRequires:  %{python_module pandas >= 0.15.0}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module six >= 1.8.0}
 # /SECTION
-Requires:       python-numpy >= 1.9.0
-Requires:       python-pandas >= 0.15.0
-Requires:       python-six >= 1.8.0
-BuildArch:      noarch
-
 %python_subpackages
 
 %description

++++++ drms-0.5.6.tar.gz -> drms-0.5.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/.gitignore new/drms-0.5.7/.gitignore
--- old/drms-0.5.6/.gitignore   2019-02-17 19:39:21.000000000 +0100
+++ new/drms-0.5.7/.gitignore   2019-08-16 20:00:17.000000000 +0200
@@ -6,6 +6,7 @@
 /*.egg-info/
 /examples/jsoc.stanford.edu/
 /examples/downloads/
+/examples/joss_figure.pdf
 /nogit/
 /.tox/
 /doc/build/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/LICENSE.txt new/drms-0.5.7/LICENSE.txt
--- old/drms-0.5.6/LICENSE.txt  2019-02-17 19:39:21.000000000 +0100
+++ new/drms-0.5.7/LICENSE.txt  2019-08-16 20:00:17.000000000 +0200
@@ -1,5 +1,4 @@
-Copyright (c) 2014-2019 Kolja Glogowski and others.
-See AUTHORS.txt for a list of contributors.
+Copyright (c) 2014-2019 Kolja Glogowski and others (see AUTHORS.txt)
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/README.rst new/drms-0.5.7/README.rst
--- old/drms-0.5.6/README.rst   2019-02-17 19:39:21.000000000 +0100
+++ new/drms-0.5.7/README.rst   2019-08-16 20:00:17.000000000 +0200
@@ -2,17 +2,20 @@
 drms
 ====
 
-`Docs <http://drms.readthedocs.io/>`_ |
-`Tutorial <https://drms.readthedocs.io/en/latest/tutorial.html>`_ |
+`Docs <https://docs.sunpy.org/projects/drms>`_ |
+`Tutorial <https://docs.sunpy.org/projects/drms/en/latest/tutorial.html>`_ |
 `Github <https://github.com/sunpy/drms>`_ |
-`PyPI <https://pypi.python.org/pypi/drms>`_
+`PyPI <https://pypi.python.org/pypi/drms>`_ 
+
+.. image:: https://zenodo.org/badge/58651845.svg
+   :target: https://zenodo.org/badge/latestdoi/58651845
 
 The ``drms`` module provides an easy-to-use interface for accessing HMI,
 AIA and MDI data with Python. It uses the publicly accessible
 `JSOC <http://jsoc.stanford.edu/>`_ DRMS server by default, but can also
 be used with local `NetDRMS <http://jsoc.stanford.edu/netdrms/>`_ sites.
-More information, including a detailed tutorial is available on
-`Read the Docs <http://drms.readthedocs.io/>`_.
+More information, including a detailed tutorial, is available in the
+`Documentation <https://docs.sunpy.org/projects/drms>`_.
 
 
 Requirements
@@ -32,26 +35,94 @@
 Installation
 ------------
 
-The ``drms`` Python package can be installed from
-`PyPI <https://pypi.python.org/pypi/drms>`_ using
+If you are using `Anaconda`_, it is recommended to use the `conda-forge`_
+package::
+
+    conda config --append channels conda-forge
+    conda install drms
+
+Otherwise the ``drms`` Python package can be installed from `PyPI`_ using
 
 ::
 
     pip install drms
 
-To upgrade an already existing installation to the latest release, you
-can write::
+Note: If you do not use a Python distribution, like `Anaconda`_,
+and did not create an isolated Python environment using `Virtualenv`_,
+you might need to add ``--user`` to the ``pip`` command::
 
-    pip install -U drms
+    pip install --user drms
 
 
-Note: If you do not use a Python distribution, like
-`Anaconda <https://www.continuum.io/downloads>`_,
-and did not create an isolated Python environment using
-`Virtualenv <https://virtualenv.pypa.io/en/stable/>`_,
-you might need to add ``--user`` to the ``pip`` command::
+.. _PyPI: https://pypi.python.org/pypi/drms
+.. _conda-forge: https://anaconda.org/conda-forge/drms
+.. _Anaconda: https://www.anaconda.com/distribution/
+.. _Virtualenv: https://virtualenv.pypa.io
 
-    pip install --user drms
+
+Running Tests
+-------------
+
+In order to run any unit tests, `pytest`_ needs to be installed.
+
+Basic tests for the currently installed ``drms`` package can be run using::
+
+    python -m drms.tests
+
+To perform online tests against the JSOC servers, use the ``--run-jsoc`` flag::
+
+    python -m drms.tests --run-jsoc
+
+To also include additional email verification and JSOC export tests,
+you need to specify a `registered email address`_, e.g.::
+
+    python -m drms.tests --run-jsoc --email [email protected]
+
+.. _pytest: https://pypi.org/project/pytest/
+.. _registered email address: http://jsoc.stanford.edu/ajax/register_email.html
+
+
+Getting Help
+------------
+
+This is a SunPy-affiliated package. For more information or to ask questions
+about drms or SunPy, check out:
+
+-  `drms Documentation`_
+-  `SunPy Matrix Channel`_
+-  `SunPy Mailing List`_
+
+.. _drms Documentation: https://docs.sunpy.org/projects/drms/en/latest/
+.. _SunPy Matrix Channel: https://riot.im/app/#/room/#sunpy:matrix.org
+.. _SunPy Mailing List: https://groups.google.com/forum/#!forum/sunpy
+
+
+Contributing
+------------
+
+If you would like to get involved, start by joining the `SunPy mailing list`_
+and check out the `Developers Guide`_ section of the SunPy docs. Stop by our
+chat room `#sunpy:matrix.org`_ if you have any questions.
+Help is always welcome so let us know what you like to work on, or check out
+the `issues page`_ for the list of known outstanding items.
+
+For more information on contributing to SunPy, please read our
+`Newcomers' guide`_.
+
+.. _SunPy mailing list: https://groups.google.com/forum/#!forum/sunpy
+.. _Developers Guide: https://docs.sunpy.org/en/latest/dev_guide/index.html
+.. _`#sunpy:matrix.org`: https://riot.im/app/#/room/#sunpy:matrix.org
+.. _issues page: https://github.com/sunpy/drms/issues
+.. _Newcomers' guide: https://docs.sunpy.org/en/latest/dev_guide/newcomers.html
+
+
+Code of Conduct
+---------------
+
+When you are interacting with the SunPy community you are asked to follow
+our `Code of Conduct`_.
+
+.. _Code of Conduct: https://docs.sunpy.org/en/latest/code_of_conduct.html
 
 
 Acknowledgements
@@ -61,4 +132,7 @@
 Research Council under the European Union's Seventh Framework Programme
 (FP/2007-2013) / ERC Grant Agreement no. 307117.
 
+Parts of this file were adopted from the SunPy README file,
+Copyright (c) 2013-2019 The SunPy developers.
+
 See AUTHORS.txt for a list of contributors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/doc/intro.rst new/drms-0.5.7/doc/intro.rst
--- old/drms-0.5.6/doc/intro.rst        2019-02-17 19:39:21.000000000 +0100
+++ new/drms-0.5.7/doc/intro.rst        2019-08-16 20:00:17.000000000 +0200
@@ -42,29 +42,33 @@
 Installation
 ------------
 
-The ``drms`` Python package can be installed from
-`PyPI <https://pypi.python.org/pypi/drms>`_ using
+If you are using `Anaconda`_, it is recommended to use the `conda-forge`_
+package::
 
-::
+    conda config --append channels conda-forge
+    conda install drms
 
-    pip install drms
+Otherwise the ``drms`` Python package can be installed from `PyPI`_ using
 
-To upgrade an already existing installation to the latest release, you
-can write::
+::
 
-    pip install -U drms
+    pip install drms
 
 
 .. note::
-   If you do not use a Python distribution, like
-   `Anaconda <https://www.continuum.io/downloads>`_,
-   and did not create an isolated Python environment using
-   `Virtualenv <https://virtualenv.pypa.io/en/stable/>`_,
+   If you do not use a Python distribution, like `Anaconda`_,
+   and did not create an isolated Python environment using `Virtualenv`_,
    you might need to add ``--user`` to the ``pip`` command::
 
        pip install --user drms
 
 
+.. _PyPI: https://pypi.python.org/pypi/drms
+.. _conda-forge: https://anaconda.org/conda-forge/drms
+.. _Anaconda: https://www.anaconda.com/distribution/
+.. _Virtualenv: https://virtualenv.pypa.io
+
+
 Acknowledgements
 ----------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/drms/_version.py 
new/drms-0.5.7/drms/_version.py
--- old/drms-0.5.6/drms/_version.py     2019-02-17 19:39:21.000000000 +0100
+++ new/drms-0.5.7/drms/_version.py     2019-08-16 20:00:17.000000000 +0200
@@ -24,9 +24,9 @@
     # setup.py/versioneer.py will grep for the variable names, so they must
     # each be defined on a line of their own. _version.py will just call
     # get_keywords().
-    git_refnames = " (tag: v0.5.6)"
-    git_full = "d4ab3b35adba43123dd2b130c05450305f07e5ab"
-    git_date = "2019-02-17 19:39:21 +0100"
+    git_refnames = " (tag: v0.5.7)"
+    git_full = "478957d8c6f61c1ef2d63587eb06566940e09f47"
+    git_date = "2019-08-16 20:00:17 +0200"
     keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
     return keywords
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/create_joss_figure.py 
new/drms-0.5.7/examples/create_joss_figure.py
--- old/drms-0.5.6/examples/create_joss_figure.py       1970-01-01 
01:00:00.000000000 +0100
+++ new/drms-0.5.7/examples/create_joss_figure.py       2019-08-16 
20:00:17.000000000 +0200
@@ -0,0 +1,189 @@
+"""
+This example creates the figure shown in the JOSS paper.
+"""
+from __future__ import absolute_import, division, print_function
+import os.path
+import numpy as np
+import matplotlib.pyplot as plt
+from matplotlib import dates
+from astropy.io import fits
+import example_helpers
+import drms
+
+import pandas
+pandas_version = tuple(map(int, pandas.__version__.split('.')[:2]))
+if pandas_version >= (0, 22):
+    # Since pandas v0.22, we need to explicitely register matplotlib
+    # converters to use pandas.Timestamp objects in plots.
+    pandas.plotting.register_matplotlib_converters()
+
+
+def read_fits_data(fname):
+    """Reads FITS data and fixes/ignores any non-standard FITS keywords."""
+    hdulist = fits.open(fname)
+    hdulist.verify('silentfix+warn')
+    return hdulist[1].data
+
+# Print the doc string of this example.
+print(__doc__)
+
+# This example requires a registered export email address. You can register
+# JSOC exports at: http://jsoc.stanford.edu/ajax/register_email.html
+#
+# You will be asked for your registered email address during execution of
+# this example. If you don't want to enter it every time you run this script,
+# you can set the environment variable JSOC_EXPORT_EMAIL or the variable
+# below to your registered email address.
+email = ''
+
+# Should the plots been shown and/or saved?
+save_plots = True
+show_plots = True
+
+# Series, harpnum and segment selection
+series = 'hmi.sharp_720s'
+sharpnum = 4315
+segments = ['magnetogram', 'continuum']
+fname_fmt_str = '{series}.{sharpnum}.{tstr}.{segment}.fits'
+
+# Download directory
+out_dir = os.path.join('downloads', 'sharp_joss')
+
+# Create download directory if it does not exist yet.
+if not os.path.exists(out_dir):
+    os.makedirs(out_dir)
+
+# Keywords to be queried
+kwlist = ['T_REC', 'LON_FWT', 'CROTA2', 'AREA_ACR', 'USFLUX', 'ERRVF',
+          'CRPIX1', 'CRPIX2', 'CDELT1', 'CDELT2', 'CRVAL1', 'CRVAL2']
+
+# Create DRMS client, use debug=True to see the query URLs.
+c = drms.Client(verbose=True)
+
+print('Querying metadata...')
+kw = c.query('%s[%d]' % (series, sharpnum), key=kwlist, rec_index=True)
+t = drms.to_datetime(kw.T_REC)
+
+print('Finding central meridian crossing...')
+rec_cm = kw.LON_FWT.abs().idxmin()
+k_cm = kw.loc[rec_cm]
+t_cm = drms.to_datetime(kw.T_REC[rec_cm])
+print('-> rec_cm:', rec_cm, '@', kw.LON_FWT[rec_cm], 'deg')
+
+# Check if any files were already downloaded.
+fnames = {}
+download_segments = []
+t_cm_str = t_cm.strftime('%Y%m%d_%H%M%S_TAI')
+for s in segments:
+    fnames[s] = fname_fmt_str.format(
+        series=series, sharpnum=sharpnum, tstr=t_cm_str, segment=s)
+    if not os.path.exists(os.path.join(out_dir, fnames[s])):
+        download_segments.append(s)
+
+# Only download missing files.
+if download_segments:
+    print()
+    if not email:
+        email = example_helpers.get_export_email()
+    if not email or not c.check_email(email):
+        raise RuntimeError('Email address is not valid or not registered.')
+    print('Downloading files...')
+    export_query = '%s{%s}' % (rec_cm, ','.join(download_segments))
+    r = c.export(export_query, email=email)
+    dl = r.download(out_dir)
+    print()
+
+print('Reading image files...')
+data_mag = read_fits_data(os.path.join(out_dir, fnames['magnetogram']))
+data_cont = read_fits_data(os.path.join(out_dir, fnames['continuum']))
+
+print('Creating plots...')
+plt.rc('figure', figsize=(11, 6.75))
+plt.rc('axes', titlesize='medium')
+plt.rc('axes.formatter', use_mathtext=True)
+plt.rc('mathtext', default='regular')
+plt.rc('legend', fontsize='medium', framealpha=1.0)
+plt.rc('image', origin='lower', interpolation='none', cmap='gray')
+
+# Convert pixel to world coordinates using WCS keywords
+ny, nx = data_mag.shape
+xmin = (1 - k_cm.CRPIX1)*k_cm.CDELT1 + k_cm.CRVAL1
+xmax = (nx - k_cm.CRPIX1)*k_cm.CDELT1 + k_cm.CRVAL1
+ymin = (1 - k_cm.CRPIX2)*k_cm.CDELT2 + k_cm.CRVAL2
+ymax = (ny - k_cm.CRPIX2)*k_cm.CDELT2 + k_cm.CRVAL2
+
+# We assume a CROTA2 value close to 180 degree, so we can approximate the
+# rotation by inverting the image axes.
+if abs(180 - k_cm.CROTA2) < 0.1:
+    data_mag = data_mag[::-1, ::-1]
+    data_cont = data_cont[::-1, ::-1]
+    xmin, xmax = -xmax, -xmin
+    ymin, ymax = -ymax, -ymin
+else:
+    raise RuntimeError('CROTA2 = %.2f value not supported.' % k_cm.CROTA2)
+
+# Compute the image extent used for imshow
+extent = (xmin - abs(k_cm.CDELT1)/2, xmax + abs(k_cm.CDELT1)/2,
+          ymin - abs(k_cm.CDELT2)/2, ymax + abs(k_cm.CDELT2)/2)
+
+# Create figure with 2x2 axes, with enough space for colorbars on the right
+fig, ax = plt.subplots(
+    2, 2, num=1, clear=True,
+    gridspec_kw={'width_ratios': (2, 2.5)})
+ax_meta, ax_img = ax[:, 0], ax[:, 1]
+
+# Create metadata line plots in the left column
+# Note: t.values is used for errorbar() because of an issue with pandas < 0.24
+axi = ax_meta[0]
+axi.errorbar(t.values, kw.USFLUX/1e22, yerr=kw.ERRVF/1e22, fmt='.', ms=2,
+             capsize=0, label='USFLUX')
+axi.set_title('Total unsigned flux')
+axi.set_ylabel(r'Mx $\times 10^{\minus 22}$')
+
+axi = ax_meta[1]
+axi.plot(t, kw.AREA_ACR/1e3, '.', ms=2, label='AREA_ACR')
+axi.set_title('LoS area of active pixels')
+axi.set_ylabel(r'$\mu$Hem $\times 1000$')
+
+ax_meta[0].set_xticklabels([])
+ax_meta[1].xaxis.set_major_locator(dates.AutoDateLocator())
+ax_meta[1].xaxis.set_major_formatter(dates.DateFormatter('%b\n%d'))
+ax_meta[1].set_xlabel('Date')
+
+for axi in ax_meta:
+    axi.axvline(t_cm, ls='--', color='tab:orange')
+    axi.legend(loc='upper left', numpoints=1)
+
+# Create image plots in the right column
+axi = ax_img[0]
+axi.set_title('Continuum intensity')
+im = axi.imshow(data_cont/1e3, extent=extent, vmax=61)
+cb = plt.colorbar(im, ax=axi, label=r'$I_{\mathrm{c}}$ [kDN/s]', pad=0.03)
+
+axi = ax_img[1]
+axi.set_title('LoS magnetogram')
+im = axi.imshow(data_mag/1e3, extent=extent, vmin=-1, vmax=1)
+cb = plt.colorbar(im, ax=axi, label=r'$B_{\mathrm{los}}$ [kG]', pad=0.03)
+cb.set_ticks([-1, -0.5, 0, 0.5, 1, 2])
+
+for axi in ax_img:
+    axi.set_xlim(-130, 141)
+    axi.set_ylim(-262, -86)
+    axi.locator_params(axis='y', nbins=4)
+
+ax_img[0].set_xticklabels([])
+ax_img[1].set_xlabel('Solar X [arcsec]')
+ax_img[0].set_ylabel('Solar Y [arcsec]')
+ax_img[1].set_ylabel('Solar Y [arcsec]')
+
+# Make better use of figure space
+fig.tight_layout(pad=1.2, w_pad=2)
+plt.draw()
+
+if save_plots:
+    print('Saving figure...')
+    fig.savefig('joss_figure.pdf', dpi=200)
+
+if show_plots:
+    print('Showing figure...')
+    plt.show()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/example_helpers.py 
new/drms-0.5.7/examples/example_helpers.py
--- old/drms-0.5.6/examples/example_helpers.py  2019-02-17 19:39:21.000000000 
+0100
+++ new/drms-0.5.7/examples/example_helpers.py  2019-08-16 20:00:17.000000000 
+0200
@@ -19,6 +19,15 @@
     return email
 
 
+def get_export_email():
+    """
+    Get export email address from the JSOC_EXPORT_EMAIL environ variable, or
+    ask the the user to enter their address if JSOC_EXPORT_EMAIL is not set.
+    """
+    email = os.environ.get('JSOC_EXPORT_EMAIL')
+    return email if email is not None else ask_for_export_email()
+
+
 def python_path_prepend(reldir):
     """Prepend relative path to the Python import path list."""
     absdir = op.abspath(op.join(op.dirname(__file__), reldir))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/export_as_is.py 
new/drms-0.5.7/examples/export_as_is.py
--- old/drms-0.5.6/examples/export_as_is.py     2019-02-17 19:39:21.000000000 
+0100
+++ new/drms-0.5.7/examples/export_as_is.py     2019-08-16 20:00:17.000000000 
+0200
@@ -14,10 +14,13 @@
 print(__doc__)
 
 
-# If you don't want to enter your email address during program execution, you
-# can set this variable to the email address you have registered for JSOC data
-# exports. If you have not registered your email yet, you can do this on the
-# JSOC website at: http://jsoc.stanford.edu/ajax/register_email.html
+# This example requires a registered export email address. You can register
+# JSOC exports at: http://jsoc.stanford.edu/ajax/register_email.html
+#
+# You will be asked for your registered email address during execution of
+# this example. If you don't want to enter it every time you run this script,
+# you can set the environment variable JSOC_EXPORT_EMAIL or the variable
+# below to your registered email address.
 email = ''
 
 # Series, harpnum, timespan and segment selection
@@ -39,7 +42,7 @@
 # Check if the email address was set at the top of this script. If not, ask for
 # a registered email address.
 if not email:
-    email = example_helpers.ask_for_export_email()
+    email = example_helpers.get_export_email()
 if not email or not c.check_email(email):
     raise RuntimeError('Email address is not valid or not registered.')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/export_fits.py 
new/drms-0.5.7/examples/export_fits.py
--- old/drms-0.5.6/examples/export_fits.py      2019-02-17 19:39:21.000000000 
+0100
+++ new/drms-0.5.7/examples/export_fits.py      2019-08-16 20:00:17.000000000 
+0200
@@ -13,10 +13,13 @@
 print(__doc__)
 
 
-# If you don't want to enter your email address during program execution, you
-# can set this variable to the email address you have registered for JSOC data
-# exports. If you have not registered your email yet, you can do this on the
-# JSOC website at: http://jsoc.stanford.edu/ajax/register_email.html
+# This example requires a registered export email address. You can register
+# JSOC exports at: http://jsoc.stanford.edu/ajax/register_email.html
+#
+# You will be asked for your registered email address during execution of
+# this example. If you don't want to enter it every time you run this script,
+# you can set the environment variable JSOC_EXPORT_EMAIL or the variable
+# below to your registered email address.
 email = ''
 
 # Use 'as-is' instead of 'fits', if record keywords are not needed in the
@@ -43,7 +46,7 @@
 # Check if the email address was set at the top of this script. If not, ask for
 # a registered email address.
 if not email:
-    email = example_helpers.ask_for_export_email()
+    email = example_helpers.get_export_email()
 if not email or not c.check_email(email):
     raise RuntimeError('Email address is not valid or not registered.')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/export_jpg.py 
new/drms-0.5.7/examples/export_jpg.py
--- old/drms-0.5.6/examples/export_jpg.py       2019-02-17 19:39:21.000000000 
+0100
+++ new/drms-0.5.7/examples/export_jpg.py       2019-08-16 20:00:17.000000000 
+0200
@@ -14,10 +14,13 @@
 print(__doc__)
 
 
-# If you don't want to enter your email address during program execution, you
-# can set this variable to the email address you have registered for JSOC data
-# exports. If you have not registered your email yet, you can do this on the
-# JSOC website at: http://jsoc.stanford.edu/ajax/register_email.html
+# This example requires a registered export email address. You can register
+# JSOC exports at: http://jsoc.stanford.edu/ajax/register_email.html
+#
+# You will be asked for your registered email address during execution of
+# this example. If you don't want to enter it every time you run this script,
+# you can set the environment variable JSOC_EXPORT_EMAIL or the variable
+# below to your registered email address.
 email = ''
 
 # Series, timespan, wavelength and segment
@@ -48,7 +51,7 @@
 # Check if the email address was set at the top of this script. If not, ask for
 # a registered email address.
 if not email:
-    email = example_helpers.ask_for_export_email()
+    email = example_helpers.get_export_email()
 if not email or not c.check_email(email):
     raise RuntimeError('Email address is not valid or not registered.')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/export_movie.py 
new/drms-0.5.7/examples/export_movie.py
--- old/drms-0.5.6/examples/export_movie.py     2019-02-17 19:39:21.000000000 
+0100
+++ new/drms-0.5.7/examples/export_movie.py     2019-08-16 20:00:17.000000000 
+0200
@@ -14,10 +14,13 @@
 print(__doc__)
 
 
-# If you don't want to enter your email address during program execution, you
-# can set this variable to the email address you have registered for JSOC data
-# exports. If you have not registered your email yet, you can do this on the
-# JSOC website at: http://jsoc.stanford.edu/ajax/register_email.html
+# This example requires a registered export email address. You can register
+# JSOC exports at: http://jsoc.stanford.edu/ajax/register_email.html
+#
+# You will be asked for your registered email address during execution of
+# this example. If you don't want to enter it every time you run this script,
+# you can set the environment variable JSOC_EXPORT_EMAIL or the variable
+# below to your registered email address.
 email = ''
 
 # Series, timespan and segment
@@ -47,7 +50,7 @@
 # Check if the email address was set at the top of this script. If not, ask for
 # a registered email address.
 if not email:
-    email = example_helpers.ask_for_export_email()
+    email = example_helpers.get_export_email()
 if not email or not c.check_email(email):
     raise RuntimeError('Email address is not valid or not registered.')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/export_print_urls.py 
new/drms-0.5.7/examples/export_print_urls.py
--- old/drms-0.5.6/examples/export_print_urls.py        2019-02-17 
19:39:21.000000000 +0100
+++ new/drms-0.5.7/examples/export_print_urls.py        2019-08-16 
20:00:17.000000000 +0200
@@ -10,10 +10,13 @@
 print(__doc__)
 
 
-# If you don't want to enter your email address during program execution, you
-# can set this variable to the email address you have registered for JSOC data
-# exports. If you have not registered your email yet, you can do this on the
-# JSOC website at: http://jsoc.stanford.edu/ajax/register_email.html
+# This example requires a registered export email address. You can register
+# JSOC exports at: http://jsoc.stanford.edu/ajax/register_email.html
+#
+# You will be asked for your registered email address during execution of
+# this example. If you don't want to enter it every time you run this script,
+# you can set the environment variable JSOC_EXPORT_EMAIL or the variable
+# below to your registered email address.
 email = ''
 
 # Data export query string
@@ -25,7 +28,7 @@
 # Check if the email address was set at the top of this script. If not, ask for
 # a registered email address.
 if not email:
-    email = example_helpers.ask_for_export_email()
+    email = example_helpers.get_export_email()
 if not email or not c.check_email(email):
     raise RuntimeError('Email address is not valid or not registered.')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/export_tar.py 
new/drms-0.5.7/examples/export_tar.py
--- old/drms-0.5.6/examples/export_tar.py       2019-02-17 19:39:21.000000000 
+0100
+++ new/drms-0.5.7/examples/export_tar.py       2019-08-16 20:00:17.000000000 
+0200
@@ -16,10 +16,13 @@
 print(__doc__)
 
 
-# If you don't want to enter your email address during program execution, you
-# can set this variable to the email address you have registered for JSOC data
-# exports. If you have not registered your email yet, you can do this on the
-# JSOC website at: http://jsoc.stanford.edu/ajax/register_email.html
+# This example requires a registered export email address. You can register
+# JSOC exports at: http://jsoc.stanford.edu/ajax/register_email.html
+#
+# You will be asked for your registered email address during execution of
+# this example. If you don't want to enter it every time you run this script,
+# you can set the environment variable JSOC_EXPORT_EMAIL or the variable
+# below to your registered email address.
 email = ''
 
 # Series, Carrington rotation, Carrington longitude and data segments
@@ -41,7 +44,7 @@
 # Check if the email address was set at the top of this script. If not, ask for
 # a registered email address.
 if not email:
-    email = example_helpers.ask_for_export_email()
+    email = example_helpers.get_export_email()
 if not email or not c.check_email(email):
     raise RuntimeError('Email address is not valid or not registered.')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/plot_hmi_lightcurve.py 
new/drms-0.5.7/examples/plot_hmi_lightcurve.py
--- old/drms-0.5.6/examples/plot_hmi_lightcurve.py      2019-02-17 
19:39:21.000000000 +0100
+++ new/drms-0.5.7/examples/plot_hmi_lightcurve.py      2019-08-16 
20:00:17.000000000 +0200
@@ -3,6 +3,13 @@
 import example_helpers
 import drms
 
+import pandas
+pandas_version = tuple(map(int, pandas.__version__.split('.')[:2]))
+if pandas_version >= (0, 22):
+    # Since pandas v0.22, we need to explicitely register matplotlib
+    # converters to use pandas.Timestamp objects in plots.
+    pandas.plotting.register_matplotlib_converters()
+
 
 # Series name and timespan
 series = 'hmi.ic_720s'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/examples/plot_polarfield.py 
new/drms-0.5.7/examples/plot_polarfield.py
--- old/drms-0.5.6/examples/plot_polarfield.py  2019-02-17 19:39:21.000000000 
+0100
+++ new/drms-0.5.7/examples/plot_polarfield.py  2019-08-16 20:00:17.000000000 
+0200
@@ -5,6 +5,12 @@
 import example_helpers
 import drms
 
+pandas_version = tuple(map(int, pd.__version__.split('.')[:2]))
+if pandas_version >= (0, 22):
+    # Since pandas v0.22, we need to explicitely register matplotlib
+    # converters to use pandas.Timestamp objects in plots.
+    pd.plotting.register_matplotlib_converters()
+
 
 # Series name, time range and time steps
 series = 'hmi.meanpf_720s'
@@ -34,7 +40,7 @@
 
 # Compute 30d moving average and standard deviation using a boxcar window
 win_size = int(30*24*3600/dt.total_seconds())
-if tuple(map(int, pd.__version__.split('.')[:2])) >= (0, 18):
+if pandas_version >= (0, 18):
     a_avg = a.rolling(win_size, min_periods=1, center=True).mean()
     a_std = a.rolling(win_size, min_periods=1, center=True).std()
 else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/licenses/NUMPY_LICENSE.txt 
new/drms-0.5.7/licenses/NUMPY_LICENSE.txt
--- old/drms-0.5.6/licenses/NUMPY_LICENSE.txt   1970-01-01 01:00:00.000000000 
+0100
+++ new/drms-0.5.7/licenses/NUMPY_LICENSE.txt   2019-08-16 20:00:17.000000000 
+0200
@@ -0,0 +1,30 @@
+Copyright (c) 2005-2016, NumPy Developers.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+       copyright notice, this list of conditions and the following
+       disclaimer in the documentation and/or other materials provided
+       with the distribution.
+
+    * Neither the name of the NumPy Developers nor the names of any
+       contributors may be used to endorse or promote products derived
+       from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/licenses/PYTHON_LICENSE.txt 
new/drms-0.5.7/licenses/PYTHON_LICENSE.txt
--- old/drms-0.5.6/licenses/PYTHON_LICENSE.txt  1970-01-01 01:00:00.000000000 
+0100
+++ new/drms-0.5.7/licenses/PYTHON_LICENSE.txt  2019-08-16 20:00:17.000000000 
+0200
@@ -0,0 +1,255 @@
+A. HISTORY OF THE SOFTWARE
+==========================
+
+Python was created in the early 1990s by Guido van Rossum at Stichting
+Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
+as a successor of a language called ABC.  Guido remains Python's
+principal author, although it includes many contributions from others.
+
+In 1995, Guido continued his work on Python at the Corporation for
+National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
+in Reston, Virginia where he released several versions of the
+software.
+
+In May 2000, Guido and the Python core development team moved to
+BeOpen.com to form the BeOpen PythonLabs team.  In October of the same
+year, the PythonLabs team moved to Digital Creations (now Zope
+Corporation, see http://www.zope.com).  In 2001, the Python Software
+Foundation (PSF, see http://www.python.org/psf/) was formed, a
+non-profit organization created specifically to own Python-related
+Intellectual Property.  Zope Corporation is a sponsoring member of
+the PSF.
+
+All Python releases are Open Source (see http://www.opensource.org for
+the Open Source Definition).  Historically, most, but not all, Python
+releases have also been GPL-compatible; the table below summarizes
+the various releases.
+
+    Release         Derived     Year        Owner       GPL-
+                    from                                compatible? (1)
+
+    0.9.0 thru 1.2              1991-1995   CWI         yes
+    1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes
+    1.6             1.5.2       2000        CNRI        no
+    2.0             1.6         2000        BeOpen.com  no
+    1.6.1           1.6         2001        CNRI        yes (2)
+    2.1             2.0+1.6.1   2001        PSF         no
+    2.0.1           2.0+1.6.1   2001        PSF         yes
+    2.1.1           2.1+2.0.1   2001        PSF         yes
+    2.1.2           2.1.1       2002        PSF         yes
+    2.1.3           2.1.2       2002        PSF         yes
+    2.2 and above   2.1.1       2001-now    PSF         yes
+
+Footnotes:
+
+(1) GPL-compatible doesn't mean that we're distributing Python under
+    the GPL.  All Python licenses, unlike the GPL, let you distribute
+    a modified version without making your changes open source.  The
+    GPL-compatible licenses make it possible to combine Python with
+    other software that is released under the GPL; the others don't.
+
+(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
+    because its license has a choice of law clause.  According to
+    CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
+    is "not incompatible" with the GPL.
+
+Thanks to the many outside volunteers who have worked under Guido's
+direction to make these releases possible.
+
+
+B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
+===============================================================
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 
2010,
+2011, 2012, 2013, 2014, 2015, 2016 Python Software Foundation; All Rights
+Reserved" are retained in Python alone or in any derivative version prepared by
+Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee.  This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions.  Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee.  This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party.  As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee.  Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement.  This Agreement together with
+Python 1.6.1 may be located on the Internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013.  This
+Agreement may also be obtained from a proxy server on the Internet
+using the following URL: http://hdl.handle.net/1895.22/1013";.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee.  This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+        ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands.  All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/licenses/README.md 
new/drms-0.5.7/licenses/README.md
--- old/drms-0.5.6/licenses/README.md   1970-01-01 01:00:00.000000000 +0100
+++ new/drms-0.5.7/licenses/README.md   2019-08-16 20:00:17.000000000 +0200
@@ -0,0 +1,4 @@
+# Licenses
+
+This directory contains license texts for all individual files that are
+provided under a license different from the main license of the package.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/licenses/SUNPY_LICENSE.txt 
new/drms-0.5.7/licenses/SUNPY_LICENSE.txt
--- old/drms-0.5.6/licenses/SUNPY_LICENSE.txt   1970-01-01 01:00:00.000000000 
+0100
+++ new/drms-0.5.7/licenses/SUNPY_LICENSE.txt   2019-08-16 20:00:17.000000000 
+0200
@@ -0,0 +1,25 @@
+Copyright (c) 2013-2019 The SunPy developers
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/licenses/VERSIONEER_LICENSE.txt 
new/drms-0.5.7/licenses/VERSIONEER_LICENSE.txt
--- old/drms-0.5.6/licenses/VERSIONEER_LICENSE.txt      1970-01-01 
01:00:00.000000000 +0100
+++ new/drms-0.5.7/licenses/VERSIONEER_LICENSE.txt      2019-08-16 
20:00:17.000000000 +0200
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+    HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+     likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+     subject to the limitations in paragraph 4(a), below;
+  v. rights protecting the extraction, dissemination, use and reuse of data
+     in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+     European Parliament and of the Council of 11 March 1996 on the legal
+     protection of databases, and under any national implementation
+     thereof, including any amended or successor version of such
+     directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+     world based on applicable law or treaty, and any national
+     implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+    surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+    warranties of any kind concerning the Work, express, implied,
+    statutory or otherwise, including without limitation warranties of
+    title, merchantability, fitness for a particular purpose, non
+    infringement, or the absence of latent or other defects, accuracy, or
+    the present or absence of errors, whether or not discoverable, all to
+    the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+    that may apply to the Work or any use thereof, including without
+    limitation any person's Copyright and Related Rights in the Work.
+    Further, Affirmer disclaims responsibility for obtaining any necessary
+    consents, permissions or other rights required for any use of the
+    Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+    party to this document and has no duty or obligation with respect to
+    this CC0 or use of the Work.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/paper/.gitignore 
new/drms-0.5.7/paper/.gitignore
--- old/drms-0.5.6/paper/.gitignore     1970-01-01 01:00:00.000000000 +0100
+++ new/drms-0.5.7/paper/.gitignore     2019-08-16 20:00:17.000000000 +0200
@@ -0,0 +1 @@
+paper.pdf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/paper/paper.bib 
new/drms-0.5.7/paper/paper.bib
--- old/drms-0.5.6/paper/paper.bib      1970-01-01 01:00:00.000000000 +0100
+++ new/drms-0.5.7/paper/paper.bib      2019-08-16 20:00:17.000000000 +0200
@@ -0,0 +1,168 @@
+@misc{drms,
+  author       = {Kolja Glogowski and
+                  Monica Bobra and
+                  Nabil Freij and
+                  Stuart Mumford and
+                  David Pérez-Suárez and
+                  Nitin Choudhary},
+  title        = {sunpy/drms: drms v0.5.6},
+  month        = feb,
+  year         = 2019,
+  doi          = {10.5281/zenodo.2572850},
+  url          = {https://doi.org/10.5281/zenodo.2572850}
+}
+
+@ARTICLE{SunPy2015,
+   author = {{SunPy Community} and {Mumford}, S.~J. and {Christe}, S. and 
+       {P{\'e}rez-Su{\'a}rez}, D. and {Ireland}, J. and {Shih}, A.~Y. and 
+       {Inglis}, A.~R. and {Liedtke}, S. and {Hewett}, R.~J. and {Mayer}, F. 
and 
+       {Hughitt}, K. and {Freij}, N. and {Meszaros}, T. and {Bennett}, S.~M. 
and 
+       {Malocha}, M. and {Evans}, J. and {Agrawal}, A. and {Leonard}, A.~J. 
and 
+       {Robitaille}, T.~P. and {Mampaey}, B. and {Campos-Rozo}, J.~I. and 
+       {Kirk}, M.~S.},
+    title = "{SunPy -- Python for solar physics}",
+  journal = {Computational Science and Discovery},
+archivePrefix = "arXiv",
+   eprint = {1505.02563},
+ primaryClass = "astro-ph.IM",
+     year = 2015,
+    month = jan,
+   volume = 8,
+   number = 1,
+      eid = {014009},
+    pages = {014009},
+      doi = {10.1088/1749-4699/8/1/014009},
+   adsurl = {http://adsabs.harvard.edu/abs/2015CS%26D....8a4009S},
+  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+@ARTICLE{schou12,
+   author = {{Schou}, J. and {Scherrer}, P.~H. and {Bush}, R.~I. and 
{Wachter}, R. and 
+       {Couvidat}, S. and {Rabello-Soares}, M.~C. and {Bogart}, R.~S. and 
+       {Hoeksema}, J.~T. and {Liu}, Y. and {Duvall}, T.~L. and {Akin}, D.~J. 
and 
+       {Allard}, B.~A. and {Miles}, J.~W. and {Rairden}, R. and {Shine}, R.~A. 
and 
+       {Tarbell}, T.~D. and {Title}, A.~M. and {Wolfson}, C.~J. and 
+       {Elmore}, D.~F. and {Norton}, A.~A. and {Tomczyk}, S.},
+    title = "{Design and Ground Calibration of the Helioseismic and Magnetic 
Imager (HMI) Instrument on the Solar Dynamics Observatory (SDO)}",
+  journal = {Solar Physics},
+ keywords = {Solar Dynamics Observatory, Helioseismology, observations, 
Instrumentation and data management, Magnetic fields, photosphere},
+     year = 2012,
+    month = jan,
+   volume = 275,
+    pages = {229-259},
+      doi = {10.1007/s11207-011-9842-2},
+   adsurl = {http://adsabs.harvard.edu/abs/2012SoPh..275..229S},
+  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+@ARTICLE{lemen12,
+   author = {{Lemen}, J.~R. and {Title}, A.~M. and {Akin}, D.~J. and 
{Boerner}, P.~F. and 
+       {Chou}, C. and {Drake}, J.~F. and {Duncan}, D.~W. and {Edwards}, C.~G. 
and 
+       {Friedlaender}, F.~M. and {Heyman}, G.~F. and {Hurlburt}, N.~E. and 
+       {Katz}, N.~L. and {Kushner}, G.~D. and {Levay}, M. and {Lindgren}, 
R.~W. and 
+       {Mathur}, D.~P. and {McFeaters}, E.~L. and {Mitchell}, S. and 
+       {Rehse}, R.~A. and {Schrijver}, C.~J. and {Springer}, L.~A. and 
+       {Stern}, R.~A. and {Tarbell}, T.~D. and {Wuelser}, J.-P. and 
+       {Wolfson}, C.~J. and {Yanari}, C. and {Bookbinder}, J.~A. and 
+       {Cheimets}, P.~N. and {Caldwell}, D. and {Deluca}, E.~E. and 
+       {Gates}, R. and {Golub}, L. and {Park}, S. and {Podgorski}, W.~A. and 
+       {Bush}, R.~I. and {Scherrer}, P.~H. and {Gummin}, M.~A. and 
+       {Smith}, P. and {Auker}, G. and {Jerram}, P. and {Pool}, P. and 
+       {Soufli}, R. and {Windt}, D.~L. and {Beardsley}, S. and {Clapp}, M. and 
+       {Lang}, J. and {Waltham}, N.},
+    title = "{The Atmospheric Imaging Assembly (AIA) on the Solar Dynamics 
Observatory (SDO)}",
+  journal = {Solar Physics},
+ keywords = {Solar corona, Solar instrumentation, Solar imaging, Extreme 
ultraviolet},
+     year = 2012,
+    month = jan,
+   volume = 275,
+    pages = {17-40},
+      doi = {10.1007/s11207-011-9776-8},
+   adsurl = {http://adsabs.harvard.edu/abs/2012SoPh..275...17L},
+  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+@article{Bobra14,
+author = {Bobra, M. G. and Sun, X. and Hoeksema, J. T. and Turmon, M. and Liu, 
Y. and Hayashi, K. and Barnes, G. and Leka, K. D.},
+doi = {10.1007/s11207-014-0529-3},
+issn = {0038-0938},
+journal = {Solar Physics},
+keywords = {sdo,flares,sharp,active regions},
+month = {apr},
+number = {9},
+pages = {3549--3578},
+title = {{The Helioseismic and Magnetic Imager (HMI) Vector Magnetic Field 
Pipeline: SHARPs – Space-Weather HMI Active Region Patches}},
+adsurl =  {https://ui.adsabs.harvard.edu/abs/2014SoPh..289.3549B/abstract},
+volume = {289},
+year = {2014}
+}
+@ARTICLE{Scherrer1995,
+       author = {{Scherrer}, P.~H. and {Bogart}, R.~S. and {Bush}, R.~I. and
+         {Hoeksema}, J.~T. and {Kosovichev}, A.~G. and {Schou}, J. and
+         {Rosenberg}, W. and {Springer}, L. and {Tarbell}, T.~D. and {Title}, 
A.},
+        title = "{The Solar Oscillations Investigation - Michelson Doppler 
Imager}",
+      journal = {Solar Physics},
+         year = "1995",
+        month = "Dec",
+       volume = {162},
+       number = {1-2},
+        pages = {129-188},
+          doi = {10.1007/BF00733429},
+       adsurl = {https://ui.adsabs.harvard.edu/abs/1995SoPh..162..129S},
+      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+@ARTICLE{DePontieu2014,
+   author = {{De Pontieu}, B. and {Title}, A.~M. and {Lemen}, J.~R. and 
{Kushner}, G.~D. and
+       {Akin}, D.~J. and {Allard}, B. and {Berger}, T. and {Boerner}, P. and
+       {Cheung}, M. and {Chou}, C. and {Drake}, J.~F. and {Duncan}, D.~W. and
+       {Freeland}, S. and {Heyman}, G.~F. and {Hoffman}, C. and {Hurlburt}, 
N.~E. and
+       {Lindgren}, R.~W. and {Mathur}, D. and {Rehse}, R. and {Sabolish}, D. 
and
+       {Seguin}, R. and {Schrijver}, C.~J. and {Tarbell}, T.~D. and
+       {W{\"u}lser}, J.-P. and {Wolfson}, C.~J. and {Yanari}, C. and
+       {Mudge}, J. and {Nguyen-Phuc}, N. and {Timmons}, R. and {van 
Bezooijen}, R. and
+       {Weingrod}, I. and {Brookner}, R. and {Butcher}, G. and {Dougherty}, B. 
and
+       {Eder}, J. and {Knagenhjelm}, V. and {Larsen}, S. and {Mansir}, D. and
+       {Phan}, L. and {Boyle}, P. and {Cheimets}, P.~N. and {DeLuca}, E.~E. and
+       {Golub}, L. and {Gates}, R. and {Hertz}, E. and {McKillop}, S. and
+       {Park}, S. and {Perry}, T. and {Podgorski}, W.~A. and {Reeves}, K. and
+       {Saar}, S. and {Testa}, P. and {Tian}, H. and {Weber}, M. and
+       {Dunn}, C. and {Eccles}, S. and {Jaeggli}, S.~A. and {Kankelborg}, 
C.~C. and
+       {Mashburn}, K. and {Pust}, N. and {Springer}, L. and {Carvalho}, R. and
+       {Kleint}, L. and {Marmie}, J. and {Mazmanian}, E. and {Pereira}, 
T.~M.~D. and
+       {Sawyer}, S. and {Strong}, J. and {Worden}, S.~P. and {Carlsson}, M. and
+       {Hansteen}, V.~H. and {Leenaarts}, J. and {Wiesmann}, M. and
+       {Aloise}, J. and {Chu}, K.-C. and {Bush}, R.~I. and {Scherrer}, P.~H. 
and
+       {Brekke}, P. and {Martinez-Sykora}, J. and {Lites}, B.~W. and
+       {McIntosh}, S.~W. and {Uitenbroek}, H. and {Okamoto}, T.~J. and
+       {Gummin}, M.~A. and {Auker}, G. and {Jerram}, P. and {Pool}, P. and
+       {Waltham}, N.},
+    title = "{The Interface Region Imaging Spectrograph (IRIS)}",
+  journal = {Solar Physics},
+archivePrefix = "arXiv",
+   eprint = {1401.2491},
+ primaryClass = "astro-ph.SR",
+ keywords = {Heating, chromospheric, Heating, coronal, Chromosphere, models, 
Chromosphere, active, Corona, active, Magnetic fields, chromosphere, 
Instrumentation and data management, Spectrum, ultraviolet},
+     year = 2014,
+    month = jul,
+   volume = 289,
+    pages = {2733-2779},
+      doi = {10.1007/s11207-014-0485-y},
+   adsurl = {http://adsabs.harvard.edu/abs/2014SoPh..289.2733D},
+  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+@ARTICLE{Pesnell2012,
+   author = {{Pesnell}, W.~D. and {Thompson}, B.~J. and {Chamberlin}, P.~C.
+       },
+    title = "{The Solar Dynamics Observatory (SDO)}",
+  journal = {Solar Physics},
+ keywords = {SDO, Solar cycle, Helioseismology, Coronal, Space weather},
+     year = 2012,
+    month = jan,
+   volume = 275,
+    pages = {3-15},
+      doi = {10.1007/s11207-011-9841-3},
+   adsurl = {https://ui.adsabs.harvard.edu/abs/2012SoPh..275....3P},
+  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drms-0.5.6/paper/paper.md 
new/drms-0.5.7/paper/paper.md
--- old/drms-0.5.6/paper/paper.md       1970-01-01 01:00:00.000000000 +0100
+++ new/drms-0.5.7/paper/paper.md       2019-08-16 20:00:17.000000000 +0200
@@ -0,0 +1,58 @@
+---
+title: 'drms: A Python package for accessing HMI and AIA data'
+tags:
+  - Python
+  - astronomy
+authors:
+  - name: Kolja Glogowski
+    orcid: 0000-0002-1361-5712
+    affiliation: "1, 2"
+  - name: Monica G. Bobra
+    orcid: 0000-0002-5662-9604
+    affiliation: 3
+  - name: Nitin Choudhary
+    orcid: 0000-0001-6915-4583
+    affiliation: 4
+  - name: Arthur B. Amezcua
+    orcid: 0000-0002-0361-6463
+    affiliation: 3
+  - name: Stuart J. Mumford
+    orcid: 0000-0003-4217-4642
+    affiliation: 5
+affiliations:
+ - name: Kiepenheuer-Institut für Sonnenphysik, 79104, Freiburg, Germany
+   index: 1
+ - name: eScience Department, Computing Center, University of Freiburg, 79104, 
Freiburg, Germany
+   index: 2
+ - name: W.W. Hansen Experimental Physics Laboratory, Stanford University, 
Stanford, CA 94305, USA
+   index: 3
+ - name: Department of Mathematics, Indian Institute of Technology Kharagpur, 
Kharagpur, West Bengal 721302, India
+   index: 4
+ - name: School of Mathematics and Statistics, The University of Sheffield, 
Sheffield S3 7RH, UK
+   index: 5
+date: 02 July 2019
+bibliography: paper.bib
+---
+
+# Summary
+
+The NASA Solar Dynamics Observatory [SDO; @Pesnell2012] spacecraft has 
continuously observed the Sun since 2010. It takes about 1.5 terabytes of data 
per day, in the form of images or spectral data and associated metadata. The 
data from two of its instruments, Helioseismic and Magnetic Imager [HMI; 
@schou12] and Atmospheric Imaging Assembly [AIA; @lemen12], are stored and 
distributed by the Joint Science Operations Center (JSOC) at Stanford 
University. Specifically, the metadata and pointers to the image data are 
stored in a PostgreSQL database and managed by the Data Record Management 
System (DRMS). The data and metadata can be accessed using the [JSOC 
website](http://jsoc.stanford.edu/ajax/lookdata.html).
+
+`drms` is a SunPy-affiliated [@SunPy2015] Python package for accessing data 
hosted by JSOC. A vast majority of these data come from the HMI and AIA 
instruments, but JSOC also hosts data from the Michelson Doppler Imager [MDI; 
@Scherrer1995] aboard the Solar and Heliospheric Observatory (SOHO) spacecraft 
and data from the Interface Region Imaging Spectrometer [IRIS; @DePontieu2014]. 
The `drms` package allows users to execute complex queries across any number of 
metadata keywords and export tailored datasets in a variety of formats 
(including FITS files, movies, and images).
+
+The `drms` package is used as backend for SunPy's JSOC client, but it can also 
be installed independently from [PyPI](https://pypi.org/project/drms/) using 
`pip` or from [`conda-forge`](https://anaconda.org/conda-forge/drms) using the 
`conda` package manager. Source code and documentation are available on 
[GitHub](https://github.com/sunpy/drms) and the [SunPy 
website](https://docs.sunpy.org/projects/drms/en/latest) respectively. The 
`drms` client communicates with DRMS servers using an HTTP/JSON interface. By 
default the `drms` client connects to the JSOC DRMS, but it can also be 
configured to access local DRMS installations at other sites, provided the site 
runs a webserver hosting the required Common Gateway Interface (CGI) programs.
+
+One advantage of the DRMS is that it decouples metadata from image data. This 
means that a user can access and export metadata without downloading any image 
data. Users can also construct queries across any number of metadata keywords, 
to only download images of interest.
+
+Each data collection in JSOC (for example, AIA images of the solar corona in 
171 Å or HMI maps of the photospheric magnetic field in 6173 Å) is associated 
with its own database table and it is called a *data series*. An example of a 
data series with rich, valuable metadata is called `hmi.sharp_720s` and 
contains Space-weather HMI Active Region Patches [@Bobra14], or SHARPs.
+
+![Left: Total unsigned flux and mean current helicity of HMI Active Region 
Patch (HARP) Number 4315 during its disk passage; the dashed orange line marks 
the central meridian crossing of the active region. Right: Continuum intensity 
map and magnetic field map at the time of the central meridian 
crossing.](sharp.pdf)
+
+The left two panels of Figure 1 show a small selection of the available 
metadata which characterize a particular solar active region. From the steep 
gradient in the total unsigned magnetic flux and the increasing area of active 
pixels, it is directly evident, without inspecting any image data, that this is 
a strong emerging active region. The right two panels show a selection of image 
data corresponding to the time indicated by the dashed orange line in the left 
two panels. Figure 1 was created from metadata and image data obtained from the 
JSOC DRMS server using the `drms` package. A Python 
[script](https://github.com/sunpy/drms/blob/master/examples/create_joss_figure.py)
 that creates this figure is available in the 
[examples](https://github.com/sunpy/drms/tree/master/examples) directory of the 
`drms` source code.
+
+
+# Acknowledgements
+
+The data used here are courtesy of the GOES team and the Helioseismic and 
Magnetic Imager (HMI) and Atmospheric Imaging Assembly (AIA) science teams of 
the NASA Solar Dynamics Observatory. The development of this software was 
partially supported by the European Research Council under the European Union's 
Seventh Framework Programme (FP/2007-2013) / ERC Grant Agreement no. 307117 and 
by NASA Grant NAS5-02139 (HMI).
+
+# References
Binary files old/drms-0.5.6/paper/sharp.pdf and new/drms-0.5.7/paper/sharp.pdf 
differ


Reply via email to