import gradio as gr def convert_temperature(value, unit): return value if unit == "K" else (value + 273.15 if unit == "°C" else (value - 32) * 5/9 + 273.15) def convert_wind_speed(value, unit): return value if unit == "m/s" else (value / 3.6 if unit == "km/h" else value * 0.44704) def convert_elevation(value, unit): return value if unit == "m" else value * 0.3048 def convert_rainfall(val, unit): return val if unit == "mm" else val * 25.4 def convert_elevation(val, unit): return val if unit == "m" else val * 0.3048 def convert_distance(val, unit): return val if unit == "m" else val * 0.3048 def convert_rainfall_intensity(val, unit): return val if unit == "mm/hr" else val * 25.4 def update_temp_slider(unit): if unit == "K": return gr.update(minimum=280, maximum=330, value=300, label="Temperature (K)") elif unit == "°C": return gr.update(minimum=5, maximum=60, value=25, label="Temperature (°C)") elif unit == "°F": return gr.update(minimum=40, maximum=140, value=80, label="Temperature (°F)") def update_wind_slider(unit): if unit == "m/s": return gr.update(minimum=0, maximum=50, value=10, label="Wind Speed (m/s)") elif unit == "km/h": return gr.update(minimum=0, maximum=180, value=36, label="Wind Speed (km/h)") elif unit == "mp/h": return gr.update(minimum=0, maximum=110, value=22, label="Wind Speed (mp/h)") def update_elevation_slider(unit): if unit == "m": return gr.update(minimum=0, maximum=3000, value=500, label="Elevation (m)") elif unit == "ft": return gr.update(minimum=0, maximum=10000, value=1600, label="Elevation (ft)") def update_flood_elevation_slider(unit): if unit == "m": return gr.update(minimum=0, maximum=20, value=5, label="Relative Elevation (m)") elif unit == "ft": return gr.update(minimum=0, maximum=60, value=15, label="Relative Elevation (ft)") def update_flood_distance_slider(unit): if unit == "m": return gr.update(minimum=0, maximum=2000, value=100, label="Distance from River (m)") elif unit == "ft": return gr.update(minimum=0, maximum=6000, value=300, label="Distance from River (ft)") def update_flood_rainfall_slider(unit): if unit == "mm": return gr.update(minimum=0, maximum=500, value=25, label="Rainfall (mm)") elif unit == "in": return gr.update(minimum=0, maximum=20, value=1, label="Rainfall (in)") def update_rain_slider(unit): if unit == "in/hr": return gr.update(minimum=0, maximum=10, value=0.5, label="Rainfall Intensity (in/hr)") elif unit == "mm/hr": return gr.update(minimum=0, maximum=150, value=12, label="Rainfall Intensity (mm/hr)")