Obspy

Latest version: v1.4.1

Safety actively analyzes 628477 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 12

1.1.0

- General:
* Read support for Guralp Compressed Format (GCF) waveform data,
obspy.io.gcf (see 1449)
* Read support for Reftek 130 (rt130) waveform data,
obspy.io.reftek (see 1433)
* Add Nordic format (s-file) read/write (see 1517)
* Read and write support for events in the SCARDEC catalogue format
(see 1391).
* Read support for IASPEI ISF ISM 1.0 Bulletin event data,
(see 1946)
* Write support for AH (Ad Hoc version 1) format (see 1754)
* Client to access the Nominal Response Library (NRL) (see 1185).
* `obspy.read_inventory()` can now read dataless SEED and RESP files
(see 1185).
* change version number scheme for scenarios when no official version number
can be determined (see 1889 and 1916)
* Support for the IRIS Federator and EIDAWS FDSNWS web routing services
(see 1779 and 1919).
- obspy.core:
* UTCDateTime is now based on nanoseconds (long) instead of a unix
timestamp in microseconds (float) - resulting in higher precision and
support for years 1-9999 (see 1325)
* Ensure that Trace.data is always C-contiguous in memory (see 1704)
* Event/ResourceIdentifier is now object aware, meaning even if two
objects share a resource_id the distinct objects will be returned with
the get_referred_object method provided both are still in scope. If one
of the objects gets garbage collected, however, a warning will be issued
and the behavior will be the same as before (see 1644).
* Better error message when attempting to write invalid QuakeML resource
ids (see 1699).
* Stream/Trace.write() can now autodetect file format from file extension
(see 1321).
* New convenience property `.matplotlib_date` for `UTCDateTime` objects to
get matplotlib datetime float representation (which can be used in
time-based matplotlib axes, e.g. by Stream.plot(); see 1339).
* Trace.times() has new options `type` and `reftime` to support fetching an
array of sampletimes in various different timing varieties ("relative":
the old default, float relative to trace starttime or `reftime` in
seconds; "utcdatetime": absolute times as UTCDateTime objects;
"timestamp": array of float POSIX timestamps, compare
`UTCDateTime.timestamp`; "matplotlib": array of float matplotlib dates,
useful for plotting on matplotlib time axes; see 1307)
* A trace's stats.network/station/location/channel can now also be set in
one line using a SEED ID string (e.g. `trace.id = "GR.FUR..HHZ"`,
see 1439).
* Instrument correction for response list stages originating from inventory
objects (see 1514).
* `Stream.rotate(...)` can now also be used to rotate unaligned channels to
Z-N-E, given an Inventory (see 1310)
* Non finite floats (NaN, inf, -inf) can now no longer be set for all
event objects (see 1597).
* Instrument responses can now also be calculated for a given list of
frequencies (see 1598).
* Order of extra tags for event type classes serialized to QuakeML can now
be controlled by using an OrderedDict (see 1617)
* Bode plots can now optionally plot the phase in degrees (see 1763).
* `Stream.select()` now also works on the component level if channels only
have one letter (see 1847).
* Now strips all invalid characters from the temporary filenames used for
downloading data using the `read_X()` methods (see 1958).
- obspy.clients.earthworm:
* Much faster trace unpacking (see 1762).
- obspy.clients.fdsn:
* empty SEED codes (e.g. ``network=''``) will now be properly sent to the
server as options and not omitted, which led to wildcard matching (for
details see 1578)
* The mass downloader now has `exclude_networks` and `exclude_stations`
arguments to not download certain pieces of data. (see 1305)
* The mass downloader can now download stations that are part of a given
inventory object.
* The mass downloader now also works with restricted data. (See 1350)
* No data (HTTP 204) responses now raise `FDSNNoDataException` rather than
the more general `FDSNException`.
* Fixing cross implementation of bulk waveform and station requests (see
1685).
* Adding mappings for the TEXNET (see 1852) and the ICGC (see 1902)
services.
* Support for the non-standard EIDA token authentication (see 1928).
- obspy.imaging:
* The functionality behind the `obspy-scan` command line script has been
refactored into a `Scanner` class so that it can be reused in custom
workflows. (see 1444)
* Almost always return the figure handle for the plots to make it work with
the jupyter notebooks (see 1615).
- obspy.imaging.cm:
* new colormap: viridis_white. This is a modification of viridis that
goes to white instead of yellow but remains perceptually uniform. It
is especially useful for printing when an image should merge with the
white background.
- obspy.imaging.waveform:
* Support for filling the wiggles when plotting sections (horizontal and
vertical, see 1445).
- obspy.io.arclink:
* Read support for Arclink Inventory XML (see 1539)
* default for `route` parameter in metadata requests is changed to `False`
(see 1756)
- obspy.io.ascii:
* Custom formatting of sample values when writing SLIST and TSPAIR.
- obspy.io.datamark:
* Renamed without deprectation to obspy.io.win to match its original name.
Datamark is a datalogger, saving the WIN format.
- obspy.io.gse2:
* Read support for GSE2.0 bulletin (see 1528)
- obspy.io.nlloc:
* Also parse author information and COMMENT line (see 1484)
* Fix reading hypocenter files created by NonLinLoc versions of the 6.0.x
beta branch (see 1760 and 1783)
* Fix reading NonLinLoc files that have 24:00 as hours or 60 seconds (see
2222, 2324)
- obspy.io.quakeml:
* Read and write support for nested custom tags (see 1463)
* Fix some minor bugs that could lead to empty stub elements, e.g. like
empty MomentTensor when reading and later writing again a QuakeML file
with a FocalMechanism but no MomentTensor, potentially resulting in
QuakeML files that breach the QuakeML schema (see 1896)
- obspy.io.seiscomp:
* Read and write support for SC3ML event (see 1638 and 1848)
* Fix bug where files with arbitrary publicIDs and files with missing
depth, latitude, longitude, or elevation tags could not be read
(see 1817)
- obspy.io.stationtxt:
* Write support for stationtxt format (see 1466)
- obspy.io.stationxml:
* Read and write support for custom tags (see 1024)
* No longer add the (unused) time zone field to StationXML datetimes to
follow the example of big data centers. (see 1572)
* Level of detail can be specified during inventory write (see 1830)
using the level keyword (one of: network, station, channel, response).
* Skip empty and incomplete channels during reading (see 1839, 1840).
- obspy.io.segy:
* Fixing an issue when comparing two still packed SEG-Y trace headers
(see 1735).
* Iterative reading of large SEG-Y and SU files with
`obspy.io.segy.segy.iread_segy` and `obspy.io.segy.segy.iread_su`.
(see 1400).
* Write correct revision number (see 1737).
* Textual headers will now always contain the file revision number and the
end header mark if nothing else exists at these positions (see 1738).
* The SEG-Y format detection now also checks the format version number
(see 1781).
* Enable reading SEG-Y files that have day of year 0 in trace header
(see 1722).
* Write textual file headers also if given as a text string
(see 1811, 1813).
- obspy.io.css:
* Read support for NNSA KB Core format waveform data. (see 1332)
- obspy.io.mseed:
* New generic get_flags() utility function able to retrieve statistics
about all fixed header flags and the timing quality. This makes the
get_timing_and_data_quality() function obsolete which is thus
deprecated and will be removed with the next release. The get_flags()
function is also much faster. (see 1141)
* Always hook up the libmseed logging to its Python counterpart to avoid
some rare segfaults. (see 1658)
* Update to libmseed v2.19.5 (see 1703, 1780, 1939).
* Correctly read MiniSEED files with a data offset of 48 bytes (see 1540).
* InternalMSEEDReadingError now called InternalMSEEDError and
InternalMSEEDReadingWarning now called InternalMSEEDWarning as both
can now also be raised in non-reading contexts (see 1658).
* Should no-longer segfault with arbitrarily truncated files (see 1728).
* Will now raise an exception when attempting to directly read mini-SEED
files larger than 2048 MiB (1746).
* `.stats.mseed` attributes are no longer per-file but per-trace where
applicable (see 1782).
* `get_record_information()` - Don't fail if the word order is invalid.
- obspy.io.nlloc:
* Set preferred origin of event (see 1570)
- obspy.io.nordic:
* Add Nordic format (s-file) read/write (see 1517)
- obspy.io.win:
* see obspy.io.datamark.
- obspy.io.xseed:
* Added azimuth and dip to the get_coordinates() function. (see 1315)
* Fixing some issues with the get_resp() output on Python 3 (see 1748).
* Can now also parse RESP files (see 1185).
* Can transform responses in the Parser object to ObsPy Inventory objects
(see 1185).
- obspy.scripts:
* obspy-scan command line script now also plots and prints overlaps
alongside gaps (see 1366)
* obspy-plot now has option to disable min/max plot (see 1583)
- obspy.signal:
* fixed a bug in calibration.rel_calib_stack (resulting amplitude response
had wrong scaling if using non-default "overlap_fraction", see 1821)
* fixed a bug in coincidence_trigger() with event templates. when a template
with mismatching SEED ID was encountered all following (potentially valid)
templates were skipped as well (see 1850)
* New obspy.signal.quality_control module to compute quality metrics from
MiniSEED files. (see 1141)
* New correlate function for calculating the cross-correlation function
(new implementation based on Scipy).
To calculate the shift of the maximum of the cross correlation use
xcorr_max. The old xcorr function is deprecated but currently still
exists (see 1585).
* New obspy.signal.regression module to compute linear regressions, with or
without weights, with or without allowing for an intercept. (see 1716,
1747)
* add new plotting capabilities to PPSD (temporal variations per frequency
and spectrogram-like plot) and also make underlying processed PSDs
available via `PPSD.psd_values` property (see 1327)
* Fixed bug in `rotate2zne()` for non-orthogonal configurations
(see 1913, 1927).
* Fixed build warnings in evalresp, partially backported from evalresp
4.0.6 (see 1939).
- obspy.taup:
* Add obspy.taup.taup_geo.calc_dist_azi, a function to return the distance,
azimuth and backazimuth for a source - receiver pair. (see 1538)
* Fixing calculations through very small regional models. (see 1761)
* Updated ray path plot method, added travel time plot method, and wrapper
functions for both ray path and travel time plotting. (see 1501, 1877)

1.0.3

- obspy.core:
* properly pass through kwargs specified for Trace.plot() down to the
low-level plotting routines (e.g. events were not shown properly in
dayplot of a trace, see 1566)
* properly pass through kwargs from Stream.detrend() to Trace.detrend()
(see 1607)
* Correctly splitting masked arrays in Trace objects for a couple of corner
cases (see 1650, 1653).
- obspy.core.event.source:
* Fix `farfield` if input `points` is a 2D array. (see 1499, 1553)
- obspy.clients.earthworm:
* Better end of stream detection. (see 1605)
* More efficient unpacking of server response. (see 1680)
- obspy.clients.neic:
* Better end of stream detection. (see 1563)
- obspy.clients.seedlink:
* Better end of stream detection. (see 1605)
- obspy.clients.seishub:
* Fix wrong kwargs `first_pick` and `last_pick` in
`Client.event.get_list()`. (see 1661)
- obspy.io.mseed:
* ObsPy can now also read (Mini)SEED files with noise records. (see 1495)
* ObsPy can now read records with a data-offset of zero. (see 1509, 1525)
* ObsPy can now read MiniSEED files with micro-second wrap arounds.
(see 1531)
* ObsPy can now read MiniSEED files with no blockette 1000. (see 1544)
* ObsPy now always writes Blockette 100 if sampling rate accuracy is
otherwise lost. (see 1550)
* obspy.io.mseed.util.set_flags_in_fixed_header() now works with Python 3
and also for files with Blockette 100 (see 1648).
- obspy.io.quakeml:
* write StationMagnitude.residual even when it is zero (see 1625)
* read & write Event.region
- obspy.io.sac:
* `SACTrace.lpspol` and `lcalda` are `True` and `False` by default, when
created via `SACTrace.from_obspy_trace` with a `Trace` that has no SAC
inheritance. (see 1507)
* Reference time not written to SAC file when made from scratch
(see 1575)
* Reinforce ASCII encoding in reading non-ASCII SAC files regardless of
default encoding setting. (see 1768)
* Implementing encoding flag for reading/writing SAC files.
* Fix passing through "byteorder" kwarg from obspy.read() (see 2292)
- obspy.io.sh:
* Fix writing of long headers for Python 3 (see 1526)
* Whitespace in header fields is not ignored anymore (see 1552)
- obspy.io.stationxml:
* Datetime fields are written with microseconds to StationXML if
microseconds are present. (see 1511)
- obspy.io.zmap:
* Use first origin/magnitude when writing to zmap if no origin/magnitude is
set as preferred. (see 1569)
* Parse origin time seconds as a float to avoid losing accuracy (see 1573)
- obspy.signal:
* PPSD: fix warning message on Python 3 that gets shown when waveforms and
metadata mismatch (see 1506)
- obspy.taup:
* Allow for more than 10 phases with identical names (can happen for certain
custom models, see 1593).

1.0.2

- 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)

1.0.1

- General:
* Some methods might have unnecessarily upcasted float32 arrays to float64.
Now methods for which it makes sense and which don't lose accuracy don't
upcast float32 arrays. Integers are still upcasted. Trace.resample() will
also no longer return the original dtype which might have resulted in a
large loss of accuracy but it now always returns float64 arrays.
(see 1302)
- obspy.core:
* Trace.normalize() does no longer divide by zero in case an all-zeros
data trace is being used. (see 1343)
* Inventory.select() and consorts now behave as expected even with empty
child elements. (see 1126, 1348)
* Code formatting is no longer checked for clean release versions. Thus
updates to the linters no longer break the tests for releases.
(see 1312)
* remove_response(..., pre_file=None, plot=True) works again. (see 1320)
- obspy.clients.arclink:
* Restored ArcLink encryption support. (see 1352, 1347)
- obspy.clients.fdsn:
* Local URLs are now recognized as valid URLs. (see 1309)
* Some bug fixes for the mass downloader. (see 1293, 1304)
* The NOA node has been added to the list of known nodes.
(see 2347a25714bc3e16068031f4b6138fafd627d34e)
- obspy.io.sac:
* More automatic merging of SAC and ObsPy headers. The new `obspy.io.sac`
modules thus behaves more like the old one and more in line with
expectations of users. (see 1285)
* No more out of bounds errors when assigning coordinates. (see 1300)
* The evdp header can be set again. (see 1345)
* Correctly propagating sampling rate changes to the SAC headers.
(see 1317)
* Always set nvhdr, leven, lovrok, iftype to ensure valid SAC files.
(see 1204)
- obspy.io.xseed:
* The Parser.get_paz() method now works with multiple blockette 53s.
(see 1281)
- obspy.taup
* Fixed wrong azimuth direction for paths > 180 degrees distance (see 1289)
* Azimuth is appended to arrivals as well (see 1289)
* Fixed issue with taup cache function on Python 2.7. (see 1308)

1.0.0

- General:
* Requirements have been increased to reflect latest distributions:
* Removed support for Python 2.6.
* Added support for Python 3.5.
* matplotlib >= 1.1.0 is now required.
* numpy >= 1.6.1 is now required
* scipy >= 0.9.0 is now required
* Reorganized the submodule structure. We provide a deprecation path so the
old imports will continue to work for one ObsPy version.
* Consistent naming scheme across the code base. This results in some
functions having different names. Most things that worked with ObsPy 0.10
will continue to work with this version, but starting with the next
version they will fail. Pay attention to the deprecation warnings.
* Support for additional waveform data formats:
- Read support for the ASCII format for waveforms from the K-NET and
KiK-net strong-motion seismograph networks.
* Support for additional event data formats:
- CMTSOLUTION files used by many waveform solvers.
- ESRI shapefile write support, useful in GIS applications (see 1066)
- Google Earth KML output.
* Support for additional station data format:
- The FDSN web service station text format can now be read.
- Read support for the NIED's moment tensor TEXT format (see 1125)
- Google Earth KML output.
- Read support for SeisComP3 inventory files.
- obspy.core:
* New method for generating sliding windows from Stream/Trace windows.
(see 860)
* Stream/Trace.slice() now has the optional `nearest_sample` argument from
Stream/Trace.trim().
* Trace.remove_response() now has `plot` option to show/output a plot of all
individual steps of instrument response removal in frequency domain
(see 1116).
* New method Stream/Trace.remove_sensitivity() to remove instrument
sensitivity
* Fix incorrect parsing of some non-ISO8601 date/time strings. (see 1215)
* Added plotting method to Event (customizable subplots from a selection
of map, beachball and farfield radiation plots, see 1192)
- obspy.clients.fdsn:
* Replace FDSN webservice shortcut `NERIES` with `EMSC` and deprecate the
`NERIES` shortcut, will be removed in a future release (see 1146).
* Now requests gzipped data for the XML files. Much smaller files!
* The station service can now also be used to download files in the text
format. This has limited information but is much faster.
* New mass downloader to assist in downloading data across a large number
of FDSN web services.
* Catch invalid URLs when initialising Client and avoid confusing error
messages (see 1162)
- obspy.clients.filesystem.sds:
* New client to read data from local SDS directory structure (see 1135).
* Command line script `obspy-sds-report` to generate html page with
information on latency, data availability percentage and number of gaps
for a local SDS archive (see 1202)
- obspy.clients.neries:
* Removed the dedicated client. Data can still be accessed by using the FDSN
client.
- obspy.clients.syngine:
* New client for the IRIS Syngine service to retrieve custom synthetic
seismograms.
- obspy.imaging:
* Experimental support for Cartopy when plotting maps. Use the `method`
argument to functions that plot maps to select between Basemap or Cartopy.
* New default colormap for all plots. A backport of the new viridis colormap
from matplotlib is available for those using older matplotlib releases.
* Added plotting routines for farfield radiation patterns of moment tensors
- obspy.io.kml:
* New module for Google KML output of Inventory and Catalog objects
(e.g. for use in Google Earth)
- obspy.io.mseed:
* Upgrade to libmseed 2.16
- obspy.io.seiscomp.sc3ml:
* New module reading SeisComP3 inventory files to ObsPy inventory objects
(see 1182).
- obspy.io.shapefile:
* New module for ESRI shapefile write support (see 1066)
- obspy.io.stationtxt:
* New module reading the FDSN station files.
- obspy.signal:
* Switch to second-order sections for filters; backported from SciPy 0.16.0
(see 1028)
* New Lanczos interpolation/resampling (see 1101)
* Higher order detrending methods (see 1173)
* PPSD (see 931, 1108, 1130, 1187):
- Algorithm for PSD computation was improved, especially affecting results
at long periods (for detailed discussion see 931 and 1108).
- Keywords `paz` and `parser` were removed in favor of new keyword
`metadata`. PPSD now accepts `metadata` in a much wider range
of formats:
* Inventory objects (e.g. from StationXML or from FDSN webservice)
* obspy.io.xseed Parser objects (e.g. from dataless SEED file)
* filename of a RESP file
* dictionary with poles and zeros information (like in
prior versions)
Most old codes should still work, issuing a deprecation warning, but
old code that specifies *both* `paz` and `parser` keywords will raise
an exception.
- Whenever possible (i.e. when using for `metadata` an Inventory,
a Parser or a RESP file), response calculation now takes into account
the full response (all stages) as opposed to only using the poles and
zeros response stage (as was done in previous versions when using a
Parser object). When using a poles and zeros dictionary response
calculation is unchanged (as no information on other stages is
available, of course).
- PPSD now stores the psd for each time segment that gets processed,
instead of only storing the stacked histogram. That way, differing
custom stacks with various selection criteria (e.g. time of day, by
weekday, etc.) can now be made from the same processed data
(see 1130).
- New save/load mechanism using numpy .npz binary format that circumvents
some problems with the old pickle mechanism:
`PPSD.save_npz()` and `PPSD.load_npz()` (and `PPSD.add_npz()` to add
data from additional npz files)
- Change default colormap to new obspy default sequential colormap
(matplotlibs new viridis colormap). The old PQLX colormap is provided by
`obspy.imaging.cm.pqlx` and can be used with
`PPSD.plot(..., cmap=...)`.
- new option `PPSD.plot(..., cumulative=True)` for a cumulative plot of
the histogram, i.e. a non-exceedence percentage visualization, similar
to the `percentile` option.
- x axis in `PPSD.plot()` can be switched to frequency in Hz with
`PPSD.plot(..., xaxis_frequency=True)` (see 1130)
- changes to special handling of rotational: now handled by kwarg
`special_handling="ringlaser"` (kwarg `is_rotational_data` is
deprecated, see 916)
- special handling option for hydrophone data (no differentiation, see
916)
- bin width on frequency axis can now be controlled using
`PPSD(..., frequency_bin_width_octaves=...)` (in fractions of octaves,
default is the old fixed setting of 1/8 octaves as in PQLX)
- obspy.taup
* Added support for nd file format for input velocity models. Allows for
named discontinuities at arbitrary depths allowing for less Earth like
models (see 1147).
* Added three methods (`get_travel_times_geo()`, `get_pierce_points_geo()`
and `get_ray_paths_geo()`) to `TauPyModel` to handle station and
event location data as latitude and longitude, instead of the source to
station distance in degrees. In addition `get_ray_paths_geo()` and
`get_pierce_points_geo()` decorate the returned pierce points and ray
paths with the latitude and longitude of each point. Some functionality
needs the `geographiclib` module to be installed. (See 1164.)
* ObsPy now ships with a bunch of new velocity models in addition to the
existing ones: `prem`, `sp6`, `1066a,b`, `herrin` (See 1196).
* Add support for buried receivers (see 1103.)
* Port more accurate calculation of ray parameter from Java. The effect is
stronger for longer phases, but also corrects issues with shorter body and
surface waves (see 986.)
* Fix incorrect branch splitting which also caused issues for extremely
shallow phases (see 1057.)
* Proper cache for model splits resulting in much faster calculations if
the source depth is repeatedly the same (see 1248).

0.10.3

- obspy.core:
* Fix reading of multiple catalog files using globs (see 1065).
* Fixed a bug when using
`Trace.remove_response(..., water_level=None)`.
With that setting that is supposed to not use any water level
stabilization in the inversion of the instrument response
spectrum actually the instrument response was never inverted and
thus instead of a deconvolution a convolution was performed
(see 1104).
* Fixing floating point precision/rounding issue with UTCDateTime when
initializing with floating point seconds, i.e. with microseconds,
that could lead to microseconds being off by 1 microsecond
(see 1096)
* Correct gap/overlap time returned by Stream.get_gaps() and printed
by Stream.print_gaps() which was incorrect by one time the sampling
interval (see 1151)
* Stream.get_gaps(): return overlaps specified in units of samples
as negative integers (see 1151)
- obspy.fdsn:
* More detailed error messages on failing requests (see 1079)
* Follows redirects for POST requests (see 1143)
- obspy.imaging:
* fix some bugs in `obspy-scan` (see 1138)
- obspy.mseed:
* Blockette 100 is now only written for Traces that need it. Previously
it was written or not for all Traces, depending on whether the last
Trace needed it or not. (see 1069)
* Fixed a bug that prevented microsecond accuracy for times before 1970
(see 1102).
* Updated to libmseed 2.17.
- obspy.signal:
* Bug fixed within rotate.rotate2zne(). Additionally it can now also
perform the inverse rotation (see 1061).
* Bug fixed in triggering. When using option `max_len_delete` and a trigger
occurred right before the end of data, one trigger was potentially lost
(see 1145 for details).
- obspy.station:
* Plotting responses across multiple channels is more robust now in
presence of some strange channels (e.g. with zero sampling rate,
happens e.g. for state of health channels, see 1115)
* ObsPy no longer assumes that the StationXML namespace is the default
namespace (see 1060).
* Checking if a file is a StationXML file is less rigorous (and much
faster) now (not checking strict validity against xsd schema but
only looking for a FDSNStationXML root element, see 1114).
This means that `read_inventory()` without explicitly specified
format will correctly detect more files as StationXML that have very
slight breaches of the schema but still can be interpreted as
StationXML.
* fix saving `xcorrPickCorrection()` results to an image file (see 1154)
- obspy.taup:
* Calculating arrival times for surface waves now works (see 1055)
* Calculating arrivals for underside reflections now works (see 1089)
- obspy.y:
* correct misspelled name of a Y specific header field (see 1127)
- obspy.zmap
* Add support for time values with sub-second precision (see 1093)

Page 8 of 12

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.