Spaces:
Sleeping
Sleeping
import streamlit as st | |
import tropycal.tracks as tracks | |
def read_data(basin='north_atlantic', source='hurdat', include_btk=False): | |
return tracks.TrackDataset(basin=basin, source=source, include_btk=include_btk) | |
def app(): | |
st.title("Hurricane Mapping") | |
row1_col1, row1_col2 = st.columns([3, 1]) | |
with row1_col1: | |
empty = st.empty() | |
empty.image("https://i.imgur.com/Ec7qsR0.png") | |
with row1_col2: | |
checkbox = st.checkbox("Select from a list of hurricanes", value=False) | |
if checkbox: | |
if st.session_state.get('hurricane') is None: | |
st.session_state['hurricane'] = read_data() | |
years = st.slider( | |
'Select a year', min_value=1950, max_value=2022, value=(2000, 2010) | |
) | |
storms = st.session_state['hurricane'].filter_storms(year_range=years) | |
selected = st.selectbox('Select a storm', storms) | |
storm = st.session_state['hurricane'].get_storm(selected) | |
ax = storm.plot() | |
fig = ax.get_figure() | |
empty.pyplot(fig) | |
else: | |
name = st.text_input("Or enter a storm Name", "michael") | |
if name: | |
if st.session_state.get('hurricane') is None: | |
st.session_state['hurricane'] = read_data() | |
basin = st.session_state['hurricane'] | |
years = basin.search_name(name) | |
if len(years) > 0: | |
year = st.selectbox("Select a year", years) | |
storm = basin.get_storm((name, year)) | |
ax = storm.plot() | |
fig = ax.get_figure() | |
empty.pyplot(fig) | |
else: | |
empty.text("No storms found") | |
st.write("No storms found") | |