File size: 1,566 Bytes
6a1c12b
 
 
 
 
 
b5f210c
6a1c12b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b5f210c
6a1c12b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b5f210c
6a1c12b
 
 
 
b5f210c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import docs.agro_indicators as agro_indicators
import datetime
import pandas as pd
import numpy as np


def compute_et0(
    df: pd.DataFrame,
    latitude: float,
    longitude: float
):
    """
    Compute reference evapotranspiration.

    Parameters
    ----------
    df : DataFrame
        The input dataframe containing sensor data.

    latitude : float
        Latitude of the location.
    longitude : float
        Longitude of the location

    Returns
    -------
    arraylike
        Daily reference evapotranspiration.
    """

    irradiance = df.irradiance
    Tmin = df.air_temperature_min
    Tmax = df.air_temperature_max
    T = (Tmin + Tmin) / 2
    RHmin = df.relative_humidity_min
    RHmax = df.relative_humidity_max
    WS = df.wind_speed
    JJulien = df.day_of_year

    l = agro_indicators.et0(
            irradiance,
            T,
            Tmax,
            Tmin,
            RHmin,
            RHmax,
            WS,
            JJulien,
            latitude,
            longitude,
        )

    return l


if __name__ == "__main__":
    data_test = pd.DataFrame()
    data_test["irradiance"] = [20, 30, 40]
    data_test["air_temperature_min"] = [10, 15, 20]
    data_test["air_temperature_max"] = [20, 25, 30]
    data_test["relative_humidity_min"] = [50, 60, 70]
    data_test["relative_humidity_max"] = [50, 60, 70]
    data_test["wind_speed"] = [5, 10, 15]
    data_test["day_of_year"] = [1, 32, 60]

    latitude = 40.7128
    longitude = 74.0060
    
    et0 = compute_et0(data_test, latitude, longitude)
    print(et0)