Skip to content

Commit 2f099dc

Browse files
Merge pull request #20 from gregory-halverson-jpl/main
sensitivity presentation figures
2 parents 445da0e + ea99eed commit 2f099dc

18 files changed

+335012
-2365
lines changed

PMJPL/ECOv002-cal-val-PM-JPL-inputs.csv

Lines changed: 1048 additions & 1048 deletions
Large diffs are not rendered by default.

PMJPL/ECOv002-cal-val-PM-JPL-outputs.csv

Lines changed: 1048 additions & 1048 deletions
Large diffs are not rendered by default.

PMJPL/ECOv002-static-tower-PM-JPL-inputs.csv

Lines changed: 122 additions & 122 deletions
Large diffs are not rendered by default.

PMJPL/model.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,8 @@ def PMJPL(
228228
if Ta_C is None:
229229
raise ValueError("air temperature (Ta_C) not given")
230230

231+
check_distribution(Ta_C, "Ta_C")
232+
231233
if Tmin_C is None and geometry is not None and time_UTC is not None:
232234
Tmin_K = GEOS5FP_connection.Tmin_K(
233235
time_UTC=time_UTC,
@@ -240,6 +242,8 @@ def PMJPL(
240242
if Tmin_C is None:
241243
raise ValueError("minimum temperature (Tmin_C) not given")
242244

245+
check_distribution(Tmin_C, "Tmin_C")
246+
243247
if RH is None and geometry is not None and time_UTC is not None:
244248
RH = GEOS5FP_connection.RH(
245249
time_UTC=time_UTC,
@@ -250,9 +254,13 @@ def PMJPL(
250254
if RH is None:
251255
raise ValueError("relative humidity (RH) not given")
252256

257+
check_distribution(RH, "RH")
258+
253259
if elevation_km is None and geometry is not None:
254260
elevation_km = NASADEM.elevation_km(geometry=geometry)
255261

262+
check_distribution(elevation_km, "elevation_km")
263+
256264
elevation_m = elevation_km * 1000.0
257265

258266
if IGBP is None and geometry is not None:
@@ -264,6 +272,8 @@ def PMJPL(
264272
raise ValueError(f"invalid geometry type for IGBP retrieval: {type(geometry)}")
265273

266274
IGBP = load_MCD12C1_IGBP(geometry=IGBP_geometry)
275+
276+
check_distribution(np.float32(IGBP), "IGBP")
267277

268278
if regenerate_net_radiation or (Rn_Wm2 is None and albedo is not None and ST_C is not None and emissivity is not None):
269279
if SWin_Wm2 is None and geometry is not None and time_UTC is not None:
@@ -312,6 +322,8 @@ def PMJPL(
312322
else:
313323
raise ValueError("net radiation (Rn_Wm2) not given and cannot be calculated")
314324

325+
check_distribution(Rn_Wm2, "Rn_Wm2")
326+
315327
if G_Wm2 is None and Rn_Wm2 is not None and ST_C is not None and NDVI is not None and albedo is not None:
316328
G_Wm2 = calculate_SEBAL_soil_heat_flux(
317329
Rn=Rn_Wm2,

PMJPL/process_PMJPL_table.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,11 @@ def process_PMJPL_table(
127127
else:
128128
elevation_km = None
129129

130+
if "IGBP" in input_df:
131+
IGBP = np.array(input_df.IGBP).astype(np.int8)
132+
else:
133+
IGBP = None
134+
130135
# --- Handle geometry and time columns ---
131136
import pandas as pd
132137
from rasters import MultiPoint, WGS84
@@ -187,6 +192,7 @@ def parse_geom(s):
187192
SWin_Wm2=SWin_Wm2,
188193
albedo=albedo,
189194
Tmin_C=Tmin_C,
195+
IGBP=IGBP,
190196
elevation_km=elevation_km,
191197
time_UTC=time_UTC,
192198
upscale_to_daylight=upscale_to_daylight,
52.4 KB
Loading

notebooks/Accuracy Comparison of In-Situ Latent Heat Flux to PM-JPL Latent Heat Flux.svg

Lines changed: 5047 additions & 0 deletions
Loading
37.5 KB
Loading

0 commit comments

Comments
 (0)