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

📄 solutionew.java

📁 一个用java写的地震分析软件(无源码)-used to write a seismic analysis software (without source)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      ewOr.dErLat = this.errorHoriz.floatValue();
  else
      ewOr.dErLat = this.errorLat.floatValue();

  if(Float.isNaN(this.errorLon.floatValue()))
      ewOr.dErLon = this.errorHoriz.floatValue();
  else
      ewOr.dErLon = this.errorLon.floatValue();

    ewOr.dErZ = this.errorVert.floatValue();
    ewOr.sSource = this.source.toString();  // DK Cleanup this is probably sHumanReadable
    ewOr.iGap = this.gap.intValue();
    ewOr.dRMS = this.rms.floatValue();
    ewOr.iUsedPh = this.usedReadings.intValue();

    return(true);
  }

  protected static SolutionEW EWSol2SolEW(EWSolution ewSol)
  {
    SolutionEW solEW = new SolutionEW();


    solEW.lat = new DataDouble(ewSol.dLat);
    solEW.lon = new DataDouble(ewSol.dLon);
    solEW.depth = new DataDouble(ewSol.dDepth);
    solEW.id  = new DataLong(ewSol.idEvent);
    solEW.idOrigin = ewSol.idOrigin;
    solEW.datetime = new DataDouble(ewSol.tOrigin);
    solEW.magnitude = Magnitude.create();
    solEW.magnitude.value = new DataDouble(ewSol.dPrefMag);
    solEW.magnitude.sol = solEW;
    solEW.authority = new DataString(ewSol.sHumanReadable);  // DK CLEANUP
    solEW.dummyFlag = new DataLong((ewSol.iDubiocity != 0)?1:0);
    solEW.source = new DataString(ewSol.sHumanReadable);
    solEW.eventSource = new DataString(ewSol.sHumanReadable);
    solEW.sOriginSource = ewSol.sSource;
    solEW.eventType = new DataString(org.trinet.jasi.EventTypeMap.get(ewSol.tiEventType)); // DK CLEANUP
    solEW.externalId = new DataString(ewSol.sSourceEventID);
    if(ewSol.sHumanReadable != null)
    {
      if(ewSol.sHumanReadable.charAt(3) == '-')
      {
        // we have a standardized author string
        solEW.eventAuthority = new DataString(ewSol.sHumanReadable.substring(0,2));
        if(ewSol.sHumanReadable.indexOf("Automatic") != -1)
          solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_AUTOMATIC));
        else if(ewSol.sHumanReadable.indexOf("Reviewed") != -1)
          solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_HUMAN));
        else
          solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_NONE));
      }
      else
      {
        solEW.authority = new DataString(ewSol.sHumanReadable);
        solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_NONE));
      }
    }

    if(ewSol.bArchived != 0)
      solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_FINAL));

    solEW.validFlag =  new DataLong((ewSol.iDubiocity == 0)?1:0);


    if(ewSol.ewOrigin != null)
    {
      solEW.comment = new DataString(ewSol.ewOrigin.sComment);
      solEW.datetime = new DataDouble(ewSol.ewOrigin.tOrigin);
      solEW.depth = new DataDouble(ewSol.ewOrigin.dDepth);
      solEW.depthFixed = new DataBoolean((ewSol.ewOrigin.iFixedDepth != 0)?true:false);
      solEW.distance = new DataDouble(ewSol.ewOrigin.dDmin);
      //solEW.errorHoriz = new DataDouble(ewSol.ewOrigin.dEr?);
      solEW.errorLat = new DataDouble(ewSol.ewOrigin.dErLat);
      solEW.errorLon = new DataDouble(ewSol.ewOrigin.dErLon);
      solEW.errorVert = new DataDouble(ewSol.ewOrigin.dErZ);
      // ?  solEW.errorTime = new DataDouble(ewSol.ewOrigin.dRMS);
      if(ewSol.ewOrigin.sHumanReadable.charAt(3) == '-')
      {
        // we have a standardized author string
        solEW.authority = new DataString(ewSol.ewOrigin.sHumanReadable.substring(0,2));
        if(solEW.eventAuthority == null)
          solEW.eventAuthority = new DataString(ewSol.sHumanReadable.substring(0,2));

        if(solEW.processingState == null)
        {
          if(ewSol.ewOrigin.sHumanReadable.indexOf("Automatic") != -1)
            solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_AUTOMATIC));
          else if(ewSol.ewOrigin.sHumanReadable.indexOf("Reviewed") != -1)
            solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_HUMAN));
          else
            solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_NONE));
        }
      }
      else
      {
        if(solEW.eventAuthority == null)
          solEW.eventAuthority = new DataString(ewSol.sHumanReadable.substring(0,2));

        solEW.authority = new DataString(ewSol.ewOrigin.sHumanReadable);
        if(solEW.processingState == null)
          solEW.processingState = new DataString(org.trinet.jasi.ProcessingState.getLabel(solEW.STATE_NONE));
      }

      solEW.source = new DataString(ewSol.ewOrigin.sHumanReadable);
      solEW.gap    = new DataDouble(ewSol.ewOrigin.iGap);
      solEW.lat    = new DataDouble(ewSol.ewOrigin.dLat);
      solEW.lon    = new DataDouble(ewSol.ewOrigin.dLon);
      solEW.magnitude = MagnitudeEW.EWMag2MagEW(ewSol.ewOrigin.ewMagnitude);
      solEW.rms = new DataDouble(ewSol.ewOrigin.dRMS);
      solEW.type = new DataString("H");
      solEW.usedReadings = new DataLong(ewSol.ewOrigin.iUsedPh);
      solEW.vertDatum = new DataString("km");
      solEW.comment = new DataString(ewSol.ewOrigin.sComment);
    }  // end if ewSol.ewOrigin != null

    solEW.ewsSolution = ewSol;
    return(solEW);
  }

  protected Vector EWSolutionList2SolutionEWList(Vector vEWSolutionList)
  {
      Vector vSolutionEWList = new Vector(vEWSolutionList.size());
      int iDebugTotal; // DK CLEANUP  WE ARE USING THIS TO LIMIT THE NUMBER
                       // OF EVENTS IN LIST TO 200.
      iDebugTotal = (vEWSolutionList.size() < 200)?vEWSolutionList.size():200;

      for(int i=0; i < iDebugTotal; i++)
      {
        vSolutionEWList.addElement((Object)EWSol2SolEW((EWSolution)vEWSolutionList.get(i)));
      }
      return(vSolutionEWList);
  }


  protected Solution[] getByCriteria(double start, double stop, int iValidFlag, int iEventType,
                                     int iProcessingState, Connection IN_conn)
  {
    // Create a temporary EWSolution object for use in retrieving the list
    EWSolution tempEWS = new EWSolution();

    if(IN_conn != null)
      tempEWS.SetConnection(IN_conn);

    // Declare a Vector pointer to hold the list
    Vector vEWSolutionList;

    // Set the criteria params
    tempEWS.starttime = (int)start;
    tempEWS.endtime = (int)stop;
    if(iEventType != -1)
      tempEWS.eventtype = iEventType;

    // fetch the data
    vEWSolutionList = tempEWS.ReadList();

    if(vEWSolutionList == null || vEWSolutionList.size() == 0)
      return(null);
    else
    {
      Vector vSolutionEWList = EWSolutionList2SolutionEWList(vEWSolutionList);

      // Filter out events based upon validity(if the appropriate flag is set)
      if(iValidFlag != -1)
      {
        for(int i=0; i < vSolutionEWList.size(); i++)
        {
          if(((SolutionEW) vSolutionEWList.get(i)).validFlag.longValue() != iValidFlag)
         {
            vSolutionEWList.remove(i);
            i--;
          }
        }
      }

      // Filter out events based upon processing state(if the appropriate flag is set)
      if(iProcessingState != -1)
      {
        for(int i=0; i < vSolutionEWList.size(); i++)
        {
          if(   (ProcessingState.getIndexOfLabel(((SolutionEW) vSolutionEWList.get(i)).processingState.toString()))
             != iProcessingState)
          {
            vSolutionEWList.remove(i);
            i--;
          }
        }
      }

      Solution[] SolutionArray = new Solution[vSolutionEWList.size()];
      System.arraycopy(vSolutionEWList.toArray(), 0, SolutionArray, 0, vSolutionEWList.size());

      return(SolutionArray);
    }
  }  // end protected SolutionEW::getByCriteria()


  protected Solution getById(Connection IN_conn, long id, int iValidEvent)
  {
    // Create a temporary EWSolution object for use in retrieving the solution
    EWSolution tempEWS = new EWSolution();

    if(IN_conn != null)
      tempEWS.SetConnection(IN_conn);

    // Set the idEvent, used to retrieve the Event
    tempEWS.idEvent = id;

    // Grab the Event
    tempEWS.Read();

    if(iValidEvent == EW_FLAG_EVENTS_VALID_ONLY)
      if(tempEWS.iDubiocity != 0)
      {
        // Event is not valid, and VALID-ONLY was requested
        return(null);
      }
    else if(iValidEvent == EW_FLAG_EVENTS_INVALID_ONLY)
      if(tempEWS.iDubiocity == 0)
      {
        // Event is valid, and INVALID-ONLY was requested
        return(null);
      }

    // Get the preferred info (origin,mag,mech)
    tempEWS.ReadPreferred();

    // Get the preferred origin info
    if(tempEWS.idOrigin > 0)
    {
      tempEWS.ewOrigin = new EWOrigin();
      tempEWS.ewOrigin.idOrigin = tempEWS.idOrigin;
      tempEWS.ewOrigin.Read();

      // Get the list of Origins for this event
      tempEWS.ewOrigin.idEvent = id;
      tempEWS.vOriginList = tempEWS.ewOrigin.ReadList();

      // Get the list of Magnitudes for the preferred origin
      tempEWS.ewOrigin.ewMagnitude = new EWMagnitude();
      tempEWS.ewOrigin.ewMagnitude.idMag = tempEWS.idMag;
      tempEWS.ewOrigin.ewMagnitude.Read();
      tempEWS.ewOrigin.ewMagnitude.idOrigin = tempEWS.idOrigin;
      tempEWS.ewOrigin.vMagList = tempEWS.ewOrigin.ewMagnitude.ReadList();
  // DK DEBUG Shouldn't we be grabbing the preferred mag info somewhere here??
    }

    return((Solution)EWSol2SolEW(tempEWS));
  }  // end protected SolutionEW::getById()


  public Solution[] getByProperties (Connection conn,
               EventSelectionProperties props)
  {

    // Derived from the SolutionTN::getByProperties() function

    int iValidFlag = EW_FLAG_EVENTS_ALL;
    int iEventType = EventTypeMapEW.EW_FLAG_ET_ALL;
    int iProcessingState = EW_FLAG_P_STATE_ALL;
    String str;

    // Get time from properties. This will handle both "absolute" and "relative"
    // time definitions

    org.trinet.util.TimeSpan span = props.getTimeSpan();
    double start = span.getStart();
    double stop  = span.getEnd();

    // validFlag
    str = props.getProperty("validFlag");
    if (str != null)
    {
      if(str.equalsIgnoreCase("TRUE"))
        iValidFlag = EW_FLAG_EVENTS_VALID_ONLY;
      else
        iValidFlag = EW_FLAG_EVENTS_INVALID_ONLY;
    }

    // dummyFlag
    str = props.getProperty("dummyFlag");
    if (str != null)
    {
      if (props.getProperty("dummyFlag").equalsIgnoreCase("TRUE"))
        iValidFlag = 0;
      else
        iValidFlag = 1;
    }


    // Event types (e.g. "local", "sonic", etc.) - these must be OR'ed
    // These properties have the form:  SelectAttribute_trigger = FALSE
    // There may not be a property for each type, thus the check for != null.
    String typeChoice[] = EventTypeMap.getEventTypeArray();

    for (int i = 0; i< typeChoice.length; i++)
    {
      str = props.getProperty(EventSelectionProperties.prefix+typeChoice[i]);
      if (str != null && str.equalsIgnoreCase("TRUE"))
      {
        iEventType = EventTypeMapEW.EWEventTypes[i];
        break;
      }
    }

    // Processing States
    String label[] = ProcessingState.getLabelArray();

    for (int i = 0; i< label.length; i++)
    {
      str = props.getProperty(EventSelectionProperties.prefix+label[i]);
      if (str != null && str.equalsIgnoreCase("TRUE"))
      {
        iProcessingState = i;
        break;
      }
    }

    return(getByCriteria(start, stop, iValidFlag, iEventType,
                                        iProcessingState, null));



  }  // end SolutionEW::getByProperties()

  long GetidOrigin()
  {
    return(idOrigin);
  }

public void clearLocationAttributes ()
{
  // reset idOrigin since this is a new solution
  this.idOrigin = 0;
  super.clearLocationAttributes();
}

public boolean equals(Object obj)
{
  if(obj instanceof SolutionEW)
  {
    return(this.id == ((SolutionEW)obj).id);
  }
  else
  {
    return(super.equals(obj));
  }
}

public long getNextID()
{
  return(-1);  // DK Not implemented
   //   TN version should look like:
   //   return(SeqIds.getNextSeq(CONNECTION, "EVSEQ"));
}


}  // end SolutionEW

⌨️ 快捷键说明

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