Antelope 4.10 Release 4.10 is still compiled as 32 bit, though considerable progress has been made towards a 64 bit version. You will see this primarily in many prototypes that have changed to use long instead of int. This has no effect in the 32 bit version (since longs and ints are the same size) but allows a much larger range in the 64 bit world. The current pre-release is compiled on the following architectures: Solaris Solaris 10 Linux SuSE Linux 9.3 (i586) Macintosh Mac OS X 10.4.11 (Tiger) We had intended to move to a later SUSE release and a later Macintosh release. However, we ran into problems creating a 32 bit release on OpenSUSE 10.3, and problems getting perl/tk to compile on Macintosh Leopard. The release should still function on these versions, however. Similarly, there are various difficulties getting the MatLab extensions to compile. The latest Solaris Matlab evidently has only a 64 bit version. For this release, you may have to compile it yourself. This release includes a new program, dbcalibrate, that computes spectral ratios between two waveforms and can be used to produce sensor calibration response functions when using dataloggers, like the Q330, that can be configured to record directly the calibrator DAC output simultaneously with the sensor calibration output. This program can also be used to compare calibration waveforms across two different times for the same channel to look for any changes that may indicate sensor problems. The Brttplot graphics widgets that were originally added as tcl/tk extensions have now been ported to perltk (see bplot(3p)). Generally, the functionality is similar to the tcl/tk version but some new features have been added. It is our intention to deprecate the tcl/tk version of Brttplot and put all of our future efforts into expanding the perltk version. As part of the port to perltk, several new functions were added to libbrttutil including a generalized vector function, buvector(3), a generized history function, buhistory(3), and perl extensions were added for these functions (vectory(3p) and history(3p)). A new program, orbaddcalib, is in this release that can be used to insert the calib, calper and segtype values into ORB waveform packet headers. This allows operators to decouple the database access usually required to obtain these parameters from intensive data acquisition tasks, like q3302orb when acquiring a large number of stations (e.g. USArray/Transportable Array). The rtbackup script has been completely rewritten so that backups are now done to other disk systems instead of to tape drives. The original tape based script has been renamed rtbackup2tape. With the advent of large and cheap NAS disk systems, tape based backup has become less attractive. Tape media do not have particularly long shelf lives, are expensive and have small capacities compared to disk based systems. Because of the inconvenience of restoring from tape based systems, archiving data to tape usually means that the vast majority of the data will never be restored or used again. Archiving data to NAS disk allows immediate access to all of the archive data with no need to go through the restoration process. It is our intention to deprecate rtbackup2tape. We leave it in this release to preserve compatability with users who are already using tape archive, but we will not be developing rtbackup2tape further. We strongly advise all users to consider switching to disk based systems for archiving and backup purposes. A new program, orbproxy, has been added that provides general orbserver proxy functionality. This was developed mainly to provide orbserver proxies for Marmot based data concentrators, but it can be used on other systems as well. Changes which require configuration changes (incompatibilities with 4.9) libbrttutil is now dependent on libtr, libds, libcoords, and libm. This means that some Makefiles need to specify $(TRLIBS) instead of $(STOCKLIBS) after -lbrttutil. Programs Removed: add_staname b3s2orb cluster cluster_cleanup dbcheckseed dbresample dbsteimu dsteim editgclgrid ipd2 makegclgrid mktt remodl rt2orb setbrn taup2locsat ucsdsp2db ucsdwf2db Programs Added: 64bit certify dbcalibrate displayscal heartbeat2db mkdlsensor nscl orbaddcalib orblag orbperformance orbproxy tkorblag rtbackup2tape Contrib programs added: arf David von Seggern check_license_expiration foley db2ims Jennifer Eakins db2ph Frank Vernon dblocgrad Frank Vernon dbpick_combine Jennifer Eakins dbresp Frank Vernon dbresp1f Frank Vernon dbs2n Frank Vernon delay Gary Pavlis deployment2vnd Jennifer Eakins dlreport Jennifer Eakins extrd glushko hypotab danq ims2dmc Jennifer Eakins localmake Kent Lindquist logs2dlevent Jennifer Eakins mk_dmc_files Jennifer Eakins ptt2stt Gary Pavlis rtkill Kent Lindquist tabcalc Gary Pavlis ucpwish Frank Vernon vnd2deployment Jennifer Eakins New libraries libpool renamed libbrttpool New examples dbbuild/dbbuild: add_samprate-dbbuild datalogger_sn_swap-dbbuild datalogger_type_swap-dbbuild dl_sens_sn_swap-dbbuild dl_sens_type_swap-dbbuild multiple_sensors_diff-dbbuild multiple_sensors_same-dbbuild mv_station-dbbuild orientation_swap-dbbuild run_dbbuild sensor_sn_orientation_swap-dbbuild sensor_sn_swap-dbbuild sensor_type_swap-dbbuild swapbytes_example.c waveformPkt.c Include file differences new in /opt/antelope/4.10/include ArrivalUpdater.h XcorProcessingEngine.h libisi_list.h FixedFormatTrace.h antelopemake.local libisi_logio.h HeaderMap.h fs2cs.h libisi_platform.h ProcessingQueue.h iir.h libisi_stdtypes.h SignalToNoise.h libisi_iacp.h libisi_util.h XcorAnalysisSetting.h libisi_isi.h subdirs (antelopemake helper script) Man page usage lines differences dbcalc.1: dbcalc -[ert] database.table [ record# | expr ] dbcalc -[ert] [-c expression] [database.table [ record# | expr ]] dbcentral.1: dbcentral [-n] [-t timestring] [-d] [-l] [-q queryfile] [database_clustername [task_nickname]] dbcentral [-a] [-n] [-t timestring] [-d] [-l] [-q queryfile] [database_clustername [task_nickname]] dbfixids.1: dbfixids db idname [ idstart ]dbfixids [-s server] db [db2 ...] dbfixids db idname [ idstart ]dbfixids [-i id1,id2,...] [-x id1,id2,...] [-s server] db [db2 ...] dbids.1: dbids [-p port] [-P pf] [-v] db dbids [-p port] [-P pf] db dbreplay.1: dbreplay [-b max-behind] [-F foreignkeys] [-n #pkts] [-p pktsuffix] [-r rate] [-s subset] [-t timestep] [-T timeout] [-w orbclient] [-dePuvx] db|vw [[[server] mintime] maxtime|period] dbreplay [-b max-behind] [-F foreignkeys] [-n #pkts] [-p pktsuffix] [-r rate] [-s subset] [-t timestep] [-T timeout] [-w orbclient] [-dePSuvx] db|vw orb [mintime [maxtime|period]] dbverify.1: dbverify [-tcijklprsuvx] [-S samples] [-A table[,table..]] [-C test1[,test2 ...]] [-I table[,table..]] [-N max-failures] [-O table[,table..]] [-P table[,table..]] database[.table] dbverify [-tcijklprsuvx] [-S samples] [-A table[,table..]] [-C test1[,test2 ...]] [-I table[,table..]] [-N max-failures] [-O table[,table..]] [-P table[,table..]] [-X pf] database[.table] dlautomrc.1: dlautomrc [-a voltage_trigger ] [-d dltype] [-f] [-m "mail_list" ] [-n] [-p pfname] [-s "dl_sta1,dl_sta2,...."] [-t max_retries] [-v] [-x exclude] cmd_orb status_orb [target] dlautomrc [-a voltage_trigger | -D database] [-d dltype] [-f] [-m "mail_list" ] [-n] [-N subset] [-p pfname] [-s "dl_sta1,dl_sta2,...."] [-t max_retries] [-v] [-V] [-x exclude] cmd_orb status_orb [target] dlmon.1: dlmon [-model dlmodel] [-mcol ncols] [-state {Icons|Multi|Single}] [-select_status expr] [-select_logs expr] [-subset expr] [-sort name] [-pf pfname] [-dump seconds] [-dump_image file] orbname [cmdorbname] dlmon [-model dlmodel] [-mcol ncols] [-state {Icons|Multi|Single}] [-backup_time secs] [-select_status expr] [-select_logs expr] [-subset expr] [-sort name] [-pf pfname] [-dump seconds] [-dump_image file] orbname [cmdorbname] ffilter.1: ffilter [-BbCcDdelnpStuvVXxz] [-E s/from/to/] [-m re] [-r re] [paths] ffilter [-aBbCcDdelnpStuvVXxz] [-E s/from/to/] [-m re] [-r re] [paths] ipvalidate.1: ipvalidate [-n list] [-p pf] [-v] [ip-addresses] ipvalidate [-p pf] [-v] [ip-addresses] miniseed2days.1: miniseed2days [-d db] [-S dir] [-w wfname] [-s start-time] [-e end-time] [-m match] [-r reject] [-cDIkRUuv] miniseed ... miniseed2days [-C chuckfile] [-d db] [-S dir] [-w wfname] [-s start-time] [-e end-time] [-m match] [-r reject] [-DIkUuv] miniseed ... mk_dataless_seed.1: mk_dataless_seed [-v] [-k] [-o dataless_seed] [-s station_regex] [-p parameter_file] input_database mk_dataless_seed [-v] [-k] [-n snet_regex] [-o dataless_seed] [-p parameter_file] [-s station_regex] input_database online_backup.1: online_backup [-dmnvV] [-p pf] [-y ydays][directories] online_backup [-dmnvV] [-c days] [-p pf] [-y ydays][directories] orb2ntp.1: orb2ntp [-d delay] [-f freq] [-n navg] [-m match] [-o nsec] [-r reject] [-u unit] [-v] orb orb2ntp [-d delay] [-f freq] [-m match] [-n navg] [-o nsec] [-r reject] [-u unit] [-v] orb orb2orb.1: orb2orb [-dfltUvx] [-B bufsize] [-c pktsuffix] [-i burial-interval] [-m match] [-n npkts] [-p pf] [-r reject] [-R representation] [-s pktid] [-S statefile] [-T srcid-pf] [-u npkts] [-X xlat-pf] orbin orbout [start-time [period|end-time]] orb2orb [-dfltUvx] [-B bufsize] [-c pktsuffix] [-C throttle] [-i burial-interval] [-m match] [-n npkts] [-p pf] [-r reject] [-R representation] [-s pktid] [-S statefile] [-T srcid-pf] [-u npkts] [-X xlat-pf] orbin orbout [start-time [period|end-time]] orbdisp.1: orbdisp [-c chan_match] [-l max-latency] [-m srcmatch_re] [-n] [-p packet-period] [-r srcreject_re] [-w seconds] orbserver [start-time [range]] orbdisp [-c chan_match] [-l max-latency] [-m srcmatch_re] [-n] [-r srcreject_re] [-w seconds] orbserver [start-time [range]] orbdlstat2xml.1: orbdlstat2xml orbname dir orbdlstat2xml [-v] [-a after] orbname dir pfecho.1: pfecho [-iqx] [-w|W] name [ params]pfwhich name pfecho [-iqRx] [-w|W] name [ params]pfwhich name q330util.1: q330util [-port localport] [-port_base port_base] [-auth auth] [-sequence sequence] [-timeout timeout] [-i local_ipaddr] { pollsn targetip | ping targetip,lport,{info|} | register targetip,sn,lport | getconfig targetip,sn,lport,config | control targetip,sn,{eeprom|reboot|resync|gpson|gpsoff|gpscs} | sbpwr targetip,sn,interface,function,timeout | rqannc targetip,sn} q330util [-port localport] [-port_base port_base] [-auth auth] [-sequence sequence] [-timeout timeout] [-i local_ipaddr] [-pfout] { pollsn q330ip | ping q330ip,lport,{info|} | register q330ip,sn,lport | getconfig q330ip,sn,lport,config | control q330ip,sn,{eeprom|reboot|resync|gpson|gpsoff|gpscs} | sbpwr q330ip,sn,interface,function,timeout | rqannc q330ip,sn | umsg q330ip,sn,lport,message | ident q330ip,sn[,tport[,lport]] | marmotfix q330ip,sn[,interface[,baudrate]]} rtmail.1: rtmail [-s subject] [-a filename] [-b bcc] [-c cc] [-v] [-d] recipient ... rtmail [-s subject] [-a filename] [-b bcc] [-c cc] [-f from] [-r replyto] [-v] [-d] recipient ... smartpick.1: smartpick [\-nowait | -nostarttalk] [\-appname window_name] [\-winfile filename] [\-comout named_pipe] [\-geom dbpick_geometry] [\-pf pfname] dbname [trial_dbname] smartpick [\-nowait | -nostarttalk] [\-appname window_name] [\-winfile filename] [\-dbxcor_appname window_name] [\-comout named_pipe] [\-geom dbpick_geometry] [\-pf pfname] dbname [trial_dbname] Removed man pages: BasicTimeSeries.3 Basic_Time_Series.3 Datascope_Handle.3 GCLrays.3 GCLraytrace.3 Metadata.3 MetadataError.3 SeisppError.3 ThreeComponentSeismogram.3 Three_Component_Seismogram.3 TimeSeries.3 Time_Series.3 TopMute.3 Top_Mute.3 add_staname.1 b3s2orb.1 cluster.1 cluster_cleanup.1 dbcheckseed.1 dbresample.1 dbsteimu.1 dsteim.1 editgclgrid.1 interpolate1d.3 interpolator1d.3 ipd2.1 makegclgrid.1 metadata.3 metadata_error.3 mktt.1 remodl.1 required_unix_pgms.1 resample.3 rt2orb.1 seispp_error.3 setbrn.1 slowness_object.3 taup2locsat.1 ucsdsp2db.1 ucsdwf2db.1 unsetenv.3 Added man pages: 64-bit.5 64bit.1 64bit_conversion.5 align_long.3 antelopemake.5 antelopemake.local.5 binbits.3p bpaxes.3p bpgrid.3p bplot.3p bpmap.3p bppolyline.3p bppolypoint.3p bptrace.3p bpviewport.3p buhistory.3 buhistory_add.3 buhistory_create.3 buhistory_eval.3 buhistory_free.3 buhistory_free_tag.3 buhistory_free_history.3 buhistory_get_history.3 buhistory_get_points.3 buhistory_maxmin.3 buvector.3 buvector_append.3 buvector_copy.3 buvector_create.3 buvector_create_response_fap.3 buvector_create_tsamp.3 buvector_eval.3 buvector_free.3 buvector_free_tag.3 buvector_free_vector.3 buvector_get_point.3 buvector_get_points.3 buvector_get_vector.3 buvector_maxmin.3 buvector_put.3 buvector_puty.3 buvector_read.3 buvector_resize.3 buvector_transform_edp.3 certify.1 conversion.5 dbcalibrate.1 disable_certify.1 displayscal.1 examples_dbbuild.5 heartbeat2db.1 history.3p history_add.3p history_create.3p history_eval.3p history_free.3p history_get.3p history_get_maxmin.3p legit_fd.3 lookup_user.3p marmot_web.5 mkdlsensor.1 msdpatch.3 nscl.1 orbaddcalib.1 orblag.1 orbperformance.1 orbproxy.1 pktchannel2trace.3 pktchannel2trace_free.3 pktchannel2trace_new.3 pktchannel2trace_put.3 pktchannel2trace_put_from_db.3 ptkdebug.3p ptkfontfamily.3p ptkfontsize.3p ptktypewriterfont.3p tkorblag.1 vector.3p vector_append.3p vector_copy.3p vector_create.3p vector_eval.3p vector_free.3p vector_get.3p vector_get_maxmin.3p vector_get_point.3p vector_puty.3p vector_read.3p vector_read_response_fap.3p vector_transform_edp.3p webdlmon.3h Added contrib: Msusneic.3p Danny Harvey antelopemakelocal.5 Kent Lindquist arf.1 David von Seggern check_license_expiration.1 Steve Foley db2ims.1 Jennifer Eakins dbpick_combine.1 Jennifer Eakins delay.1 David von Seggern deployment2vnd.1 Jennifer Eakins dlreport.1 Jennifer Eakins dmcbull.5 Jennifer Eakins dmcbull_schema.5 Jennifer Eakins extrd.1 M. Glushko hypotab.1 Gary L. Pavlis ims2dmc.1 Jennifer Eakins localmake.1 Kent Lindquist logs2dlevent.1 Jennifer Eakins mk_dmc_files.1 Jennifer Eakins rtkill.1 Ruth Rutter and Kent Lindquist tabcalc.1 Gary L. Pavlis vnd2deployment.1 Jennifer Eakins Parameter file differences /opt/antelope/4.9/data/pf/.dbe.pf /opt/antelope/4.10/data/pf/.dbe.pf < # Waveforms2 dbpick - > # Waveforms2 tkdbpick - < # for the wfdisc entry in the graphics array below. > # for the wfdisc entry in the graphics array below. > # > # Note that dbpick does not take stdin as input /opt/antelope/4.9/data/pf/cf.pf /opt/antelope/4.10/data/pf/cf.pf > ^.*cannot create > ^.*cannot open > ^make.*: Entering directory > ^make.*: Leaving directory > ^.*improper member use > ^.*not found > ^.*undefined struct\\/union member > ^.*incomplete struct\\/union\\/enum > ^[[:alnum:]\\/]*:?[[:space:]]?\\/opt\\/antelope\\/[[:digit:].p]+\\/bin\\/dbwebproject:[[:space:]].*\\/?deposit[[:space:]] > ^[[:space:]]*\\/bin\\/bash[[:space:]] > ^[[:space:]]*config\\/install-sh[[:space:]] > ^test[[:space:]] /opt/antelope/4.9/data/pf/dlmon.pf /opt/antelope/4.10/data/pf/dlmon.pf extensive changes to reflect configuration for USArray /opt/antelope/4.9/data/pf/elog.pf /opt/antelope/4.10/data/pf/elog.pf > t_format %a %b %e %H:%M:%S %Y > u_format %Y-%j %H:%M:%S /opt/antelope/4.9/data/pf/make_dbrecenteqs_map.pf /opt/antelope/4.10/data/pf/make_dbrecenteqs_map.pf > stations_subset &Tbl{ > dbopen site > dbsubset offdate == NULL > } /opt/antelope/4.9/data/pf/msdd.pf /opt/antelope/4.10/data/pf/msdd.pf > scan look for next bad block /opt/antelope/4.9/data/pf/q3302orb.pf /opt/antelope/4.10/data/pf/q3302orb.pf changes for new auto buffer flushing capability and related to sensor calibrations > db_orbtag dataorb # command line orb tag for db packets > flush_buffer_thresh 0 # flush Q330 data buffer if the buffer gets larger than this > # percentage full - 0 to disable > flush_buffer_age 0 # data packets with ages greater than this value in seconds > # are flushed - 0 means flush entire buffer < data_cal_error yes no mst > data_cal_error yes yes mst < data_cal_status yes no 0 > data_cal_status yes yes 0 /opt/antelope/4.9/data/pf/rtexec.pf /opt/antelope/4.10/data/pf/rtexec.pf < Min_vmfree 50 # Mbytes > Min_vmfree 50 # Mbytes min for Solaris < # following are used by rtreport < minimum_days_data_space_left 3 < minimum_Mbytes_database_space_left 2000 < maximum_Mbytes_logs_space_used 100 < minimum_Mbytes_root_space_left 100 /opt/antelope/4.9/data/pf/rtreports.pf /opt/antelope/4.10/data/pf/rtreports.pf > minimum_days_data_space_left 3 > minimum_Mbytes_database_space_left 2000 > maximum_Mbytes_logs_space_used 100 > minimum_Mbytes_root_space_left 100 /opt/antelope/4.9/data/pf/smartpick.pf /opt/antelope/4.10/data/pf/smartpick.pf extensive changes /opt/antelope/4.9/data/pf/trdefaults.pf /opt/antelope/4.10/data/pf/trdefaults.pf > wfdisc_roundoff .000005 > M millimeters Wood-Anderson drum recorder /opt/antelope/4.9/data/pf/trexcerpt.pf /opt/antelope/4.10/data/pf/trexcerpt.pf add outer join with site even in the straight wfdisc views Library differences libbrttutil Added buhistory_add buhistory_create buhistory_eval buhistory_free buhistory_free_tag buhistory_free_history buhistory_get_history buhistory_get_points buhistory_maxmin buvector_append buvector_copy buvector_create buvector_create_response_fap buvector_create_tsamp buvector_eval buvector_free buvector_free_tag buvector_free_vector buvector_get_point buvector_get_points buvector_get_vector buvector_maxmin buvector_put buvector_puty buvector_read buvector_resize buvector_transform_edp libdeviants Deleted UNIMPLEMENTED unsetenv libstock Deleted PerlOldRelics PerlRelics absdir complain die expandx perlexhume register_error showenv showlist libtr Deleted get_seed_data_record show_field trload_arrivals Added trWFDISC_ROUNDOFF ustc_patch Detailed Changes from logs 64 bit changes were made across the board, but these should have no affect on the 32 bit version of antelope. antelope_update try to fix so that return codes are always non-zero for failure try to make the return code from antelope_update reflect whether there are patches available. use hostname from osinfo instead of using uname directly try to make it look better, and maybe catch a few more errors during patch installation attempts antelopemake add XINCLUDE to CXXFLAGS as Gary requested use CC instead of ld to create dynamic load libraries with new solaris compilers try eliminating the .F rules -- maybe Sun has fixed the rules in the latest compilers enable c99 constructs switch to script subdirs script for list of directories don't descend into certify directories during makes antelopemake.5 added new man page on $ANTELOPE/include/antelopemake askyn.pm add a method for checking if all entries in a (very simple) parameter file (like config.pf) are filled in. make prompt for a value more bold insist that parameter be entered in editpfile certify add bitness put certify into distribution to encourage development of regression tests. allow tests in subdirectory of local directory so that tests are closely associated with source code. chk_miniseed deprecate chk_miniseed in favor of chkmsd css3.0 Add words about . characters indicating indeterminate measurements. css3.0.ext calresult sensorcal sensormodel schema changes to support new sensor calibration css3.0.ext seismometer sensormodel fix bad formats in seismometer and sensormodel tables css3.0.ext/dlcalwf This is a new table that will be used in place of the old calwf table to reference calibration waveforms. The old calwf table is so SDAS specific I decided to just leave it alone since presumably there are still people who are doing calibrations with the Q730B. I have attempted to make this new table a little more generic, although it still is aimed mainly at supporting Q330 cals. Add a few more attributes. Fixed problem with model attribute Add samprate to dlcalwf schema to make analysis processing easier css3.0.ext/dlsensor sensormodel Add new tables to support calibration data/templates perl add 'use strict' and 'our ($opt_n, $opt_v) ; ' to template data/templates/ptk add use strict use POSIX::_exit instead of $MW->destroy() to avoid some error messages showing up at the command line. db2msd Don't recompress S1 format miniseed db2sd back up the endtime in the 050 blockette by .1 msec so it doesn't fall into the next day, at the request of Eliana and the DMC. dbbuild dbbuild_examples.5 Add some BUGS and CAVEATS. Reference new files in $ANTELOPE/example/dbbuild Fix some errors Add examples dbbuild allow dbbuild to proceed even if response file fails test Attempt to resolve a problem Hank at UCSB pointed out sometime ago where he was unable to close a set of identical sensors at a station. This is partly a (dbbuild batch) language issue, as "close sensor sensor-name" can't distinguish multiple sensors with the same name. Previously, it was only closing all the named sensor in the database, but not doing the corresponding operation completely in its internal configuration. Now, close sensor sensor-name closes all sensors of the specified name at the current station. added a quit batch command to prematurely terminate execution of a batch file, to make debugging easier. tried to make the output of the dump command more streamlined and readable, and the error messages when things fail a little clearer. fix problem with specifying lead in generated batch file fix net/network problem in generated batch file eliminate checks on the second letter of a channel code, which is specified in the sensor parameter file. The user must guarantee this is correct. (Previously, disallowed 'P' for geophone, as pointed out by Niko) add option to hide some of the dbbuild panel windows so that the gui can be used on really small screens dbbuild: mb2000_fil.pf mb2000_raw.pf changing the orientation letter to D instead of 0 for these barometers, since that's evidently what UCSB uses, and maybe they know what they're doing. I don't think 0 can be correct. dbbuild: sts2 sensors Newly discovered information. Very Important for sensor response aficionados and dataless seed builders and users: Whereas the mechanical part of the STS-2 seismometer never changed since 1990, the electronics part has been redesigned twice. There exist three different "electronic" generations which differ in the transfer function at frequencies above 10 Hz. sts2_g1 shipped 04/90-06/95 sts2_g2 shipped 06/95-02/98 sts2_g3 shipped 02/98 thru present if any questions consult VLSTGEN2-ext.pdf or contact Streckeisen representative Notice that the old sts2.pf file has been moved to old_sts2.pf! This is done to make sure that future response databases can be build properly. dbbuild/sensors Added in following parameters to allow q330 calibration processing to work with sensormodel table. caldrive c active yes calgen 1 cal2rsp 1 calper 1 dbcalc add option to evaluate and print a single expression from the command line, suggested by David Vonseggern dbcalibrate Initial checkin of new sensor analysis calibration program. Eliminate and completely rewrite original Russell FORTRAN code for doing the stacked cross-correlation/auto-correlation method for computing stable spectral ratios as sensor response functions. The computational algorithm is very similar to the original method by Russell except: 1) time windows may overlap, 2) tapering is done in the time domain instead of the frequency domain, 3) an arbitrary number of frequency bands with different processing parameters can be specified (Russell's was hardwired to 2), 4) the frequency boundaries between the different bands can be specified as parameters. All coding is in C and uses doubles. Eliminate use of the old math library fft, t2f and taper routines that were original written in FORTRAN and converted to c with f2c. These routines have been rewritten directly in C. Dynamic memory allocation is supported in t2f and eveything uses doubles instead of floats. Changes to implement comparison cals. dbcheck_responses print out peak magnitude instead of average magnitude, and try to suggest a new normalization factor if there's a paz stage in the response and the response doesn't appear to be normalized. Print everything at lower resolution to avoid problems with comparing results from Linux to Solaris to Mac. dbcreate fix dbcreate to use the right name for idserver (dbidserver) dbdetect.1 Clarify the reject Tbl comments in pf and man page. dbe fix problem Natasha pointed out with dbe fix mac problem in dbe alphabetize the results from a schema search change label for menubar font size changes change default fonts for dbe to make them smaller, and squash together the labels a bit to make buttons smaller dbe.1 Additional explanation of Waveforms menu item based on discussions with David Vonseggern. dbevents Fix a long standing bug involving an uninitialized array. The Koreans finally provided the smoking gun with enough detailed info to track it down. dbfixids try to add capability Frank requested, for synchronization with multiple id servers update error message, fix typo in man page update man page to reflect new options in dbfixids dbids fix the valid ip address checking dbloc2 try to fix problems Natasha pointed out Add examples of parameters to change in PF. attempt to fix locking problem on leopard switch to newer method for defining fonts which works better in more recent versions of tcl/tk generally make layout tighter for smaller screens All these changes relate to the look and feel of dbloc2 -- nothing much has changed, but the look of buttons is different and everything squeezed together much more, which should make it work better on a mac. try to make dblocsat2 barf if there are too many arrivals, rather than say, quietly hanging add some words about some of the restrictions for dblocsat2, per Taimi rearrange some in attempt to make window workable on small screens rework the font specs in dbloc2.pf dbloc2_report_bug Change default filename extension from Z to gz to match actual compression done by dbloc_snapshot. dbpick.1 explain that "-" cannot be used as the database name. Add more description of filtering parameters in X default resource database. dbreplay retrofit dbreplay so it can do the kind of simulation which db2orb used to do and Anton is requesting. fix the -r option also switch to 1 second packets for realtime simulation option make sure packets don't appear ahead of realtime fix a small leak dbverify allow alternate parameter file df2orb add count packet option to df2orb to simplify testing for leaks. diskserver print correct sizes add some more statistics at diskserver startup displaynoise First cut at new display routines for sensor calibration displayscal new program for displaying sensor calibrations produced by dbcalibrate dlmon Fix a bug in processing stash packets. Add -backup_time parameter in command line and pf file. Add sensor calibration defs in pf file. Put back in mac-dependent resizing stuff. Put in calibration related parameter display elog don't print out all error messages every time event_archive add checking for filled field in gap table for mk_gap_wfdisc. examples add example of swapbytes routines example/c/db dbprocess.pf add example of using joinkeys in dbprocess example/c/orb add a waveform packet example fdkey.c replace poll implementation with select so this works on macs ffilter change auto-splitting of input lines from stdin getid add alternation expression to getid fix `getid bits` try detecting /usr/X11 before /usr/X11R6 to avoid copying libX11.dylib to antelope/lib add to getid dynamiclib so.3 staticlib a versiondigit 3 # also used for version in perl extensions eliminate libversion 3 grepsrc add objective c files to the c++ search heartbeat2db add script to read heartbeat lines and save relevant parameters into a database, for easier graphing. add an example of using dbgraph ipvalidate adapt to table of rejected ip addresses ldlibs deprecate fortran with ldlibs change some -V usage to -v libPkt change the way showPkt prints stash packets to allow tabs and linefeeds libbrttpkt Added documentation for new accumulator used in the evproc stuff. Added pktchannel2trace_get_stats call Make work properly with db data that is stored as floats. libbrttutil Make so that pmtfifo_data_available returns the number of entries in the queue instead of always 1 when data is available. Move old tcltk vector methods to brttutil and rename it buvector. This will provide a common utility for new ptkbplot and old tcltkbplot widgets. Added time history routines into brttutil. libcoords gfortran doesn't seem to like unit numbers to be 2 byte integers libdeviants use Committed_AS - buffer space as mem used on linux, in an attempt to get some meaningful total statistic. some hopeful improvements on infopath various minor issues, including putting in a declaration of strsignal(), which is difficult to get from the system include files, and shows up in different files on different systems remove unsetenv man page, now a system routine libdeviants/Linux sysboottime make buffer larger to read sys boot time libds suggest checking locking when an invalid record size is detected if locks are not turned on. update various man pages, mostly related to changing ints to longs libforb attempt to make forb routines faster by streamlining the read of packet times libmappts make dynamic library of mappts liborb remove ORBPREVT and ORBNEXTT, casualties of the removal of the time threaded index from the orbserver. fix two leaks related to selection/rejection strings in orb reopen logic compute lag properly even when there is only a small gap in pktids between newest and oldest only count clients which are reaping in the lag statistics libpool -> libbrttpool switch libpool to libbrttpool to avoid system conflict libresponse make the output fir/paz filters print a little more legibly Try to avoid some problems where response files are incorrectly formatted. attempt to improve the search for the flat area of response curve try to be more careful about finding the frequency range of a response, doing something different and simpler for simple fir filter responses. install iir.h include file for iir filters libstock redo implementation of freespace to just use vfstat fix calculation of freespace close a memory leak in elog routines exercised in showPkt avoid at least one potential infinite loop inside the verification routine for the stash file correct the return value from fstraverse add reclose, reopen to re-stable of routines clarify that source and destination may be the same for cleanpath make yearday long, to avoid problems like dbputv(db, 0, "jdate", yearday(time), NULL) ; add another legit_ip routine which just takes the socket fd allow adding a list of reject_ip_addresses in the parameter file alongside valid_ip_addresses. remove showenv from stock library, put into libxtra allow modifying the precise format of the time tag by changing a format string in elog.pf. It might be useful to add the day of the week for instance, or to specify both a utc time and a localtime (hour:minute only perhaps), to make it easier to connect local events (machines going down) with log events. remove automatic uncompression during open in mapfile; fixes mysterious behavior in orbxfer2 fix leaks in elog routines libtr fix blunder which Cecily uncovered in steim uncompression routine -- result was segmentation fault for some of her miniseed files. fix problem saving floating point data into sd format with trputwf correct duplicate close in trputwf define some new constants for umsd(3) fix the output from msdget when no 1000 blockette is present for sparc_order and datatype. Allow the new DMC miniseed data code 'M' (in addition to 'D', 'R', and 'Q'). modify return codes in ustc to be more meaningful add Wood-Anderson drum recorder to trdefaults.pf table deprecate trputwf do some initialization properly even if trdefaults is screwed up add hack in trclip to attempt to avoid Frank's wfdisc woes: force rounded time value to be less than desired endtime. make error message more verbose for Eliana try to make it clearer that trwftype doesn't return a dynamically allocated structure, but a pointer to a static structure. when reading miniseed waveforms, read all the blockettes, not just the standard seed header. This allows reading (what I think is) improper miniseed where the sample rate in the standard header is zero, evidently created by Nanometrics software. evade overflow in the sequence number of (mini)seed blocks by rolling over miniseed2days try to mention all dropped blocks. eliminate option to remove input files add another caveat about -U option more verbosity changes restore the -c option with a default file of chuckfile. more verbosity during -u processing clarify dropping of bad time quality input miniseed blocks miniseed2days change -c option to -C filename so omitted blocks are copied out to a separate chuckfile miniseed2db check for mmap failure, and mention the possibility in the man page. add another branch for when file fails is_file(3) because it is too large mk_dataless_seed Add snet subset option monitor_memory gui for monitoring a process' memory usage msdd fix so it doesn't lie about miniseed datatype when there is no 1000 blockette fix interactive mode save command add interactive command to scan for bad blocks make the hdr format output a bit more verbose and easier to read online_backup use strict log to local directory logs instead of /var/tmp if it exists use osinfo instead of uname directly switch to rtmail for mail orb2cd1s Replace verbose printfs with elog_notify. Clean up prototypes so compiles cleanly. orb2db attempt to fix problem at DMC: orb2db too slow fix a couple typos -- should eliminate error messages with pktid == -5 try to make waveform locking safe for simpletech disks stop complaining about being unable to verify the size of previous ascii (and perhaps other) waveform files on restart. orb2disk try to be more graceful when disk space is limited try to add warning complaint when diskserver disk usage is less than requested add some options to the usage line add a comment about packets which seem to jump way ahead in time try to handle disk full situations better, and generally approach the limit on disk size more carefully, so it should not typically be exceeded. Change the behavior when opening a directory of forb files to position the read pointer at the most recent packet, similar to what the orbserver does. fix messages to be more informative. correct a bug in the naming of segment files which was probably introduced recently. correct the checking of free space at startup update man page to show some of the error messages from forb(3) These changes should avoid problems with the segment time getting set to sometime in 2035, and also eliminate the problem where segment files get only one packet per segment. add some sanity tests to forbput: check that time < 1/1/2040 srcname is ascii, not null, less than ORBSRCNAME_SIZE in length Possibly the ascii requirement could cause problems somewhere. change default max packets per segment to 10,000 for better performance open the (forb) disk before opening the orbserver, so that clean up occurs before trying to open the orbserver. This might be useful in some situations orb2ntp Change orb2ntp so that it always sets the system clock according to the incoming packet times, without regard to how different they may be from the current time. If the packet times vary widely (as we've seen in the past with RefTek, for example), the clock may move both forward and backward, leading to confusing and perhaps useless time tags in the logs. add some more info about ntpq output, complain more loudly when clock is moved backwards. orb2orb add option of choosing metering rate in packets/second in addition to existing option of kbytes/second. orbaddcalib This is the initial checkin of a new orb utility that will add calib, calper and segtype on-the-fly into ORB wavefrom packets as they are copied from one orb to another orb. Optionally, the SEED codes can be translated on-the-fly. Unlike orb2genc, this program does not attempt to reformat any of the ORB packets; it preserves whatever formats the packets had originally. This program will allow heavily threaded programs like q3302orb to not have to rely on master databases for filling in these values since datascope and threading are not particularly compatible. This will also provide a means to fill in NULL values from any other sources before the packets hit orb2db. Note that this program necessarily unstuffs and restuffs each waveform packet. This means that the various SEED packet types will not get processed by this program (since there are no general stuff routines for these packets). Added -onlynull processing flag. orbdisp fix error in channel matching orblag, tkorblag new utility programs orbmonrtd tidy up the man page a bit eliminate the attempt to use the settings from the sources list in the parameter file for sources on the command line. A mixture of sources with settings and without, in either the parameter file or as the result of an admixture of a parameter file and sources on the command line results in extra timelines and apparently random timeshifts between adjacent channels. orbperformance program to help in measuring orbserver performance orbproxy a simple orbserver proxy program that can be run on a host remote from the proxied orbserver. This provides a means on marmot concentrator units to access remote orbservers from other marmots in the field without needing any local buffering. Like with the orbserver, multiple simultaneous independent client connections are supported and the robust liborb automatic reconnection is supported so that the proxy is transparent to orb client programs. orbserver eliminate time linked-list inside orbserver for greater throughput put the right value in the status struct for large ring buffers orbserver64 add 64bit to the stat from orbserver64, so you can tell if you're connected to a 64bit orb orbstat switch from baud to bps at Chad's suggestion fix formatting of source list headers a bit, change to 1 digit after decimal point for baud rate orbxchange try to fix problem switching from one orb provider to another, described by Artak fix for linux osinfo.pm truncate the .local Mac OS X appends to the local hostname add bits routine for certify change so that osinfo gets just the simple hostname, not the fully qualified hostname (on Darwin) on marmot(arm) return serialnumber for hostid, marmot- for hostname add bitness and passwd lookup perl/vector Add new Vector perl module to encapsulate buvector methods in brttutil. Added new History package perldb add pfget_size and pfget_time to perl interface change for odd behavior of setrlimit on Darwin fix strsignal when result is null correct the initialization of some bury parameters correct description of strlocaldate perlorb document orblag call in perl orb interface perlq330 Fix problems in checksum and crc computations when actual payload after the QPD header is 0 bytes long. pfecho add option to show when parameter values are overridden by later parameter files ptk.pm add canvas to ptk add notebook, notebookpage and endnotebook to the ptk widgets improve the error handling a bit when the layout specs are bad ptkbplot Port of the brttplot tk widget extensions to perltk. Added Tk::Bplot::getviewportwcoords method Added polypoint canvas item and hooked up with new brttutil buvector methods. Added polyline and ptext and added another test script q3302orb Added flush_buffer_thresh and flush_buffer_age parameters to implement the flush old data capability requested by Bob Busby. Added automatically generated warning log message whenever the DP token values of net and sta are different from the values for physical channel 0 acquisition as defined in the q3302orb.pf configuration. Large scale changes to support sensor calibration. The approach is to look for special calibration structures that get inserted into the data streams that announce a calibration is taking place. The changes will cause the creation of new database ORB packets in the new dlcalwf table that will hopefully end up in an archive database somewhere and reference the calibration waveforms, both sensor and loopback (monitor), along with all of the calibration parameters, such as waveform type, amplitude durations, etc. This approach pretty well decouples the commanding, capture and analysis phases so that any tool could be used to command the calibration, but q3302orb would still see it and create the capture database rows. If I have set up the new table correctly, just about any tool could also be used to do the analysis. Of course, there are the grungy details of joining the sensor info with the necessarily datalogger-centric new dlcalwf table, but that would have to be done downstream regardless. Add definitions for registration packets Add a few more packet types Turn on calibrate error and calibrate status in default statuf pf Add samprate to dlcalwf schema to make analysis processing easier. Add local system time to timing packets. Always set shutdown flag the very first thing no matter what in signal handler. This changes the first-last syncronization across link cycles. Rearrenge repkt flushing and add mutex to repkt routines Add option to control length of write mtfifo queue length Always put stdout output logs to be inserted at the head of the write mtfifo to get printed immediately. Attempt to limit size of write queue by blocking on the data packet read end. Re-arrange signal handling. Make sure that the timing packets are always pushed to the front of the write FIFO to minimize latencies. Add diagnostic log message to indicate when write thread has been flushed. Forgot to parse -port_base arg. Add capability to control individual sensor channels in a sensor calibration so that a pure DAC to ADC loopback with no sensors can be done. Suck on write mtfifo a lot longer before giving up when shutting down. q330util Major changes to q330util to implement new marmotfix and ident functions. Added -pfout option and updated man page. Add number_reboots and time_last_reboot to ident function. Add umsg command. qtunbale try to fix Gary's problems with qtunbale rt_baler_info Better initialization retry missing stations after each pass better error logging rtbackup Complete rewrite. Now backs up to disk. Still needs to backup event data. Old program now named rtbackup2tape. Major improvements in memory usage and pre-trexcerpt time. These changes were pushed by stress testing the program on USArray TA data which indicated potential problems on large networks. These problems would not show up in normal networks. Still need to get more creative with the trexcerpt section for TA. Currently trexcerpt requires about 1.5 minutes to archive one day of TA station data. At 400 stations this translates into about 10 hours of trexcerpt wall clock time to process 1 network day of data (~3 GBytes). rtbulletin.1 add -A to options rtexec remove colon from cron log filenames, to satisfy special mac filename requirements check for existence of orbstat program before running it try to prevent rtexec from committing suicide by sending itself a kill signal during startup change printf to print so that perl doesn't try to interpret format specifiers in the shutdown reasons ensure that rtexec pid is cleared as system shuts down, and this is done before the database is closed. try to clean up the naming of cron log files try to fix up bug caused by closing @Db in an attempt to always save the database under Linux rtm Cleanup the handling of cron jobs, and always bring up the process panel in rtm sort the list of channels passed to orbmonrtd remove obsolete errors file from rtm View menu rtmail Implement replyto and from options. Allows user to specify a reply-to address rather than the generic responding to the generic $user@$mailhost. attempt to deal with new CBL blocking of helo codes like "helo localhost" rtreport attempt to make rtreport and rtsys always report to stdout as well as sending mail, at Frank's request make rtreport more useful at detecting multiple wfdisc records per channel Revert to having warning levels specified in rtreports.pf not rtexec.pf. rtsys eliminate dependence on a waveform database. schemas SDAS1.0 autodrm1.0 css3.0 cvs1.0 balerlist calresult calwf chanperf digitizer dlcalwf dlsensor dlsite dmcseed gps latency netperf q330comm q730b retransmit seismometer sensorcal sensormodel mostly change %d to %ld schemas css3.brtt first pass at extending css3.0 in small ways for 64 bit schemas css3.0.ext sensormodel Added sngen and nominal response schemas css3.0.ext dlcalwf sensorcal Add dlcalseqr and timer to support comparison calibrations sd2db revert to using same order in fir filters in seed volumes as in response files, in response to "FDSN" "decision". sdd stop printing errors in fir/paz coefficients if they're zero (minimize optical noise) snapshot.pm antelope.1.id antelope.3 bugs.5 debugging.5 Request use of support@brtt.com over personal email for bug reports or support requests. restrict the output size of ls in snapshot add solaris release info to snapshot swapbytes.h add the c++ stuff that Gary and Kent have requested table2grid.tcl fix deficiency in the blt table replacement code tail2orb Fix minor leak in tail2orb, make one complaint a bit clearer. switch from baud to byte tcl library tkdialog.tcl use newer form of font spec tks.h make tks.h safe for c++ at Kent's suggestion trdisp.1 Additional explanation of importance of join order for input view based on discussions with David Vonseggern. trexcerpt Try to make error message more clear when output would exceed css3.0 limits on nsamp. attempt to eliminate complaints about state of health channels with no sensor table entry. add comment in man page about new parameter file parameter state_of_health_channels truncate_log change truncate_log to clean up the rtsys database by keeping only the last few hundred records in the history, cron_history and shutdown tables. xdiff add -q option