@krischer krischer released this Jan 9, 2014 · 7338 commits to master since this release

Assets 3

This release contains 1423 commits from 20 contributors. Thanks a bunch to everyone!

The new key features are full support for the FDSN web services (waveform, event, and station data) and the FDSN StationXML format including the calculation of instrument responses directly from StationXML files. Other notable changes are the support for the Nanometrics Y file format, the CSS (Center for Seismic Studies) waveform data format, the NEIC PDE bulletin event catalog files, a new client to access data from the NEIC CWB QueryServer, and numerous smaller enhancements and bug fixes.

Migration Guide from older ObsPy Versions

Full Changelog:

  • general:
    • Added mock testing library.
  • obspy.arclink:
    • user keyword is now required during client initialization
  • obspy.core:
    • Stream/Trace.attach_response(): convenience method to attach response to
      traces from inventories.
    • new method Stream/Trace.remove_response() to remove instrument response
      from Response object attached to trace(s), e.g. after parsing a
      StationXML file. Similar to Stream/Trace.simulate(seedresp=...) for
      using a Parser object (from dataless or xseed) or RESP file, but less
      cluttered parameters and without the simulating a different instrument
      part.
    • Updated event classes to QuakeML 1.2 final.
    • Moved obspy.core.event.validate() to obspy.core.quakeml.validate()
    • The writeQuakeML() function, also accessible through
      Catalog.write(..., format="quakeml"), now has an optional keyword
      argument 'validate'. If True, the resulting QuakeML file will be
      validated against the QuakeML schema before being written. An
      AssertionError will be raised in case the validation fails.
    • validation of QuakeML against official schema working now
    • renamed obspy.core.util.types into obspy.core.util.obspy_types (#595)
    • new parameter replace for Enums which allows definition of replaceable
      keywords (fixes #531)
    • Trace.split() will return a stream object containing traces with unmasked
      arrays
    • trim(pad=True, fill_value=xxx) will return a NumPy ndarray as stated in
      the API documentation (#540)
    • read() supports now tar und zip archives and variants (tar.gz, tar.bz2)
    • new options for Stream/Trace.taper() to control the length of the
      tapering for all windowing functions and perform one-sided tapering
    • Many Stream and Trace methods are now chainable, e.g. st.taper().plot()
    • when using Stream/Trace.simulate(seedresp={...})) parameter "date" can
      now be omitted, start time of each trace is used for response lookup then
    • when using Stream/Trace.simulate(seedresp={...})) for parameter
      "filename" instead of the path to a local file now also can be provided
      either a file-like object with RESP information or an obspy.xseed.Parser
      object (e.g. created reading a dataless SEED file).
    • fix Stream.select() when using values like "" or 0, e.g.
      Stream.select(location="") or when filtering by component with a channel
      code less than 3 characters long (now these traces will be omitted from
      the result when filtering by component).
    • fix a bug when merging valid data into a masked trace (see #638)
    • event.ResourceIdentifier objects are now initialized with a QuakeML
      conform string by default, i.e. if no custom prefix is provided during
      initialization.
    • event.ResourceIdentifier.resource_id attribute was renamed to
      event.ResourceIdentifier.id
    • event.ResourceIdentifier now was has a method regenerate_uuid() that
      allows the random hash part to be regenerated for resource identifiers
      with no fixed id string (can be useful to generate a new hash if the
      referred object changes).
    • added a new test that asserts that the whole codebase is valid according
      to the flake8 tool.
    • inverse filtering of catalogs.
    • bugfix: Trace.simulate() now passes the SEED network, station, location,
      and channel identifiers to evalresp.
    • added command line script "obspy-print" to print information on local
      waveform files
    • check if ndim == 1 when setting Trace.data and raise if necessary,
      see #695
    • change waveform_id parameter in obspy.core.event.FocalMechanism to list of
      WaveformStreamID as specified in QuakeML docs (#633)
  • obspy.css:
    • new module for CSS (Center for Seismic Studies) format
    • currently read support for waveform data
  • obspy.db:
    • obspy-indexer script uses from now on hash symbols (#) instead
      of pipe (|) for features because pipe has a special meaning on
      most operating systems
  • obspy.fdsn:
  • obspy.gse2:
    • read/write STA2 header line which is officialy mandatory but in pratice
      often not used
  • obspy.imaging:
    • more options to customize day plots
    • dayplot now plots matching picks (station, network, location) if a list
      of event objects is provided using the events kwarg.
    • obspy-scan: new option --print-gaps
    • added plotting of record sections
    • automatic merging can be disabled for obspy-plot
  • obspy.pde:
    • new module for reading NEIC PDE bulletin files into an obspy catalog
      object. Only the "mchedr" format (file format revision of February 24,
      2004) is supported.
  • obspy.realtime:
    • two new processing plugins (offset, kurtosis)
  • obspy.seg2:
    • adding read support for SEG2 data format code 1 and 2
      (signed 16bit/32bit integer)
  • obspy.segy:
    • fix a bug in plotting (see #689)
  • obspy.signal:
    • adding cross correlation single-station similarity checking with
      master event templates to coincidence trigger
    • add PPSD support for segments of arbitrary length
    • default bin width of PPSD is changed to 1dB. This is the value used by
      McNamara and Buland 2004.
    • fix a bug when using evalresp with RESP files with very short epochs.
      see #631.
    • for seisSim(seedresp={...})) for parameter "filename" instead of the
      path to a local file now also can be provided either a file-like
      object with RESP information or an obspy.xseed.Parser object
      (e.g. created reading a dataless SEED file).
    • seisSim(seedresp={...}): the seedresp dictionary now requires network,
      station, location, and channel keys.
    • removed deprecated psd module - use spectral_estimation module instead
    • removed deprecated sonic function - use array_processing function instead
    • corrected function signature of c_sac_taper
  • obspy.station:
    • adding support for FDSN StationXML
  • obspy.mseed:
    • new kwarg arguments for reading mseed files: header_byteorder and
      verbose
    • libmseed v2.12
  • obspy.neic:
    • new module to access data from CWB QueryServer run at the National
      Earthquake Information Center (NEIC) in Golden, CO USA.
  • obspy.y:
    • adding read support for Nanometrics Y file format
  • scripts:
    • obspy-plot: new option "-o" to output plot to file instead of opening
      a window