ObsPy 1.0.2

Dear ObsPy Community,

we just released ObsPy 1.0.2, the second bug fix release in the 1.0
cycle. API/functionality did not change so this is a safe and painless
update. We did fix quite a number of small bugs and problems resulting
in an overall more stable and awesome ObsPy package.

We strongly recommend all users to upgrade through one of the usual
channels. Packages are already available on PyPI, for (Ana)conda (all
platforms), for Debian/Ubuntu, for Fedora/CentOS, NetBSD, and for
FreeBSD. Missing packages will be available shortly.

Please note that we will slowly deprecate our own conda channel in favor
of the conda-forge community channel. Thus (if you use (ana)conda),
please update with

$ conda update -c conda-forge obspy

As always, please report any issues and see the full changelog at the
end of this email for details.

https://github.com/obspy/obspy/wiki#aug-03-2016-release-of-obspy-102
https://github.com/obspy/obspy/releases/tag/1.0.2

All the best and thanks to everyone involved!

The ObsPy Development Team

Full Changelog:

1.0.2: (doi: 10.5281/zenodo.49636)
- obspy.core:
   * Added workaround for numpy issue where many FFTs of various lengths
     fill a cache that never gets cleared, effectively creating a
     memory leak (see #1424).
   * Trace.filter and Stream.filter don't work on masked arrays anymore
     because it produced unpredictable results due to the
     un-initialized data-chunk. The uninitialized masked gap is now
     also initialized to np.nan in case of floating point data which
     and a consistent fill value in case of integer data. (see #1363)
- obspy.clients.fdsn:
   * Fixing issue with location codes potentially resulting in unwanted
     data to be requested. (see #1422)
   * Included low-gain seismometers in default channel filters in
     mass-downloader, also included non-oriented channels by default
     (see #1373).
- obspy.db:
   * Fixed a bug in obspy-indexer command line script (see #1369,
     command line script was not working, probably since 0.10.0)
- obspy.imaging:
   * Fixed a bug that leads to pressure/tension color blending when
     plotting semi-transparent DC beachball patches (i.e. with "alpha"
     not equal to 1, see #1464)
   * Fixed a bug when plotting non-DC beachball patches without fill
     colors (i.e. with "nofill=True", see #1464)
   * Fix arbitrary units in waveform section plot's offset axis, making
     it possible to add customizations to the plot afterwards (see
     #1382, see #1383)
- obspy.io.ascii:
   * Fixed a bug that lead to wrong header information in output files
     when writing non-integer sampling rate data to SLIST or TSPAIR
     formats (see #1447)
- obspy.io.cmtsolution:
   * Make sure newer CMTSOLUTION files can also be read (see #1479).
- obspy.io.gse2:
   * Fixed a bug that could lead to network code not present in GSE2
     output (see #1448)
- obspy.io.mseed:
   * Fixed a bug in obspy-mseed-recordanalyzer (see #1386)
- obspy.io.nlloc:
   * Use geographic coordinates from the NonLinLoc Hypocenter-Phase
     file if no custom coordinate converter is provided. (see #1390)
   * Fix reading NonLinLoc Hypocenter-Phase files with more than one
     hypocenter in it. (see #1480)
   * Fix reading NonLinLoc Hypocenter-Phase files with unicode
     characters in them. (see #1483)
- obspy.io.quakeml:
   * Fixed issue with improperly raised warnings when the same file is
     read twice. (#1376)
   * Fix writing empty network/station/channel codes in
     WaveformStreamID objects to QuakeML. (see #1483)
- obspy.io.sac:
   * Try to set SAC distances (dist, az, baz, gcarc) on read, if
     "lcalda" is true. If "dist" header is found, distances aren't
    calculated.
   * SACTrace class returns header values as native Python types
     instead of NumPy types.
   * SACTrace.iqual is no longer accepts enumerated string values, but
     arbitrary integer values. (see #1472)
   * SACTrace.read now replaces non-ASCII and null-termination
     characters in string headers with whitespace unless the
     "debug_strings=True" flag is used. (see #1432)
- obspy.io.stationxml:
   * Always set the number attribute for poles and zeros. (see #1481)
- obspy.signal:
   * PPSD.plot(): fix plotting of percentiles, mode and mean and
     setting period limits when using "xaxis_frequency=True" (see
     #1406, #1416)
   * Work around a bug in SciPy that results in wrong results for
     bandpass filter when using Nyquist frequency (or higher) as high
     corner of the passband (see #1451)
- obspy.taup:
   * Fixing path for Pn. (see #1392)