euler314 commited on
Commit
76771b5
·
verified ·
1 Parent(s): 6df81e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -11
app.py CHANGED
@@ -162,18 +162,57 @@ def update_oni_data():
162
  os.remove(temp_file)
163
 
164
  def load_data(oni_path, typhoon_path):
165
- if not os.path.exists(typhoon_path):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  logging.error(f"Typhoon data file not found: {typhoon_path}")
167
- return pd.DataFrame(), pd.DataFrame()
168
- try:
169
- oni_data = pd.read_csv(oni_path)
170
- typhoon_data = pd.read_csv(typhoon_path, low_memory=False)
171
- typhoon_data['ISO_TIME'] = pd.to_datetime(typhoon_data['ISO_TIME'], errors='coerce')
172
- typhoon_data = typhoon_data.dropna(subset=['ISO_TIME'])
173
- return oni_data, typhoon_data
174
- except Exception as e:
175
- logging.error(f"Error loading data: {e}")
176
- return pd.DataFrame(), pd.DataFrame()
 
 
 
 
177
 
178
  def process_oni_data(oni_data):
179
  oni_long = oni_data.melt(id_vars=['Year'], var_name='Month', value_name='ONI')
 
162
  os.remove(temp_file)
163
 
164
  def load_data(oni_path, typhoon_path):
165
+ # Create default empty DataFrames
166
+ oni_data = pd.DataFrame({'Year': [], 'Jan': [], 'Feb': [], 'Mar': [], 'Apr': [],
167
+ 'May': [], 'Jun': [], 'Jul': [], 'Aug': [], 'Sep': [],
168
+ 'Oct': [], 'Nov': [], 'Dec': []})
169
+ typhoon_data = pd.DataFrame()
170
+
171
+ # Try to load ONI data
172
+ if os.path.exists(oni_path):
173
+ try:
174
+ oni_data = pd.read_csv(oni_path)
175
+ except Exception as e:
176
+ logging.error(f"Error loading ONI data: {e}")
177
+ # Update ONI data if loading fails
178
+ update_oni_data()
179
+ try:
180
+ oni_data = pd.read_csv(oni_path)
181
+ except Exception as e:
182
+ logging.error(f"Still can't load ONI data: {e}")
183
+ else:
184
+ logging.warning(f"ONI data file not found: {oni_path}")
185
+ # Try to download ONI data
186
+ update_oni_data()
187
+ try:
188
+ oni_data = pd.read_csv(oni_path)
189
+ except Exception as e:
190
+ logging.error(f"Failed to create ONI data: {e}")
191
+
192
+ # Try to load typhoon data
193
+ if os.path.exists(typhoon_path):
194
+ try:
195
+ typhoon_data = pd.read_csv(typhoon_path, low_memory=False)
196
+ typhoon_data['ISO_TIME'] = pd.to_datetime(typhoon_data['ISO_TIME'], errors='coerce')
197
+ typhoon_data = typhoon_data.dropna(subset=['ISO_TIME'])
198
+ except Exception as e:
199
+ logging.error(f"Error loading typhoon data: {e}")
200
+ else:
201
  logging.error(f"Typhoon data file not found: {typhoon_path}")
202
+ # Create minimal sample data to prevent crashes
203
+ typhoon_data = pd.DataFrame({
204
+ 'SID': ['WP012000'],
205
+ 'ISO_TIME': [pd.Timestamp('2000-01-01')],
206
+ 'NAME': ['SAMPLE'],
207
+ 'SEASON': [2000],
208
+ 'LAT': [20.0],
209
+ 'LON': [140.0],
210
+ 'USA_WIND': [50.0],
211
+ 'USA_PRES': [990.0]
212
+ })
213
+ logging.warning("Created minimal sample typhoon data to prevent crashes")
214
+
215
+ return oni_data, typhoon_data
216
 
217
  def process_oni_data(oni_data):
218
  oni_long = oni_data.melt(id_vars=['Year'], var_name='Month', value_name='ONI')