saas-y groundMotions @ Silvia's Brainery


© Silvia Mazzoni 2024

Welcome to saas-y groundMotions:
a fully-integrated pay-per-use tool for developing ground-motion suites for analysis!



Features

  • This app will help you select the appropriate ground-motion suite for your site in one in a single integrated workflow!
  • Pay-per-use only -- no annual license fees!! Easy to charge to projects instead of overhead!
  • User-friendly, self-documented, and intuitive Interface!
  • Fully-Integrated USGS Design Maps for your target spectrum!
  • Fully-Integrated USGS Disaggregation for your record search criteria!
  • Choose from many ground-motion selection, scaling, & modification methods available!
  • This app searches the NGA-West2 and NGA-Subduction databases seamlessly and simultaneously -- all in one step!!
  • This app determines the optimal ground-motion suite along with scale factors and optional spectrum-modification targets.
  • Integrate it into your workflow by using it as a REST API so you don't have to go through the web interface.
  • Note: the current release of this app does not provide the record files themselves. If you don't already have them, you can download them from the appropriate NGA web portals (link provided below).
  • The current release of this app does not modify the record files themselves, you will have to perform this last step locally.

Data References

NGA-Data Source References

All Intensity metadata and intensity measures were obtained from the NGA-West2 and NGA-Subduction Published Data
  • Timothy D. Ancheta, Robert B. Darragh, Jonathan P. Stewart, Emel Seyhan, Walter J. Silva, Brian S.J. Chiou, Katie E. Wooddell,
    Robert W. Graves, Albert R. Kottke, David M. Boore, Tadahiro Kishida, and Jennifer L. Donahue, "PEER NGA-West2 Database"
    PEER 2013/03
  • Bozorgnia Y, Abrahamson NA, Ahdi SK, et al. NGA-Subduction research program. Earthquake Spectra. 2022;38(2):783-798. doi:10.1177/87552930211056081

NGA-West2+East & NGA-Subduction

Click on a button to access the page in a new tab:

Quick Instructions

  • All work is done in the Input Dashboard.
  • Work through each process top to bottom by toggling it in the Input menu bar.
  • If your site is located within the Conterminous USA, this app allows you to integrate USGS webservices/REST tools
    • Use the integrated tool to obtain your target spectrum from the USGS Design Maps
    • Use the integrated tool to determine your ground-motion-selection scenarios from the USGS Hazard Deaggregation
  • When ready, press the "Search & Process" button to let the program build your suite.
  • Wait time may be up to one-two minutes, depending on
    • the speed of your connection (to and from the server)
    • size and complexity of your request
    • rendering speed of your client server
  • Once the app has created your ground-motion suite the Results menu will open up with many visualizations of your suite.
  • You can download the search results in JSON or CSV.
  • You can modify input and select/unselect records in iterative submissions (each submission needs one token).
  • There is a maximum number of records it processes -- it is set to 50.
  • Computing the target spectra for modification requires an additional token, so do it only once you have a good suite.
  • Compare the results of each run in the "Summary of All Runs" module.
  • The program does not store data, neither locally nor on the cloud. Make sure you download all reports and tables.
  • Reloading the page removes all your work
  • There is no UNDO, and clicking the back arrow in your browser clears all your work.
  • TOKENS: This app requires tokens to run in non-demo mode: One Token per Search-Records submit!
  • TOKENS: If you submit a job without a token, the app returns value for a random site, not yours!!
  • TOKENS ARE NON-REFUNDABLE
  • NOTE: The current version of this app does not provide the time-series files, nor does it modify them.
  • NOTE: The current version of this app does not look at Vertical Components.
  • p.s.: SAAS = software as a service! --> only pay per use!

Token Management

This app runs on tokens: 1 token per submit.
Manage your token keys

Note: only the URL input parameters will be preserved
Buy tokens
  • More tokens allow you to refine your search.
  • Once you have purchased the tokens, you will receive your private token key. Keep this key secret.
  • The tokens must be used within 14 days of purchase. The duration of the tokens starts with your first token.
  • Warranty

    No Warranty. THIS SERVICE AND ANY RELATED SERVICES ARE PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS, WITHOUT WARRANTY OF ANY KIND, WHETHER WRITTEN OR ORAL, EXPRESS OR IMPLIED. Silvia Mazzoni DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO ALL WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Silvia Mazzoni DOES NOT REPRESENT OR WARRANT THAT THIS SERVICE WILL MEET USER'S NEEDS OR REQUIREMENTS, THAT ANY INFORMATION OBTAINED THROUGH USE OF THIS SERVICE WILL BE ACCURATE OR RELIABLE, THAT USE OF THIS SERVICE WILL BE UNINTERRUPTED, TIMELY, SECURE OR FREE FROM ERROR, OR THAT ALL DEFECTS IN THIS SERVICE WILL BE CORRECTED.

    Contact Us


    Site Location

    Define site location to be used as input for USGS hazard tools, if within the data boundaries.
    Coordinates




    Map
    use mouse wheel to zoom in/out quickly

    Site Data

    Define Vs30, and building period to be used as input for USGS hazard tools, if within the data boundaries.
    Site Class Select the tab corresponding to how you would like to define the Vs30 to be used in USGS tools










    info on site class Used fo for input in USGS tools.

    1 ft/s = 0.3048*m/s
    1 m/s = 3.2808 ft/s

    references Ref:BSSCSYM030721_Session2-Slds.pdf
    Ref:NEHRP-site-classes-and-Vs30-ranges-used-in-Figure-6_tbl1_267267775...
    Ref:Site-Class-Definitions-in-the-International-Building-Code-2000....
    Building Period


    Target Spectrum


    automatedButton
    Automated USGS Seismic Design Maps (Optional -- click here to open)

    Enter the appropriate Reference-Document input below.
    Using the site location and class you have already defined, the app will obtain the design-map values for your project automatically.


    USGS Design-Maps Spectra Data


    Click on legend items to toggle lines. Double-click on a line to view alone. Hover for info.
    USGS Design-Spectrum Parameters
    WebServices/REST Data
  • UGSG Web-Services
  • saas-y groundMotions WebServices

  • Target Spectrum Target Spectrum used for Ground-Motion Selection, Scaling, & Modification.
    You may enter it manually or use the USGS Seisimic Design Maps option above to select a target spectrum there and let the app enter it below automatically.















    Weight Function

    The Weight Function will be used in record selection, record scaling, and suite scaling.
    It is used to compute the Cost function (SSE) and/or Mean-Squared Error (MSE) between
    a response spectrum (record or suite-average) and the target spectrum to evaluate spectral shape and variability.
    -->Leave the Weight-Function Value List input blank to use my weight function which optimizes both mean and variability




    leave blank for my optimized values




    Record Search & Selection Criteria


    The selection process queries the NGA databases to find records that meet your constraints and fit the targets best.
    If your site is within the USGS boundaries, you may use the integrated USGS disaggregation tool to automate your search criteria.
    Notes on Record Selection
    • All Intensity metadata and intensity measures were obtained from the NGA-West2 and NGA-Subduction Published Data
    • Tight selection criteria may limit your options significantly.
    • Each scenario has input for Shape Bounds.
      In this case, I check that the shape of the record spectrum does not differ from the target spectrum by more than +- the bounds in log space.
      • Optional. Recommended value=1.5.
      • This process removes records whose spectra shape differs from the target spectrum significantly.
      • If you make this number too tight you may not get enough records.
    • References for ground-motion other selection methods:
      1. Jack Baker was the first, or close to the first, to set a target for sigma.
        It is my understanding that his method creates realizations that meet his search criter and then searches for records that meet that criteria.
        I use the same cost function -- Sum of the weighted squared error.
        Baker, J. W., Lin, T., Shahi, S. K., and Jayaram, N. (2011). New Ground Motion Selection Procedures and Selected Motions for the
        PEER Transportation Research Program. PEER Technical Report 2011/03. 106p.
      2. Researchers are UCLA's NHR3 program implement a greedy algorithm, intended for multi-threaded search.
        Original Publication: Shokrabadi, Mehrdad; Bozorgnia, Yousef; Burton, Henry V.; Baker, Jack W.; Askari, Mohammad (2022):
        An Efficient Computational Platform for Selecting and Scaling Ground Motion Records while Considering Multiple Target Spectra.
        https://doi.org/10.34948/N3K01N
      3. A new method proposed by Jonathan Dereje takes advantage of multithreading to compute many possible ground-motion suites.
        This method allows the user to select a suite that best matches their selection criteria by scoring the mean and sigma separately.
        Dereje, A.J.and Kim, J., 2023. An enhanced ground motion selection algorithm for seismic safety assessment of structures.
        Soil Dynamics and Earthquake Engineering , 165, p.107709. https://doi.org/10.1016/j.soildyn.2022.107709



    Search Input


    • Apply selection constraints on additional Intensity Measures.
      info Including these IM constraints in the search will reduce the number of records in your results.
      Recommended: Enter ranges for these IM for each scenario but do not include them in the search (leave boxes unchecked).
      You can then check the individual-record values against your input in the results plots

    • Leave this blank for no limit or to control it by the individual scenarios only.


    • info With the current version of this app you have 3 options for record selection, after the search criteria are met:
      1. MinimizeMSE: Select records with the best fit on both Mean and Variability
      2. LowestMSE: Use this method if you are interested in fitting only the mean. This method is the traditional method of selecting recods with the lowest MSE.
      3. RandomMSE: Select the records within the subset of those which meet the search criteria randomly. This process is not repeatable!!


      • info
        • This cost function I use is defined in Baker, et al, 2011.
        • This cost function is a simple SSE: the weighted sum of the squares of the deviation of the set mean and variability from the target mean and variability.
        • Trying to match both mean and sigma is a multi-objective optimization where improving the fit for one variable,
          such as increasing the relative weight on Sigma, worsen the fit on the other variable, such as the mean.
        • You can also control your fit by assigning non-unity values to the period-dependent weight-function (defined with the target spectrum).
        • SSE = WeightArray*sum(
          • (TargetPSA - suitePSAaverageLog)^2
          • +SigmaWeight*(TargetSigma-suitePSAlogstdev)^2
          • )

    USGS Disaggregation (Optional -- click here to open)
    Integrated use of the USGS Web-Services Disaggregation to obtain the disaggregation data for your site. CONTERMINOUS US ONLY!!!
    You can run Disaggregation more than once. The results will be appended each time.



    Note: your search will result in more records than this Total.

    Note: Your token will be validated but not used.

    use mouse wheel to zoom in/out quickly
    Pulse & Duration Model References
    The following models were used for the Pulse and Duration IM's. These models are intended for shallow crustal events, but they were applied to all cases.
    The tables provide you with a range -- mean +/- 1.5*sigma -- as well as the mean, in parenthesis.
    New models will be implemented in future versions.
    • Pulse Content: Hayden et al. [2014]
      Hayden C.P., Bray J.D., Abrahamson N.A. (2014). Selection of near-fault pulse motions, ASCE, J. Geotech.Geoenviro. Eng.,
      doi: 10.1061/(ASCE)GT.1943-5606.0001129, 0401430.
    • Pulse Period: Shahi and Baker [2014]
      Shahi S.K., Baker J.W. (2014). An efficient algorithm to identify strong-velocity pulses in multicomponent ground motions,
      Bull. Seismol. Soc. Am., 104(5): 2456-2466.
    • Duration: Afshari and Stewart [2016]
      Afshari, K., and Stewart, J. P. (2016). "Physically Parameterized Prediction Equations for Significant Duration in Active Crustal Regions."
      Earthquake Spectra, Vol. 32, No. 4, pp. 2057-2081. doi: http://dx.doi.org/10.1193/063015EQS106M
      adapted from: https://github.com/bakerjw
    Include Total & GMM Disaggregation
    Disaggregation Mode (largest m-r bin)
    Disaggregation Mode (largest m-r-eps bin)
    Disaggregation Mean (over all sources)
    Disaggregation by Source



    Info
  • The data in this table are in order of contribution to hazard for each source.
  • These data were determined by using the "Disaggregation by Source" Data and estimating ranges on Magnitude, Distance, etc.
  • For the cases where the distance is <15km, I estimated the number of pulse records and split this input into two rows: with and without puse
  • For the cases with and without pulse and divided the contribution proportionately with the number of pulses.
  • Review these data and adjust them. You may add input data to the extra rows provided to you.
  • Only rows that have been selected will be used. As you can expect, the final number of records will not be the same as your original input in the disaggregation tool.

  • Additional Criteria




    Instructions (click here to open/close)
    • Enter details of your own suite. All lists are to be entered as comma-separated values (csv).
    1. First enter the list of RSNs.
    2. Then enter the NGA database to which there RSNs belong. If they are all from the same database, you only need to enter its name. Otherwise, please assign a DbLabel to each RSN.
    3. Next enter the Spectrum resultant. You may define a single value for each of these inputs if it is the same for all records.
    4. The following input is optional, the app will assign default values if left blank:
    5. Next enter the Component Orientation of the records. You may define a single value for each of these inputs if it is the same for all records.
    6. The SubSearchTag allows you to assign the recors to different groups. A maximum of 4 groups is allowed.
    7. The IncludeInSuite switch allows you to include records in your suite that are turned off and not considered in computing scale factors. You may want to turn them on in a later iteration.
    8. If you want to use scale factors, make sure that you have the proper selection in the Record & Suite Scaling Criteria: User-Defined for the initial record scaling and NoScaling for the suite.
    9. Check the final selection to determine whether all your records were found.
    • To improve efficiency, the spectra and metadata tables used by this app are a subset of the published ones, I have removed low-magnitude records.
    • If you include a record that is not in the app's database, it will be skipped.






    Optional Input:











    Select individual records by clicking on the checkboxes in the Results Record Metadata Table.
    Go There
    The app populates these inputs.






    Optional Input:










    Record-Scaling Criteria


    Scaling Process Info
    1. Apply optional scale factor to Target Spectrum (Optional)
    2. Compute individual scale factor for each record (SFi) based on your selection
    3. Compute a single scale factor for the average of the initally-scaled suite based on your selection (SF_suite)
    4. Apply additional scale factor to all records in suite (SF=SFi*SF_suite).
    Scaling Methods Info
    • NoScaling:Scale factor = 1
    • UserDefined:The scale factor is defined by the user (available only with user-defined ground-motion suite)
    • MinimizeMSE:Scale Factor minimizes the Mean-Squared Error between the optionally-scaled target spectrum and the spectra points within the user-defined period range
    • AboveTarget:Scale Factor ensures all spectra points are above the optionally-scaled target spectrum within the user-defined period range
    • Envelope:Scale Factor ensures all spectra points are below the optionally-scaled target spectrum within the user-defined period range
    • SinglePeriod:Ensures that the PSA at the user-specified period is equal to that of the optionally-scaled target spectrum
    Record Scaling








    Suite Scaling






    Additional Scaling




    Misc





    Settings





    Spectrum-Modification Targets

    Target Spectrum SF
    Additional SF for Modification Targets

    Spectrum-Modification Target Period & Sigma
    Instructions & Examples
  • NOTE: If you modify the records at the component level instead of the resultant, the component target spectra that will be provided use a proxy and the match may not be exact!
  • Leave both inputs empty for no modification targets.
  • Otherwise, you may control Modification-Target Mean and Sigma in a number of ways:
  • NOTE: a match in components likely results in a mismatch of RotD100!
  • No Modification:
  • Leave both Period and Sigma lists blank
    Period: Tmin,Tmax
    Sigma:
  • Match Mean only:
  • Keep same variability as the scaled suite.
    Period: Tmin,Tmax
    Sigma:
  • Match Mean & Constant Sigma:
  • Period: Tmin,Tmax
    Sigma: SigmaConstant
  • Match Mean & Period-Dependent Sigma:
  • Period: T_0,T_1,T_2,T_3,....,T_N
    Sigma: Sigma_0,Sigma_1,Sigma_2,Sigma_3,....,Sigma_N
  • Match Mean & Set a Minimum Sigma:
  • Period: Tmin,Tmax
    Sigma: SigmaMin_Negative
  • Match Mean & Set a Maximum Sigma:
  • Period: Tmin,Tmax
    Sigma: 0,SigmaMax_Negative
  • Match Mean & Bound Sigma:
  • Period: Tmin,Tmax
    Sigma: SigmaMin_Negative,SigmaMax_Negative
  • Tight spectral matching of Spectrum Resultant:
  • Period: Tmin,Tmax
    Sigma: 0
  • Tight spectral matching of EACH Horizontal Component:
  • Period: Tmin,Tmax
    Sigma: 0,0



    Templates: (open Instructions & Examples bar for details)
    Amplitude Scaling Only:

    Mean-Spectrum Modification:


    Tight Spectrum Matching:


    Note: this option processes only the Modification criteria and does not consider any other edits you have made to the input.
    Record Modification
    Define your record-modification input parameters
    RSPMatch Input
    Input Parameters for RSPmatch09.exe

    Input lists of comma-separated values of input for each RSP-Match pass.







    (1=Reverse impulse reponse function -- using explicit integration
    6=Tapered cosine wave -- using explicit integration
    7=Improved tapered cosine function)


    Parameters for the frequency dependence of the taper of the adjustment time history for wavelet model 6 (a1,a2, f1, f2)





    (0=no, 1=yes, 2=yes but once)







    Frequency Bandwidth and Npole (deactivated for model 7)




    (0=no, 1=yes)

    Randomize Target?



    (0=no, 1=yes)



    Min/Max Period for Match at each pass:

    Tmax_passI = Tmin_Factor_passI*Tmin_mod

    Tmax_passI=TmatchMin+(Tmax_Factor_passI-0.01)*(TmatchMax-TmatchMin)/(10-0.01)

    Input Summary


    Scaled-Spectra Plots

    Modified-Spectra Plots

    Scaled & Modified Spectra

    Individual-Record Spectra Plot

    Components:

    Select components to visualize on all graphs:

    Record:


    To visualize the extra records, check the appropriate box in the Metadata Table control panel.

    Target/Suite-Mean Ratio Plots

    Variability

    This applies to all spectra plots!

    Shaking Duration

    Pulse Period

    Record-Metadata Table

    Use checkboxes to select/unselect individual records for a refined search. Your record selection will be used when you re-submit processing.
    The row highlighted in yellow indicates the record being shown in the Individual-Record Spectra box above.
    Selected=1: This record was included in the ground-motion suite. Selected=0, it was not included.
    Notes on Scale Factors
    • You may assign new values to the record scale factor (SF) or to the initial record scale factor (SFi).
    • The Scale Factor in the table, SF, is dependent on the records included in the suite and your record and suite scaling criteria.
    • The Initial Scale Factor in the table, SFi, is dependent on the records-scaling criteria.
    • To use SF, set the Suite-Scaling Method to UserDefined, this over-rides any initial scaling.
    • To use SFi, set the Initial Record-Sacling Method to UserDefined, and then chose what you want to do with the suite.


    (set scaling to user-defined to use your new scale factors)
    Click on a header to sort by it.




    Scaled-Spectra Table -- SPECTRUM RESULTANT



    Scaled-Spectra Table -- COMPONENTS



    Modified-Spectra Tables -- SPECTRUM RESULTANT

    Use these values as the targets for the individual-record Spectrum Resultant in ground-motion modification.
    NOTES (click to view)
    • These values are accurate only if you used a valid token.
    • The target spectra provided below are intended as recommended values
    • After modification, ALWAYS compute the response spectra of the modified records and compare them with your targets
    • Also, ALWAYS verify that the modified records are acceptable for your application
    • Check accelerations, velocities, and displacements
    • After modification, you will, very likely, need to apply an additional scale factor to meet your criteria
    • The results are highly dependent on your original ground-motion selection
    • I recommend you use RSPmatch to modify the records -- I developed a workbook for it while at UCLA ( click here )


    Modified-Spectra Tables -- COMPONENTS

    Use these values as the targets for the individual-record components in ground-motion modification.
    NOTES (click to view)
    • These values are accurate only if you used a valid token.
    • The target spectra provided below are intended as recommended values
    • After modification, ALWAYS compute the response spectra of the modified records and compare them with your targets
    • Also, ALWAYS verify that the modified records are acceptable for your application
    • Check accelerations, velocities, and displacements
    • After modification, you will, very likely, need to apply an additional scale factor to meet your criteria
    • The results are highly dependent on your original ground-motion selection
    • I recommend you use RSPmatch to modify the records -- I developed a workbook for it while at UCLA ( click here )


    Reports

    Download these reports!!!


    Summary of Input used by this app

    Map of Epicenters and Stations

    For each record, the station (red circle) is connected to the epicenter (blue hollow circle) via a black Path line.
    Click on each object for more information about it. The path lines give you the epicentral distance.
    NOTE: This map does not always load up properly.

    Summary & Comparison of All Run Data -- Input & Output

    Each time you submit a job, the relevant data gets inserted here.
    Note: the results are presented in reversed chronological order, with the most recent listed first.
    In addition to the run number (assigned in chronological order), i provide you the reference submittal date/time (in greenwich time, I believe)
    Note, only the the plots from the last run are interactive.

    Batch Project Input

    Fill out this form quickly using a set of key-value pairs.
    These data may come from a clone you have made or from data you generated yourself.
    Paste your input data in the textbox below. Each value pair will be inputted into the app's form.




    Clone Project Input

    Save input data for next time. Or just clone the project for the next iteration.
    • The input parameters for this app can be appended to the URL with a "?" as key-value comma-separated pairs. Each pair is separated by &
    • Below you will find the base URL, the input parameters, as well as the full URL that you should copy and save.
    • The full URL is the combination of the first two text boxes, concatenated by a ?
    • You can CLONE the INPUT parameters of this form into a new tab by cliking below as well (this option will appear after you click the update button).
    • NOTE: Any data obtained from the USGS tools does not clone. Your deaggregation-based worksheet cannot be cloned.
    Clone Project









    Note: the new tab will keep the input, but not the results (nor USGS data).
    NOTE: This format should work even for future versions of the app (I may add more options), but it's still a good place to start and you can parse the key-value pairs manually.

    Settings

    Web-Services REST API

    Skip the GUI and integrate the app into your workflow!
    You can make a web-services call from your own application, such as excel or a python script. The call will return an easy-to-parse json string.
    Note: You still need to purchase/use tokens

    Build URL

    Build URL from current form input.




    Web-Services API Input

    Details on how to build input for the API
    NOTE: You will be charged a token for each call.
    Because the web-app is still evolving, I recommend you start with the above option to build the URL that you can then use as a template!

    1. Token:
      • userTokenInput
        • Required: Yes
        • Default Value:
        • Description: pre-paid token
        • Options:
        • Example:

    2. Target Spectrum:
      • UserSpectrumInputT
        • Required: Yes
        • Default Value:
        • Description: Target-spectrum Period list
        • Options:
        • Example:
      • UserSpectrumInputPSA
        • Required: Yes
        • Default Value:
        • Description: Target-spectrum PSA list
        • Options:
        • Example:
      • TargetSpectrumSF
        • Required:
        • Default Value:
        • Description: Scale factor to be applied to target spectrum before scaling
        • Options:
        • Example:
      • TargetSpectrumInterpolation
        • Required:
        • Default Value:
        • Description: Target-spectrum interpolation
        • Options: 'LogT,LogPSA','LogT,LinPSA','LinT,LinPSA'
        • Example: LogT,LogPSA
      • DampingRatio
        • Required:
        • Default Value:
        • Description: damping ratio for PSA
        • Options: 0.05
        • Example:

    3. Search:
      • SearchType
        • Required: Yes
        • Default Value:
        • Description: Search method for records database
        • Options: Scenario,UserGMsuite
        • Example: Scenario

      • if SearchType == Scenario
        • Vs30Range
          • Required:
          • Default Value: 10,5000
          • Description: Vs30 range (m/s): Min,Max
          • Options:
          • Example:
        • MaxNoEventRecords_All
          • Required:
          • Default Value: 0
          • Description: Maximum number of records per event for the entire suite
          • Options:
          • Example: 2
        • InitialRecordSelectionMethod
          • Required: Yes
          • Default Value:
          • Description: Selection method for the scenario MaxNoRecords_i
          • Options: 'MinimizeMSE','LowestMSE','RandomMSE'
          • Example: MinimizeMSE
        • recordTargetSigma
          • Required: Yes
          • Default Value:
          • Description: Scaled-Record Suite Target Sigma (=COV)
          • Options:
          • Example: 0.33
        • shapeBounds
          • Required: Yes
          • Default Value:
          • Description: Bounds on Spectral Shape
          • Options:
          • Example: 1.5

        • Scenarios:
        • You may have as many scenarios as you'd like
          For each of the input variable, define list of values separated by the underscore character _
          Example: EventCheckBox=on_on_off_on defines 4 scenarios where the third one is not included in the search
          (commas are used in defining ranges, so they couldn't be used here)
          Each list should contain N items, where N is the number of scenarios
          Values not input should be left blank
          Example: Duration575Range=___ (note, there are three underscores separating 4 blank values)
          • EventCheckBox
            • Required: Yes
            • Default Value:
            • Description: Scenario Checkbox on whether to include it or not ('on': include, 'off' do not include)
            • Options: 'on','off'
            • Example:
          • CompOrient
            • Required: Yes
            • Default Value:
            • Description: Component Orientation (in case you need Fp/Fn)
            • Options: 'H1H2','FPFN'
            • Example:
          • DbLabel
            • Required: Yes
            • Default Value:
            • Description: Database Label
            • Options: 'NGAWest2','NGASub'
            • Example:
          • DistanceMetric
            • Required: Yes
            • Default Value:
            • Description: Distance Metric
            • Options: 'ClstD','EpiD','HypD','JBDist'
            • Example:
          • DistanceRange
            • Required: Yes
            • Default Value:
            • Description: Distance Range: Min,Max
            • Options:
            • Example:
          • Duration575Range
            • Required:
            • Default Value:
            • Description: 5-75% Duration Range: Min,Max
            • Options:
            • Example:
          • Duration595Range
            • Required:
            • Default Value:
            • Description: 5-95% Duration Range: Min,Max
            • Options:
            • Example:
          • EpiLatRange
            • Required:
            • Default Value:
            • Description: Epicenter Latitude Range: Min,Max
            • Options:
            • Example:
          • EpiLonRange
            • Required:
            • Default Value:
            • Description: Epicenter Longitude Range: Min,Max
            • Options:
            • Example:
          • EQIDList
            • Required:
            • Default Value:
            • Description: EQ ID list
            • Options:
            • Example:
          • EQnameList
            • Required:
            • Default Value:
            • Description: EQ name
            • Options:
            • Example:
          • EQyearRange
            • Required:
            • Default Value:
            • Description: EQ year Range: Min,Max
            • Options:
            • Example:
          • MagnitudeRange
            • Required: Yes
            • Default Value:
            • Description: EQ Magnitude Range: Min,Max
            • Options:
            • Example:
          • MaxNoEventRecords
            • Required: Yes
            • Default Value:
            • Description: Maximum number of records per event
            • Options:
            • Example:
          • MaxNoRecords
            • Required: Yes
            • Default Value:
            • Description: Maximum number of records
            • Options:
            • Example:
          • Mechanism
            • Required: Yes
            • Default Value:
            • Description: EQ Mechanism
            • Options: 'NGAWest2':['All','strike slip','Normal','Reverse','Reverse Oblique','Normal Oblique'],'NGASub':['All','Interface','Intraslab']
            • Example:
          • PGARange
            • Required:
            • Default Value:
            • Description: PGA Range: Min,Max
            • Options:
            • Example:
          • PGVRange
            • Required:
            • Default Value:
            • Description: PGA Range: Min,Max
            • Options:
            • Example:
          • PulseSwitch
            • Required:
            • Default Value:
            • Description: Pulse Switch (only in NGAWest2)
            • Options: 'All','PulseOnly','NoPulse'
            • Example:
          • ShapeBounds
            • Required:
            • Default Value:
            • Description: Shape Bounds
            • Options:
            • Example: 1.5
          • RSNList
            • Required:
            • Default Value:
            • Description: Record-SequenceNumber list (only number, no prefix)
            • Options:
            • Example:
          • SpectrumResultant
            • Required: Yes
            • Default Value:
            • Description: Spectrum Resultant
            • Options: 'RotD100','RotD50','H1','H2','FN','FP'
            • Example:
          • SSNList
            • Required:
            • Default Value:
            • Description: Station Sequence Number list
            • Options:
            • Example:
          • StationLatRange
            • Required:
            • Default Value:
            • Description: Station Latitude Range: Min,Max
            • Options:
            • Example:
          • StationLonRange
            • Required:
            • Default Value:
            • Description: Station Longitude Range: Min,Max
            • Options:
            • Example:
          • STNnameList
            • Required:
            • Default Value:
            • Description: Station Name list
            • Options:
            • Example: 'Centro,TCU'

      • if SearchType == UserGMsuite
        • UsrGMstInCompOrientList
          • Required: Yes
          • Default Value:
          • Description: Component Orientation (in case you need Fp/Fn)
          • Options: 'H1H2','FPFN'
          • Example:
        • UsrGMstInDbLabelList
          • Required: Yes
          • Default Value:
          • Description: Database Label
          • Options: 'NGAWest2','NGASub'
          • Example:
        • UsrGMstInNGARSNList
          • Required: Yes
          • Default Value:
          • Description: Record-SequenceNumber (only number, no prefix)
          • Options:
          • Example:
        • UsrGMstInSelectedList
          • Required: Yes
          • Default Value:
          • Description: Flag on whether to use the record (1=use,0=do not use)
          • Options:
          • Example:
        • UsrGMstInSFiList
          • Required: Yes
          • Default Value:
          • Description: Initial Record Scale Factor
          • Options:
          • Example:
        • UsrGMstInSFList
          • Required: Yes
          • Default Value:
          • Description: Record Scale Factor
          • Options:
          • Example:
        • UsrGMstInSpectrumResultantList
          • Required: Yes
          • Default Value:
          • Description: Spectrum Resultant
          • Options: 'RotD100','RotD50','H1','H2','FN','FP'
          • Example:
        • UsrGMstInSubsetTagList
          • Required: Yes
          • Default Value:
          • Description: Subset Tag for grouping
          • Options:
          • Example:

    4. Record Scaling:
      • InitialRecordScalingMethod
        • Required: Yes
        • Default Value:
        • Description: Scaling of individual records
        • Options: 'MinimizeMSE','AboveTarget','Envelope','NoScaling','SinglePeriod','UserDefined','Unity'
        • Example:
      • SFiRange
        • Required: Yes
        • Default Value:
        • Description: Range of initial record scaling. Records outside this range are rejected. Min,Max
        • Options:
        • Example:
      • SFsingleTTi
        • Required: Yes
        • Default Value:
        • Description: Conditioning Period in SinglePeriod Scaling
        • Options:
        • Example:
      • RecordScalingPeriodRange
        • Required: Yes
        • Default Value:
        • Description: Period Range of initial record selection and scaling: Min,Max
        • Options:
        • Example:

    5. Suite Scaling:
      • SuiteAverageModel
        • Required: Yes
        • Default Value:
        • Description: Computation of suite average PSA
        • Options: 'Arithmetic','Geometric'
        • Example:
      • SuiteScalingMethod
        • Required: Yes
        • Default Value:
        • Description: Scaling of suite average
        • Options: 'MinimizeMSE','AboveTarget','AboveTarget84pct','AboveTarget16pct','Envelope','Envelope84pct','Envelope16pct','NoScaling','SinglePeriod','UserDefined','Unity'
        • Example:
      • addlSuiteSF
        • Required:
        • Default Value: 1
        • Description: Additional scale factor to be applied to suite after scaling
        • Options:
        • Example:
      • SFsingleTT
        • Required: Yes
        • Default Value:
        • Description: Conditioning Period in SinglePeriod Scaling
        • Options:
        • Example:
      • SuiteScalingPeriodRange
        • Required: Yes
        • Default Value:
        • Description: Period Range of suite-average scaling: Min,Max
        • Options:
        • Example:

    6. Modification Targets:
      • ModPeriodLimits
        • Required:
        • Default Value:
        • Description: Period Range of record modification: Min,Max
        • Options:
          No Modification: blank;
          Match mean and period-dependent sigma: list of comma-separated values
        • Example:
      • TargetModSigma
        • Required:
        • Default Value:
        • Description: Target sigma for record modification.
        • Options:
          No modification: blank; Match mean only: blank;
          Match mean and constant sigma: positive value;
          Match mean & set minimum sigma: a single negative value;
          Match mean and set maximum sigma: single negative value preceded by '0,';
          Match mean and bound sigma: two negative values -min,-max;
          Match mean and period-dependent sigma: list of comma-separated values;
          Tight spectral matching on spectrum resultant: zero value
        • Example:

    Web-services API Return Output

    Details on data returned by API
    The web call will return a JSON string. If the query was successful, the "body" item provides the search results.

    1. Some Input Data
      • SearchType: user-defined search type
      • ScalingTlimits: json dictionary of user-defined scaling limits
      • ScenarioDataDict: json dictionry of search input for each search scenario/subset
      • ModRun: switch on whether modified-target spectra were computed (1=yes)
      • SnSresTargetSpectrum: 2-component array of target spectrum.
        Array[0]=array of periods (s), Array[1]=array of PSA (g).
        The program generates these arrays using the same periods as the database values.
      • SnSresTargetSpectrumSF: user-defined target-spectrum scale factor

    2. Submittal Messages
      • errorMessage: Returns whether there was an error in processing
      • tokenReturnStr: String with information about tokens
      • tokenValidation: Flag for token validation (1=success)
      • thisPageHTMLerror: Comment in case of error (may be blank)
      • marker: Marker specifying path of processing (used by developer to track path)

    3. Search Results
      • Nrecords: Number of records found
      • SnSresArrayAll: Json dictionary of record-metadata arrays.
        The keys represent the record subset ID.
        Each item will contain an array of arrays where each row corresponds to a record.
      • SnSresArrayAll_Keys: Headers for the record-metadata arrays in SnSresArrayAll
      • SnSresSuiteMeanArray: Array of scaled-record suite mean, etc.
        A[0]=period,A[1]=Mean,A[2]=sigma,A[3]=mean+sigma,A[4]=mean-sigma
        If ModRun==1:
        A[5]=Mean,A[6]=sigma,A[7]=mean+sigma,A[8]=mean-sigma
      • SnSresSuiteMeanArraySubsets: JSON dictionary of scaled/modified-record suite mean, etc, grouped by scenario/subset.
        For each group:
        A[0]=period,A[1]=Mean,A[2]=sigma,A[3]=mean+sigma,A[4]=mean-sigma
        If ModRun==1:
        A[5]=Mean,A[6]=sigma,A[7]=mean+sigma,A[8]=mean-sigma
      • SelectedRecordScaledMSMtargetSpectrum_unscaled: JSON dictionary of UNSCALED component spectra for each record, grouped by database
      • SelectedRecordScaledMSMtargetSpectrum_scaled: JSON dictionary of SCALED component spectra for each record, grouped by database
      • SelectedRecordScaledMSMtargetSpectrum_modTarget: JSON dictionary of MODIFIED-TARGET component spectra for each record, grouped by database
      • CompAverages: JSON dictionary of (unscaled, scaled, and modified-target) component (mean,sigma,mean+/-sigma) spectra
      • ReportURL: two-component array with path to .JSON and .CSV reports, respectively