mattritchey commited on
Commit
349b46e
·
1 Parent(s): 2ad29bf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -37
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.cache_resource
24
- def get_perimeters(refresh=False):
25
- if refresh:
26
- gdf_perimeters = gpd.read_file(
27
- 'https://opendata.arcgis.com/api/v3/datasets/5e72b1699bf74eefb3f3aff6f4ba5511_0/downloads/data?format=shp&spatialRefId=4326&where=1%3D1')
28
- gdf_perimeters = gdf_perimeters[['OBJECTID', 'poly_Incid', 'attr_Fir_7', 'poly_Creat',
29
- 'poly_DateC', 'poly_Polyg', 'poly_Acres', 'attr_Estim', 'geometry']].copy()
30
- gdf_perimeters.columns = ['OBJECTID', 'Incident', 'DiscoveryDate', 'poly_Creat',
31
- 'LastUpdate', 'poly_Polyg', 'Size_acres', 'CurrentEstCost', 'geometry']
32
- gdf_perimeters['Lat_centroid'] = gdf_perimeters.centroid.y
33
- gdf_perimeters['Lon_centroid'] = gdf_perimeters.centroid.x
34
- gdf_perimeters['DiscoveryDate'] = pd.to_datetime(
35
- gdf_perimeters['DiscoveryDate'])
36
-
37
- else:
38
- gdf_perimeters = gpd.read_parquet(
39
- "wildfire_perimeters.parquet").query("geometry==geometry")
40
- return gdf_perimeters
 
 
 
 
 
 
 
 
 
 
 
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(gdf):
86
- g = [i for i in gdf.geometry]
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
- gdf_cut = gdf.query(f"'{start_date_str}'<=DiscoveryDate<='{end_date_str}'")
155
  else:
156
- code = f"""
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