Spaces:
Sleeping
Sleeping
Update pages/8_Rainfall.py
Browse files- pages/8_Rainfall.py +8 -5
pages/8_Rainfall.py
CHANGED
@@ -2,14 +2,13 @@ import streamlit as st
|
|
2 |
import requests
|
3 |
from datetime import datetime, timedelta
|
4 |
from pytz import timezone
|
5 |
-
from PIL import Image
|
6 |
from io import BytesIO
|
7 |
import time
|
8 |
import folium
|
9 |
import base64
|
10 |
import pandas as pd
|
11 |
import numpy as np
|
12 |
-
import
|
13 |
|
14 |
st.set_page_config(layout="wide", page_title="Rainfall Data Dashboard")
|
15 |
|
@@ -62,8 +61,12 @@ def filter_image_by_color(image, colors_to_extract_rgb):
|
|
62 |
img_array[~color_mask] = [255, 255, 255, 0]
|
63 |
return Image.fromarray(img_array)
|
64 |
|
|
|
|
|
|
|
65 |
def create_map_with_radar_tile(image):
|
66 |
filtered_image = filter_image_by_color(image, COLORS_TO_EXTRACT_RGB)
|
|
|
67 |
m = folium.Map(location=[22.364, 114.148], zoom_start=10, min_zoom=10, max_zoom=19,
|
68 |
tiles='https://mapapi.geodata.gov.hk/gs/api/v1.0.0/xyz/imagery/wgs84/{z}/{x}/{y}.png',
|
69 |
attr="Map information from Lands Department", control_scale=True, name="Basemap")
|
@@ -73,12 +76,12 @@ def create_map_with_radar_tile(image):
|
|
73 |
overlay=True,
|
74 |
name="Labels"
|
75 |
).add_to(m)
|
76 |
-
img_url = f"data:image/png;base64,{image_to_base64(
|
77 |
folium.raster_layers.ImageOverlay(
|
78 |
image=img_url,
|
79 |
name="HKO Radar Image",
|
80 |
bounds=[[22.893, 113.538], [21.716, 115.362]],
|
81 |
-
opacity=0.
|
82 |
interactive=False,
|
83 |
cross_origin=False,
|
84 |
zindex=1,
|
@@ -158,7 +161,7 @@ with col1:
|
|
158 |
# Create and display the map
|
159 |
map_html = create_map_with_radar_tile(image)
|
160 |
map_placeholder.empty()
|
161 |
-
map_placeholder = st.components.v1.html(map_html,height
|
162 |
|
163 |
if actual_time != interval:
|
164 |
info_placeholder.warning(
|
|
|
2 |
import requests
|
3 |
from datetime import datetime, timedelta
|
4 |
from pytz import timezone
|
|
|
5 |
from io import BytesIO
|
6 |
import time
|
7 |
import folium
|
8 |
import base64
|
9 |
import pandas as pd
|
10 |
import numpy as np
|
11 |
+
from PIL import Image, ImageFilter
|
12 |
|
13 |
st.set_page_config(layout="wide", page_title="Rainfall Data Dashboard")
|
14 |
|
|
|
61 |
img_array[~color_mask] = [255, 255, 255, 0]
|
62 |
return Image.fromarray(img_array)
|
63 |
|
64 |
+
def smooth_image(image):
|
65 |
+
return image.filter(ImageFilter.GaussianBlur(radius=3))
|
66 |
+
|
67 |
def create_map_with_radar_tile(image):
|
68 |
filtered_image = filter_image_by_color(image, COLORS_TO_EXTRACT_RGB)
|
69 |
+
smoothed_image = smooth_image(filtered_image)
|
70 |
m = folium.Map(location=[22.364, 114.148], zoom_start=10, min_zoom=10, max_zoom=19,
|
71 |
tiles='https://mapapi.geodata.gov.hk/gs/api/v1.0.0/xyz/imagery/wgs84/{z}/{x}/{y}.png',
|
72 |
attr="Map information from Lands Department", control_scale=True, name="Basemap")
|
|
|
76 |
overlay=True,
|
77 |
name="Labels"
|
78 |
).add_to(m)
|
79 |
+
img_url = f"data:image/png;base64,{image_to_base64(smoothed_image)}"
|
80 |
folium.raster_layers.ImageOverlay(
|
81 |
image=img_url,
|
82 |
name="HKO Radar Image",
|
83 |
bounds=[[22.893, 113.538], [21.716, 115.362]],
|
84 |
+
opacity=0.9,
|
85 |
interactive=False,
|
86 |
cross_origin=False,
|
87 |
zindex=1,
|
|
|
161 |
# Create and display the map
|
162 |
map_html = create_map_with_radar_tile(image)
|
163 |
map_placeholder.empty()
|
164 |
+
map_placeholder = st.components.v1.html(map_html,height=750)
|
165 |
|
166 |
if actual_time != interval:
|
167 |
info_placeholder.warning(
|