10
Computers & Geosciences 31 (2005) 55–64 PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems Andrea Bono , Lucio Badiali Istituto Nazionale di Geofisica e Vulcanologia, Centro Nazionale Terremoti, Via di Vigna Murata 605, Rome 00143, Italy Received 19 January 2004; received in revised form 28 September 2004; accepted 28 September 2004 Abstract Personal WaveLab 1.0 wants to be the starting point for an ex novo development of seismic time-series analysis procedures for Windows-based personal computers. Our objective is two-fold. Firstly, being itself a stand-alone application, it allows to do ‘‘basic’’ digital or digitised seismic waveform analysis. Secondly, thanks to its architectural characteristics it can be the basis for the development of more complex and power featured applications. An expanded version of PWL, called SisPick!, is currently in use at the Istituto Nazionale di Geofisica e Vulcanologia (Italian Institute of Geophysics and Volcanology) for real-time monitoring with purposes of Civil Protection. This means that about 90 users tested the application for more than 1 year, making its features more robust and efficient. SisPick! was also employed in the United Nations Nyragongo Project, in Congo, and during the Stromboli emergency in summer of 2002. The main appeals of the application package are: ease of use, object-oriented design, good computational speed, minimal need of disk space and the complete absence of third-party developed components (including ActiveX). Windows environment spares the user scripting or complex interaction with the system. The system is in constant development to answer the needs and suggestions of its users. Microsoft Visual Basic 6 source code, installation package, test data sets and documentation are available at no cost. r 2004 Elsevier Ltd. All rights reserved. Keywords: Seismic phase-picking; Object oriented; UML; SAC files managing; Hypoinverse2000 Phases export; Filters 1. Introduction A new system for acquisition and processing of digital signals has been developed in the last few years at the Istituto Nazionale di Geofisica e Vulcanologia (INGV) (Badiali et al., 2001). The Italian National Seismic Network currently collects the seismic signals from its own sensors and from other regional and local collaborative networks into the computer data centre in Rome. The result is a virtual wide network. Communications are provided partly through wired analogue and digital lines, and partly through satellite digital connections. The waveforms come from reliable triggering system and from continuous file buffer recording, and are normalised according to an internal format (Badiali et al., 2001), but SAC format is also available. The availability of a large number of signals made the available ‘‘console-based’’ application too slow and inefficient to be used for Civil Protection purposes. So, PWL facilities were boosted up to process as quickly as possible all the time-series recorded by the brand new ARTICLE IN PRESS www.elsevier.com/locate/cageo 0098-3004/$ - see front matter r 2004 Elsevier Ltd. All rights reserved. doi:10.1016/j.cageo.2004.09.010 Corresponding author. Tel.: +39 065 1860290; fax: +39 065041303 E-mail address: [email protected] (A. Bono).

PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

Embed Size (px)

Citation preview

Page 1: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESS

0098-3004/$ - se

doi:10.1016/j.ca

�Correspond+39 065041303

E-mail addr

Computers & Geosciences 31 (2005) 55–64

www.elsevier.com/locate/cageo

PWL 1.0 Personal WaveLab: an object-oriented workbench forseismogram analysis on Windows systems

Andrea Bono�, Lucio Badiali

Istituto Nazionale di Geofisica e Vulcanologia, Centro Nazionale Terremoti, Via di Vigna Murata 605, Rome 00143, Italy

Received 19 January 2004; received in revised form 28 September 2004; accepted 28 September 2004

Abstract

Personal WaveLab 1.0 wants to be the starting point for an ex novo development of seismic time-series analysis

procedures for Windows-based personal computers. Our objective is two-fold. Firstly, being itself a stand-alone

application, it allows to do ‘‘basic’’ digital or digitised seismic waveform analysis. Secondly, thanks to its architectural

characteristics it can be the basis for the development of more complex and power featured applications. An expanded

version of PWL, called SisPick!, is currently in use at the Istituto Nazionale di Geofisica e Vulcanologia (Italian

Institute of Geophysics and Volcanology) for real-time monitoring with purposes of Civil Protection. This means that

about 90 users tested the application for more than 1 year, making its features more robust and efficient.

SisPick! was also employed in the United Nations Nyragongo Project, in Congo, and during the Stromboli

emergency in summer of 2002.

The main appeals of the application package are: ease of use, object-oriented design, good computational speed,

minimal need of disk space and the complete absence of third-party developed components (including ActiveX).

Windows environment spares the user scripting or complex interaction with the system.

The system is in constant development to answer the needs and suggestions of its users.

Microsoft Visual Basic 6 source code, installation package, test data sets and documentation are available at no cost.

r 2004 Elsevier Ltd. All rights reserved.

Keywords: Seismic phase-picking; Object oriented; UML; SAC files managing; Hypoinverse2000 Phases export; Filters

1. Introduction

A new system for acquisition and processing of digital

signals has been developed in the last few years at the

Istituto Nazionale di Geofisica e Vulcanologia (INGV)

(Badiali et al., 2001). The Italian National Seismic

Network currently collects the seismic signals from its

own sensors and from other regional and local

collaborative networks into the computer data centre

e front matter r 2004 Elsevier Ltd. All rights reserve

geo.2004.09.010

ing author. Tel.: +39065 1860290; fax:

ess: [email protected] (A. Bono).

in Rome. The result is a virtual wide network.

Communications are provided partly through wired

analogue and digital lines, and partly through satellite

digital connections.

The waveforms come from reliable triggering system

and from continuous file buffer recording, and are

normalised according to an internal format (Badiali

et al., 2001), but SAC format is also available.

The availability of a large number of signals made the

available ‘‘console-based’’ application too slow and

inefficient to be used for Civil Protection purposes. So,

PWL facilities were boosted up to process as quickly as

possible all the time-series recorded by the brand new

d.

Page 2: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESSA. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–6456

automatic system, to make manipulations such as

filtering, to pick or review seismic phases and to start

location routines. An interesting feature is the ability of

showing in a single area (Event Graphical Area: EGA)

all waveforms related to an event with no restrictions of

number or dimension of files. At present, most of seismic

analysis systems can display at most one trace or three

components of the same station. Moreover, PWL can

show vertical components in its EGA and detailed three

components for active station in a second window

activated by a double-click. All phase picking and

editing can be performed in both windows. In the three

components view, a vertical picking bar covers the three

waveforms during the analysis in order to help the user

in phases identification. It is possible to switch from one

station to another just by a mouse click.

Another interesting function is given by ‘‘waveforms

grouping and synchronisation’’. All time-series shown in

the EGA can be synchronised and grouped in order to

apply modification to all traces simultaneously. Func-

tions like zoom, crop, offset correction and filters can be

applied to a single trace or to all the traces. Grouping

and synchronisation are selected by default in the three

components window.

Many shortcuts are implemented to speed up most

frequent operations.

PWL and its evolution SisPick! should not be compared

with the existing and really powerful analysis packages.

They do not include all features embedded in titanic

systems like SAC or PITSA or other commercial products.

The authors only want to provide a ‘‘basic but expand-

able’’ system created to be really user friendly with the

well-known layout of a Windows application. Program-

ming experienced users will rapidly be able to improve the

provided source code with their own algorithms (such as

special filters, signal integration or differentiation, particle

motion viewers, magnitude calculators, etc.).

2. Main features

PWL was developed on a Windows 2000 workstation

with Microsoft Visual Basic 6 development environment

and it is currently available only for Windows systems.

As mentioned, the most basic functions on waveforms

are implemented. They include:

Graphical representation of data according to the

following file types: WF, TWF, INGNET (INGV file

formats), SAC.

Zoom in/zoom out.

Print.

Filters and fast Fourier transform: band-pass, high-

pass, low-pass by frequency windowing.

Editing: spikes removing, amplitude adjusting, offset

and baseline corrections with linear regression.

Picking, deleting, moving phases and ‘‘visual weigh-

ing’’. Automatic weight codes are set according to the

Hypoinverse2000 standard. Phase quality and polar-

ity can be set too.

Coda duration picking or revision.

Phases export in ASCII Hypopinverse2000 files.

As said, more powerful features are at present running

in the PWL version used for seismic monitoring at the

INGV. Amongst them, we mention an automatic file

selection routine and an embedded hypocentre location

package.

An export/import function of SAC type files is

included. This guarantees a high level of compatibility.

User can analyse files in the office, at home or wherever

he has access to a Windows PC with at least 1MB of free

disk space. In fact, program can run on a local machine

without a specific connection to the automated INGV

Data Acquisition System. User will have to manually

load files creating his own ‘‘personal events’’.

The typical use of PWL implies the availability of

triggered waveforms from individual events, but in some

cases continuous traces can be read and properly

cropped. That is the case of the Stromboli emergency

application on summer of 2002 and the United Nations

Nyragongo Project. We must consider that ‘‘continuous

vs. trigger’’ means ‘‘larger vs. smaller’’ files: long

recordings decrease system performance.

Traces can be aligned by P arrivals and a synchroni-

zation routine is available because files can start or end

at different times (default in INGV version). This

immediately warns the user if an unwanted trace was

included into an event.

There is no theoretical limit to the number of

waveforms that can be loaded into the system. During

a test (Slovenia earthquake July 12th, 2004 Ml 5.2) 109

traces were loaded and PWL was working dearly. Trace

boxes are dynamically resized until a number of traces is

reached (this bound can be configured by the user);

afterwards, a vertical scroll-bar helps in the visualisation.

Filters included in PWL are basically a FIR synthesis

by frequency windowing. Available features are low/

high/band-pass, differentiator, band-stop. Corner fre-

quencies and number of poles are customisable.

Implemented tapers are Hamming, Blackman, Kaiser,

Lanczos, Weber and Ideal rectangular and triangular

(see Openheim and Shafer, 1990).

Another band-pass algorithm with time-shift correc-

tion was implemented re-engineering a FORTRAN

routine by Paul Spudich—USGS Menlo Park (CA).

Traces can be returned to an unfiltered state by

‘‘undoing’’ the last filter or by the reload option.

Program interface can be customised, choosing colors

for waves, axes, grids (visible or not), phases and

backgrounds. Network settings for local/distributed

operation mode are configurable too.

Page 3: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESSA. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–64 57

3. An innovative architecture

The software was developed conforming to the object-

oriented (OO) methodology to make it as modular as

possible, making maintenance easier. OO methods have

the potential for greatly improving the usefulness of

computers in science and engineering. In fact, our

experience with using C++ for numerical-scientific

computing has clearly shown that the resulting libraries

and applications are significantly easier to be extended,

maintained and re-used in new situations, compared to

the traditional procedure-based programming style of

Fortran and C. Therefore, OO programming and

component-based programming (standard for VB and

other Rapid Application Development tools) are two

important techniques that contribute to such improve-

ments of software development efficiency.

A class, in OO languages, is essentially the definition

of a data structure or, in other words, the set of variables

closely connected with each other and the operations,

called ‘‘methods’’, that can be performed on such data.

Methods are equivalent to subprograms in non-OO

terminology.

An object is a particular instance of a class that is

created within a program in order that the methods that

the class defines may be used. The objects of a class are

totally and exclusively defined by the definition of the

class. It is not necessary to know the way they are

implemented or the source code that defines the methods

and private variables in order to use them.

Visual Basic implements objects through the use of so-

called ‘‘class modules’’. It is thus enough to include in a

project the oClassName4.cls file in order to inherit all

its features.

The Use Case Map (UCM) shown in Fig. 1 provides a

general behaviour specification of the system.

That is a high-level design model to help us express

and reason about a system’s large-grained behaviour

patterns (Buhr, Casselman, 1996). As this kind of maps

Fig 1. Use Case Map: PWL behaviour specification.

is intended to be used at the requirements level or for

high-level design, they deliberately do not explain all

details of the system but can provide a general

specification.

Class Diagrams are successively used to give a

description of the implementation level (Fowler and

Scott, 2000).

Fig. 2 shows the Class Diagram for PWL.

3.1. Waveform class

One of the most interesting characteristics of PWL

architecture is that it includes a class for defining seismic

time-series.

Table 1 contains a brief description of class structure.

With a few modifications (a couple of lines have to be

commented and an appropriate Read routine has to be

coded), Waveform Class Module can be included in any

other visualisation program and re-used to show two-

dimensional data streams in standard VB picture-boxes.

Fig 2. UML Class Diagram.

Page 4: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESS

Table 1

Waveform class structure

Attribute Data type Description

FileName String Seismogram file

name

Station String Station code

Date String Record date

Time String Record time

NSamples Longlnt Number of samples

Frequency Float Sampling frequency

Component String Channel

code+component

code

X() Float X samples

Y() Float Y samples

xMin Float Minium value for X

samples

xMax Float Maxium value for X

samples

yMin Float Minium value for Y

samples

yMax Float Maxium value for Y

samples

Amplitude Float Maximum

amplitude

Period Float Period

NPhases Longlnt Number of phases

Duration Float Coda duration in

seconds

Method Description

ReadWave() Reads wf, twf files

PlotWF() Draws a seismogram in a picture box

PlotPhases() Phases display

FIRFilter() Applies FIR filters

PanWave() Pans current wave

MinMaxP) Calculates minimum and maximum X

and Y

ChangeDuration() Updates coda duration

AutoDespike() Autmatic spike removal routine

Remove Offset() Offset correction

Remove Spikes() Manual spike removal ruotine

SetNewStart() Sets new starting sample

SetNewEnd() Sets new ending sample

Save() Saves seismogram in SAC format

Reload() Reloads file

Close Wave() Unloads seismogram file

A. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–6458

3.2. Seismic Event related classes

We chose to design two classes to represent seismic

events. Event class contains all information about the

current earthquake. The class module name is clsE-

ventHypo200.cls. This means that we adopted the

Hypo2000 standard to represent such kind of informa-

tion. This is because we considered that the most used

earthquake location packages accord to this standard.

So, if we can store event details in this data structure,

our system is ready to interact with the most common

and power featured locators.

ClsEventHypo2000 includes all general information

about the earthquake such as date, hour, number of

recording stations, number of phases and number of

time-series. Among its attributes we must cite a Phases

array and a Waves array. This means that this class is

related to other ones as shown in Fig. 2.

ClsEvtLineHypo2000 includes information about a

single station recordings (an hypo2000 file line): station

code, P and S arrival times, amplitude and period, coda

duration and so on. Furthermore, it contains file names

for three components time-series.

Classes details are shown in Tables 2 and 3.

ClsTerna is quite similar to Event class but it is used to

record information about a three-component station

when the Station View Window is loaded. Table 4 shows

its structure.

3.3. Phase class

clsPhase is used to store information about phase

picking. As we are following the Hypo2000 standard, we

record station code, phase quality and polarity, arrival

time, channel code, component code and phase weight.

Table 5 shows the class structure.

About methods: ShowPhases can draw phase pickings

on seismograms and Update and Delete routines are

used to edit class attributes.

A crucial point in phase class managing is represented

by its application to earthquake location. In fact, it is

possible that more than one P or S phases are picked for

a station (example PG, SG and PN, SN). Hypo2000

location routines only use a P and an S phase per

station. So we have to choose which phases have to be

sent to the location routine. Current version of the

System automatically updates its Line objects with the

first P and S phases, following the arrival time order. We

are currently working on a user-driven phase selection.

3.4. A Sequence Diagram

As the whole system is focused around the Event

concept, it is important to describe how this structure is

built and managed. A Sequence Diagram (Quatrani,

1998) about classes instantiation is shown in Fig. 3.

After an event selection (or first manual file load), an

Event object is created and subsequently an EventLine is

created for each station; then the seismogram file is read

and a Waveform object is created. Phase objets are

created if the analyst is using regular event files. See

Appendix 2 for Event file format.

After the event has been read, user can perform

picking or editing in order to start available location

routines.

Page 5: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESS

Table 2

EventHypo2000 class structure

Attribute Data type Description

Active Wave Longint Selected wave index

EvtDate String Event date

EvtTime String Event time

FileName String Event file name

N Phases Longint Number of phases

NSelected Longint Number of selected waves

nStations Longint Number of stations

Open Waves Longint Number of waves in EGA

Lines() clsEvtLineHypo2000 Array of event lines

Waves() clsWaveform Array of seismograms

Phases() clsPhase Array of Phases

Method Description

Activate Wave() Activates specified wave

AddWave() Adds a station to the event

ReadEvent() Reads event file

CloseEvent() Unloads event and all seismograms

DeletePhase() Deletes specified phase from event

PickAPhase() Adds a phase

Refresh() EGA display refresh

ShowPlots() Plots all selected waves

SyncroWaves() Performs synchronization

Update() Updates phases and coda durations after picking

WriteEvent() Writes event file

A. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–64 59

3.5. Integration with location software

The use of PWL in the INGV real-time seismic

monitoring tasks has been possible, thanks to the

integration with some event-location routines (not part

of the PWL package). All these routines, we say

Hypoinverse or Hypoellipse, can be defined as legacy

software. Legacy software are computer programs that

are difficult to maintain and incompatible with the

current state-of-the-art operating systems like MS-DOS

executables running under Windows (Coyle, 2000). We

chose to integrate executable files of locators into our

visual interactive window shell without re-engineering

original source code. So it is possible to launch the

FORTRAN locator and wait for the result. Then, a

summary window with location parameters and resi-

duals can be displayed. This allows the user to recover

bad readings and perform a rapid picks-review.

Such an approach offers a lot of advantages. For

example,

legacy programs do not need to be re-written in

another language (a single location program was

completely translated in Visual Basic),

data input–output is done easier and with more

flexibility using Windows objects and controls,

data output can be immediately visualised and

interpreted with the help of graphical components

(Friedrich and Karslioglu, 2003).

In Fig. 4, we show a Use-Case representing the

interaction between PWL and the Location System.

3.6. User Interface

PWL User Interface is based on typical Windows

controls. An MDI-Form is the top-most interface and

all functions and routines can be accessed through this

window. A tool-bar and a menu-bar allow the user to

manage the rapid execution of the main operations.

An information frame is on the right-most side and a

few other forms are loaded when needed.

More details are given in the user documentation

(HTML website http://SisPick.ingv.it or PDF document).

4. A case study

Let us examine some of the main features of PWL in a

practical example.

We will consider the Monti Tiburtini earthquake

(Md 2.2) of August 1, 2004.

Page 6: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESSA. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–6460

Seismograms (Fig. 5 shows vertical components) are

loaded in the EGA with the picks of the automated

acquisition system. Fig. 6 shows the EGA after a band-

Table 3

EventLineHypo2000 class structure

Attribute Data type Description

Staz String Station code

ChannelCode String Channel code

ComponentCode String Component code

NetworkCode String Network code

N Waves Longlnt Number of seismograms

P_Phase String P phase remark

P_Polar String P phase polarity

P Quality String P phase quality

P Time String P arrival time

P_Weight Integer Assigned P weight code

S Phase String S phase remark

S_Quality String S phase quality

S Time String S arrival time

S Weight Integer Assigned S weight code

YYMMDD String Record date

Duration Float Coda duration

Amplitude Float Amplitude

Period Float Period

FileZ String Vertical component file name

FileN String NS component tile name

FileE String EW component file name

Used Boolean True if station is used in location

Method Description

ReadLine() Reads a line from event file

ReadPhases() Recovers phases from a line

UpdateLine() Updates phases and duration

WriteLine() Writes lines in specified file

Table 4

Tern class structure

Attribute Data type

Staz String

ChannelCode String

NWaves Integer

NPhases Integer

Duration Float

Waves() clsWaveform

Phases() clsPhase

Method Description

lnitTern() Initializes class structures

RecoverWaves() Recovers current station

ShowWaves() Seismograms display

SyncroWaves() Time-series synchronizat

PickAPhase() Adds a phase to Tern.Ph

DeletePhase() Drops a phase from Tern

ScndPhasesToEvent() Sends all phases to Even

pass filter applied to the waves group. Such a kind of

operation is made easier by tool buttons and keyboard

shortcuts. For example, traces are filtered by simply

pressing the ‘‘F’’ key.

In order to re-pick a phase, user can follow three

alternatives:

sei

ion

ase

.P

t. P

Ta

Ph

At

Sta

Ch

Co

Ar

Ar

Ph

Po

Qu

W

M

De

Co

select phase from the picking bar and drag it onto the

seismogram,

right-click and chose ‘‘P’’ or ‘‘S’’ in a popup menu

(phase will be picked on mouse position),

simply type ‘‘P’’ or ‘‘S’’ and phase will be picked on

mouse position.

Description

Station code

Channel code

Number of seismograms (1–3)

Number of phases

Coda duration in seconds

Array of time-series

Array of phases

smograms

sf) array

hases() array

hases()

ble 5

ase class structure

tribute Data type Description

z String Station code

annelCode String Channel code

mponentCode String Component code

rival_Date String Arrival date

rival_Time String Phase time

ascNamc String Phase name

larity String Polarity

+,�,U,D,C, D

ality String Quality i,e

eight Integer Assigned phase

weight code

ethod Description

lete() Drops a phase

mpact_Phases() Used to compact arrys of phases after

Delete

Page 7: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESS

Fig 3. Sequence diagram of event selection procedure.

Fig 4. Communication between PWL and FORTRAN legacy

code location routines.

A. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–64 61

The application also makes setting a value for an

uncertain arrival time of a phase very simple (see Fig. 7).

In fact, as soon as you set a phase, a circumference

centred around the point you click on is visible, having a

variable radius depending on the mouse pointer’s

position. As the radius increases, so does the uncertainty

and therefore the application automatically varies the

weight to be assigned to the interpretation.

If more than one component for the same station is

available, the interpretation can be conducted on all the

group of three components (see Fig. 8).

When interpretation is finished, the location process

can be started and a file with phases in the ASCII

Hypo2000 format is created.

The INGV version of PWL also reports details about

a location in a specific Summary Window (see Fig. 9). In

this form, residuals are classified by colour gradient:

green is used for values lower than 0.5 s; yellow is

used for residuals between 0.5 and 1 s; red is used for

residual over 1 s. Double click on a residual produces

automatic zoom in on selected phase in the Station View

Window.

5. Discussion

The main innovation introduced by the system

examined is represented by the possibility to rapidly

elaborate a great quantity of waveforms in a graphical

mode having a global view on all time-series. As been

said, there is also a module for a complete management

of SAC files, which allows the user to operate from

home as from the office, using his Windows machine to

read time-series generated under other systems (UNIX,

VMS, SUN OS).

All functions are made easy by the visual context of

the system.

The massive use of the system in the real-time

monitoring activity of the Istituto Nazionale di Geofisica

e Vulcanologia of Rome, during the Stromboli emer-

gency and in the United Nations’ Nyragongo Project

lead to a strong improvement of the system. Among the

most important incoming upgrades:

1.

The increased compatibility with other software

products through the import/export of many more

file formats.

2.

The use of a multiple database system for

data storage. At present, integration with Oracle 8i,

MS SQL Server e MS Access systems has been

planned.

3.

Implementation of algorithms for the study of

particle motion in 2D and 3D.

Page 8: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESS

Fig 5. EGA with seismograms (vertical components) of Monti Tiburtini earthquake.

Fig 6. Seismograms after time bounds reset and default band-pass filter (3–7Hz).

A. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–6462

4.

The integration of a Fortran program that computes

double-couple fault plane solutions from P-wave first

motion data using a grid search method.

5.

A C++ release for Linux platform is currently under

development.

The system is at its early versions, we thus expect user

requests for integration of new features and manage-

ment of other file formats.

Of course, no licensing is required and users can make

free use of source code.

Page 9: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESS

Fig 7. Automatic weight setting.

Fig 8. Phase picking in the Station View Window: three components of CERT (Cerreto Laziale) station.

A. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–64 63

Acknowledgements

Our thanks go to A. Amato, S. Barba, A. Basili, M.

Di Bona, S. Mazza, F. Mele for their advice during

development.

A. Amato, as Director of the Centro Nazionale

Terremoti (National Earthquakes Center), authorised

the use of PWL on the workstations of INGV’s seismic

surveillance hall and encouraged its use and intensive

testing from personnel during shifts.

M. Di Bona supplied an algorithm (FORTRAN code by

Paul Spudich—USGS Menlo Park (CA)) that was oppor-

tunely modified to implement a Cosine-Band Pass Filter.

A. Basili, F. Mele and M. Di Bona, R. Basili were the

most active contributors during the development of the

acquisition system and the location software.

Page 10: PWL 1.0 Personal WaveLab: an object-oriented workbench for seismogram analysis on Windows systems

ARTICLE IN PRESS

Fig 9. Location Summary Window.

A. Bono, L. Badiali / Computers & Geosciences 31 (2005) 55–6464

Appendix 1

System requirements

The package is installed with the typical Windows

approach using a Setup application. PWL executable file

and a few runtime libraries are copied onto the local

hard drive. The free disk space that is necessary is

roughly 1MByte.

CPU speed and quantity of RAM influence very much

the application performance. The minimal hardware

configuration is

CPU:

Pentium 200Mhz

RAM:

128MB

Screen resolution:

800� 600

Appendix 2

Event file format

An Event file is a modified HypoInverse2000 ASCII

file. The only difference is represented by the file names

added in columns 87 (vertical component), 110 (hor-

izontal NS component) and 133 (horizontal EW

component). All these names have to be 22 characters

long. No file path is needed. File names have to be

separated by a ‘‘;’’. If no file is available for a

component, related line positions have to be space filled.

Sample event files are distributed with source code and

documentation.

References

Badiali, L., Marcocci, C., Mele, F., Piscini, A., 2001. Improved

seismic acquisition system and data processing for the

Italian national seismic network. Proceedings of the 2001

AGU Fall Meeting, San Francisco, USA, p. 83.

Buhr, R.J.A., Casselman, R.S., 1996. Use Case Maps for

Object-Oriented Systems. Prentice-Hall Inc., Englewood

Cliffs, NJ 302pp.

Coyle, F.P., 2000. Legacy integration-changing perspectives.

IEEE Software March/April, 37–41

Fowler, M., Scott, K., 2000. UML (Unified Modeling

Language) distilled. Addison-Wesley Longman, Reading,

MA 146pp.

Friedrich, J., Karslioglu, M.O., 2003. Updating Fortran

programs and other legacy code to an interactive window

platform. Computers & Geosciences 29 (9), 1091–1100.

Openheim, A.V., Shafer, R.W., 1990. Digital Signal Processing.

Prentice-Hall Inc., Englewood Cliffs, NJ 603pp.

Quatrani, T., 1998. Visual Modeling with Rational Rose and

UML. Addison-Wesley Longman, Reading, MA 222pp.

Further Reading

Internet references

HYPOINVERSE: http://geopubs.wr.usgs.gov/open-file/of02-

171/of02-171.pdf or http://quake.wr.usgs.gov/research/soft-

ware/index.html.

PITSA: http://www.geo.uni-potsdam.de/Forschung/Software/

pitsa.html.

SAC Seismic Analysis Code: http://www.llnl.gov/sac/.

SNAP-Seismic Network Analysing Program (SNAP): ftp://

seismo.ethz.ch/pub/baer/snap/.

WinQuake: http://psn.quake.net/wqdocs/winquake.html#Fea-

tures.