-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
enhancementNew feature or requestNew feature or request
Description
ds-workflows-python/materials/05-shiny-app/src/module_model_explorer.py
Lines 289 to 358 in de07245
@reactive.calc | |
@time_function | |
def predict_delay() -> float: | |
""" | |
The delay model is hosted on Posit Connect at this URL: | |
https://connect.posit.it/content/823c479e-3d5e-4898-8801-a5c2cec97bb5 | |
""" | |
# Based on the selected vessel name, get all of the data related to that | |
# vessel. | |
selected_vessel_data = ( | |
vessel_verbose.filter(pl.col("VesselName") == input.selected_vessel_name()) | |
.to_dicts()[0] | |
) | |
# Some of the vessels have not been rebuilt. When this applies, impute | |
# the current year as the year rebuilt. | |
if selected_vessel_data["YearRebuilt"]: | |
year_rebuilt = selected_vessel_data["YearRebuilt"].year | |
else: | |
year_rebuilt = datetime.datetime.now().year | |
# TODO: after Michael published the API to Ferryland bring this code | |
# back into the fold | |
prediction_input_data = { | |
"Departing": get_starting_and_ending_terminal()[0], | |
"Arriving": get_starting_and_ending_terminal()[1], | |
"Month": input.selected_date().month, | |
"Weekday": input.selected_date().weekday(), | |
"Hour": input.selected_hour(), | |
"ClassName": selected_vessel_data["ClassName"], | |
"SpeedInKnots": selected_vessel_data["SpeedInKnots"], | |
"EngineCount": selected_vessel_data["EngineCount"], | |
"Horsepower": selected_vessel_data["Horsepower"], | |
"MaxPassengerCount": selected_vessel_data["MaxPassengerCount"], | |
"PassengerOnly": None, # selected_vessel_data["PassengerOnly"], | |
"FastFerry": None, # selected_vessel_data["FastFerry"], | |
"PropulsionInfo": selected_vessel_data["PropulsionInfo"], | |
"YearBuilt": selected_vessel_data["YearBuilt"].year, | |
"YearRebuilt": year_rebuilt, | |
"departing_weather_code": int(input.selected_weather_code()), | |
"departing_temperature_2m": input.selected_temperature(), | |
"departing_precipitation": None, # input.selected_precipitation(), | |
"departing_cloud_cover": input.selected_cloud_cover(), | |
"departing_wind_speed_10m": input.selected_wind_speed(), | |
"departing_wind_direction_10m": int(input.selected_wind_direction()), | |
"departing_wind_gusts_10m": input.selected_wind_gust(), | |
"arriving_weather_code": int(input.selected_weather_code()), | |
"arriving_temperature_2m": input.selected_temperature(), | |
"arriving_precipitation": None, # input.selected_precipitation(), | |
"arriving_cloud_cover": input.selected_cloud_cover(), | |
"arriving_wind_speed_10m": input.selected_wind_speed(), | |
"arriving_wind_direction_10m": int(input.selected_wind_direction()), | |
"arriving_wind_gusts_10m": input.selected_wind_gust(), | |
} | |
# Make the prediction | |
# prediction_results_df = predict( | |
# vetiver_endpoint( | |
# "https://connect.posit.it/content/823c479e-3d5e-4898-8801-a5c2cec97bb5/predict" | |
# ), | |
# pd.DataFrame.from_records([prediction_input_data]), | |
# headers={"Authorization": f'Key {os.environ["CONNECT_API_KEY"]}'}, | |
# ) | |
# prediction_results_value = prediction_results_df.iloc[0, 0] | |
# return round(float(prediction_results_value), 2) # type: ignore | |
# TEMPORARY - return a random number as the prediction | |
return random.randint(-3, 23) |
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request