Ejemplo n.º 1
0
def prec_chart(data, units):
    """"Gets the precipitation chart data."""
    
    # Get the data.
    prec_data1, prec_data2 = datasets.split_list(datasets.get_column(data, 3))
    prec_split = datasets.split_list2(datasets.get_column(data, 3))
    prec_data1 = datasets.none_to_zero(prec_data1)
    prec_data1 = datasets.convert_float(prec_data1)
    prec_low = min(prec_data1)
    prec_high = max(prec_data1)
    prec_avg = calculations.mean(prec_data1)
    prec_median = calculations.median(prec_data1)
    
    # Calculate and add the data.
    data2 = []
    for i in range(0, len(data)):
        
        prec = [data[i][0], "%.2f %s" % (prec_data1[i], units["prec"])]
        if prec_avg == prec_data1[i]:
            average = "Average Value"
        else:
            average = prec_avg - prec_data1[i]
            average = "%.2f %s %s" % (abs(average), units["prec"], "above" if prec_avg < prec_data1[i] else "below")
        prec.append(average)
        if prec_low == prec_data1[i]:
            low = "Lowest Value"
        else:
            low = prec_low - prec_data1[i]
            low = "%.2f %s %s" % (abs(low), units["prec"], "above" if prec_low < prec_data1[i] else "below")
        prec.append(low)
        if prec_high == prec_data1[i]:
            high = "Highest Value"
        else:
            high = prec_high - prec_data1[i]
            high = "%.2f %s %s" % (abs(high), units["prec"], "above" if prec_high < prec_data1[i] else "below")
        prec.append(high)
        if prec_median == prec_data1[i]:
            median = "Median Value"
        else:
            median = prec_median - prec_data1[i]
            median = "%.2f %s %s" % (abs(median), units["prec"], "above" if prec_median < prec_data1[i] else "below")
        prec.append(median)
        
        data2.append(prec)
    
    return data2
Ejemplo n.º 2
0
def prec_info(data, units):
    """"Gets the precipitation info."""

    # Get the data.
    num_days = len(data)
    prec_data1, prec_data2 = datasets.split_list(datasets.get_column(data, 3))
    prec_split = datasets.split_list2(datasets.get_column(data, 3))
    prec_data1 = datasets.none_to_zero(prec_data1)
    prec_data1 = datasets.convert_float(prec_data1)
    try:
        prec_low = min(prec_data1)
        prec_high = max(prec_data1)
        prec_avg = calculations.mean(prec_data1)
        prec_median = calculations.median(prec_data1)
        prec_range = calculations.range(prec_data1)
    except ZeroDivisionError:
        prec_low = "None"
        prec_high = "None"
        prec_avg = "None"
        prec_median = "None"
        prec_range = "None"
    prec_total = 0
    prec_total_rain = 0
    prec_total_snow = 0
    prec_total_hail = 0
    prec_total_sleet = 0
    prec_none = 0
    prec_rain = 0
    prec_snow = 0
    prec_hail = 0
    prec_sleet = 0
    for i in prec_split:
        if i[1] != "None":
            prec_total += float(i[0])
        if i[1] == "None":
            prec_none += 1
        elif i[1] == "Rain":
            prec_total_rain += float(i[0])
            prec_rain += 1
        elif i[1] == "Snow":
            prec_total_snow += float(i[0])
            prec_snow += 1
        elif i[1] == "Hail":
            prec_total_hail += float(i[0])
            prec_hail += 1
        elif i[1] == "Sleet":
            prec_total_sleet += float(i[0])
            prec_sleet += 1
    prec_mode, prec_mode_count = calculations.mode(prec_data2)
    if prec_total == 0:
        prec_per_rain = "0%"
        prec_per_snow = "0%"
        prec_per_hail = "0%"
        prec_per_sleet = "0%"
    else:
        prec_per_rain = "%.2f%%" % ((prec_total_rain / prec_total) * 100)
        prec_per_snow = "%.2f%%" % ((prec_total_snow / prec_total) * 100)
        prec_per_hail = "%.2f%%" % ((prec_total_hail / prec_total) * 100)
        prec_per_sleet = "%.2f%%" % ((prec_total_sleet / prec_total) * 100)

    # Change any values, if needed.
    prec_low = "None" if prec_low == "None" else ("%.2f %s" %
                                                  (prec_low, units["prec"]))
    prec_high = "None" if prec_high == "None" else ("%.2f %s" %
                                                    (prec_high, units["prec"]))
    prec_avg = "None" if prec_avg == "None" else ("%.2f %s" %
                                                  (prec_avg, units["prec"]))
    prec_median = "None" if prec_median == "None" else (
        "%.2f %s" % (prec_median, units["prec"]))
    prec_range = "None" if prec_range == "None" else (
        "%.2f %s" % (prec_range, units["prec"]))

    # Create the data list.
    data2 = [
        ["Lowest precipitation",
         prec_low], ["Highest precipitation", prec_high],
        ["Average precipitation", prec_avg],
        ["Median precipitation", prec_median],
        ["Range of precipitation", prec_range],
        ["Total precipitation",
         "%.2f %s" % (prec_total, units["prec"])],
        [
            "Total rain",
            "%.2f %s (%s)" % (prec_total_rain, units["prec"], prec_per_rain)
        ],
        [
            "Total snow",
            "%.2f %s (%s)" % (prec_total_snow, units["prec"], prec_per_snow)
        ],
        [
            "Total hail",
            "%.2f %s (%s)" % (prec_total_hail, units["prec"], prec_per_hail)
        ],
        [
            "Total sleet",
            "%.2f %s (%s)" % (prec_total_sleet, units["prec"], prec_per_sleet)
        ],
        [
            "Days with no precipitation",
            "%d day%s (%.2f%%)" % (prec_none, "" if prec_none == 1 else "s",
                                   (prec_none / num_days) * 100)
        ],
        [
            "Days with rain",
            "%d day%s (%.2f%%)" % (prec_rain, "" if prec_rain == 1 else "s",
                                   (prec_rain / num_days) * 100)
        ],
        [
            "Days with snow",
            "%d day%s (%.2f%%)" % (prec_snow, "" if prec_snow == 1 else "s",
                                   (prec_snow / num_days) * 100)
        ],
        [
            "Days with hail",
            "%d day%s (%.2f%%)" % (prec_hail, "" if prec_hail == 1 else "s",
                                   (prec_hail / num_days) * 100)
        ],
        [
            "Days with sleet",
            "%d day%s (%.2f%%)" % (prec_sleet, "" if prec_sleet == 1 else "s",
                                   (prec_sleet / num_days) * 100)
        ],
        [
            "Most common precipitation type",
            "%s (%d occurrences)" %
            (prec_mode if prec_mode != "" else "None", prec_mode_count)
        ]
    ]

    return data2
Ejemplo n.º 3
0
def prec_info(data, units):
    """"Gets the precipitation info."""
    
    # Get the data.
    num_days = len(data)
    prec_data1, prec_data2 = datasets.split_list(datasets.get_column(data, 3))
    prec_split = datasets.split_list2(datasets.get_column(data, 3))
    prec_data1 = datasets.none_to_zero(prec_data1)
    prec_data1 = datasets.convert_float(prec_data1)
    try:
        prec_low = min(prec_data1)
        prec_high = max(prec_data1)
        prec_avg = calculations.mean(prec_data1)
        prec_median = calculations.median(prec_data1)
        prec_range = calculations.range(prec_data1)
    except:
        prec_low = "None"
        prec_high = "None"
        prec_avg = "None"
        prec_median = "None"
        prec_range = "None"
    prec_total = 0
    prec_total_rain = 0
    prec_total_snow = 0
    prec_total_hail = 0
    prec_total_sleet = 0
    prec_none = 0
    prec_rain = 0
    prec_snow = 0
    prec_hail = 0
    prec_sleet = 0
    for i in prec_split:
        if i[1] != "None":
            prec_total += float(i[0])
        if i[1] == "None":
            prec_none += 1
        elif i[1] == "Rain":
            prec_total_rain += float(i[0])
            prec_rain += 1
        elif i[1] == "Snow":
            prec_total_snow += float(i[0])
            prec_snow += 1
        elif i[1] == "Hail":
            prec_total_hail += float(i[0])
            prec_hail += 1
        elif i[1] == "Sleet":
            prec_total_sleet += float(i[0])
            prec_sleet += 1
    prec_mode, prec_mode_count = calculations.mode(prec_data2)
    if prec_total == 0:
        prec_per_rain = "0%"
        prec_per_snow = "0%"
        prec_per_hail = "0%"
        prec_per_sleet = "0%"
    else:
        prec_per_rain = "%.2f%%" % ((prec_total_rain / prec_total) * 100)
        prec_per_snow = "%.2f%%" % ((prec_total_snow / prec_total) * 100)
        prec_per_hail = "%.2f%%" % ((prec_total_hail / prec_total) * 100)
        prec_per_sleet = "%.2f%%" % ((prec_total_sleet / prec_total) * 100)
    
    # Change any values, if needed.
    prec_low = "None" if prec_low == "None" else ("%.2f %s" % (prec_low, units["prec"]))
    prec_high = "None" if prec_high == "None" else ("%.2f %s" % (prec_high, units["prec"]))
    prec_avg = "None" if prec_avg == "None" else ("%.2f %s" % (prec_avg, units["prec"]))
    prec_median = "None" if prec_median == "None" else ("%.2f %s" % (prec_median, units["prec"]))
    prec_range = "None" if prec_range == "None" else ("%.2f %s" % (prec_range, units["prec"]))
    
    # Create the data list.
    data2 = [
        ["Lowest precipitation", prec_low],
        ["Highest precipitation", prec_high],
        ["Average precipitation", prec_avg],
        ["Median precipitation", prec_median],
        ["Range of precipitation", prec_range],
        ["Total precipitation", "%.2f %s" % (prec_total, units["prec"])],
        ["Total rain", "%.2f %s (%s)" % (prec_total_rain, units["prec"], prec_per_rain)],
        ["Total snow", "%.2f %s (%s)" % (prec_total_snow, units["prec"], prec_per_snow)],
        ["Total hail", "%.2f %s (%s)" % (prec_total_hail, units["prec"], prec_per_hail)],
        ["Total sleet", "%.2f %s (%s)" % (prec_total_sleet, units["prec"], prec_per_sleet)],
        ["Days with no precipitation", "%d day%s (%.2f%%)" % (prec_none, "" if prec_none == 1 else "s", (prec_none / num_days) * 100)],
        ["Days with rain", "%d day%s (%.2f%%)" % (prec_rain, "" if prec_rain == 1 else "s", (prec_rain / num_days) * 100)],
        ["Days with snow", "%d day%s (%.2f%%)" % (prec_snow, "" if prec_snow == 1 else "s", (prec_snow / num_days) * 100)],
        ["Days with hail", "%d day%s (%.2f%%)" % (prec_hail, "" if prec_hail == 1 else "s", (prec_hail / num_days) * 100)],
        ["Days with sleet", "%d day%s (%.2f%%)" % (prec_sleet, "" if prec_sleet == 1 else "s", (prec_sleet / num_days) * 100)],
        ["Most common precipitation type", "%s (%d occurrences)" % (prec_mode if prec_mode != "" else "None", prec_mode_count)]
    ]
    
    return data2
Ejemplo n.º 4
0
def get_data(data):
    """Gets the graph data."""
    
    # Get the date data.
    date_data = datasets.get_column(data, 0)
    new_dates = get_dates(date_data)
    
    # Get the data.
    temp_data = datasets.convert_float(datasets.get_column(data, 1))
    chil_data = datasets.convert_float(datasets.get_column(data, 2))
    prec_data1, prec_data2 = datasets.split_list(datasets.get_column(data, 3))
    prec_data = datasets.convert_float(datasets.none_to_zero(prec_data1))
    wind_data1, wind_data2 = datasets.split_list(datasets.get_column(data, 4))
    wind_data = datasets.convert_float(datasets.none_to_zero(wind_data1))
    humi_data = datasets.convert_float(datasets.get_column(data, 5))
    airp_data1, airp_data2 = datasets.split_list(datasets.get_column(data, 6))
    airp_data = datasets.convert_float(airp_data1)
    visi_data = datasets.convert_float(datasets.get_column(data, 7))
    clou_data1, clou_data2 = datasets.split_list3(datasets.get_column(data, 8))
    clou_data2 = datasets.strip_items(clou_data2, ["(", ")"])
    
    prec_split = datasets.split_list2(datasets.get_column(data, 3))
    prec_total = 0
    prec_total_rain = 0
    prec_total_snow = 0
    prec_total_hail = 0
    prec_total_sleet = 0
    prec_none = 0
    prec_rain = 0
    prec_snow = 0
    prec_hail = 0
    prec_sleet = 0
    for i in prec_split:
        if i[1] != "None":
            prec_total += float(i[0])
        if i[1] == "None":
            prec_none += 1
        elif i[1] == "Rain":
            prec_total_rain += float(i[0])
            prec_rain += 1
        elif i[1] == "Snow":
            prec_total_snow += float(i[0])
            prec_snow += 1
        elif i[1] == "Hail":
            prec_total_hail += float(i[0])
            prec_hail += 1
        elif i[1] == "Sleet":
            prec_total_sleet += float(i[0])
            prec_sleet += 1
    prec_amount = [prec_total_rain, prec_total_snow, prec_total_hail, prec_total_sleet]
    prec_days = [prec_none, prec_rain, prec_snow, prec_hail, prec_sleet]
    
    airp_steady = 0
    airp_rising = 0
    airp_falling = 0
    for i in airp_data2:
        if i == "Steady":
            airp_steady += 1
        elif i == "Rising":
            airp_rising += 1
        elif i == "Falling":
            airp_falling += 1
    airp_change = [airp_steady, airp_rising, airp_falling]
    
    clou_sunny = 0
    clou_msunny = 0
    clou_pcloudy = 0
    clou_mcloudy = 0
    clou_cloudy = 0
    for i in clou_data1:
        if i == "Sunny":
            clou_sunny += 1
        elif i == "Mostly Sunny":
            clou_msunny += 1
        elif i == "Partly Cloudy":
            clou_pcloudy += 1
        elif i == "Mostly Cloudy":
            clou_mcloudy += 1
        elif i == "Cloudy":
            clou_cloudy += 1
    clou_days = [clou_sunny, clou_msunny, clou_pcloudy, clou_mcloudy, clou_cloudy]
    
    clou_types = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    for i in clou_data2:
        if i == "None":
            clou_types[0] += 1
        elif i == "Unknown":
            clou_types[1] += 1
        elif i == "Cirrus":
            clou_types[2] += 1
        elif i == "Cirrocumulus":
            clou_types[3] += 1
        elif i == "Cirrostratus":
            clou_types[4] += 1
        elif i == "Cumulonimbus":
            clou_types[5] += 1
        elif i == "Altocumulus":
            clou_types[6] += 1
        elif i == "Altostratus":
            clou_types[7] += 1
        elif i == "Stratus":
            clou_types[8] += 1
        elif i == "Cumulus":
            clou_types[9] += 1
        elif i == "Stratocumulus":
            clou_types[10] += 1
    
    data = [date_data, new_dates, temp_data, prec_data, wind_data, humi_data, airp_data, prec_amount,
            prec_days, airp_change, clou_days, clou_types, chil_data, visi_data]
    
    return data
Ejemplo n.º 5
0
def get_data(data):
    """Gets the graph data."""

    # Get the date data.
    date_data = datasets.get_column(data, 0)
    new_dates = dates.get_datetimes(date_data)

    # Get the data.
    temp_data = datasets.convert_float(datasets.get_column(data, 1))
    chil_data = datasets.convert_float(datasets.get_column(data, 2))
    prec_data1, prec_data2 = datasets.split_list(datasets.get_column(data, 3))
    prec_data = datasets.convert_float(datasets.none_to_zero(prec_data1))
    wind_data1, wind_data2 = datasets.split_list(datasets.get_column(data, 4))
    wind_data = datasets.convert_float(datasets.none_to_zero(wind_data1))
    humi_data = datasets.convert_float(datasets.get_column(data, 5))
    airp_data1, airp_data2 = datasets.split_list(datasets.get_column(data, 6))
    airp_data = datasets.convert_float(airp_data1)
    visi_data = datasets.convert_float(datasets.get_column(data, 7))
    clou_data1, clou_data2 = datasets.split_list3(datasets.get_column(data, 8))
    clou_data2 = datasets.strip_items(clou_data2, ["(", ")"])

    prec_split = datasets.split_list2(datasets.get_column(data, 3))
    prec_total = 0
    prec_total_rain = 0
    prec_total_snow = 0
    prec_total_hail = 0
    prec_total_sleet = 0
    prec_none = 0
    prec_rain = 0
    prec_snow = 0
    prec_hail = 0
    prec_sleet = 0
    for i in prec_split:
        if i[1] != "None":
            prec_total += float(i[0])
        if i[1] == "None":
            prec_none += 1
        elif i[1] == "Rain":
            prec_total_rain += float(i[0])
            prec_rain += 1
        elif i[1] == "Snow":
            prec_total_snow += float(i[0])
            prec_snow += 1
        elif i[1] == "Hail":
            prec_total_hail += float(i[0])
            prec_hail += 1
        elif i[1] == "Sleet":
            prec_total_sleet += float(i[0])
            prec_sleet += 1
    prec_amount = [
        prec_total_rain, prec_total_snow, prec_total_hail, prec_total_sleet
    ]
    prec_days = [prec_none, prec_rain, prec_snow, prec_hail, prec_sleet]

    airp_steady = 0
    airp_rising = 0
    airp_falling = 0
    for i in airp_data2:
        if i == "Steady":
            airp_steady += 1
        elif i == "Rising":
            airp_rising += 1
        elif i == "Falling":
            airp_falling += 1
    airp_change = [airp_steady, airp_rising, airp_falling]

    clou_sunny = 0
    clou_msunny = 0
    clou_pcloudy = 0
    clou_mcloudy = 0
    clou_cloudy = 0
    for i in clou_data1:
        if i == "Sunny":
            clou_sunny += 1
        elif i == "Mostly Sunny":
            clou_msunny += 1
        elif i == "Partly Cloudy":
            clou_pcloudy += 1
        elif i == "Mostly Cloudy":
            clou_mcloudy += 1
        elif i == "Cloudy":
            clou_cloudy += 1
    clou_days = [
        clou_sunny, clou_msunny, clou_pcloudy, clou_mcloudy, clou_cloudy
    ]

    clou_types = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    for i in clou_data2:
        if i == "None":
            clou_types[0] += 1
        elif i == "Unknown":
            clou_types[1] += 1
        elif i == "Cirrus":
            clou_types[2] += 1
        elif i == "Cirrocumulus":
            clou_types[3] += 1
        elif i == "Cirrostratus":
            clou_types[4] += 1
        elif i == "Cumulonimbus":
            clou_types[5] += 1
        elif i == "Altocumulus":
            clou_types[6] += 1
        elif i == "Altostratus":
            clou_types[7] += 1
        elif i == "Stratus":
            clou_types[8] += 1
        elif i == "Cumulus":
            clou_types[9] += 1
        elif i == "Stratocumulus":
            clou_types[10] += 1

    data = {
        "date_labels": date_data,
        "date_ticks": new_dates,
        "temp_data": temp_data,
        "prec_data": prec_data,
        "wind_data": wind_data,
        "humi_data": humi_data,
        "airp_data": airp_data,
        "prec_amount": prec_amount,
        "prec_days": prec_days,
        "airp_change": airp_change,
        "clou_days": clou_days,
        "clou_types": clou_types,
        "chil_data": chil_data,
        "visi_data": visi_data
    }

    return data