diff --git a/lib/microwaveprop/weather/hrrr_client.ex b/lib/microwaveprop/weather/hrrr_client.ex index 12e3d8df..0dc12bb5 100644 --- a/lib/microwaveprop/weather/hrrr_client.ex +++ b/lib/microwaveprop/weather/hrrr_client.ex @@ -174,9 +174,18 @@ defmodule Microwaveprop.Weather.HrrrClient do end end) + # Fall back to lowest pressure level if surface fields are missing (near-coast points) + lowest_level = List.first(profile) + + sfc_temp_c = + if sfc_temp_k, do: sfc_temp_k - 273.15, else: lowest_level && lowest_level["tmpc"] + + sfc_dpt_c = + if sfc_dpt_k, do: sfc_dpt_k - 273.15, else: lowest_level && lowest_level["dwpc"] + %{ - surface_temp_c: if(sfc_temp_k, do: sfc_temp_k - 273.15), - surface_dewpoint_c: if(sfc_dpt_k, do: sfc_dpt_k - 273.15), + surface_temp_c: sfc_temp_c, + surface_dewpoint_c: sfc_dpt_c, surface_pressure_mb: if(sfc_pres_pa, do: sfc_pres_pa / 100.0), hpbl_m: parsed["HPBL:surface"], pwat_mm: parsed["PWAT:entire atmosphere (considered as a single layer)"],