Spaces:
Sleeping
Sleeping
Commit
·
349b46e
1
Parent(s):
2ad29bf
Update app.py
Browse files
app.py
CHANGED
@@ -1,9 +1,3 @@
|
|
1 |
-
# -*- coding: utf-8 -*-
|
2 |
-
"""
|
3 |
-
Created on Thu Jun 8 03:39:02 2023
|
4 |
-
|
5 |
-
@author: mritchey
|
6 |
-
"""
|
7 |
|
8 |
import pandas as pd
|
9 |
import numpy as np
|
@@ -20,24 +14,35 @@ import duckdb
|
|
20 |
st.set_page_config(layout="wide")
|
21 |
|
22 |
|
23 |
-
@st.
|
24 |
-
def get_perimeters(
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
|
43 |
def map_perimeters(_gdf_data, address):
|
@@ -82,8 +87,8 @@ def geocode(address):
|
|
82 |
return lat, lon
|
83 |
|
84 |
|
85 |
-
def extract_vertices(
|
86 |
-
g = [i for i in
|
87 |
all_data = []
|
88 |
for i in range(len(g)):
|
89 |
try:
|
@@ -150,18 +155,10 @@ start_date_str, end_date_str = start_date.strftime(
|
|
150 |
|
151 |
# Get Data: Modified for Speed
|
152 |
if refresh:
|
153 |
-
gdf = get_perimeters(refresh)
|
154 |
-
|
155 |
else:
|
156 |
-
|
157 |
-
select * from 'wildfire_perimeters.parquet'
|
158 |
-
where DiscoveryDate>= '{start_date_str}' and DiscoveryDate<= '{end_date_str}'
|
159 |
-
"""
|
160 |
-
gdf_cut = duck_sql(code)
|
161 |
-
gdf_cut['geometry'] = [wkb.loads(bytes(i)) for i in gdf_cut.geometry]
|
162 |
-
gdf_cut = gpd.GeoDataFrame(gdf_cut)
|
163 |
-
|
164 |
-
gdf_cut['DiscoveryDate'] = gdf_cut['DiscoveryDate'].dt.strftime('%Y-%m-%d')
|
165 |
|
166 |
|
167 |
#Distance to Fire
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
import pandas as pd
|
3 |
import numpy as np
|
|
|
14 |
st.set_page_config(layout="wide")
|
15 |
|
16 |
|
17 |
+
@st.cache_data
|
18 |
+
def get_perimeters(start_date_str,end_date_str):
|
19 |
+
|
20 |
+
gdf_perimeters = gpd.read_file(
|
21 |
+
'https://opendata.arcgis.com/api/v3/datasets/5e72b1699bf74eefb3f3aff6f4ba5511_0/downloads/data?format=shp&spatialRefId=4326&where=1%3D1')
|
22 |
+
gdf_perimeters = gdf_perimeters[['OBJECTID', 'poly_Incid', 'attr_Fir_7', 'poly_Creat',
|
23 |
+
'poly_DateC', 'poly_Polyg', 'poly_Acres', 'attr_Estim', 'geometry']].copy()
|
24 |
+
gdf_perimeters.columns = ['OBJECTID', 'Incident', 'DiscoveryDate', 'poly_Creat',
|
25 |
+
'LastUpdate', 'poly_Polyg', 'Size_acres', 'CurrentEstCost', 'geometry']
|
26 |
+
gdf_perimeters['Lat_centroid'] = gdf_perimeters.centroid.y
|
27 |
+
gdf_perimeters['Lon_centroid'] = gdf_perimeters.centroid.x
|
28 |
+
gdf_perimeters['DiscoveryDate'] = pd.to_datetime(
|
29 |
+
gdf_perimeters['DiscoveryDate'])
|
30 |
+
|
31 |
+
gdf_cut = gdf_perimeters.query(f"'{start_date_str}'<=DiscoveryDate<='{end_date_str}'")
|
32 |
+
gdf_cut['DiscoveryDate'] = gdf_cut['DiscoveryDate'].dt.strftime('%Y-%m-%d')
|
33 |
+
return gdf_cut
|
34 |
+
|
35 |
+
@st.cache_data
|
36 |
+
def get_perimeters_fast(start_date_str,end_date_str):
|
37 |
+
code = f"""
|
38 |
+
select * from 'wildfire_perimeters.parquet'
|
39 |
+
where DiscoveryDate>= '{start_date_str}' and DiscoveryDate<= '{end_date_str}'
|
40 |
+
"""
|
41 |
+
gdf_cut = duck_sql(code)
|
42 |
+
gdf_cut['geometry'] = [wkb.loads(bytes(i)) for i in gdf_cut.geometry]
|
43 |
+
gdf_cut = gpd.GeoDataFrame(gdf_cut)
|
44 |
+
gdf_cut['DiscoveryDate'] = gdf_cut['DiscoveryDate'].dt.strftime('%Y-%m-%d')
|
45 |
+
return gdf_cut
|
46 |
|
47 |
|
48 |
def map_perimeters(_gdf_data, address):
|
|
|
87 |
return lat, lon
|
88 |
|
89 |
|
90 |
+
def extract_vertices(_gdf):
|
91 |
+
g = [i for i in _gdf.geometry]
|
92 |
all_data = []
|
93 |
for i in range(len(g)):
|
94 |
try:
|
|
|
155 |
|
156 |
# Get Data: Modified for Speed
|
157 |
if refresh:
|
158 |
+
gdf = get_perimeters(start_date_str,end_date_str,refresh)
|
159 |
+
|
160 |
else:
|
161 |
+
gdf_cut = get_perimeters_fast(start_date_str,end_date_str)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
|
163 |
|
164 |
#Distance to Fire
|