⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcacodageneratortn.java

📁 一个用java写的地震分析软件(无源码)-used to write a seismic analysis software (without source)
💻 JAVA
字号:
package org.trinet.util.magnitudeengines;
import java.util.*;
import org.trinet.jasi.coda.TN.*;
import org.trinet.jasi.TN.*;
import org.trinet.jasi.coda.*;
/** To calculate time series amplitude coda decay data and get results in a CodaTN object. */
public class McaCodaGeneratorTN extends CodaGeneratorTN {

    public static final String  DEFAULT_ALGORITHM              = "MCA";

    public static final int     DEFAULT_NOISE_AVE_CALC_SAMPLES = 1000;

    public static final int     DEFAULT_MIN_GOOD_WINDOWS       = 2;
    public static final int     DEFAULT_MAX_GOOD_WINDOWS       = 20;

    public static final double  DEFAULT_QFIX                   = 1.8;

    public static final double  DEFAULT_CODA_START_SNR         = 3.0;
    public static final double  DEFAULT_CODA_CUTOFF_SNR        = 1.5;
    public static final double  DEFAULT_PASS_THRU_NSR          = 1.8;

    public static final boolean DEFAULT_RESET_ON_CLIP          = false;

    public McaCodaGeneratorTN () {

        initBuffers(DEFAULT_MAX_GOOD_WINDOWS);

        this.algorithm                         = DEFAULT_ALGORITHM;

        this.noiseBiasSamples                  = DEFAULT_NOISE_AVE_CALC_SAMPLES;  // optionally set by method input
        this.minGoodWindowsToEndCalcOnClipping = DEFAULT_MIN_GOOD_WINDOWS;    // optionally set by method input
        this.codaStartSignalToNoiseRatio       = DEFAULT_CODA_START_SNR;      // optionally set by method input
        this.codaCutoffSignalToNoiseRatio      = DEFAULT_CODA_CUTOFF_SNR;     // optionally set by method input
        this.passThruNoiseDecayAmpRatio        = DEFAULT_PASS_THRU_NSR;       // optionally set by method input
        this.qFix                              = DEFAULT_QFIX;                // optionally set by method input
        this.resetOnClipping                   = DEFAULT_RESET_ON_CLIP;       // optionally set by method input

    }

    protected CodaTN timeAmpsToResults(CodaTN resultsCoda) {
        Collection timeAmpPairs = resultsCoda.getWindowTimeAmpPairs();
        TimeAmp [] timeAmps = getGoodWindowTimeAmps();
        int size = timeAmps.length;
        if (size > 0) {
            timeAmpPairs.add(timeAmps[0]);
            if (size > 1) timeAmpPairs.add(timeAmps[size-1]);
        }
        else timeAmpPairs.add(new TimeAmp(getWindowTauSeconds(0), firstWindowAveAbsAmp));
        return resultsCoda;
    }

    protected double getWindowWeight(double tauCurrentWindow, double averagedAbsAmp) {
  double weight = 1.0;
  if (averagedAbsAmp < minCodaStartingAmp) {
             weight = (averagedAbsAmp - maxCodaNoiseCutoffAmp)/(minCodaStartingAmp - maxCodaNoiseCutoffAmp);
        }
        return (100.*weight)/(tauCurrentWindow*tauCurrentWindow);
    }

    protected double getWindowTauSeconds(int windowCount) {
        return secsPastPTimeAtStartingIdx + ((double) windowCount)*windowSize;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -