Mung Properties
--- The Mung Event Editor ---

Mung is an GUI based event editor that allows the user to view, create, or edit tabular data associated with an earthquake in the NCEDC parametric schema. It provides a means for solving for event locations and magnitudes. The user can text edit existing data, or enter new data either via a dialog or a flat-file. It does not display any event waveform data. It runs from the same downloadable jar file as Jiggle, and like Jiggle, it is configured using properties files found in the user's application home directory. The main application properties file is named "mung.props". Example properties files used by the application can be found in zip file   (mung.zip) The command line invoking the main method of the class is similar to the command that starts Jiggle. This line should define two system properties (MUNG_HOME and MUNG_USER_HOMEDIR) and declare a java classpath to the executable jar file. A complete command line will look like:

java [system properties] [classpath] org.trinet.mung.Mung [argument list]
where argument list is: [db_host] [db_schema] [db_password] [catalog_hrs_b4_present] [enableCommit] [debug]
and the default value settings are: "" "" "" 0 true false

Entering "?" for the first argument will just dump the argument syntax list, otherwise the first 3 arguments initialize the text fields of the database connection login dialog. where db_host is a string of the form, localHost.dbaseDomain:dbasePort:dbaseName, or just localHost when properties define the dbaseDomain, dbasePort, and dbaseName. e.g. iron.gps.caltech.edu:1383:testdb The remaining arguments are interpreted thusly:
  if hrs_b4_present = 0, zero epoch seconds start and end, no catalog table, user must first select times from dialog.
  if hrs_b4_present < 0, use catalog datetime filter values defined in an event properties file, if any.
  if hrs_b4_present > 0, define catalog time range from current datetime to current datetime - hrs_b4_present.
  if enableCommit = true allow the data edits to be written to the database.
  if debug = true enable more verbose message logging.

Example of command line in a Windows .bat file using defaults:
java -Xmx512M -DMUNG_HOME="C:\Program Files\Mung" -DMUNG_USER_HOMEDIR="C:\Documents and Settings\%USERNAME%\.mung\scedc" -classpath "jiggle.jar" %*

Example with explicit inputs:
java -Xmx512M -DMUNG_HOME="C:\Program Files\Mung" -DMUNG_USER_HOMEDIR="C:\Documents and Settings\%USERNAME%\.mung\scedc" -classpath "jiggle.jar" my_host my_schema my_passwd -1 true


The Mung GUI presents window frames with tabbed panels of tables showing the database and/or user entered values of the data associated with a seismic event in the context of the JASI object heirarchy.
All of the Mung application properties files should be located in the specified MUNG_USER_HOMEDIR. The file "mung.props" defines properties that are mostly the same as those defined for the Jiggle or Hypomag applications and their property descriptions can be found in:  JiggleProperties  Hypomag properties
#
# Properties defined below are like those found in jiggle.props or hypomag.props.
autoProcessing=false
channelCacheFilename=scedcChannelList.cache
channelCopyOnlySNCL=true
channelDbLookUp=true
channelDebugDump=true
channelListCacheRead=true
channelListCacheWrite=false
channelListReadOnlyLatLonZ=false
channelListAddOnlyDbFound=true
channelMatchLocation=true
channelMatchMode=LOCATION
dbAttributionEnabled=true
dbTimeBase=NOMINAL
dbWriteBackEnabled=true
debug=true
debugSQL=false
delegateLoadArrivalsFromDb=true
delegateLoadMagReadingsFromDb=true
eventSelectionDefaultProps=eventProperties
eventSelectionProps=myEvent.props
jasiObjectType=TRINET
listMatchMode=EQUIVALENT
localNetCode=CI
# location engine settings
locationEngine=org.trinet.util.locationengines.LocationEngineHypoInverse
locEngineProps=locEng.props
#
#clear false when new mag readings entered by solution, rather than mag
magDataLoadClearsSolution=false
magDataLoadClonesReadings=true
#For STALE mag:
# if magStaleCommitOk=true and magStaleCommitNoop=false then a new magid is created in db
# its reading associations are those already existing for old magid in the database
# if magStaleCommitOk=true and magStaleCommitNoop=true then old magid is used instead,
# new origin points to old magid, event.prefmag=old magid.
# if magStaleCommitOk=false, commit aborts after event,origin row is updated in db
# new magnitude associations are not written
#values below effect a static member init by property for Magnitude, Solution
#magDataLoadOption= any string combo of letters: m,p,s
magDataLoadOption=mps
magStaleCommitNoop=true
magStaleCommitOk=true
#
mhDisable=false
mlDisable=false
mdDisable=true
# 
magEngine=org.trinet.jasi.engines.TN.MagnitudeEngineTN
#
mlMagEngineProps=mlMagEng.props
mlMagMethod=org.trinet.jasi.magmethods.TN.SoCalMlMagMethod
mlMagMethodProps=mlMagMeth.props
mhMagEngineProps=mhMagEng.props
mhMagMethod=org.trinet.jasi.magmethods.TN.MungSoCalMhMagMethod
mhMagMethodProps=mhMagMethMoldy.props
#
mdMagEngineProps=mdMagEng.props
mdMagMethod=org.trinet.jasi.magmethods.HypoinvMdMagMethod
mdMagMethodProps=hypoMdMagMeth.props
#
printLocEngPhaseList=true
printMagEngReadingList=true
printMagnitudes=true
printSolutionPhaseList=true
printSolutions=true
#
solCommitAllMags=true
solStaleCommitOk=false
useTrialLocation=true
velocityModelClassName=org.trinet.util.velocitymodel.HK_SoCalVelocityModel
verbose=true
whereUnits=miles
--- Mung.props Properties Particular to Mung ---

Property Description Example Value
WhereIsEngine classname of Where engine returning gazetteer info. org.trinet.util.gazeteer.TN.WheresFrom
autoSolve Auto solve for new solution/magnitude when data edited or added true
customSolutionListParserName classname of parser reading in ascii input for new events org.trinet.mung.MungMoldySolutionListParser
dateRangeYearsBack years prior to start/end date to show in event datetime selection dialog. 5
dateRangeYearsFuture years past start/end date to show in event datetime selection dialog. 5
defaultDataSrc default data source string for a new data row (all tables) defaults to your environment netcode
defaultDataAuth default authority string for a new data row (all tables) defaults to your environment netcode
defaultChannelSrc default channelsrc string for new Arrival, Amp, or Coda defaults to same value as networkCode.
defaultChannelLocation default location string for a new Arrival, Amp, or Coda, 2-blanks "  "
dummyStaCode default station string for a new Arrival, Amp, or Coda XXX
dummySeedchanCode default seedchan string string for a new Arrival, Amp, or Coda XXX
packWindowOnSolutionLoad resize GUI catalog table after solution list reload true
pcsEngineDelegate Event location and magnitude engine interface control org.trinet.mung.MungHypoMagEngineDelegate


Each table in the Mung GUI maps a row of data to a single Jasi object associated with the event. Thus each table has its own user directory properties file to specify its custom data attributes. These files are named: SolutionListTable.props, MagListTable.props, AmpListTable.props, PhaseListTable.props, CodaListTable.props. Below is the list of properties common to these tables.
--- Properties common to all table properties files ---

Property Description
selection table row header selection model "single" "single_interval" "multiple_interval"
logModelChanges true/false print output upon any insert,update,delete, or copy of a table row
inputParserName java class to use to parse user input text entered for a new table row
order list of model column names in desired table order
show list of true/false values for column visibility in table
editable list of true/false values for allowing edit of column data
nullable list of true/false values for allowing entry of null column data
fraction list of integer decimal fraction digits shown in a table column value
padding list of integer pixels to pad table column width by
defaultDataAuth default authority value for a user created row (e.g. network code CI)
defaultDataSrc default data source value for a user created row (eg. mung)

#
# Example of a SolutionListTable.props
#
defaultDataAuth  =CI
defaultDataSrc   =mung
#
#Specify name of java class that parses an event row from text input
inputParserName  =org.trinet.util.graphics.table.DegMinSolutionTextParser
#
#Print a message for each insert, update, delete, or copy of a table row
logModelChanges  =false
#
#Desired table row header selection interval is "single" "single_interval" or "multiple_interval"
selection        =multiple_interval
#
#Show column in table in order listed, which is not necessarily same as model order below
order = ID DFLG ETYPE LAT DATETIME LON Z MAG MTYP WRECS \
GAP DIST RMS ERR_T ERR_H ERR_Z ZF HF TF OBS \
USED S V STALE BFLG PFLG FM Q PR EAUTH \
ESRC AUTH SRC PREFOR MAGID ORID MECID RMK VERS 
#
# Model column names are listed in the order mapped to their respective property element values below:
#"ID" "EXT_I" "DATETIME" "LAT" "LON" "Z" "HDAT" "VDAT" "TYPE" "METHOD" 
#"CM" "VM" "AUTH" "SRC" "GAP" "DIST" "RMS" "ERR_T" "ERR_H" "ERR_Z" 
#"ERR_LAT" "ERR_LON" "OBS" "USED" "S" "FM" "Q" "V" "ETYPE" "PFLG" 
#"ZF" "HF" "TF" "WRECS" "MAG" "PR" "MTYP" "RMK" "DFLG" "STALE" 
#"BFLG" "PREFOR" "MAGID" "MECID" "COMMID" "ORID" "EAUTH" "ESRC" "VERS"
#
#Number of pixels to add to default column field width
padding = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
#
#Is column visible (shown) in table
show =  true false true true true true false false false false \
false false true true true true true true true true \
false false true true true true true true true true \
true true true true true true true true true true \
true true true false true true true true true 
#
#Number of column data value fraction digits to show (string = 0)
fraction = 0 0 2 5 5 2 0 0 0 0 0 0 0 0 1 2 3 4 3 3 5 5 0 0 0 0 2 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
#
#Is column data value editable by user:
editable =  false false true true true true true true true true \
true true true true true true true true true true \
true true true true true true true true true true \
true true true false true true true true true true \
true false false false false false true true false 
#
#Is column data value nullable by user:
nullable =  false true false false false true true true false true \
true true false true true true true true true true \
true true true true true true true false false false \
false false false true true true true true false false \
false true true true true true false true false 


--- User properties common to AmpList, CodaList, PhaseList tables ---

seedchanMap list of seedchan strings to map to corresponding channelMap elements (by default channel=seedchan)
channelMap list of channel strings parsed from input to map to corresponding seedchanMap elements
defaultChannelSrc default channelsrc string value for a user created data row
defaultChannelLocation default channel location string value for a new data row

# Example of a PhaseListTable.props
logModelChanges  = false
seedchanMap      = EHZ EHN EHE
channelMap       = Z N E
defaultDataSrc   = mung
defaultDataAuth  = CI
defaultChannelSrc= CIT
#blank-blank
defaultChannelLocation =\ \ 
inputParserName  =org.trinet.util.graphics.table.DefaultPhaseTextParser
order = ARID DFLG SSRC CSRC NET STA CHAN SEED LOC AU \
PH EI FM Q IWT DATETIME RES DELAY DIST AZ 
EMA WT AUTH PSRC RMK PFLG ORID EVID
# Model column name order listed here pertains to property value settings below:
#"NET" "STA" "CHAN" "AU" "SSRC" "CSRC" "SEED" "LOC" "PH" "EI" 
#"FM" "Q" "DATETIME" "RES" "DELAY" "DIST" "AZ" "EMA" "WT" "AUTH"
#"PSRC" "RMK" "PFLG" "DFLG" "ORID" "ARID" "EVID IWT"
show = true true true false false true true true true true \
true true true true true true true true true true \
true true true true true true true false
editable = true true true true true true true true true true \
true true true false false false false false false true \
true true true true false false false false
nullable = false false false false false false false false false \
false false false false true true true true true true false 
false true false false true false true true
fraction = 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 1 1 1 2 0 0 0 0 0 0 0 0 2
padding  = 0 0 0 0 0 0 0 0 10 10 30 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Mung GUI Table Columns
Every table row has a "DFLG" checkbox which allows the user to toggle that row as deleted/undeleted. Deleted row's data are not committed to the database. Deleted phase, amp, and coda table rows are not included in any summary calculations.
For any edit enabled table:
To start a cell edit : Type Ctrl-E, or double-click mouse in cell.
To stop a cell edit  : Type Ctrl-S, TAB, CR, click another cell, or press CTRL and click left mouse button.
To cancel a cell edit: Type Ctrl-C or press ALT key and click left mouse button to revert back to previous value.
To resize column widths: Press SHIFT key and click left mouse button to resize column widths for a highlighted row when long data value strings appear truncated in cells like 123....

SolutionListTable Columns:
ID       = evid from Event table
DFLG     = toggle row delete flag 
ETYPE    = event subtype e.g. 'local', 'regional' 'teleseism' etc.
LAT      = origin latitude degrees
DATETIME = origin date time
LON      = origin longitude degrees
Z        = origin depth (km)
MAG      = preferred magnitude value (magnitude units)
MTYP     = preferred magnitude type e.g. 'l', 'd' 'w' etc.
WRECS    = number of waveforms associated in AssocWaE
GAP      = maximum origin azimuthal gap
DIST     = minimum station distance (km) of contributing phase 
RMS      = rms of contributing phase traveltime residuals
ERR_T    = error in the origin time (seconds)
ERR_H    = error in the origin epicenter lat,lon (degrees)
ERR_Z    = error in origin depth (km)
ZF       = toggle depth fixed flag
HF       = toggle lat,lon fixed flag
TF       = toggle origin time fixed flag
OBS      = number of arrivals associated with origin
USED     = number of non-zero weighted arrivals used in solution
S        = number of non-zero S-phases used in solution
V        = toggle event selected flag
STALE    = its data changed, origin needs recalculation
BFLG     = toggle origin bogus (lat,lon invalid)
PFLG     = processing state human (H), automatic (A) or final (F)
FM       = number of first motions
Q        = origin quality
PR       = origin priority
EAUTH    = event authority
ESRC     = event subsource
AUTH     = origin authority
SRC      = origin subsource
PREFOR   = orid of event preferred origin
MAGID    = event preferred magid
MECID    = event preferred mecid
ORID     = orid of this origin
RMK      = associated comment from Remark table
VERS     = event/origin revision number

MagListTable Columns:
MAGID    = id from Netmag table
DFLG     = toggle row delete flag 
MAG      = magnitude value
MTYP     = subtype like 'l', 'd'
AUTH     = authority like 'CI', 'NC'
SRC      = subsource that created data e.g. 'mung'
HOW      = name of magnitude calculation method e.g. 'SoCalMl'
STNS     = number of contributing stations
CHLS     = number of contributing channels
RMS      = rms of contributing channel magnitude residuals
GAP      = maximum azimuthal gap of contributing channel magnitudes
DIST     = minimum sta distance (km) of contributing channel magnitudes
Q        = summary magnitude quality
PFLG     = processing state human (H), automatic (A) or final (F)
PREF     = toggle event preferred magnitude
TPREF    = toggle preferred of its magnitude subtype
STALE    = its data changed, magnitude needs recalculation
EVID     = associated evid from Event table
ORID     = associated orid from Origin table
RMK      = associated comment from Remark table

PhaseListTable Columns 
ARID      = id from Arrival table
DFLG      = toggle row delete flag 
NET       = channel network code
STA       = channel station name
CHAN      = channel channel
AU        = channel authority, null 
SSRC      = channel subsource, null 
CSRC      = channel channelsrc
SEED      = channel seedchan
LOC       = channel location
PH        = phase type e.g. 'P','S'
EI        = character impulsive, emergent, weak e.g. 'i','e','w'
FM        = first motion compression, dilation 'c','d'
Q         = quality mapped to input weight for the origin solution
IWT       = input weight (0-4) is mapped to quality (1-0)
DATETIME  = observed arrival time
RES       = traveltime residual
DELAY     = site time delay correction
DIST      = epicentral distance (km)
AZ        = epicenter to station azimuth (degrees)
EMA       = angle of emergence from source (degrees, 0 down)
WT        = output weight in final origin solution
AUTH      = authority that created row data e.g. 'CI', 'NC'
PSRC      = subsource that created row data e.g. 'mung'
RMK       = associated comment from Remark table
PFLG      = processing state human (H), automatic (A) or final (F)
EVID      = associated evid from Event table
ORID      = associated orid from Origin table

AmpListTable Columns 
AMPID     = id from amp table
DFLG      = toggle row delete flag 
PFLG      = processing state human (H), automatic (A) or final (F)
NET       = channel network code
STA       = channel station name
CHAN      = channel channel
AU        = channel authority, null 
SSRC      = channel subsource, null 
CSRC      = channel channelsrc
SEED      = channel seedchan
LOC       = channel location
VALUE     = a amplitude value
UNITS     = value units e.g. 'mm'
TYPE      = amp subtype e.g. 'WAS'
IWT       = input weight maps to quality
CMAG      = channel magnitude
MCORR     = channel magnitude correction
MAG       = summary magnitude
RES       = channel magnitude residual
WT        = weight of contribution to summary magnitude 
Q         = quality value (0-1)
CLP       = waveform clipped amp
DIST      = epicentral distance (km)
AZ        = epicenter to station azimuth (degrees)
PH        = phase type e.g 'P', 'S'
WTIME     = if windowed, start time of time window
WDUR      = if windowed, duration of time window
DATETIME  = time associated with amp value
HALF      = value datum half-peak / peak-peak 
ERR       = estimated error of amplitude value
PER       = waveform period at amp measurement time
SNR       = waveform signal/noise
AUTH      = authority that created this amp
SRC       = subsource that created this amp
RMK       = associated comment from Remark table
MAGID     = associated magid in AssocCoM table
EVID      = associated evid from Event table
ORID      = associated orid from Origin table

Description of CodaListTable Columns: 
COID      = id from Coda table
DFLG      = toggle row delete flag 
PFLG      = processing state human (H), automatic (A) or final (F)
NET       = channel network code
STA       = channel station name
CHAN      = channel channel
AU        = channel authority, null 
SSRC      = channel subsource, null 
CSRC      = channel channelsrc
SEED      = channel seedchan
LOC       = channel location
TYPE      = coda type ('d', 'a', etc)
DESC      = optional string code describing derived coda, e.g. noisy clipped
IWT       = input weight maps to quality
CMAG      = channel magnitude
MCORR     = channel magnitude correction
MAG       = summary magnitude
RES       = channel magnitude residual
WT        = weight of contribution to summary magnitude 
Q         = quality value (0-1)
DIST      = epicentral distance (km) 
AZ        = epicenter to station azimuth
TAU       = duration seconds
AFIX      = log amp axis intercept for fixed q = 1.8 
AFREE     = log amp axis intercept for L1 fit
QFIX      = the default value 1.8
QFREE     = slope of L1 fit of the duration amp windows 
WCOUNT    = good amplitude window count for line fit
WSIZE     = seconds in a amplitude averaged time window
UNITS     = amplitude units (averaged counts)
PH        = 'P' 
WTIME     = 1st time window datetime
AMP       = 1st time window averaged absolute amplitude (counts)
DATETIME  = observed/predicted P arrival time for start of coda 
ERR       = estimated error of a windowed amp value
RMS       = rms of L1 line fit of windows
AUTH      = authority that created this coda
SRC       = subsource that created this coda
ALGO      = name of algorithm that created this coda
MAGID     = associated magid in AssocCoM table
ORID      = associated orid in AssocCoO table
EVID      = associated evid in Event table


--- Magnitude Table Panel ---

On the MagListTable panel in addition to the "input" button, the "insert" button will create a magnitude row for a new magnitude. Then if you want to add Amp data for this new magnitude first invoke the "data" panel button and answer "No" to the reload from database query. Now into the the empty Amp table you can either enter manually new data by using the the "input" or "insert" buttons or you can copy all of the amplitudes currently loaded in the Solution's Amp list into the new magnitude's Amp table list by using the "copySolList" button. BEWARE of answering "yes" to the "load data from database" query when first popping the "data" panel for the new magnitude, because it first clears the Solution's Amp list before loading the database data and if no existing AssocAmM assocations exist in the database for the magnitude you get nothing but an empty list and have to reload the Solution's list data again using the "reload" button of the panel containing the the Solution's Arrival and Magnitude lists (green border).

Pressing the button on the panel toolbar called "calcAllMags" will do all "non-deleted" magnitudes of a Solution. It requires that the Solution origin not be "stale". Once you are satified with a origin "Solve" location, using this button will saves having to do each magnitude individually with selecting the magnitude row in the MagList table and pressing the "calcMag" button. Unless the properties are set to override, the preferred magnitude remains the same. Avoid creating multiple magnitudes of a given magtype for a preferred origin.



--- Adding New Data Rows to Tables ---

In each table's properties file the property "inputParserName" names the Java class to use to parse a new table row from input text lines. Below are specified the formats lines used to enter new data (via an "input" dialog or "file"). In these templates {} indicates a required field and [] indicates an optional field, defaults are used when optional input fields are absent. Time strings for subsequent text entries can be specified partially once a full time specification is given by omitting the leading tokens. A ":" or " " are the time token delimiters; the date is one token.
DefaultSolutionTextParser format: {yyyy-MM-dd:HH:mm:ss.s} [lat] [lon] [z] [etype]}
DegMinSolutionTextParser format: {yyyy-MM-dd:HH:mm:ss.s} [latd] [latm] [lond] [lonm] [z] [etype]}
SlashDegMinSolutionTextParser format: {yyyy/MM/dd/HH/mm/ss.s} [latd] [latm] [lond] [lonm] [z] [etype]
"; DefaultPhaseTextParser format: {sta} {chan} {yyyy-MM-dd:HH:mm:ss.s} {pd = {qual(i|e)}{type(P|S)}[wt(0-4)][fm(U|D)]}
DefaultMagnitudeTextParser format: {value} {type e.g. l,h} [staCount] [error]
DefaultAmpTextParser format: {sta} {chan} {value(mm)} [yyyy-MM-dd:HH:mm:ss.s] [type(S)]
In order to input an entire event from a flat file the first character of each line should be a line "type" identifier where the identifier is "S" for solution ,"M" for magnitude ,"P" for phase , "A" for amp (no coda parser is currently defined). Within the file, each S type is followed by multiples of its P and/or multiples of its A then by multiple groups of M type followed by any multiples of its associated A types. For each S type its event preferred magnitude is set to the last entered M type.



To top of page