예제 #1
0
def taf(wxdata: TafData, units: Units) -> TafTrans:
    """
    Translate the results of taf.parse

    Keys: Forecast, Min-Temp, Max-Temp

    Forecast keys: Wind, Visibility, Clouds, Altimeter, Wind-Shear, Turbulance, Icing, Other
    """
    translations = {'forecast': []}
    for line in wxdata.forecast:
        trans = shared(line, units)
        trans['wind'] = wind(line.wind_direction,
                             line.wind_speed,
                             line.wind_gust,
                             unit=units.wind_speed)
        trans['wind_shear'] = wind_shear(line.wind_shear, units.altitude,
                                         units.wind_speed)
        trans['turbulance'] = turb_ice(line.turbulance, units.altitude)
        trans['icing'] = turb_ice(line.icing, units.altitude)
        # Remove false 'Sky Clear' if line type is 'BECMG'
        if line.type == 'BECMG' and trans['clouds'] == 'Sky clear':
            trans['clouds'] = None
        translations['forecast'].append(TafLineTrans(**trans))
    translations['min_temp'] = min_max_temp(wxdata.min_temp, units.temperature)
    translations['max_temp'] = min_max_temp(wxdata.max_temp, units.temperature)
    translations['remarks'] = remarks.translate(wxdata.remarks)
    return TafTrans(**translations)
예제 #2
0
def translate_taf(wxdata: TafData, units: Units) -> TafTrans:
    """Returns translations for a TafData object"""
    data = {"forecast": []}
    for line in wxdata.forecast:
        _data = _trans.current_shared(line, units)
        _data["wind"] = _trans.wind(line.wind_direction,
                                    line.wind_speed,
                                    line.wind_gust,
                                    unit=units.wind_speed)
        _data["wind_shear"] = wind_shear(line.wind_shear, units.altitude,
                                         units.wind_speed)
        _data["turbulence"] = turb_ice(line.turbulence, units.altitude)
        _data["icing"] = turb_ice(line.icing, units.altitude)
        # Remove false 'Sky Clear' if line type is 'BECMG'
        if line.type == "BECMG" and _data["clouds"] == "Sky clear":
            _data["clouds"] = None
        data["forecast"].append(TafLineTrans(**_data))
    data["min_temp"] = min_max_temp(wxdata.min_temp, units.temperature)
    data["max_temp"] = min_max_temp(wxdata.max_temp, units.temperature)
    data["remarks"] = remarks.translate(wxdata.remarks)
    return TafTrans(**data)