import folium
import geopandas as gpd
import rasterio
from rasterio.mask import mask
import pandas as pd
counties = gpd.read_file(r'C:\Users\kperham\Projects\dashboard\fl_counties\fl_counties.geojson')
# NIFC Wildfire Perimeters - Active
fires = gpd.read_file(r'https://opendata.arcgis.com/datasets/5da472c6d27b4b67970acc7b5044c862_0.geojson')
# Get the FL county and format the fire names
fires_fl = gpd.sjoin(fires, counties, how="inner", op='intersects')
fires_fl.IncidentName=fires_fl.IncidentName.str.title()
C:\Python38\lib\site-packages\numpy\lib\function_base.py:2167: RuntimeWarning: invalid value encountered in ? (vectorized) outputs = ufunc(*inputs)
fires_fl.reset_index(inplace=True)
fires.to_file(r'C:\Users\i23733\OneDrive - Verisk Analytics\__Projects\dashboard\fires.gpkg', driver="GPKG")
from datetime import date, datetime, timedelta
today = date.today() def dateNIFC(datefield): global dt_string dt_string = today.strftime("%Y-%m-%d %H:%M:%S") return dt_string
d = datetime.today() - timedelta(days=5)
print(dateNIFC(fires_fl['Date'])),(d)
fires_fl['Date'] = pd.to_datetime(fires_fl['DateCurrent']).astype(str)
fires_fl['CreateDate']
0 2020-07-01T22:37:53 1 2020-07-10T20:24:01 2 2020-08-05T02:37:27 3 2020-07-27T20:20:04 4 2020-07-20T19:34:19 ... 1034 2020-08-27T11:03:23 1035 2020-08-27T11:03:23 1036 2020-08-27T11:03:23 1037 2020-08-27T11:03:23 1038 2020-08-27T11:03:23 Name: CreateDate, Length: 1039, dtype: object
state_acres = fires_fl.groupby(['state'])['GISAcres'].sum().reset_index().sort_values("GISAcres", ascending=False)
incident_acres = fires_fl.groupby(['IncidentName','state'])['GISAcres'].sum().reset_index().sort_values("GISAcres", ascending=False)
recent_fires = fires_fl.loc[fires_fl.GISAcres > 50][['IncidentName','state','GISAcres','Date']].sort_values('Date', ascending=False)
#recent_acres_burned = fires_fl.loc[[fires_fl.Date > (d)]]
print(incident_acres[0:5]),(state_acres[0:5]),(recent_fires[0:10])
IncidentName state GISAcres 455 Lnu Lightning Complex CA 1.851059e+06 222 Del Puerto CA 1.774417e+06 233 Doe CA 4.810496e+05 124 Bush AZ 3.872077e+05 617 Pine Gulch CO 2.714359e+05
(None, state GISAcres 1 CA 5.347024e+06 0 AZ 9.699344e+05 2 CO 3.849826e+05 6 NV 2.989881e+05 10 UT 2.987269e+05, IncidentName state GISAcres Date 889 Red Salmon Complex CA 21979.779365 2020-08-27 12:46:02 1000 Red Salmon Complex CA 21979.779365 2020-08-27 12:46:02 891 Red Salmon Complex CA 21979.779365 2020-08-27 12:46:02 857 Indian Creek OR 48127.865658 2020-08-27 12:29:14 1038 Del Puerto CA 354883.499085 2020-08-27 11:03:23 315 Del Puerto CA 354883.499085 2020-08-27 11:03:23 1033 Ohlone CA 5922.547882 2020-08-27 11:03:23 316 Ohlone CA 5922.547882 2020-08-27 11:03:23 1034 Del Puerto CA 354883.499085 2020-08-27 11:03:23 1035 Del Puerto CA 354883.499085 2020-08-27 11:03:23)
tile = "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"
attribu = 'Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community'
m = folium.Map([42,-110], zoom_start=5, tiles=tile,attr=attribu)
fires_fl['reported_acres'] = round(fires_fl['GISAcres'],0)
folium.GeoJson(fires_fl,
tooltip=folium.features.GeoJsonTooltip(
fields=['IncidentName','reported_acres','state','Date'],
aliases=['Fire Name:','Reported Acres','State','Last Updated'])
).add_to(m)
<folium.features.GeoJson at 0x16ce5b4f6a0>
m