Skip to content

Source Types

Peter Powers edited this page Sep 6, 2017 · 20 revisions

There are seven basic source types:

[ Area, Cluster, Fault, Grid, Interface, Slab, System ]

Source files for each are written in plain old XML. All attributes present in the examples below are required with the exception of MFD's for which default distributions are being used; see examples below.

Note on value types: Most attribute values or element content are parsed as a String, Double, Double[] (array) or Boolean; those attribute values in ALL_CAPS are parsed as enum types and are case sensitive, for example.

Note on using default MFDs: Default MFDs, if supported and present, must be fully specified. Any MFD encountered in a source will map all missing attributes from the default(s) of the same type. If no default for an MFD type is present, the source MFD must be fully specified

Note on Coordinates: nshmp-haz supports longitude and latitude values in the closed ranges [-360° ‥ 360°] and [-90° ‥ 90°]. Note, however, that mixing site and/or source coordinates across the antimeridian (the -180° to 180° transition) will yield unexpected results. For Pacific models and claculations, always use positive or negative longitudes exclusively.

Outline

Area Sources

Area sources are similar to Grid Sources except that a single MFD applies to an entire area with rates proportionally scaled for use at all grid nodes. The discretization of area sources into grids may be allowed to vary with distance from a site as specified by a model initialization configuration.

<?xml version="1.0" encoding="UTF-8"?>
<AreaSourceSet name="Source Set Name" weight="1.0">

    <!-- Sources ... -->
    <Source name="Area Source Name" id="0">
        
        <!-- Specify MFDs ... -->
        <IncrementalMfd type="GR" weight="1.0" id="name"
            a="0.0" b="0.8" dMag="0.1" mMax="7.0" mMin="5.0" />

        <Geometry>

            <!-- Border polygon. Individual locations specified by
                 whitespace separated tuples of longitude,latitude,depth
                 (NO SPACES); same as the KML <coordintes/> format. -->
           <Border>
                -117.0,34.0,0.0
                -117.1,34.1,0.0
                -117.3,34.2,0.0
                ...
            </Border>
        </Geometry>
    </Source>

    <!-- Add more sources ... -->
    <Source />
    ...
 
</AreaSourceSet>

Cluster Sources

Cluster sources are composed of two or more fault sources that rupture independently but very closely spaced in time. Ground motions from cluster sources are modeled as the joint probability of exceeding ground motions from each independent event.

<?xml version="1.0" encoding="UTF-8"?>
<ClusterSourceSet name="Source Set Name" weight="1.0">

    <!-- (optional) Settings block for any data that applies to all
         sources. -->
    <Settings>
        
        <!-- (optional) The reference MFD to use. Note: Cluster sources
             only support SINGLE MFDs at this time. -->
        <DefaultMfds>
            <IncrementalMfd type="SINGLE" weight="1.0" id="name"
                rate="0.002" floats="false" m="0.0" />
        </DefaultMfds>

        <!-- Although not used, a rupture scaling model is required
             to initalize the fault sources nested in each cluster. --> 
        <SourceProperties ruptureScaling="NSHM_FAULT_WC94_LENGTH" />

    </Settings>

    <!-- Sources must follow Settings ... -->
    <Cluster name="Cluster Source Name" id="0" weight="0.2">
        <Source name="Fault Source Name" id="0">

            <!-- Specify MFDs; only SINGLE is supported -->
            <IncrementalMfd type="SINGLE" weight="0.2" id="name" m="6.6" />
            <IncrementalMfd type="SINGLE" weight="0.5" id="name" m="6.9" />
            <IncrementalMfd type="SINGLE" weight="0.3" id="name" m="7.3" />
 
            <!-- Then geometry ... -->
            <Geometry dip="45.0" rake="0.0" width="14.0">
            
                <!-- Trace must follow right-hand rule. -->
                <!-- Individual locations specified by whitespace
                     separated tuples of longitude,latitude,depth
                     (NO SPACES); same as KML <coordintes/> format. -->
                <Trace>
                     -117.0,34.0,0.0
                     -117.1,34.1,0.0
                     -117.3,34.2,0.0
                     ...
                </Trace>
            </Geometry>
        </Source>
    </Cluster>
    
    <!-- Add more sources ... -->
    <Cluster />
    ...

</ClusterSourceSet>

Fault Sources

<?xml version="1.0" encoding="UTF-8"?>
<FaultSourceSet name="Source Set Name" weight="1.0">

    <!-- (optional) Settings block for any data that applies to all
         sources. -->
    <Settings>
        
        <!-- (optional) The reference MFDs to use. -->
        <DefaultMfds>
            <IncrementalMfd type="SINGLE" weight="0.6667" id="name"
                rate="0.0" floats="false" m="0.0" />
            <IncrementalMfd type="GR" weight="0.3333" id="name"
                a="0.0" b="0.8" dMag="0.1" mMin="5.0" mMax="7.0" />
            ...
        </DefaultMfds>

        <!-- (optional) A magnitude uncertainty model that will be
             applied to every source:
               - <Epistemic/> varies mMax and scales variant rates by
                 the supplied weights; it is only ever applied to SINGLE
                 and GR MFDs.
               - 'cutoff' is magnitude below which uncertainty will be
                 disabled.
               - <Aleatory/> applies a (possibly moment-balanced) ±2σ
                 Gaussian distribution to mMax; it is only ever applied
                 to SINGLE MFDs (possibly in conjunction with epistemic).
               - 'count' is the number of magnitude bins spanned by
                 the distribution.
               - <Aleatory/> or '<Epistemic/>', or the entire block
                 may be omitted. -->
        <MagUncertainty>
            <Epistemic cutoff="6.5" 
                deltas="[-0.2, 0.0, 0.2]" weights="[0.2, 0.6, 0.2]" />
            <Aleatory cutoff="6.5" 
                moBalance="true" sigma="0.12" count="11" />
        </MagUncertainty>

        <SourceProperties ruptureScaling="NSHM_FAULT_WC94_LENGTH" />

    </Settings>

    <!-- Sources must follow Settings ... -->
    <Source name="Fault Source Name" id="0">

        <!-- Specify MFDs ... 
               - at a minimum, 'type' must be defined, assuming
                 reference MFDs are present. -->
        <IncrementalMfd type="SINGLE" rate="1.0" m="7.4" />
        <IncrementalMfd type="GR" a="1.0e-2" dMag="0.1" mMax="7.4" />
        
        <!-- Then geometry ... -->
        <Geometry depth="1.0" dip="45.0" rake="0.0" width="14.0">
            
            <!-- Trace must follow right-hand rule. -->
            <!-- Individual locations specified by whitespace separated
                 tuples of longitude,latitude,depth (NO SPACES); same
                 as KML <coordintes/> format. -->
            <Trace>
                -117.0,34.0,0.0
                -117.1,34.1,0.0
                -117.3,34.2,0.0
                ...
            </Trace>
        </Geometry>
    </Source>

    <!-- Add more sources ... -->
    <Source />
    ...

</FaultSourceSet>

Grid Sources

<?xml version="1.0" encoding="UTF-8"?>
<GridSourceSet name="Source Set Name" weight="1.0" id="0">

    <!-- (optional) Settings block for any data that applies to all
         sources. -->
    <Settings>

        <!-- (optional) The reference MFDs to use; although optional,
             using reference MFDs greatly reduces grid source file
             sizes. -->
        <DefaultMfds>
            <IncrementalMfd type="GR" weight="1.0" id="name"
                a="0.0" b="0.8" dMag="0.1" mMax="7.0" mMin="5.0" />
            <IncrementalMfd type="INCR" weight="1.0" id="name"
                mags="[5.05, 5.25, 5.45, 5.65, 5.85, 6.05, 6.25, 6.45]"
                rates="[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]" />
            ...
        </DefaultMfds>

        <!-- Grid sources require attitional information about the 
             distribution of focal mechanisms and depths to use:
               - 'magDepthMap' is a ';' separated list cutoff magnitudes
                 mapped to depths and associated weights. In the example
                 below events of M<6.5 are located at a depth of 5 km,
                 with a full weight of 1. The [depth:weight] mapping may
                 contain multiple, ',' separated values, e.g.
                 [6.5::[5.0:0.8,1.0:0.2], ...].
               - 'maxDepth' constrains the maximum depth of any finite
                 point source representations.
               - 'focalMechMap' is a ',' separated list of focal
                 mechanism identifiers and associated wieghts.
               - In both maps above, weights must sum to 1.
               - Use 'NaN' for unknown strike. Note that if a strike
                 value is defined, sources will be implementated as
                 FIXED_STRIKE and any configuration settings will be
                 ignored. -->
        <SourceProperties 
            magDepthMap="[6.5::[5.0:1.0]; 10.0::[1.0:1.0]]"
            maxDepth="14.0"
            focalMechMap="[STRIKE_SLIP:0.5,NORMAL:0.0,REVERSE:0.5]"
            ruptureScaling="NSHM_POINT_WC94_LENGTH"
            strike="120.0" />

    </Settings>

    <!-- Nodes are specialized <IncrementalMfd/> elements that specify
         the location of individual grid sources and have the necessary
         attributes to define the MFD for the source. -->
    <Nodes>
        <Node type="GR" a="0.0823" mMax="7.2">-119.0,34.0,0.0</Node>
        <Node type="GR" a="0.0823" mMax="7.1">-119.1,34.0,0.0</Node>
        <Node type="GR" a="0.0823" mMax="6.8">-119.2,34.0,0.0</Node>
        <Node type="GR" a="0.0823" mMax="7.1">-119.3,34.0,0.0</Node>
        <Node type="SINGLE" rates="[1.0e-2, ...]">-119.4,34.0,0.0</Node>
        <Node type="SINGLE" rates="[1.0e-2, ...]">-119.5,34.0,0.0</Node>
        <Node type="GR" a="0.0823" mMax="6.9">-119.3,34.0,0.0</Node>
        ...
    </Nodes>
    
</GridSourceSet>

Interface Sources

<?xml version="1.0" encoding="UTF-8"?>
<SubductionSourceSet name="Source Set Name" weight="1.0">

    <!--  See Fault Sources for 'Settings' examples. -->
    <Settings />

    <!-- Sources must follow Settings ... -->
    <Source name="Subduction Source Name" id="0">

        <!-- Specify MFDs ... -->
        <IncrementalMfd type="SINGLE" weight="1.0" id="name"
            rate="1.0" m="8.2" />
        
        <!-- Then geometry ... -->
        <Geometry rake="90.0">
            
            <!-- As with Fault Sources, trace must follow right-hand
                 rule. -->
            <!-- Individual locations specified by whitespace separated 
                 tuples of longitude,latitude,depth (NO SPACES); same as
                 KML <coordintes/> format. -->
            <Trace>
                -124.7,41.0,0.0
                -124.6,44.0,0.0
                -124.5,47.0,0.0
                ...
            </Trace>

            <!-- (optional) Subduction sources may specify a lower trace,
                 also following the right-hand-rule. If a lower trace
                 is NOT defined, the parent geometry element must include
                 'depth', 'dip', and 'width' attributes in the same manner
                 as a fault source. -->
            <LowerTrace>
                -124.5,41.0,0.0
                -124.4,44.0,0.0
                -124.3,47.0,0.0
                ...
            </LowerTrace>
        </Geometry>
    </Source>

    <!-- Add more sources ... -->
    <SubductionSource />
    ...

</SubductionSourceSet>

Slab Sources

Subduction intraslab sources are currently specified the same way as Grid Sources.

System Sources

Fault system source sets require three files:

  • fault_sections.xml
  • fault_ruptures.xml
  • grid_sources.xml

that are placed together within a source group folder. Fault system source sets represent a single logic-tree branch or an average over a group of branches and has a gridded (or smoothed seismicity) source component that is coupled with the fault-based rates in the model.

fault_sections.xml defines the geometry of a fault network as a set of indexed fault sections:

<?xml version="1.0" encoding="UTF-8"?>
<SystemFaultSections name="Source Set Name">

    <!-- Specify section 'index' and 'name' -->
    <Section index="0" name="Section Name">

        <!-- Specify section geometry -->
        <Geometry aseis="0.1" dip="50.0" dipDir="89.459" 
                  lowerDepth="13.0" upperDepth="0.0">

            <!-- Unlike Fault Sources, trace does not need to follow
                 right-hand rule as 'dipDir' is supplied above. -->
            <!-- Individual locations specified by whitespace separated
                 tuples of longitude,latitude,depth (NO SPACES); same as 
                 KML <coordintes/> format. -->
            <Trace>
                -117.75,35.74,0.00
                -117.76,35.81,0.00
            </Trace>
        </Geometry>
    </Section>

    <!-- Add more sections ... -->
    <Section />
</IndexedFaultSections>

fault_ruptures.xml defines the geometry of fault sources, referencing fault sections by index:

<?xml version="1.0" encoding="UTF-8"?>
<SystemSourceSet name="Source Set Name" weight="1.0">

    <!-- <Settings/> block may be included; see Fault Sources and
         Grid Sources for examples. -->

    <!-- Sources must follow Settings ...
            - indexed fault sources do not require a name.-->
    <Source>

        <!-- Specify MFDs ... -->
        <IncrementalMfd rate="1.0e-05" floats="false" m="6.58" type="SINGLE"
                        weight="1.0" />
        
        <!-- Then geometry ... 
                - 'indices' is an array of index ranges, ordered from
                  one end of the source to the other -->
        <Geometry indices="[[0:5],[13:22],[104:106]" rake="0.0" />
            
    </Source>

    <!-- Add more sources ... -->
    <Source />
    ...

</IndexedFaultSourceSet>

grid_sources.xml is structured and processed in the same way as a grid source.

Clone this wiki locally