@@ -2924,8 +2924,15 @@ def get_environment_object(
29242924 self .converted_elevation , self .unit_system ["length" ], "m"
29252925 )
29262926 altitude_si = convert_units (self .altitude_list , self .unit_system ["length" ], "m" )
2927+ # Recalculating pressure profile using numpy.percentile
2928+ pressures = [
2929+ day_dict [hour ]["pressure" ](self .altitude_list )
2930+ for day_dict in self .converted_pressure_level_data .values ()
2931+ for hour in day_dict .keys ()
2932+ ]
2933+ pressure_profile = np .percentile (pressures , 50 , axis = 0 )
29272934 pressure_si = convert_units (
2928- self . average_pressure_profile , self .unit_system ["pressure" ], "Pa"
2935+ pressure_profile , self .unit_system ["pressure" ], "Pa"
29292936 )
29302937 temperature_si = convert_units (
29312938 self .average_temperature_profile , self .unit_system ["temperature" ], "K"
@@ -2946,12 +2953,9 @@ def get_environment_object(
29462953 self .preferred_timezone ,
29472954 max_expected_height ,
29482955 )
2949- # Using linear regression to get a valid pressure profile
2950- coefficients = np .polyfit (altitude_si , pressure_si , 1 )
2951- pressure_profile = coefficients [0 ] + coefficients [1 ] * self .altitude_list
29522956 env .set_atmospheric_model (
29532957 type = "custom_atmosphere" ,
2954- pressure = list (zip (altitude_si , pressure_profile )),
2958+ pressure = list (zip (altitude_si , pressure_si )),
29552959 temperature = list (zip (altitude_si , temperature_si )),
29562960 wind_u = list (zip (altitude_si , wind_velocity_x_si )),
29572961 wind_v = list (zip (altitude_si , wind_velocity_y_si )),
0 commit comments