ENH: Use EnvironmentAnalysis
to initialize the Flight
class
#657
Labels
Enhancement
New feature or request, including adjustments in current codes
Environment
Enviroment Class related features
Good first issue
Good for newcomers
Hi, I hope this email finds you well.
My name is Gregorio and I am using RocketPy to do trajectory simulation for competition rockets. I really appreciate all your work.
For a competition we have later this year (EuRoC), we need to do a preliminary simulation and we would like to make an Environmental Analysis and use that as our Environment for the simulation. We can make the EnvironmentalAnalysis and it works fine. However, we cannot use it directly as a parameter for the flight.
We would like to do something like this:
"
Ea = EnvironmentAnalysis(
start_date=date1,
end_date=date2,
start_hour=8,
end_hour=19,
latitude=lat ,
longitude=lon,
surface_data_file="./single_levels.nc",
pressure_level_data_file="./pressure_file.nc,
timezone="CET",
unit_system="metric",
)
......
flight = Flight(
environment = Ea,
rocket = myRocket,
rail_length = rail_length,
inclination = inclination,
heading = direction,
name=f"Nominal",
)
"
However, that doesn't work, and we are doing it the following (indirect) way:
"
Ea = EnvironmentAnalysis(
start_date=date1,
end_date=date2,
start_hour=8,
end_hour=19,
latitude=lat ,
longitude=lon,
surface_data_file="./single_levels.nc",
pressure_level_data_file="./pressure_file.nc,
timezone="CET",
unit_system="metric",
)
Get the mean values from the Environmenatal Analysis
altitude_list = Ea.altitude_list
temperature_profile = Ea.average_temperature_profile + 273.15 # converting from °C to °K
wind_heading_profile = Ea.average_wind_heading_profile
wind_speed_profile = Ea.average_wind_speed_profile
pressure_profile = Ea.average_pressure_profile * 100 # converting from Pa to HPa
wind_u_profile = -1 * wind_speed_profile * np.sin(np.radians(wind_heading_profile))
wind_v_profile = -1 * wind_speed_profile * np.cos(np.radians(wind_heading_profile))
Convert the data to the form accepted by set_environment_model()
alt_p = list(zip(altitude_list, pressure_profile))
alt_t = list(zip(altitude_list, temperature_profile))
alt_wind_v = list(zip(altitude_list, wind_v_profile))
alt_wind_u = list(zip(altitude_list, wind_u_profile))
Create an environment for the simulation
env = Environment(
date=flight_data,
latitude=lat ,
longitude=lon,
elevation=elevation
)
Set the profiles for the custom environment using the data we obtained from the Environmental Analysis.
env.set_atmospheric_model(
type="custom_atmosphere",
pressure=alt_p,
temperature=alt_t,
wind_u = alt_wind_u,
wind_v = alt_wind_v
)
env.max_expected_height=4000.0
......
flight = Flight(
environment = env,
rocket = myRocket,
rail_length = rail_length,
inclination = inclination,
heading = direction,
name=f"Nominal",
)
"
Is there a better way to do it?
Thanks,
Grego
The text was updated successfully, but these errors were encountered: