clarindasusan's picture
Initial Deployment: Cyclone Prediction API
eb51ab4
import joblib
import os
import pandas as pd
MODEL_PATH = os.path.join("models", "xgboost_cyclone_model.pkl")
model = joblib.load(MODEL_PATH)
new_data = pd.DataFrame([{
'LAT': 15.0, # Current latitude
'LON': 85.0, # Current longitude
'MAX_WIND': 80, # Current max wind speed (knots)
'MIN_PRESSURE': 980, # Current min pressure (hPa)
'RAD_NE': 50, # Radius NE (km)
'RAD_SE': 50, # Radius SE (km)
'RAD_SW': 50, # Radius SW (km)
'RAD_NW': 50, # Radius NW (km)
'RAD50_NE': 40, # Radius 50kt NE
'RAD50_SE': 40,
'RAD50_SW': 40,
'RAD50_NW': 40,
'RAD64_NE': 30, # Radius 64kt NE
'RAD64_SE': 30,
'RAD64_SW': 30,
'RAD64_NW': 30,
'MONTH': 12,
'HOUR': 12,
'DAY_OF_YEAR': 345,
'SIN_DOY': 0.5,
'COS_DOY': 0.87,
'SIN_HOUR': 0.5,
'COS_HOUR': 0.87,
'STORM_AGE_HOURS': 24,
'STORM_DURATION_HOURS': 36,
'DIST_TO_ODISHA_KM': 300,
'MOVEMENT_SPEED_KPH': 20,
'WIND_t-6': 78,
'WIND_t-12': 76,
'WIND_t-18': 74,
'WIND_t-24': 72,
'PRESSURE_t-6': 982,
'PRESSURE_t-12': 984,
'PRESSURE_t-18': 986,
'PRESSURE_t-24': 988,
'WIND_CHANGE_6H': 2,
'PRESSURE_CHANGE_6H': -2,
'INTENSIFICATION_RATE': 1,
'WIND_CHANGE_12H': 4,
'PRESSURE_CHANGE_12H': -4,
'STORM_DB': 0,
'STORM_EX': 0,
'STORM_MD': 0,
'STORM_TC': 1,
'STORM_TD': 0,
'STORM_TS': 0,
'STORM_TY': 0,
'STORM_WV': 0,
'AVG_RAD34': 45,
'AVG_RAD50': 40,
'AVG_RAD64': 30,
'STORM_SIZE': 3
}])
prediction = model.predict(new_data)
print(f"Predicted wind speed in 24h: {prediction[0]:.1f} knots")