Skip to content
Snippets Groups Projects
Source-Types.md 14.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • There are seven basic [source types](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/eq/model/SourceType.html):
    ```
    [ Area, Cluster, Fault, Grid, Interface, Slab, System ]
    ```
    Source files for each are written in [plain old XML](http://en.wikipedia.org/wiki/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](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/mfd/MfdType.html).
    
    __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)
    * [Cluster Sources](#cluster-sources)
    * [Fault Sources](#fault-sources)
    * [Grid Sources](#grid-sources)
    * [Interface Sources](#interface-sources)
    * [Slab Sources](#slab-sources)
    * [System Sources](#system-sources)
    
    ### Area Sources
    
    Area sources are similar to [Grid Sources](#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](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/eq/model/AreaSource.GridScaling.html) from a site as specified by a model initialization [configuration](configuration).
    
    ```XML
    <?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
    <?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
    <?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
    <?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
    <?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](#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
    <?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
    <?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](#grid-sources).
    
    ### Next: [Ground Motion Models](ground-motion-models)