示例#1
0
def craft_and_send_email(t1, t2, config, volcano, d_Azimuth, velocity,
                         mx_pressure, filename):
    from pandas import Timestamp
    # create the subject line
    subject = '{} Airwave Detection'.format(volcano['volcano'])

    # create the test for the message you want to send
    message = '{} alarm:\n'.format(config.alarm_name)
    message = '{}{} detection!\n\n'.format(message, volcano['volcano'])
    message = '{}Start: {} (UTC)\nEnd: {} (UTC)\n\n'.format(
        message, t1.strftime('%Y-%m-%d %H:%M'), t2.strftime('%Y-%m-%d %H:%M'))
    t1_local = Timestamp(t1.datetime, tz='UTC')
    t2_local = Timestamp(t2.datetime, tz='UTC')
    t1_local = t1_local.tz_convert('US/Alaska')
    t2_local = t2_local.tz_convert('US/Alaska')
    message = '{}Start: {} ({})'.format(message,
                                        t1_local.strftime('%Y-%m-%d %H:%M'),
                                        t1_local.tzname())
    message = '{}\nEnd: {} ({})\n\n'.format(
        message, t2_local.strftime('%Y-%m-%d %H:%M'), t2_local.tzname())

    message = '{}d_Azimuth: {:+.1f} degrees\n'.format(message, d_Azimuth)
    message = '{}Velocity: {:.0f} m/s\n'.format(message, velocity * 1000)
    message = '{}Max Pressure: {:.1f} Pa'.format(message, mx_pressure)

    utils.send_alert(config.alarm_name, subject, message, filename)
    utils.post_mattermost(subject, message, config.alarm_name, filename)
    # delete the file you just sent
    if filename:
        remove(filename)
示例#2
0
def pandas_timestamp_as_eastern(dt: pd.Timestamp) -> pd.Timestamp:
    """ convert a pandas date as a tz-aware datetime
    """
    if dt == None: return None
    if type(dt) != pd.Timestamp:
        raise Exception(f"type ({type(dt)}) is not pandas.TimeStamp")
    if dt.tzname() != None:
        raise Exception(f"value ({dt}) is not a naive timestamp")
    return dt.tz_localize(eastern_tz)
示例#3
0
def craft_and_send_email(t1, t2, stations, rms, lvlv, alarm_name, filename):
    from pandas import Timestamp

    # create the subject line
    subject = '--- {} ---'.format(alarm_name)

    # create the text for the message you want to send
    message = 'Start: {} (UTC)\nEnd: {} (UTC)\n\n'.format(
        t1.strftime('%Y-%m-%d %H:%M'), t2.strftime('%Y-%m-%d %H:%M'))
    t1_local = Timestamp(t1.datetime, tz='UTC')
    t2_local = Timestamp(t2.datetime, tz='UTC')
    t1_local = t1_local.tz_convert('US/Alaska')
    t2_local = t2_local.tz_convert('US/Alaska')
    message = '{}Start: {} ({})'.format(message,
                                        t1_local.strftime('%Y-%m-%d %H:%M'),
                                        t1_local.tzname())
    message = '{}\nEnd: {} ({})\n\n'.format(
        message, t2_local.strftime('%Y-%m-%d %H:%M'), t2_local.tzname())

    a = np.array([''] * len(rms[:-1]))
    a[np.where(rms > lvlv)] = '*'
    sta_message = ''.join(
        '{}{}: {:.0f}/{}\n'.format(sta, a[i], rms[i], lvlv[i])
        for i, sta in enumerate(stations[:-1]))
    sta_message = ''.join([
        sta_message, '\nArrestor: {} {:.0f}/{}'.format(stations[-1], rms[-1],
                                                       lvlv[-1])
    ])
    message = ''.join([message, sta_message])

    utils.send_alert(alarm_name, subject, message, filename)
    # utils.post_mattermost(subject,message,filename)
    utils.post_mattermost(subject, message, alarm_name, filename)
    # delete the file you just sent
    if filename:
        remove(filename)