亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ml.java

?? 一個用java寫的地震分析軟件(無源碼)-used to write a seismic analysis software (without source)
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package org.trinet.util.magnitudeengines;

import java.util.*;
import org.trinet.util.*;
import org.trinet.filters.*;
import org.trinet.jasi.*;

/**
 * Methods for ML (local magnitude) calculation.<p>
 *
 * Formula is defined by Richter in Elementry Seismology, pg. 340: <p>
 *
 *			ML = log A + Cd + Cs<p>
 * Where:<br>
 *		A  = half amp, in mm from a 2,800x Wood-Anderson torsion seismometer<br>
 *		Cd = Richter distance correction<br>
 *		Cs = emperical station correction<p>
 *
 * The method can use either corrected or uncorrected Wood-Anderson amplitudes
 * (types WAC and WAU)
 * @see AmpType()
 *
 * @author Doug Given
 * @version
 */

public class ML extends TrinetMagnitudeMethod  {

    /** The amplitude being used. */
    Amplitude amp;

    static boolean debug = true;

    public ML() {
       // Magnitude type subscript. For example: for "Ml" this would equal "l".
        subScript = "l";

       // String describing the magnitude method
        name = "Local Ml";

        // set the waveform filter to Synthetic Wood-Anderson
        setWaveformFilter(new WAFilter());

        // cutoff dist
        setMinDistance(20.0);
        setMaxDistance(600.0);
    }
    /**
     * Return the Local Magnitude (ML) as defined by Richter in Elementry
     * Seismology, pg. 340. Epicentral distance is given in km, amplitude is
     * half peak-to-peak amplitude of a Wood-Anderson torsion seismomemter with
     * 2,800 magnification measured in mm. */

    public double getValue (Amplitude amp) throws WrongAmpTypeException {

  double magCorr = 0.0;

       // reject clipped amps
       if (amp.isClipped()) {
          throwWrongAmpTypeException("ML: Amplitude is clipped: "+ amp.isClipped() );
       }

  // check that amp is of correct type
  if (amp.type == AmpType.WAU) {		//Wood-Anderson Uncorrected

      // set magnitude correction if there is one and amp not already corrected
      if (amp.hasCorrection() && !amp.isCorrected())
      magCorr = amp.getChannelObj().mlCorr.doubleValue();

  } else if (amp.type == AmpType.WAC) {	//Wood-Anderson Corrected
          // no correction
  } else {
      throwWrongAmpTypeException("ML: Wrong amplitude type: "+
               AmpType.getString(amp.type));
  }

  // make sure units are mm
  double ampval = 0.0;
  if (amp.units == Units.MM) {
      ampval = amp.value.doubleValue();
  } else if (amp.units == Units.CM) {
      ampval = amp.value.doubleValue() * 10.0;	// cm -> mm
  } else if (amp.units == Units.M) {
      ampval = amp.value.doubleValue() * 100.0;	// m -> mm
  } else {
      throwWrongAmpTypeException("ML: Wrong amplitude units: "+
               Units.getString(amp.units));
  }

  // make sure is half-amp
  if (!amp.halfAmp) ampval /= 2.0;

  return getValue(amp.getDistance(), ampval, magCorr);

    }


    /**
     * Return the Local Magnitude (ML) as defined by Richter in Elementry
     * Seismology, pg. 340. Epicentral distance is given in km, amplitude is
     * half peak-to-peak amplitude of a Wood-Anderson torsion seismometer with
     * 2,800 magnification measured in positive mm's.
     * The station correction given as the third
     * argument will be added to the magnitude. */

    public double getValue (double distance,
                   double mmHalfAmp,
                   double staticCorrection) {
  /*
  if (debug) System.out.println ("mmHalfAmp, ML.log10(mmHalfAmp), distanceCorrection(distance), staticCorrection:\n "+
               mmHalfAmp+ " "+
               ML.log10(mmHalfAmp) +" " +
               distanceCorrection(distance) +" " +
               staticCorrection);
  */

     // make sure its +positive
     mmHalfAmp = Math.abs(mmHalfAmp);

  return MathTN.log10 (mmHalfAmp) +           // calculated mag
            distanceCorrection(distance) +   // distance correction
            staticCorrection +               // channel correction
            getGlobalCorrection() ;          // global correction
    }

    /**
     * Return the Local Magnitude (ML) as defined by Richter in Elementry
     * Seismology, pg. 340. Epicentral distance is given in km, amplitude is
     * half peak-to-peak amplitude of a Wood-Anderson torsion seismomemter with
     * 2,800 magnification measured in mm. */

    public double getValue (double distance,
          double mmHalfAmp) {

  return getValue (distance, mmHalfAmp, 0.0);
    }

    /**
     * Return the Richter distance correction. (from Richter, Table 22-1, pg. 342)
     * Correction should be added to magnitude calculated by ML.value().
     */
    public double distanceCorrection (double distance) {

  double dist[] = { 10,  15,  20, 22.5, 25, 27.5, 30, 32.5, 35,
        40,  45,  50, 55,   60, 80,   90, 110, 130,
       150, 170, 190, 210, 220, 230, 250, 270, 290,
       310, 330, 350, 380, 400, 430, 470, 510, 560,
       601};

  double corr[] = {1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2,
       2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1,
       3.2, 3.3, 3.4, 3.5, 3.6, 3.65,3.7, 3.8, 3.9,
       4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8,
       4.9};

  for (int i = 0; i < dist.length; i++) {

      if (distance < dist[i]) {

//		if (debug) System.out.println ("ML dist. Corr= "+corr[i]);

    return corr[i];
      }
  }

  // out of allowed range

  return 0.0;

    }

    /**
     * Return the distance cutoff appropriate for the method. Amplitudes from
     * stations father then this will not be included in the summary magnitude.
     * Because it depends on the magnitude the cutoff can only be applied in a
     * second pass through the amplitude readings. In the
     * local (Richter) magnitude scheme the distance cutoff is simply 600 km.
     */
    public double getDistanceCutoff (double magnitude) {

  double dist = Math.max( getMinDistance(), 600.0 );

     return Math.min(dist, getMaxDistance() );

    }

    /** Examine the Amp list BEFORE the waveforms are scanned and throw out any
    * channels you don't what scanned. This will save time in scanning. These include
    * channels that will not contribute to future calibrations.
    * Returns 'true' if the list is changed by the scan. */
    public boolean preScanAmpList (Magnitude mag) {

       boolean changed = false;

       // first trim by absolute cutoff distance
       changed = trimByDistance(mag, getMaxDistance());

//    Amplitude amp[] = mag.ampList.getArray();
    Amplitude amp[]  = mag.ampList.getGood();  // don't get zero wt'ed amps
    for (int i=0; i<amp.length; i++) {

         // NOTE: 2 type of rejection:
         //  1) amps we want to save for future calibration (weight = 0)
         //  2) amps we do NOT want to save for future calibration (delete)
         // HERE we reject type #2 amps to save time and work in the wf scanning
      if (amp[i].isDeleted())  {

            if (debug) System.out.println ("DELETE: isDeleted " +
                    amp[i].getChannelObj().toDelimitedSeedString());

      amp[i].delete();
            changed = true;

         } else if (!isIncludedComponent(amp[i])) {

            if (debug) System.out.println ("DELETE: not included component " +
                    amp[i].getChannelObj().toDelimitedSeedString());

            amp[i].delete();
            changed = true;

         }
/*         } else if (!amp[i].isOnScale() ) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线不卡| 不卡视频在线观看| 一区二区高清在线| 国产精品网站导航| 久久综合狠狠综合久久综合88| 在线精品视频免费播放| 福利一区二区在线| 91免费版在线看| 成人免费视频免费观看| 国产不卡免费视频| 91免费观看在线| 91视频精品在这里| 99国产精品久久久久久久久久 | 日韩午夜在线播放| 欧美精品三级在线观看| 欧美区一区二区三区| 久久夜色精品一区| 91麻豆精品国产91久久久使用方法| av在线综合网| 成人av第一页| 不卡电影一区二区三区| 在线看日韩精品电影| 91浏览器在线视频| 欧美性色黄大片手机版| 欧美一级在线观看| 精品国产91洋老外米糕| 精品乱人伦小说| 一色桃子久久精品亚洲| 亚洲乱码一区二区三区在线观看| 亚洲少妇屁股交4| 亚洲成人黄色影院| 韩国一区二区在线观看| 国产精品香蕉一区二区三区| 精品午夜久久福利影院| 高清成人在线观看| 99久久精品免费看国产| 国产传媒欧美日韩成人| 91国偷自产一区二区开放时间 | 成人免费看的视频| 91在线视频官网| 色综合久久综合网| 欧美精品一区二| 国产精品成人一区二区艾草 | 国产精品久久久久久久第一福利| 综合色天天鬼久久鬼色| 亚洲成人动漫在线观看| 婷婷夜色潮精品综合在线| 久久66热偷产精品| 91老师片黄在线观看| 欧美精品第1页| 亚洲日本在线天堂| 另类专区欧美蜜桃臀第一页| 波多野结衣在线aⅴ中文字幕不卡| 91成人免费电影| www久久久久| 亚洲综合成人在线| 亚洲小说欧美激情另类| 99久精品国产| 欧美xxxxxxxx| 亚洲精品中文在线影院| 国产a精品视频| 欧美精品1区2区| 亚洲视频一区在线| 波多野结衣中文字幕一区二区三区| 91国模大尺度私拍在线视频| 久久久不卡网国产精品一区| 免费精品视频最新在线| 在线观看日韩电影| 亚洲国产精品成人综合色在线婷婷| 亚洲国产精品综合小说图片区| 国产一区二区美女| 欧美精品久久一区二区三区| 成人免费在线观看入口| 精品在线免费视频| 欧美一级精品在线| 有坂深雪av一区二区精品| 无码av免费一区二区三区试看 | 欧美成人video| 亚洲综合激情网| 99视频精品免费视频| 中文字幕亚洲欧美在线不卡| 国产一区二区剧情av在线| 日韩女优电影在线观看| 国产在线精品一区在线观看麻豆| 欧美色综合网站| 亚洲狼人国产精品| 欧美日韩中字一区| 石原莉奈一区二区三区在线观看| 色综合久久中文字幕| 一区二区高清在线| 91福利区一区二区三区| 亚洲免费电影在线| av亚洲精华国产精华| 国产精品日日摸夜夜摸av| 国产精品一区二区男女羞羞无遮挡 | 国产一区二区电影| 久久久久久毛片| 国产成人在线视频网站| 国产女人aaa级久久久级| 亚洲午夜视频在线观看| 欧美一区二区啪啪| 精品无人码麻豆乱码1区2区| 欧美精品一区二区精品网| 丁香天五香天堂综合| 中文字幕一区在线| 色婷婷av一区二区三区gif| 日韩vs国产vs欧美| 日韩区在线观看| 国产在线精品不卡| 亚洲精品国产一区二区精华液| 欧美这里有精品| 日韩主播视频在线| 中文一区二区在线观看| 91激情五月电影| 香蕉影视欧美成人| 国产精品美女久久久久av爽李琼| 色综合色综合色综合色综合色综合| 亚洲精品国产a| 国产婷婷色一区二区三区四区| 成人国产精品免费观看动漫| 一区二区高清视频在线观看| 精品久久久久久久久久久久包黑料 | 91国偷自产一区二区三区成为亚洲经典| 国产精品麻豆欧美日韩ww| 欧美日韩在线精品一区二区三区激情| 蜜臀va亚洲va欧美va天堂| 日韩三级av在线播放| 欧美三级日韩三级国产三级| 国产中文一区二区三区| 亚洲乱码中文字幕综合| 欧美韩国日本不卡| 欧美色综合天天久久综合精品| 国产又黄又大久久| 奇米一区二区三区| 国产精品久久影院| 日韩精品最新网址| 欧美少妇bbb| thepron国产精品| 男人的j进女人的j一区| 亚洲成av人片| 自拍偷拍欧美激情| 精品国产免费人成在线观看| 91在线视频观看| 高清久久久久久| 精品系列免费在线观看| 蜜桃av噜噜一区二区三区小说| 亚洲伦理在线免费看| 久久精品人人做| 欧美大片一区二区三区| 精品视频一区二区不卡| 成人av在线一区二区三区| 免费xxxx性欧美18vr| 爽好多水快深点欧美视频| 综合在线观看色| 91精品国产入口| 日韩午夜激情免费电影| 精品污污网站免费看| 99久久综合色| av激情综合网| 欧美久久久久中文字幕| 国产成人小视频| 亚洲国产精品自拍| 丝袜亚洲另类丝袜在线| 亚洲品质自拍视频| 欧美激情一区二区三区在线| 亚洲国产高清不卡| 国产欧美一区二区精品久导航| 日韩精品一区二区三区在线观看 | 午夜a成v人精品| 一本一道波多野结衣一区二区| 成人a免费在线看| 盗摄精品av一区二区三区| 大胆欧美人体老妇| 日本高清不卡一区| 日韩三级.com| 国产精品视频你懂的| 亚洲三级久久久| 日本女人一区二区三区| 国产福利91精品一区二区三区| 9i在线看片成人免费| 欧美精品一二三区| 国产欧美一区二区三区鸳鸯浴| 亚洲精品你懂的| 狠狠色综合播放一区二区| av电影在线观看不卡| 在线电影国产精品| 欧美激情资源网| 日韩和欧美一区二区| 国产成人av电影免费在线观看| 在线观看三级视频欧美| 精品欧美一区二区久久| 亚洲激情校园春色| 国产麻豆精品在线观看| 欧美日韩精品三区| 日本一区二区动态图| 看国产成人h片视频| 欧美丝袜丝交足nylons| 久久精品亚洲乱码伦伦中文| 五月婷婷激情综合网| 成人黄色大片在线观看|