# Earthworm Release Notes V7.5

(August 18, 2011)

New Modules
Modifications/ Bug Fixes to Existing Modules
Changes To Configuration Files And Descriptor Files
Known Bugs
Known Deficiencies
Library Changes

    NEW MODULES:
    ***********

    Hypo71PC
    This is not a module, but an independant binary used by hyp71_mgr.
    It is a slightly modified version by Alexandre Nercessian of the widely used USGS location program.
    Modifications allow higher number of stations, altitudes to be taken into account,
    earthquakes above sea level as well as stations below sea level.
    Jean-Marie SAUREL 07/15/2011

    ewhtmlemail
    Written by Ruben Luis of CVARG. Produces a fancy email with HTML using
    embedded images and a google map. Is triggered by a TYPE_HYP2000ARC
    message. This is in the reporting section of the source
    Ruben Luis 07/07/2011

    nq2ring
    nq2wws
    nq2wws_ack
    nq2pgm
    nq2gif
    Written by Jim Luetgert for taking netquakes mseed data and injecting it
    into a ring, winston wave server, gif files and peak ground motion calcuations.
    Moved from Contrib/Menlo to data_sources in EW7.5
    Moved by Paul Friberg 07/07/2011

    nll_mgr
    This is a module to do for NonLinLoc what hyp2000_mgr does for hypoinverse. It
    basically runs NonLinLoc and converts the input and output so that it matches
    what hyp2000 does so that downstream programs can get a new earthquake solution.
    This uses Anthony Lomax's NonLinLoc locator program found here:
    	http://alomax.free.fr/nlloc/
    The nll_mgr was contributed by INGV but written by Anthony. Formerly this was in
    the Contrib bundle, but it is in use in a few places as a production module.
    NOTE that we are also including NonLinLoc with each EW release as a convenience,
    but if you need the latest, go to Anthony's web site link above.
    Loaded into SVN by Paul Friberg 05/15/2011

    EWQuakeAlert
    A Java 1.6 GUI that receives HYP2000ARC messages from import and creates alert
    emails and SMS (sms using clickatel interface) with information about the
    event. In addition to the origin info, it sends emails with a google map of
    the location and a .png display of the waveforms that had picks.
    Written by Ruben Luis
    Loaded into SVN by Paul Friberg 04/18/2011

    cont_trig
    This module sends regularly trig2k messages in order for a listening trig2disk
    to produce continuous data archiving. It can replace the contrecord Perl and modules
    of GlowWorm package (used until v6.3).
    Based on carlsubtrig module.
    Tested under Linux CentOS.
    Jean-Marie Saurel 03/12/2010

    trig2arc
    This module converts trig2k messages into hyp2000_arc messages.
    Only the stations that has been trigged are send in the output.
    P arrival time is the trigger time for each station, and the weight is 4.
    Tested under Linux CentOS.
    Jean-Marie Saurel 03/12/2010

    seisan_report
    This module is contributed from Richard Luckette and Doug Scott of the BGS
    and it takes an HYPO2000ARC message and converts it to SEISAN event format.
    Paul Friberg 12/07/2010

    hyp71_mgr
    This module allows to use Hypo71 at the end of the megamodule instead of hyp2000.
    The input/output is the same as hyp2000_mgr module.
    It allors also to compute and integrate local magnitude using standalone mode
    of localmag.
    Tested under several Linux flavours.
    Jean-Marie Saurel 10/12/2010

    ewspectra
    This module takes data from one or more waveservers, computes and processes
    their spectra; results can be written either to a file or a ring.  Processing
    includes tapering, smoothing, filtering, and peak identification.  Data
    acqusition can be initiated from the config file or from a message read from a
    specified ring (see 'compute_spectra').
    Scott Hunter 04/26/2011

    compute_spectra
    This module posts a message that, when read by ewspectra, begins processing data
    starting at the specified date/time.  (Deprecated w/ the creation of
    activate_module)
    Scott Hunter 04/26/2011

    sniffspectra
    This module is a sniffwave for spectra messages, as written by ewspectra.  Results
    can be directed to stdout or to a different file for each message "sniffed", in
    a specified directory.
    Scott Hunter 04/26/2011

    ewthresh
    This module monitors a ring for TRACEBUF2X messages and generates an alarm message
    when a SCNL-specific threshold is exceeded.
    Scott Hunter 04/26/2011

    activate_module
    This module puts an ACTIVATE_MODULE message in the specified ring, the body of
    which starts with the module ID of the specified target module, followed by the
    remaining command-line arguments.
    Scott Hunter 05/05/2011

    activated_scripts
    This module, upon reading an ACTIVATE_MODULE message in the specified ring,
    executes a sequence of scripts (making substitutions w/ supplied arguments),
    and reports the final return code in a message to the specified ring.
    Scott Hunter 05/18/2011

    ewnotify
    This module monitors a ring for ACTIVATE_MODULE or alarm messages; generates email
    and posts a message to a ring for an instance of activated_scripts.
    Scott Hunter 05/20/2011

    ewaccel
    This module monitors a ring for TRACEBUF2 messages, assumed to be from
    sensors on different floors of a building.  The sum of the forces for the floors
    is computed for each sample time and, if it exceeds a specified threshold, an
    alarm message is written to an output ring.
    Scott Hunter 06/08/2011

    sendfilemt
    This module is a multi-threaded version of sendfileII that runs as an Earthworm module,
    meaning it sends heartbeats to statmgr, and restarts like other well-behaved EW modules.
    Running sendfilemt is equivalent to running multiple copies of sendfileII, but
    only one only one configuration file is needed, and sendfilemt needs to be mentioned only
    once in the startstop.d and statmgr.d files.  The module was tested on Solaris and Windows,
    Since sendfilemt uses the standard multithread Earthworm functions, it will probably run
    ok on other operating systems too, if the appropriate makefiles are written.
    Will Kohler 7/24/2011

    adsendxs
    Adsendxs is a rewrite the old adsend module that works with newer model DAQ hardware and
    GPS receivers. Here are some features of adsendxs:
    - Runs on National Instruments X-series DAQ modules, which come in PCI Express and USB
      versions.
    - Uses the NI-DAQmx API, rather than the legacy NI-DAQ API.
    - Not tested on Linux.  The NI drivers may or may not be Linux compatible.
    - Obtains accurate time from an inexpensive Trimble ThunderBolt E GPS Disciplined Clock.
    - Seismic amplitudes are scaled the same as the older adsend program, to ensure
      compatibility with existing downstream software.
    - Runs at a user-configurable sample rate.  Tested at sample rates up to 2000 sps.
    - Periodically updates the O/S clock, using time from Trimble GPS.
    Will Kohler 7/24/2011

    MODIFICATIONS/BUG FIXES TO EXISTING MODULES:
    ********************************************

    carlsubtrig
    Added in CoincidentStaTriggers option to squash triggers of telemetry spikes. This was
    done for the Azores network but could be applicable elsewhere.
    Note that I also added a version number to the program which is stored in the log file
    AND also echoed to the command line if no args are provided. All EW modules should do this.
    Paul Friberg July 19, 2011 (with testing help from Ruben Luis).
    On August 18, 2011, I added IgnoreCoincident to ignore the coincident check if more than a
    specified number of subnets triggered coincidentally. The idea being that a telemetry glitch
    would not cross more than this number of subnets.

    hypoinverse 1.3 upgrade
    Note that the docs have changed and one command (ZTR has 2 args
    instead of one). This new version is really 1.35 and allows hypoellipse
    features which have now been integrated in.
    Fred Klein did all the code, Paul Friberg integrated with EW and checked it in.
    July 18, 2011

    binder_ew
    Added a new option no_S_on_Z which is a simple flag to
    not allow S phases to be associated with picks on vertical
    component channels. This option is off by default.
    Thanks to Barry Hirshorn for the idea from binder_agl.
    Paul Friberg 07/04/2011

    restart
    Now accepts multiple pids for restart instead of just one!
    I made the configfile option a flag (-c) too.
    Usage: restart [-c config_file]  [ ...]
    Paul Friberg 06/28/2011

    tankcut
    Fixed the -e option, which apparently never worked!
    Paul Friberg 06/10/2011

    localmag
    Stefan and I fixed the windows compilation which produced bogus numbers and never got
    a magnitude (despite running fine). The issue was a output array was filled with
    garbage numbers (not zeroed). While this was easy to solve (zero the array
    before calling convertWave()), it was not easy to find!
    Also, later we added the new configuration option ChannelNumberMap
    to map numbered channels to letter code orientations.
    New version is 2.1.4 (DOES NOT EFFECT ANY UNIX build of this)
    Paul Friberg & Stefan Lisowski 06/08/2011
    Later on added in capability to  for Z channel mags, via optional allowVerticals
    New version after allowVerticals is 2.1.5
    Paul Friberg 06/30/2011

    sniffring
    added in a -n option to allow  NO FLUSHING of messages if you want to see all
    the messages in a ring at a given instant you can use this new feature.
    Paul Friberg 06/01/2011

    tankplayer
    Fixed a bug where no heartbeats were issued if the Directory Scanning mode was
    used to playback data.
    Paul Friberg 04/29/2011

    eqassemble
    modified main tport_getmsg loop such that messages received with return codes
    GET_OK, GET_MISS, and GET_NOTRACK are all processed.  Previously, only msgs
    returned with GET_OK were processed. Msgs with GET_MISS and GET_NOTRACK returns
    were essentially ignored; only the return code was logged.
    Lynn Dietz 04/01/2011

    nmxptool
    updated nmxptool to version 2.0.0
    Matteo Quintiliani 01/24/2011

    sniffwave
    added in tracebuf2.1 detection capability display (to show a conversion factor instead
    of data quality flags). This is fully backward compatible with all prior
    versions.
    Kevin Frechette 01/12/2011

    localmag
    Fixed a case where if multiple wave_serverV's were listed, only the first one
    was ever polled for data (the rest were marked as duplicates).
    Paul Friberg 01/12/2011

    export_generic
    any linux module using PTHREAD_STACK set to 8192 can possibly segfault on
    64-bit linux (unreliably). The thread stack size was increased to 81920
    for Linux #ifdefined statement and all problems went away. This was not
    tested on Solaris or Windows or Mac OS X.
    Paul Friberg 12/02/2010

    tankplayer tools, wave_probe, dumpwave, cleandir, glass, startstopservice
    On Windows, added kom.obj to link so that the new kom dependency to logit
    is taken into account.
    Stefan Lisowski 11/11/2010

    tankplayer tools, ew2mseed, dumpwave, getmenu
    On Solaris and Unix makefiles, added kom.o to link so that the new kom
    dependency to logit is taken into account.
    Matteo Quintiliani 11/4/2010

    menlo_report
    Added parameter EnableLongFileName in the configuration file of menlo_report.
    It enables writing arc/sum files with format DATETIME_ID_VER.SUFFIX
    (i.e. 201011040932_0000097658_2.arc)
    Matteo Quintiliani 11/4/2010

    eqcoda
    Increased buffer size to 512 bytes for reading a line from the station file.
    Same behaviour of pick_ew.
    Matteo Quintiliani 8/25/2010

    sniffwave
    Fixed a misleading print statement when WaveMsg2MakeLocal() failed on a SCNL, it
    showed possible spaces in the SCNL that were not really there.
    Paul Friberg 8/19/2010

    fir
    Added QueueSize optional parameter to increase the default from 100
    Added SleepMilliSeconds optional parameter to decrease the default from 500ms
    Paul Friberg 8/18/2010

    statmgr
    *Bugfix You can now comment out the line that includes an email addres
            so nobody gets emailed by statmgr, and you don't need to put a
            fake email address in to get statmgr to start. This is the
            behavior that is desccribed in the config file. Fix by Paul Friberg
            201006

    sniffwave
    - Removed hundredths of second from values of latency.
    - Changed the SCNL line output format in order to increase the readability.
      Now each field falls nearly at same column.
    - Quality fields are now displayed in hexadecimal.
      Before non-ASCII characters were improperly printed to the terminal.
    - Distinguished output for gaps and overlaps.
    Matteo Quintiliani 6/22/2010

    ew2mseed
    Removed -D_SPARC from CFLAGS line of makefile.sol. This flag prevented
    proper byte-swapping on Solaris for little-endian (Intel) platform.
    Ilya Dricker 5/05/2010

    ew2mseed
    *Bugfix to prevent overflow in printing of location code
    *Fixed a condition of a bogus 'FULLY in THE GAP' return from waverserver.
     Now if waverserver insists that the request is fully in the gap, but the
     requested startTime is more than 12 hours AFTER the current time, we redefine
     the waveServer FLAG is 'REQUEST-AFTER-THE-TANK'
    Ilya Dricker 5/19/2010

    trig2disk
    Postproc external script is now launched with tow arguments :
    date (YYYYMMDD) and time (HHMM) of the processed event.
    Change by Frederic Randriamora.
    Jean-Marie Saurel 27/12/2010

    gmew
    Added ability to recognize ACTIVATE_MODULE messages to initiate processing; also
    added ability to override the set of spectral periods to be processed.
    Scott Hunter 05/18/2011

    startstop
    Fixed writing of empty error messages
    Scott Hunter 5/17/2011

    startstop
    Restored ability of unix versions to control modules by id; made Windows version
    of this more robust
    Scott Hunter 6/22/2011

    statmgr
    Now allows for up to 10 mailservers; when mail is sent, each is tried in order
    until one works.
    Scott Hunter 6/29/2011

    startstop
    Uses new transport call to clear ring flag requesting termination of a process
    Scott Hunter 6/29/2011

    startstop
    Changed to reflect changes to transport library
    Scott Hunter 7/8/2011

    pick_ew_analysis
    I have made very significant changes to the first version. Here is a short list of the main:
    1.       Windowed or full-screen - This allows larger traces
    2.       Multiple and prioritized waveform sources - One may have multiple waveform sources. The app will automatically select one according to the required station and time interval
    3.       List of available stations and time intervals for each source - This allows checking if a waveform source carries the data that we need. Similar to get menu but extended to other waveform sources.
    4.       Reads data from wave/Winston servers, tank files (SCNL only), and mini-seed files - I included the latter to be able to check data from continuous archives.
    5.       On-screen indication of available data for each station within requested time interval - There is a small check after each station to let the user know that there is data available for the requested time interval.
    6.       Facilitated automatic setting of the request time interval based on availability of the sources - I included a button to automatically set the start and end times according to the time interval available from the sources. In case of waveservers it sets the end time to NOW-1 minute (I think) and NOW-21 minutes.
    7.       Indication of incorrect date/time settings - Characters turn red if you make an obvious mistake or swap start and end times
    8.       Zoom-in and pan buttons as well as drag-to-zoom - Swarm like waveform browsing is really cool to find details.
    9.       Missing parameters from pickew are included: NoCoda, RestartLength and MaxGap - I had some requests for this, particularly the nocoda
    10.   Tooltips with the pick and coda texts
    11.   Tooltips with the causes for failed picks - Same as before.
    2011-07-06 Ruben S. Luis (commited to svn by Stefan)

    CHANGES TO CONFIGURATION FILES and DESCRIPTOR FILES:
    ****************************************************

    Environment Variable expansion in .d files
    Added file environment/earthworm_commonvars.d for declaring "Earthworm Common Variables"
    It is now possible to declare variables like ${...} within .d configuration files
    Matteo Quintiliani 11/4/2010

    KNOWN BUGS:
    ***********

    KNOWN DEFICIENCIES:
    *******************

    LIBRARY CHANGES:
    ****************

    Added a tport_flush call to the transport library; acts as if tport_getmsg were
    called repeatedly until no more messages were found, but doesn't incur the
    overhead of returning the messages (which would get ignored anyway).
    Scott Hunter 5/18/2011

    Changed default mail program used by SendMail for MacOSX
    Scott Hunter 5/20/2011

    Added a tport_detachFromFlag call to support change in flag: instead of
    a single value, it now records all individual process IDs put to it
    (until TERMINATE is put to it, which effectively replaces the list) --
    this prevents the flag from being changed before the target process
    reads it (which is now possible, due to making the stop & restart
    commands multi-threaded).  tport_getflag now yields TERMINATE if that
    has been put; if it hasn't but the process's own ID is in the list, that
    is returned; otherwise, 0 is returned.  tport_detachFromFlag is now used
    to remove a value from the list (what used to be done by putting a 0).
    Scott Hunter 6/29/2011

    In order to support legacy modules not using the new transport library,
    SHM_HEAD was restored to its original form, and the new list-of-IDs flag
    is kept in a distinct ring which is only used for this purpose.  Processes
    that do not use the new library will be communicated with via the old flag
    field (which has the original overwriting issue, but now contention is only
    between legacy modules).
    Scott Hunter 7/8/2011

    Modified transport library so if a module using the new library is run with
    a startstop built against the transport library using the original flag
    representation, module will use the old style flag.  Also modified to allow
    key for flag ring to be specified in earthworm.d (named FLAG_RING).
    Scott Hunter 7/19/2011

    Modified getutils to provide a version of GetKey (GetKeyWithDefault) which
    takes a default value to return if the specified key does not exist; modified
    transport to use this new function to avoid error messages when FLAG_RING is
    not defined (and a default value is used).
    Scott Hunter 7/25/2011