Commit 6ae7a100 authored by thomas.forbriger's avatar thomas.forbriger
Browse files

croposp: adjust files for new project

parent 7ce3ae1f
this is <COPYING> this is <COPYING>
============================================================================ ============================================================================
ts/wf: time series waveform filters croposp: cross power spectral density
============================================================================ ============================================================================
Copyright (C) 1996, 2011 by Thomas Forbriger Copyright (C) 2019 by Thomas Forbriger
---- ----
These programs are free software; you can redistribute them and/or modify These programs are free software; you can redistribute them and/or modify
......
# this is <Makefile> # this is <Makefile>
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# #
# Copyright (c) 2005 by Thomas Forbriger (BFO Schiltach) # Copyright (c) 2019 by Thomas Forbriger (BFO Schiltach)
#
# compile croposp
# #
# time series waveform filters
#
# ---- # ----
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
...@@ -17,45 +17,20 @@ ...@@ -17,45 +17,20 @@
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program. If not, see <http://www.gnu.org/licenses/>.
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# ---- # ----
# #
#
# Makefile fuer tools /src/ts/wf
#
# 22/01/2001 introduced smoos and did some "tidy up"
# 24/10/2001 introduced siggen
# 24/05/2001 introduced tsfilt
#
# REVISIONS and CHANGES # REVISIONS and CHANGES
# 11/07/2005 V1.0 Thomas Forbriger (thof) # 06/02/2019 V1.0 Thomas Forbriger
# 07/12/2007 V1.1 default Fortran compiler now is g77
# 17/12/2007 V1.2 moved to gfortran
# 08/10/2010 V1.3 migrate to new SVN environment
# - discard f2c fallback
# - use FFTW3
# 10/02/2011 V1.4 distinguish between compilation and installation
# 24/06/2011 V1.5 moved tests to distinguished Makefiles
# 25/05/2012 V1.6 link siggen against libfapidxx (damb)
# 03/06/2012 V1.7 to be consistent with other programs: distinguish
# siggen and siggenx (being linked against libsff and
# libfapidxx, respectively)
# 11/01/2013 V1.8 added sigscale to program targets
# 17/04/2013 V1.9 lisousi has its own place now (moved source code)
# 28/10/2013 V1.10 implemented libfapidxx-version of suseix
# 02/01/2014 V1.11 removed signal generators, added tisli suspect
# 01/02/2014 thof: rewrite all linker rules with libraries in
# proper order
# 19/03/2016 thof: tidofi requires libgsl for filter GaussianNoise
# 25/12/2018 thof: add new program croposp
# #
# ============================================================================ # ============================================================================
#
PROGRAMS=tsfilt stufi rotate coro xyz2uvw susei suseix evelo \ PROGRAMS=croposp
smoos dise foutra teseco resaseda gatherdiff \ SCRIPTS=croposplot.py
autocorr cross tidofi sigfit noisymize sigval fidasexx soutifu \
deconv geophone sigscale tisli suspect evelox croposp INSTALLEDPROGRAMS=$(addprefix $(LOCBINDIR)/,$(PROGRAMS))
INSTALLEDSCRIPTS=$(addprefix $(LOCSCRIPTDIR)/,$(PROGRAMS))
.PHONY: all .PHONY: all
all: install doc all: install doc
...@@ -68,25 +43,27 @@ list-programs: ...@@ -68,25 +43,27 @@ list-programs:
doc: doxydoc doc: doxydoc
.PHONY: install .PHONY: install
install: $(addprefix $(LOCBINDIR)/,$(PROGRAMS)) install: $(INSTALLEDPROGRAMS) $(INSTALLEDSCRIPTS)
$(LOCBINDIR)/%: % $(LOCBINDIR)/%: %
mkdir -pv $(LOCBINDIR) mkdir -pv $(LOCBINDIR)
/bin/mv -fv $< $(LOCBINDIR) /bin/mv -fv $< $(LOCBINDIR)
$(LOCSCRIPTDIR)/%: %
mkdir -pv $(LOCSCRIPTDIR)
/bin/cp -fv $< $(LOCSCRIPTDIR)
CHECKVAR=$(if $($(1)),,$(error ERROR: missing variable $(1))) CHECKVAR=$(if $($(1)),,$(error ERROR: missing variable $(1)))
CHECKVARS=$(foreach var,$(1),$(call CHECKVAR,$(var))) CHECKVARS=$(foreach var,$(1),$(call CHECKVAR,$(var)))
$(call CHECKVARS,LOCINCLUDEDIR LOCLIBDIR LOCBINDIR) $(call CHECKVARS,LOCINCLUDEDIR LOCLIBDIR LOCBINDIR)
$(call CHECKVARS,TF_LINK_FORTRAN TF_LINK_PGPLOT) $(call CHECKVARS,TF_LINK_FORTRAN TF_LINK_PGPLOT)
FORTRANLIB=$(TF_LINK_FORTRAN)
# use STATIC=-static to produce statically linked binaries # use STATIC=-static to produce statically linked binaries
STATIC= STATIC=
FLAGS += $(MYFLAGS) FLAGS += $(MYFLAGS)
CPPFLAGS=$(addprefix -I,$(LOCINCLUDEDIR) $(subst :, ,$(SERVERINCLUDEDIR))) \ CPPFLAGS=$(addprefix -I,$(LOCINCLUDEDIR) $(subst :, ,$(SERVERINCLUDEDIR))) \
$(FLAGS) $(FLAGS)
FFLAGS += -ff2c -Wall -ffixed-line-length-0 -fno-backslash $(FLAGS)
CXXFLAGS+=-Wall $(FLAGS) CXXFLAGS+=-Wall $(FLAGS)
LDFLAGS=$(addprefix -L,$(LOCLIBDIR) $(subst :, ,$(SERVERLIBDIR))) $(STATIC) LDFLAGS=$(addprefix -L,$(LOCLIBDIR) $(subst :, ,$(SERVERLIBDIR))) $(STATIC)
...@@ -104,26 +81,15 @@ TESTCASEMAKE=$(filter-out %.bak,$(wildcard testcases/Makefile*)) ...@@ -104,26 +81,15 @@ TESTCASEMAKE=$(filter-out %.bak,$(wildcard testcases/Makefile*))
DOXYTXT=$(wildcard doxygen*.txt */doxygen*txt) DOXYTXT=$(wildcard doxygen*.txt */doxygen*txt)
EDITFILES=Makefile README $(wildcard *.cfg) COPYING $(DOXYTXT) \ EDITFILES=Makefile README $(wildcard *.cfg) COPYING $(DOXYTXT) \
$(filter-out %.bak,$(wildcard */README*)) $(filter-out %.bak,$(wildcard README* Makefile*))
EDITSRC=$(wildcard *.cc *.h *.c *.f *.gpt *.inc) EDITSRC=$(wildcard *.cc *.h *.py)
EDITTESTS=$(wildcard testcases/*.par) $(wildcard testcases/*.tpl) \
$(TESTCASEMAKE) $(wildcard testcases/*.gpt) flist: $(EDITFILES) $(TF_EDIT) $(EDITSRC)
flist: $(wildcard *.txt *.c *.f *.h *.inc *_text.txt Makefile *.cc *.gpt) \
doxydoc.cfg README COPYING $(DOXYTXT) $(EDITFILES) \
$(wildcard testcases/*.par) $(wildcard testcases/*.tpl) \
$(TESTCASEMAKE) $(wildcard testcases/*.gpt) $(TF_EDIT)
echo $(filter $(EDITFILES),$^) | tr ' ' '\n' | sort > $@ echo $(filter $(EDITFILES),$^) | tr ' ' '\n' | sort > $@
echo "---- source code ----" >> $@ echo "---- source code ----" >> $@
echo $(filter $(EDITSRC),$^) | tr ' ' '\n' | sort >> $@ echo $(filter $(EDITSRC),$^) | tr ' ' '\n' | sort >> $@
echo "---- Fortran source files only ----" >> $@
echo $(sort $(filter %.f,$^)) | tr ' ' '\n' >> $@
echo "---- C++ source files only ----" >> $@
echo $(sort $(filter %.cc,$^)) | tr ' ' '\n' >> $@
echo "---- test cases ----" >> $@
echo $(sort $(filter $(EDITTESTS),$^)) | tr ' ' '\n' >> $@
echo "----" >> $@ echo "----" >> $@
echo $(filter-out $(EDITFILES) $(EDITSRC) $(EDITTESTS),$^) \ echo $(filter-out $(EDITFILES) $(EDITSRC),$^) \
| tr ' ' '\n' | sort >> $@ | tr ' ' '\n' | sort >> $@
.PHONY: edit .PHONY: edit
...@@ -131,8 +97,6 @@ edit: flist; vim $< ...@@ -131,8 +97,6 @@ edit: flist; vim $<
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# pattern rules # pattern rules
%.o: %.f; $(FC) -c -o $@ $< $(FFLAGS)
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# description and online texts # description and online texts
%.cc %.h: %_help.txt %.cc %.h: %_help.txt
...@@ -163,94 +127,113 @@ include $(patsubst %.cc,%.d,$(wildcard *.cc)) ...@@ -163,94 +127,113 @@ include $(patsubst %.cc,%.d,$(wildcard *.cc))
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# typical combinations of libraries # typical combinations of libraries
LIBDATRWXX=-ldatrwxx -lsffxx -ltime++ -lgsexx -laff LIBDATRWXX=-ldatrwxx -lsffxx -ltime++ -lgsexx -laff
LIBFAPIDXX=-lfapidxx $(LIBDATRWXX) LIBTSIOXX=-ltsioxx -ltsxx -ltfxx $(LIBDATRWXX)
LIBTSIOXX=-ltsioxx -ltsxx -ltfxx $(LIBDATRWXX) -lgsl -lgslcblas
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# binary executable targets # binary executable targets
# ------------------------- # -------------------------
#
# Fortran programs
# ----------------
#
xyz2uvw tisli susei smoos rotate evelo coro: %: %.o
$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-lsff -ltf
tsfilt stufi: %: %.o
$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-lseife -lsff -ltf
suspect dise: %: %.o
$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-lsffu -ltime -lsff -ltf
# Fortran programs with libfapidxx support
# ----------------------------------------
evelox suseix: %x: %.o
$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-ltf $(LIBFAPIDXX)
#
# C++ programs
# ------------
sigval sigscale geophone gatherdiff autocorr: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
$(LIBDATRWXX) -ltfxx
tidofi: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-ltsxx -lcseife $(LIBDATRWXX) -ltfxx -lgsl -lgslcblas
fidasexx: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-llinearxx -lpgplotxx -lcpgplot \
$(LIBDATRWXX) -ltfxx \
$(TF_LINK_PGPLOT) $(TF_LINK_FORTRAN) \
-llapack
sigfit: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-llinearxx \
$(LIBDATRWXX) -ltfxx \
-llapack
resaseda: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-ltsxx $(LIBDATRWXX) -ltfxx
teseco: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
$(LIBTSIOXX)
noisymize: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
$(LIBTSIOXX)
cross fregra foutra deconv: \
%: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-lfourierxx $(LIBTSIOXX) -lfftw3
croposp: \ croposp: \
%: %.o %: %.o
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \ $(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \
-lpsdxx -lfourierxx $(LIBTSIOXX) -lfftw3 -lpsdxx -lfourierxx $(LIBTSIOXX) -lfftw3
soutifu: \ #======================================================================
%: %.o # test case
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ \ # ---------
-lstfinv -lfourierxx $(LIBTSIOXX) -lfftw3
alldata: cpsd1.bin cpsd2.bin cpsd3.bin
CPSD_NSAMPLESRAW=100000
#CPSD_NSAMPLESRAW=1000
CPSD_DT=0.1
CPSD_DUR=8640.
#CPSD_DUR=864.
# create raw time series
CPSD_SIGGENOPT=-v -o -n $(CPSD_NSAMPLESRAW) -d $(CPSD_DT) -T $(CPSD_DUR) -ot bin
CPSD_AMP1=1.e-3
CPSD_AMP2=1.e-4
CPSD_AMP3=3.e-3
CPSD_AMPBG=4.e-5
# location of plot tool
CROPOSPLOT=./croposplot.py
cpsd1raw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMP1)
cpsd2raw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMP2)
cpsd3raw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMP3)
# create time series for common noise signal
cpsdbgraw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMPBG)
# modify white noise to channel specific frequency characteristic
cpsd1mod.bin: cpsd1raw.bin
printf "lpb 1.,2.\ndif 0\nend\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
cpsd2mod.bin: cpsd2raw.bin
printf "int 0\navg 0end\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
cpsd3mod.bin: cpsd3raw.bin
printf "lpb 10.,2\nend\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
cpsdbgmod.bin: cpsdbgraw.bin
printf "lpb 2.,4\navg 0\nhp 200.,2\nend\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
# add common noise signal to channel specific noise floor
cpsd%add.bin: cpsd%mod.bin cpsdbgraw.bin
teseco -v -o -a -type bin -Type bin $@ $^
# set header fields to reasonable time an channel identifiers
CPSD_DATE=2018/12/16_14:24:16
CPSD_DATE1=$(CPSD_DATE).010980
CPSD_DATE2=$(CPSD_DATE).011050
CPSD_DATE3=$(CPSD_DATE).010760
CPSD_HDOPTS=-verbose -overwrite -itype bin -otype bin -ss TST -sa XX -sc BHZ
cpsd1hd.bin: cpsd1add.bin
sehefixx $< $@ $(CPSD_HDOPTS) -st $(CPSD_DATE1) -si SYN1
cpsd2hd.bin: cpsd2add.bin
sehefixx $< $@ $(CPSD_HDOPTS) -st $(CPSD_DATE2) -si SYN2
cpsd3hd.bin: cpsd3add.bin
sehefixx $< $@ $(CPSD_HDOPTS) -st $(CPSD_DATE3) -si SYN3
# extract inconsistent time windows
CPSD_TOPT1=-samplesf 3 -samplesl 7
CPSD_TOPT2=-samplesf 25
CPSD_TOPT3=-samplesl 81
cpsd1.bin: cpsd1hd.bin
tijerasxx -verbose -overwrite -iformat bin -oformat bin \
$(CPSD_TOPT1) $@ $<
cpsd2.bin: cpsd2hd.bin
tijerasxx -verbose -overwrite -iformat bin -oformat bin \
$(CPSD_TOPT2) $@ $<
cpsd3.bin: cpsd3hd.bin
tijerasxx -verbose -overwrite -iformat bin -oformat bin \
$(CPSD_TOPT3) $@ $<
CPSD_NSEGMENTS=50
CPSD_OVERLAP=0.5
CPSD_DIVISOR=100
CPSD_PADFACTOR=5
psd.xxx: cpsd1.bin cpsd2.bin cpsd3.bin
croposp --DEBUG --verbose --overwrite --itype bin --trim \
--log 10 \
--nsegments=$(CPSD_NSEGMENTS) \
--divisor=$(CPSD_DIVISOR) \
--padfactor=$(CPSD_PADFACTOR) \
--overlap=$(CPSD_OVERLAP) \
--datetolerance 0.1 -psd $@ $^
psd.pdf: psd.xxx
$(CROPOSPLOT) -v --grid -o $@ $<
%.pdp: %.pdf; evince $<; /bin/rm -fv $<
#
#====================================================================== #======================================================================
# documentation part # documentation part
# ------------------ # ------------------
...@@ -272,7 +255,7 @@ soutifu: \ ...@@ -272,7 +255,7 @@ soutifu: \
$(call CHECKVARS,TF_WWWBASEDIR TF_BROWSER) $(call CHECKVARS,TF_WWWBASEDIR TF_BROWSER)
DOXYWWWPATH=$(TF_WWWBASEDIR)/tswf DOXYWWWPATH=$(TF_WWWBASEDIR)/croposp
.PHONY: doxyclean doxyview doxydoc doxyconf .PHONY: doxyclean doxyview doxydoc doxyconf
......
# this is <Makefile.croposp>
# ----------------------------------------------------------------------------
#
# Copyright (c) 2019 by Thomas Forbriger (BFO Schiltach)
#
# provide test cases for proposp
#
# REVISIONS and CHANGES
# 01/01/2019 V1.0 Thomas Forbriger
#
# ============================================================================
#
all: cpsd1.bin cpsd2.bin cpsd3.bin
CPSD_NSAMPLESRAW=100000
#CPSD_NSAMPLESRAW=1000
CPSD_DT=0.1
CPSD_DUR=8640.
#CPSD_DUR=864.
# create raw time series
CPSD_SIGGENOPT=-v -o -n $(CPSD_NSAMPLESRAW) -d $(CPSD_DT) -T $(CPSD_DUR) -ot bin
CPSD_AMP1=1.e-3
CPSD_AMP2=1.e-4
CPSD_AMP3=3.e-3
CPSD_AMPBG=4.e-5
# location of plot tool
CROPOSPLOT=../../../python/visu/croposplot.py
cpsd1raw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMP1)
cpsd2raw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMP2)
cpsd3raw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMP3)
# create time series for common noise signal
cpsdbgraw.bin:
siggenx 12 $@ $(CPSD_SIGGENOPT) -a $(CPSD_AMPBG)
# modify white noise to channel specific frequency characteristic
cpsd1mod.bin: cpsd1raw.bin
printf "lpb 1.,2.\ndif 0\nend\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
cpsd2mod.bin: cpsd2raw.bin
printf "int 0\navg 0end\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
cpsd3mod.bin: cpsd3raw.bin
printf "lpb 10.,2\nend\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
cpsdbgmod.bin: cpsdbgraw.bin
printf "lpb 2.,4\navg 0\nhp 200.,2\nend\n" \
| tidofi -type bin -Type bin -v -o -cs $@ $<
# add common noise signal to channel specific noise floor
cpsd%add.bin: cpsd%mod.bin cpsdbgraw.bin
teseco -v -o -a -type bin -Type bin $@ $^
# set header fields to reasonable time an channel identifiers
CPSD_DATE=2018/12/16_14:24:16
CPSD_DATE1=$(CPSD_DATE).010980
CPSD_DATE2=$(CPSD_DATE).011050
CPSD_DATE3=$(CPSD_DATE).010760
CPSD_HDOPTS=-verbose -overwrite -itype bin -otype bin -ss TST -sa XX -sc BHZ
cpsd1hd.bin: cpsd1add.bin
sehefixx $< $@ $(CPSD_HDOPTS) -st $(CPSD_DATE1) -si SYN1
cpsd2hd.bin: cpsd2add.bin
sehefixx $< $@ $(CPSD_HDOPTS) -st $(CPSD_DATE2) -si SYN2
cpsd3hd.bin: cpsd3add.bin
sehefixx $< $@ $(CPSD_HDOPTS) -st $(CPSD_DATE3) -si SYN3
# extract inconsistent time windows
CPSD_TOPT1=-samplesf 3 -samplesl 7
CPSD_TOPT2=-samplesf 25
CPSD_TOPT3=-samplesl 81
cpsd1.bin: cpsd1hd.bin
tijerasxx -verbose -overwrite -iformat bin -oformat bin \
$(CPSD_TOPT1) $@ $<
cpsd2.bin: cpsd2hd.bin
tijerasxx -verbose -overwrite -iformat bin -oformat bin \
$(CPSD_TOPT2) $@ $<
cpsd3.bin: cpsd3hd.bin
tijerasxx -verbose -overwrite -iformat bin -oformat bin \
$(CPSD_TOPT3) $@ $<
CPSD_NSEGMENTS=50
CPSD_OVERLAP=0.5
CPSD_DIVISOR=100
CPSD_PADFACTOR=5
psd.xxx: cpsd1.bin cpsd2.bin cpsd3.bin
croposp --DEBUG --verbose --overwrite --itype bin --trim \
--log 10 \
--nsegments=$(CPSD_NSEGMENTS) \
--divisor=$(CPSD_DIVISOR) \
--padfactor=$(CPSD_PADFACTOR) \
--overlap=$(CPSD_OVERLAP) \
--datetolerance 0.1 -psd $@ $^
psd.pdf: psd.xxx
$(CROPOSPLOT) -v --grid -o $@ $<
%.pdp: %.pdf; evince $<; /bin/rm -fv $<
# ----- END OF Makefile.croposp -----
this is <README> this is <README>
============================================================================ ============================================================================
ts/wf: time series waveform filters croposp: cross power spectral density
============================================================================ ============================================================================
This is a collection of various filter programs which can be used to croposp provides:
manipulate time series data. The area of application ranges from long period - computation of power spectral density from time series data
seismology to shallow seismics. - computation of coherency from pairs of time series data
- computation of power spectral density of incoherent signal component,
amplitude and phase transfer functions from triples of time series data
(Sleeman, 2006)
Some of the programs support only SFF data files. See usage information (by croposplot.py produces diagrams from output files produced by croposp.
calling the program with option '-help') for details. Some Fortran programs
support linking against libfapidxx. They commonly are provided in form of two
binary executables (e.g. susei: SFF support only; suseix: supports all
libdatrwxx formats). See variable PROGRAMS in Makefile.
Currently maintained programs: References
Waveform filters
----------------
Programs provide frequency filters (high-pass, low-pass, etc), average and
trend removal, time domain tapers, etc.
stufi filter SFF data files (uses seife filters by E. Wielandt)
tidofi filter data files in various formats
tsfilt filter two-column ASCII files (uses seife filters by E. Wielandt)
Vector signal component rotation
--------------------------------
coro select a spatial vector component from three component data
rotate rotate horizontal components
xyz2uvw rotate to internal STS-2 components and vice versa
Multi-signal
------------
dise calculate waveform residuals of selected traces from two input files
gatherdiff calculate waveform residuals of full shot gathers
sigfit find linear regression coefficients for a set of trial signals
susei stack seismograms from two or more files
suspect stack seismograms after shifting to source origin time
teseco apply signal corrections (like barometric pressure correction)
Transformation
--------------
evelo calculate Hilbert transform, signal envelope, etc.
foutra apply Fourier transformation (optionally calculates PSD)
fregra spectrogram for unevenly sampled frequencies (not finished)
Correlation and Convolution
---------------------------
autocorr calculate autocorrelation of signals
cross cross-correlate signals
deconv deconvolve one signal with another
noisymize convolve signals with random noise
Resampling
---------- ----------
resaseda apply signal interpolation in the time domain Reinoud Sleeman, Arie van Wettum, and Jeannot Trampert, 2006.
smoos apply signal interpolation by spectral extension Three-Channel Correlation Analysis: A New Technique to Measure
Instrumental Noise of Digitizers and Seismic Sensors.
Miscellaneous Bull. Seism. Soc. Am., Vol. 96, No. 1, pp. 258–271.
------------- doi: 10.1785/0120050032
fidasexx scale shot gathers to compile homogeneous data set http://www.geo.uu.nl/~seismain/pdf/bssa06-inst.pdf (accessed 2019-01-25)
geophone derive geophone response and create filter control file
sigscale scale SG056 auxilliary data to physical units
sigval extract waveform properties like rms and write to table
soutifu find optimal source wavelet correction filter
tisli extract time slices from multi-receiver data
Test signals
------------
Test signal generators formerly present in this directory have been moved to
src/synt/misc. They may as well still be necessary for the filter test
procedures defined in subdirectory testcases
============================================================================
Test cases
----------
In subdirectory 'testcases' test cases for several filter programs are
provided. These are not yet documented in detail. Please check Makefile in
testcases, which serves as an entry point to the other Makefiles. Several of
the test cases can be controlled by make variables to be passed on the command
line. Test cases may require other external programs in order to create test
waveforms. These programs can include programs for synthesis of full
seismograms. At least the program suite from src/synt/misc is required in most
cases.
============================================================================ ============================================================================
...@@ -94,7 +30,6 @@ This software is part of the project Seitosh. See README.1st in the root ...@@ -94,7 +30,6 @@ This software is part of the project Seitosh. See README.1st in the root
directory of the collection or https://git.scc.kit.edu/Seitosh/Seitosh for directory of the collection or https://git.scc.kit.edu/Seitosh/Seitosh for
general installation instructions. general installation instructions.
The Makefile supports program compilation and linking. Some binary libraries