示例#1
0
def make_amplitudes(scnls=None, picks=None):
    """Create amplitudes for testing."""
    counter = 1
    amps = []
    scnls = scnls or []
    params = {
        "type": "A",
        "unit": "dimensionless",
        "method_id": "mag_calculator",
        "filter_id": ev.ResourceIdentifier("Wood-Anderson"),
        "magnitude_hint": "M",
        "category": "point",
        "evaluation_mode": "manual",
        "evaluation_status": "confirmed",
    }
    for scnl in scnls:
        a = ev.Amplitude(
            generic_amplitude=counter,
            generic_amplitude_errors=ev.QuantityError(
                uncertainty=counter * 0.1, confidence_level=95
            ),
            period=counter * 2,
            snr=counter * 5,
            time_window=ev.TimeWindow(0, 0.1, UTCDateTime()),
            waveform_id=ev.WaveformStreamID(seed_string=scnl),
            scaling_time=UTCDateTime(),
            scaling_time_errors=ev.QuantityError(
                uncertainty=counter * 0.001, confidence_level=95
            ),
            creation_info=ev.CreationInfo(
                agency_id="dummy_agency", author="dummy", creation_time=UTCDateTime()
            ),
            **params,
        )
        amps.append(a)
        counter += 1
    picks = picks or []
    for pick in picks:
        a = ev.Amplitude(
            generic_amplitude=counter,
            generic_amplitude_errors=ev.QuantityError(
                uncertainty=counter * 0.1, confidence_level=95
            ),
            period=counter * 2,
            snr=counter * 5,
            time_window=ev.TimeWindow(0, 0.1, UTCDateTime()),
            pick_id=pick.resource_id,
            scaling_time=UTCDateTime(),
            scaling_time_errors=ev.QuantityError(
                uncertainty=counter * 0.001, confidence_level=95
            ),
            creation_info=ev.CreationInfo(
                agency_id="dummy_agency", author="dummy", creation_time=UTCDateTime()
            ),
            **params,
        )
        amps.append(a)
        counter += 1
    return amps
示例#2
0
def mag_generator(mag_types):
    """Function to create magnitudes for testing."""
    params = {
        "origin_id": ev.ResourceIdentifier(),
        "method_id": ev.ResourceIdentifier("mag_calculator"),
        "station_count": 2,
        "azimuthal_gap": 30,
        "evaluation_mode": "manual",
        "evaluation_status": "reviewed",
    }
    mags = []
    counter = 1
    for mt in mag_types:
        m = ev.Magnitude(
            mag=counter,
            magnitude_type=mt,
            mag_errors=ev.QuantityError(uncertainty=counter * 0.1,
                                        confidence_level=95),
            creation_info=ev.CreationInfo(agency_id="dummy_agency",
                                          author="dummy",
                                          creation_time=UTCDateTime()),
            **params,
        )
        mags.append(m)
    return mags
示例#3
0
 def _get_amplitudes():
     return ev.Amplitude(
         generic_amplitude=.0012,
         type='A',
         unit='m',
         period=1,
         time_window=_get_timewindow(),
         pick_id=state['pick_id'],
         scalling_time=state['time'],
         mangitude_hint='ML',
         scaling_time_errors=ev.QuantityError(uncertainty=42.0),
     )
示例#4
0
def sm_generator(scnls=None, amplitudes=None):
    """Function to create station magntiudes for testing."""
    counter = 1
    sms = []
    scnls = scnls or []
    params = {
        "origin_id": ev.ResourceIdentifier(),
        "station_magnitude_type": "M",
        "method_id": "mag_calculator",
    }

    for scnl in scnls:
        sm = ev.StationMagnitude(
            mag=counter,
            mag_errors=ev.QuantityError(uncertainty=counter * 0.1,
                                        confidence_level=95),
            waveform_id=ev.WaveformStreamID(seed_string=scnl),
            creation_info=ev.CreationInfo(agency_id="dummy_agency",
                                          author="dummy",
                                          creation_time=UTCDateTime()),
            **params,
        )
        sms.append(sm)
        counter += 1
    amplitudes = amplitudes or []
    for amp in amplitudes:
        sm = ev.StationMagnitude(
            mag=counter,
            mag_errors=ev.QuantityError(uncertainty=counter * 0.1,
                                        confidence_level=95),
            amplitude_id=amp.resource_id,
            creation_info=ev.CreationInfo(agency_id="dummy_agency",
                                          author="dummy",
                                          creation_time=UTCDateTime()),
            **params,
        )
        sms.append(sm)
        counter += 1
    return sms
示例#5
0
 def test_read_uncertainty(self):
     """
     tests that uncertainties in time_errors attribute are read. See #55.
     """
     kwargs = dict(lower_uncertainty=1, upper_uncertainty=2, uncertainty=12)
     time_error = ev.QuantityError(**kwargs)
     waveform_id = ev.WaveformStreamID(station_code="A")
     pick = ev.Pick(
         time=UTCDateTime(), time_errors=time_error, waveform_id=waveform_id
     )
     df = picks_to_dataframe(pick)
     assert set(kwargs).issubset(df.columns)
     assert len(df) == 1
     ser = df.iloc[0]
     assert all([ser[i] == kwargs[i] for i in kwargs])
示例#6
0
文件: core.py 项目: d-chambers/csspy
def _create_magnitude(ser):
    """ create magnitude objects """
    event = get_object(ser.evid)

    creation_info = oe.CreationInfo(
        creation_time=timestamp(ser.lddate),
        agency_id=ser.auth,
    )

    errors = oe.QuantityError(uncertainty=ser.uncertainty, )

    magnitude = oe.Magnitude(
        origin_id=str(ser.orid),
        mag=ser.magnitude,
        magnitude_type=ser.magtype,
        station_count=ser.nsta,
        creation_info=creation_info,
        mag_errors=errors,
    )
    event.magnitudes.append(magnitude)