euler314 commited on
Commit
e0cba61
·
verified ·
1 Parent(s): aa74248

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -4
app.py CHANGED
@@ -15,6 +15,7 @@ import tempfile
15
  import csv
16
  from collections import defaultdict
17
  import filecmp
 
18
 
19
  # Command-line argument parsing
20
  parser = argparse.ArgumentParser(description='Typhoon Analysis Dashboard')
@@ -293,7 +294,7 @@ def generate_main_analysis(start_year, start_month, end_year, end_month, enso_ph
293
 
294
  return tracks_fig, wind_scatter, pressure_scatter, regression_fig, slopes_text
295
 
296
- # Path animation function using Gallery
297
  def categorize_typhoon_by_standard(wind_speed, standard):
298
  if standard == 'taiwan':
299
  wind_speed_ms = wind_speed * 0.514444
@@ -332,8 +333,11 @@ def generate_track_gallery(year, typhoon, standard):
332
  lat_padding = max((max_lat - min_lat) * 0.3, 5)
333
  lon_padding = max((max_lon - min_lon) * 0.3, 5)
334
 
335
- # Generate a sequence of figures
 
336
  gallery = []
 
 
337
  for i in range(len(storm.time)):
338
  fig = go.Figure()
339
 
@@ -386,7 +390,10 @@ def generate_track_gallery(year, typhoon, standard):
386
  )
387
  )
388
 
389
- gallery.append(fig)
 
 
 
390
 
391
  return gallery
392
 
@@ -641,4 +648,4 @@ with gr.Blocks(title="Typhoon Analysis Dashboard") as demo:
641
  </style>
642
  """)
643
 
644
- demo.launch()
 
15
  import csv
16
  from collections import defaultdict
17
  import filecmp
18
+ import uuid
19
 
20
  # Command-line argument parsing
21
  parser = argparse.ArgumentParser(description='Typhoon Analysis Dashboard')
 
294
 
295
  return tracks_fig, wind_scatter, pressure_scatter, regression_fig, slopes_text
296
 
297
+ # Path animation function using Gallery with image export
298
  def categorize_typhoon_by_standard(wind_speed, standard):
299
  if standard == 'taiwan':
300
  wind_speed_ms = wind_speed * 0.514444
 
333
  lat_padding = max((max_lat - min_lat) * 0.3, 5)
334
  lon_padding = max((max_lon - min_lon) * 0.3, 5)
335
 
336
+ # Temporary directory for images
337
+ temp_dir = tempfile.mkdtemp()
338
  gallery = []
339
+
340
+ # Generate a sequence of figures and save as images
341
  for i in range(len(storm.time)):
342
  fig = go.Figure()
343
 
 
390
  )
391
  )
392
 
393
+ # Save figure as image
394
+ image_path = os.path.join(temp_dir, f"frame_{i}_{uuid.uuid4()}.png")
395
+ fig.write_image(image_path, width=1000, height=700)
396
+ gallery.append(image_path)
397
 
398
  return gallery
399
 
 
648
  </style>
649
  """)
650
 
651
+ demo.launch(share=True) # Enable public link sharing