pypi obspy 1.5.0
ObsPy 1.5.0 (doi: 10.5281/zenodo.19005357)

5 hours ago

Changes:

  • General
    • Fix documentation for the command line scripts (see #1208 #3569)
    • Fix code coverage reporting (see #3646)
    • Github CI: update min numpy version to 1.21 (see #3639)
    • Github CI: pin cartopy < 0.22, pyproj < 3.5 for ubuntu 3.8
      mindepversion tests
    • Minimum Dependencies: numpy 1.21 (was 1.20) (see #3639)
  • obspy.core:
    • response: tweaks to allow sane processing of PolynomialResponseStage
      responses if they have 2 coefficients or less (see #3632)
    • response: allow recalculating overall sensitivity even if unit type is not
      one of VEL/ACC/DISP (see #3235), add method for calculating the normalization
      factor for pole–zero response stages (see #3580)
    • deprecate Trace.attach_response() and Stream.attach_response() in
      favor of passing metadata directly to response-removal methods
      (see #2026)
    • trace: additional catch to remove_response for PolynomialResponseStage
      responses with 2 coefficients (see #3632)
    • trace: 5x quicker retrieval of seed-id with trace.id / trace.get_id()
      (see #3251)
    • inventory: additional formatting tweaks to expanded channel information
      (see #3261)
    • replace pkg_resources with importlib for internal entry point and plugin
      handling, add compatibility code for py 3.8 and 3.9 (should not affect
      users, see #3333)
    • read(): better support for reading from file-like objects in many plugins
      (see #3346)
    • allow to specify Trace and Stream filter frequencies as arguments
      (see #3294)
    • improve error messages when traces fail to get merged due to differing
      data type, sampling rate etc (see #3418)
    • add helper methods to change/unify byteorder on trace/stream (see #3418)
    • window 'slepian' was removed in Trace/Stream.taper() as it was removed
      from scipy with version 1.6, add new window 'dpss' that scipy promotes as
      replacement but might need other parameters passed in (see #3331)
    • UTCDateTime: Using __slots__, faster comparisons and initialisation (see #3653)
    • Trace: faster initialisation and stats updates (see #3653)
    • util: fix logic bug in _generic_reader to properly catch byte objects
      (see #3643)
    • Ensure UTCDateTime can unpickle old UTCDateTime instances by adding
      setstate method (see #3684)
  • obspy.clients.fdsn
    • Natural Resources Canada (NRCAN) added to list of known clients
    • Spanish National Geographic Institute (IGN) added to known clients
    • GFZ FDSN url updated to https://geofon.gfz.de
    • EARTHSCOPE & IRIS updated to https://service.earthscope.org (#3700)
    • RESIFPH5 removed (service deprecated)
    • EPOSFR defined, will replace RESIF
    • Various FDSNWS URL mappings updated to https
    • A FDSNNoServiceException is now raised instead of a ValueError when
      querying a webservice not present in Client.services (see #3483)
    • make it possible to opt out of server side gzip compression (see #3469)
    • fix a regression introduced by #3306 which lead to some network errors not
      getting raised as an FDSNException but some low-level exceptions like
      AttributeError, which in turn caused problems in Mass Downloader (see
      #3513)
    • mass downloader: Use the download(threads_per_client) value for
      StationXML downloads. (see #3678)
  • obspy.clients.filesystem:
    • tsindex: update syntax for SQLAlchemy 2.0 compatibility (see #3269)
    • tsindex: leap second handling was deactivated as it is not needed with
      current msindex (see #3403)
  • obspy.clients.neic
    • Update the default CWB QueryServer IP address from the old IP to the
      new USGS server address (see #3592)
  • obspy.clients.seedlink:
    • fix a bug in basic client get_info() which leaded to exceptions when
      querying with level="channel" in presence of stations with no current
      data available. Also, stations without data are now excluded from the
      results. See docs for get_info() for information how to see the excluded
      stations (see #2808)
  • obspy.imaging.beachball:
    • allow isotropic component to be plotted. Ensure explosions and
      implosions plot fully colored/uncolored, and that the correct
      "dominant" eigenvalue is chosen. Bug fix to fully implement
      check to see if a new segment is needed for the matplotlib patches.
      (see #3583)
    • add tutorial to code_snippets to showcase isotropic plotting.
      (see #3583)
  • obspy.imaging.waveform
    • Adapt the code to match the documentation of the section plots, make use
      of metres everywhere instead of kilometres (see #3371)
  • obspy.io:
    • add read and write support for CSV, EVENTTXT and CSZ formats (see #3285)
  • obspy.io.ascii:
    • add support for more dtypes (INT32, INT64, FLOAT32 etc) (see #3611)
  • obspy.io.cybershake:
    • add read support for CyberShake seismogram format (see #3370)
  • obspy.io.iaspei:
    • read the origin-specific data from the ISF phase block (see #3515)
  • obspy.io.kinemetrics:
    • extract all headers from EVT files (see #3606)
    • fix reading non-UTF8 character in the comment (see #3688)
  • obspy.io.mseed:
    • _read_mseed can use interpolation search optionally to find start
      and end time in O(log(log(N))) for linearly ordered data with
      "use_bisection=True" (see #3622)
    • _read_mseed: 2GB limitation lifted (see #3622)
    • _read_mseed: use of numpy.memmap to improve efficiency (see #3622)
    • _read_mseed: Can now handle numpy.ndarray(dtype=numpy.int8), and
      and anything that can be read into numpy.ndarray(dtype=numpy.int8) with
      np.frombuffer to increase efficiency when data is already in memory. (see
      #3622)
    • new routine to spread a time interval progressively across all mseed
      blockettes in a file (see #3271)
  • obspy.io.nlloc:
    • set origin evaluation status to "rejected" if nonlinloc reports the
      location run as "ABORTED", "IGNORED" or "REJECTED" (see #3230)
    • store "NLLOC" info header line in event and origin comments (see #3230)
    • add reading of confidence ellipsoids (see #3350)
    • add support for reading and writing "PUBLIC_ID" line in NonLinLoc
      hypocenter and observation files (see #3701)
  • obspy.io.nordic:
    • Parse ID-lines (type I) into event.extra['nordic_event_id] (see #3287)
    • Support reading of compact Nordic files (only containing header lines)
    • Write amplitude with highest possible precision
    • Fix writing / reading of high-frequency IAMLHF amplitudes
    • Fix parsing of BAZ when they precede the associated phase pick in file
    • Fix bug where check for nordic format version crashed on long phase names
  • obspy.io.sac:
    • fix floating point accuracy issues in sampling rate when reading some SAC
      files. when reading SAC files, the sample spacing interval read from file
      will now by default be rounded to microseconds before taking the
      reciprocal to set the sampling rate. This can be deactivated using
      "read(..., round_sampling_interval=False)" (see #3408)
    • fix writing SACPZ END tag when empty (open ended) (see #3696)
  • obspy.io.seg2:
    • Less strict date/time parsing (#3283).
  • obspy.io.seisan:
    • Fix parsing of files written in int16 (see #3287)
  • obspy.io.seiscomp:
    • overhaul codebase towards "SCML" label instead of SC3ML
      but SC3ML still works as a FORMAT kwarg (for now)
    • add option to write different SCML catalog versions
    • update/refresh XSL files to latest (2025)
      Fixes origin/confidenceEllipsoid conversion. The unit for
      'semiMajorAxisLength', 'semiMinorAxisLength' and
      'semiIntermediateAxisLength' is already meter and does not need a
      conversion.
    • convert negative azimuth or |dip|>90 to 0-360/-90-90 for fdsnXML (#3689)
    • add seiscomp scml 0.14 support, drop 0.6
    • add seiscomp scxml 0.13 support (see #3345)
  • obspy.io.shapefile:
    • add support for pyshp v3 (see #3599)
  • obspy.io.stationxml:
    • Fix a bug writing the informational "description" field of instrument
      sensitivity input/output units (see #3572).
  • obspy.io.win:
    • Fix reading sampling rate larger than 1 bytes (see #3641)
    • Fix reading of 24 bit data (see #3661)
  • obspy.io.xseed:
    • Improve error message when trying to read a local path to a file that does
      not exist with XSEED Parser (see #2686)
  • obspy.signal:
    • PPSD: performance improvement in init: faster frequency array
      calculation (see #3644)
    • PPSD: Changed the moment instrument responses are calculated by evalresp:
      they are now preloaded at PPSD instantiation time, and no longer
      calculated for each time window (see #3589)
    • all butterworth filters: correct zero-phase filtering of 2-d arrays and
      filtering along non-default axis of 2-d arrays (see #3291)
    • fix naming of input args in function "rotate_rt_ne()" (see #3383)
    • add support for Chebyshev I/II, elliptic and Bessel filters alongside
      the default Butterworth filters (see #3294)
    • fix potential out of bounds array access in AR picker (see #1801)
    • fix a small issue in evalresp linked to picky new gcc (see #3578)
    • array analysis: minor docstring fix in "get_geometry()" (see #3516, #3606)
    • MSEEDMetadata: Computation of sample metrics replaced with vectorised
      numpy code. Speedup of roughly factor 10 for integer data and 1.5 for
      floating point data. (see #3621)
    • Fix filter construction (_filter) where freqs has len 1, linked to
      numpy 2.4.0 deprecation expiration. (see #3668)
    • Add warnings.catch_warnings for spectral_estimation tests, linked to
      a new numpy 2.4.0 deprecation. (see #3668)
    • Prep SciPy dropping ODR for polarization.partical_motion_odr, prompt user
      to install odrpack if they have SciPy >= 1.19.0 (see #3676, #3662)

Don't miss a new obspy release

NewReleases is sending notifications on new releases.