Skip to content

Commit e6cdf8f

Browse files
committed
ENH: using numpy.percentile to recalculate the pressure profile
1 parent 56986ea commit e6cdf8f

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

rocketpy/environment/environment_analysis.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)