11import datetime
2+ from datetime import datetime
23from typing import Union
34from sun_angles import SHA_deg_from_DOY_lat , daylight_from_SHA , sunrise_from_SHA , calculate_daylight
45from dateutil import parser
@@ -75,12 +76,12 @@ def daily_ET_from_instantaneous(
7576 LE_instantaneous_Wm2 : Union [Raster , np .ndarray , float ],
7677 Rn_instantaneous_Wm2 : Union [Raster , np .ndarray , float ],
7778 G_instantaneous_Wm2 : Union [Raster , np .ndarray , float ],
78- DOY : Union [Raster , np .ndarray , int ] = None ,
79+ day_of_year : Union [Raster , np .ndarray , int ] = None ,
7980 lat : Union [Raster , np .ndarray , float ] = None ,
8081 hour_of_day : Union [Raster , np .ndarray , float ] = None ,
8182 sunrise_hour : Union [Raster , np .ndarray , float ] = None ,
8283 daylight_hours : Union [Raster , np .ndarray , float ] = None ,
83- datetime_UTC : datetime = None ,
84+ time_UTC : Union [ datetime , str , np . ndarray , list ] = None ,
8485 geometry : SpatialGeometry = None ,
8586 lambda_Jkg : Union [Raster , np .ndarray , float ] = LAMBDA_JKG_WATER_20C
8687 ) -> Union [Raster , np .ndarray ]:
@@ -96,6 +97,9 @@ def daily_ET_from_instantaneous(
9697 Returns:
9798 Union[Raster, np.ndarray]: Daily evapotranspiration in kilograms.
9899 """
100+ if lat is None and geometry is not None :
101+ lat = geometry .lat
102+
99103 # Calculate evaporative fraction
100104 EF = calculate_evaporative_fraction (
101105 LE = LE_instantaneous_Wm2 ,
@@ -106,21 +110,21 @@ def daily_ET_from_instantaneous(
106110 # Calculate daylight hours if not provided
107111 if daylight_hours is None :
108112 daylight_hours = calculate_daylight (
109- DOY = DOY ,
113+ day_of_year = day_of_year ,
110114 lat = lat ,
111- datetime_UTC = datetime_UTC ,
115+ time_UTC = time_UTC ,
112116 geometry = geometry
113117 )
114118
115119 # Calculate sunrise hour if not provided
116120 if sunrise_hour is None :
117- sunrise_hour = sunrise_from_SHA (SHA_deg_from_DOY_lat (DOY , lat ))
121+ sunrise_hour = sunrise_from_SHA (SHA_deg_from_DOY_lat (day_of_year , lat ))
118122
119123 # Integrate net radiation over the day
120124 Rn_daylight = daily_Rn_integration_verma (
121125 Rn = Rn_instantaneous_Wm2 ,
122126 hour_of_day = hour_of_day ,
123- DOY = DOY ,
127+ DOY = day_of_year ,
124128 lat = lat ,
125129 sunrise_hour = sunrise_hour ,
126130 daylight_hours = daylight_hours
@@ -130,6 +134,6 @@ def daily_ET_from_instantaneous(
130134 LE_daylight = EF * Rn_daylight
131135
132136 # Calculate daily ET
133- ET = daily_ET_from_daily_LE (LE_daylight , daylight_hours = daylight_hours , DOY = DOY , lat = lat , datetime_UTC = datetime_UTC , geometry = geometry , lambda_Jkg = lambda_Jkg )
137+ ET = daily_ET_from_daily_LE (LE_daylight , daylight_hours = daylight_hours , DOY = day_of_year , lat = lat , datetime_UTC = time_UTC , geometry = geometry , lambda_Jkg = lambda_Jkg )
134138
135139 return ET
0 commit comments