kscopis commited on
Commit
53166bf
1 Parent(s): 5a4890d

Upload 3 files

Browse files
Files changed (4) hide show
  1. .gitattributes +1 -0
  2. FPA_FOD_20170508.sqlite +3 -0
  3. app.ipynb +324 -0
  4. requirements.txt +17 -6
.gitattributes CHANGED
@@ -32,3 +32,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
35
+ FPA_FOD_20170508.sqlite filter=lfs diff=lfs merge=lfs -text
FPA_FOD_20170508.sqlite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f04b23a24989770ce05fa354662b03e597ad164ddf5b7932b8a53b46d0ed428b
3
+ size 795785216
app.ipynb ADDED
@@ -0,0 +1,324 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "c5d9677d-7ae8-4294-8773-3630b3fe8839",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Import Data and Libraries"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "code",
13
+ "execution_count": 1,
14
+ "id": "91fda898-04ae-4d77-ae57-b9b627465f1a",
15
+ "metadata": {
16
+ "tags": []
17
+ },
18
+ "outputs": [],
19
+ "source": [
20
+ "import datetime\n",
21
+ "from jdcal import jd2gcal\n",
22
+ "from matplotlib import gridspec\n",
23
+ "import matplotlib.pyplot as plt\n",
24
+ "import numpy as np\n",
25
+ "import pandas as pd\n",
26
+ "import seaborn as sns\n",
27
+ "import sqlite3\n",
28
+ "import xarray as xr\n",
29
+ "import geopandas as gpd\n",
30
+ "from matplotlib import pyplot as plt\n",
31
+ "\n",
32
+ "import cdsapi\n",
33
+ "import sklearn_pandas as skp\n",
34
+ "\n",
35
+ "custom_colors = ['68A33E', '#A10702', '#FB9E60', '#FFFF82', '#0F0326']"
36
+ ]
37
+ },
38
+ {
39
+ "cell_type": "markdown",
40
+ "id": "96fc6c7c-d5af-43a3-bf06-e215b5771aad",
41
+ "metadata": {},
42
+ "source": [
43
+ "# Load in Raw Data"
44
+ ]
45
+ },
46
+ {
47
+ "cell_type": "code",
48
+ "execution_count": 2,
49
+ "id": "a53f7564-03a8-4e3c-af47-201849958afa",
50
+ "metadata": {},
51
+ "outputs": [
52
+ {
53
+ "name": "stdout",
54
+ "output_type": "stream",
55
+ "text": [
56
+ "<class 'pandas.core.frame.DataFrame'>\n",
57
+ "RangeIndex: 1880465 entries, 0 to 1880464\n",
58
+ "Data columns (total 20 columns):\n",
59
+ " # Column Dtype \n",
60
+ "--- ------ ----- \n",
61
+ " 0 NWCG_REPORTING_AGENCY object \n",
62
+ " 1 NWCG_REPORTING_UNIT_ID object \n",
63
+ " 2 NWCG_REPORTING_UNIT_NAME object \n",
64
+ " 3 FIRE_NAME object \n",
65
+ " 4 COMPLEX_NAME object \n",
66
+ " 5 FIRE_YEAR int64 \n",
67
+ " 6 DISCOVERY_DATE float64\n",
68
+ " 7 DISCOVERY_DOY int64 \n",
69
+ " 8 DISCOVERY_TIME object \n",
70
+ " 9 CONT_DATE float64\n",
71
+ " 10 CONT_DOY float64\n",
72
+ " 11 CONT_TIME object \n",
73
+ " 12 FIRE_SIZE float64\n",
74
+ " 13 FIRE_SIZE_CLASS object \n",
75
+ " 14 OWNER_CODE float64\n",
76
+ " 15 OWNER_DESCR object \n",
77
+ " 16 LATITUDE float64\n",
78
+ " 17 LONGITUDE float64\n",
79
+ " 18 STATE object \n",
80
+ " 19 COUNTY object \n",
81
+ "dtypes: float64(7), int64(2), object(11)\n",
82
+ "memory usage: 286.9+ MB\n"
83
+ ]
84
+ }
85
+ ],
86
+ "source": [
87
+ "##################################################\n",
88
+ "##### 1. Loading raw data #####\n",
89
+ "input_filename = './Data/FPA_FOD_20170508.sqlite'\n",
90
+ "conn = sqlite3.connect(input_filename)\n",
91
+ "query = '''\n",
92
+ " SELECT\n",
93
+ " NWCG_REPORTING_AGENCY, NWCG_REPORTING_UNIT_ID,\n",
94
+ " NWCG_REPORTING_UNIT_NAME,\n",
95
+ " FIRE_NAME,\n",
96
+ " COMPLEX_NAME,\n",
97
+ " FIRE_YEAR,\n",
98
+ " DISCOVERY_DATE,\n",
99
+ " DISCOVERY_DOY,\n",
100
+ " DISCOVERY_TIME,\n",
101
+ " CONT_DATE,\n",
102
+ " CONT_DOY,\n",
103
+ " CONT_TIME,\n",
104
+ " FIRE_SIZE,\n",
105
+ " FIRE_SIZE_CLASS,\n",
106
+ " OWNER_CODE,\n",
107
+ " OWNER_DESCR,\n",
108
+ " LATITUDE,\n",
109
+ " LONGITUDE,\n",
110
+ " STATE,\n",
111
+ " COUNTY\n",
112
+ " FROM\n",
113
+ " Fires;\n",
114
+ "'''\n",
115
+ "df_raw = pd.read_sql_query(query, conn)\n",
116
+ "#df_raw.info()\n",
117
+ "\n"
118
+ ]
119
+ },
120
+ {
121
+ "cell_type": "code",
122
+ "execution_count": 3,
123
+ "id": "2e682479-27ea-4ed0-9ffc-07b30f3d48cc",
124
+ "metadata": {
125
+ "tags": []
126
+ },
127
+ "outputs": [
128
+ {
129
+ "name": "stdout",
130
+ "output_type": "stream",
131
+ "text": [
132
+ "<class 'pandas.core.frame.DataFrame'>\n",
133
+ "RangeIndex: 1880465 entries, 0 to 1880464\n",
134
+ "Data columns (total 39 columns):\n",
135
+ " # Column Dtype \n",
136
+ "--- ------ ----- \n",
137
+ " 0 OBJECTID int64 \n",
138
+ " 1 FOD_ID int64 \n",
139
+ " 2 FPA_ID object \n",
140
+ " 3 SOURCE_SYSTEM_TYPE object \n",
141
+ " 4 SOURCE_SYSTEM object \n",
142
+ " 5 NWCG_REPORTING_AGENCY object \n",
143
+ " 6 NWCG_REPORTING_UNIT_ID object \n",
144
+ " 7 NWCG_REPORTING_UNIT_NAME object \n",
145
+ " 8 SOURCE_REPORTING_UNIT object \n",
146
+ " 9 SOURCE_REPORTING_UNIT_NAME object \n",
147
+ " 10 LOCAL_FIRE_REPORT_ID object \n",
148
+ " 11 LOCAL_INCIDENT_ID object \n",
149
+ " 12 FIRE_CODE object \n",
150
+ " 13 FIRE_NAME object \n",
151
+ " 14 ICS_209_INCIDENT_NUMBER object \n",
152
+ " 15 ICS_209_NAME object \n",
153
+ " 16 MTBS_ID object \n",
154
+ " 17 MTBS_FIRE_NAME object \n",
155
+ " 18 COMPLEX_NAME object \n",
156
+ " 19 FIRE_YEAR int64 \n",
157
+ " 20 DISCOVERY_DATE float64\n",
158
+ " 21 DISCOVERY_DOY int64 \n",
159
+ " 22 DISCOVERY_TIME object \n",
160
+ " 23 STAT_CAUSE_CODE float64\n",
161
+ " 24 STAT_CAUSE_DESCR object \n",
162
+ " 25 CONT_DATE float64\n",
163
+ " 26 CONT_DOY float64\n",
164
+ " 27 CONT_TIME object \n",
165
+ " 28 FIRE_SIZE float64\n",
166
+ " 29 FIRE_SIZE_CLASS object \n",
167
+ " 30 LATITUDE float64\n",
168
+ " 31 LONGITUDE float64\n",
169
+ " 32 OWNER_CODE float64\n",
170
+ " 33 OWNER_DESCR object \n",
171
+ " 34 STATE object \n",
172
+ " 35 COUNTY object \n",
173
+ " 36 FIPS_CODE object \n",
174
+ " 37 FIPS_NAME object \n",
175
+ " 38 Shape object \n",
176
+ "dtypes: float64(8), int64(4), object(27)\n",
177
+ "memory usage: 559.5+ MB\n"
178
+ ]
179
+ }
180
+ ],
181
+ "source": [
182
+ "input_filename = './Data/FPA_FOD_20170508.sqlite'\n",
183
+ "conn = sqlite3.connect(input_filename)\n",
184
+ "query = '''\n",
185
+ " SELECT\n",
186
+ " *\n",
187
+ " FROM\n",
188
+ " Fires;\n",
189
+ "'''\n",
190
+ "df_raw = pd.read_sql_query(query, conn)\n",
191
+ "#df_raw.info()"
192
+ ]
193
+ },
194
+ {
195
+ "cell_type": "markdown",
196
+ "id": "286ca71e-4471-4382-9487-34d728b71f86",
197
+ "metadata": {},
198
+ "source": [
199
+ "# Clean Data and Extract Oregon Boundaries"
200
+ ]
201
+ },
202
+ {
203
+ "cell_type": "code",
204
+ "execution_count": 6,
205
+ "id": "70f7943b-bdf4-40b4-b856-5221581beae8",
206
+ "metadata": {},
207
+ "outputs": [
208
+ {
209
+ "data": {
210
+ "text/plain": [
211
+ "(-124.971381, -116.058367, 41.77678195, 46.50704705)"
212
+ ]
213
+ },
214
+ "execution_count": 6,
215
+ "metadata": {},
216
+ "output_type": "execute_result"
217
+ },
218
+ {
219
+ "data": {
220
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGXCAYAAAAuxFOfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA79ElEQVR4nO3dd3hUZfrG8TudEHoNSBVFkI4oCggoKvaCYNkFAbHBig1XxYZlV1lExQKKLqJYEF1FVBQFgVWKFAFZUBGl9xCkQ0g5vz+e35BCwABJ3plzvp/rmuskk5OZZyaTOfe85y1Rnud5AgAAgRXtugAAAOAWYQAAgIAjDAAAEHCEAQAAAo4wAABAwBEGAAAIOMIAAAABRxgAACDgCAMAAAQcYQCB8v3336tbt26qVq2a4uPjlZycrK5du2r27NmuSysW06dPV1RUVK5L+fLl1bp1a7311luuyyuQOnXqqFevXq7LAHyFMIDAeOmll9S2bVutW7dOQ4YM0ZQpUzR06FCtX79e7dq108svv+y6xGLz1FNPafbs2Zo9e7befvtt1a5dW7169dJLL73kujQADsS6LgAoDjNnztRdd92liy++WOPHj1dsbPZL/7rrrtNVV12lO++8Uy1atFDbtm0Pezt79+5VyZIli6PkInXyySfrzDPPPPj9xRdfrHnz5mns2LHq37+/w8qKV2ZmpjIyMpSQkOC6FMApWgYQCE8//bSioqL0yiuv5AoCkhQbG6sRI0YoKipKgwcPPnj9Y489pqioKC1YsEBdu3ZV+fLlVa9ePUmS53kaMWKEmjdvrsTERJUvX15du3bVihUrct2253l66qmnVLt2bZUoUUKtWrXS5MmT1bFjR3Xs2DHXvmvWrFH37t1VpUoVJSQkqGHDhnr22WeVlZV1cJ9Vq1YpKipKQ4cO1XPPPae6deuqVKlSOuuss/T9998f8/MTHR2tUqVKKS4uLtf1+/fv18CBA1W3bl3Fx8frhBNO0N/+9jdt3749135RUVF67LHHDrndvE36b775pqKiojRt2jT17dtXlSpVUsWKFdWlSxdt2LAh1++mp6frvvvuU3JyskqWLKl27dpp7ty5h9xHSkqK+vXrp1NPPVWlSpVSlSpVdO655+q7777LtV/ouRsyZIj+8Y9/qG7dukpISNDkyZNVrlw53XrrrYfc9qpVqxQTE6NnnnnmT55BILIRBuB7mZmZmjZtmlq1aqUaNWrku0/NmjV12mmnaerUqcrMzMz1sy5duuikk07Shx9+qFdffVWSdOutt+quu+7Seeedp08++UQjRozQ0qVL1aZNG23evPng7z700EN66KGHdOGFF2rChAm67bbbdNNNN+nXX3/NdR8pKSlq06aNvv76az355JP69NNPdd555+nee+/V7bfffki9w4cP1+TJkzVs2DC9++672rNnjy6++GLt2LGjQM9JVlaWMjIylJGRoc2bN2vw4MFasmSJunfvfnAfz/N05ZVXaujQoerRo4cmTpyoe+65R2+99ZbOPfdcpaWlFei+8nPTTTcpLi5O7733noYMGaLp06fnum9JuvnmmzV06FDdcMMNmjBhgq6++mp16dJFf/zxR679tm3bJkkaNGiQJk6cqNGjR+vEE09Ux44dNX369EPu+8UXX9TUqVM1dOhQffnll2rcuLFuvPFGvfvuu4c8fyNGjFB8fLxuvPHGY36sQETwAJ/btGmTJ8m77rrrjrjftdde60nyNm/e7Hme5w0aNMiT5D366KO59ps9e7YnyXv22WdzXb927VovMTHRu++++zzP87xt27Z5CQkJ3rXXXpvv73fo0OHgdQ888IAnyZszZ06uffv27etFRUV5y5Yt8zzP81auXOlJ8po0aeJlZGQc3G/u3LmeJG/s2LFHfIzTpk3zJB1yiY6O9h566KFc+06aNMmT5A0ZMiTX9ePGjfMkea+99trB6yR5gwYNOuT+ateu7fXs2fPg96NHj/Ykef369cu135AhQzxJ3saNGz3P87yff/7Zk+TdfffdufZ79913PUm5bjOvjIwMLz093evUqZN31VVXHbw+9NzVq1fPO3DgQK7f+f33373o6Gjv+eefP3jdvn37vIoVK3q9e/c+7H0BfkHLAPD/PM+TZE3eOV199dW5vv/8888VFRWl7t27H/x0nZGRoeTkZDVr1uzgp9Hvv/9eaWlpuuaaa3L9/plnnqk6derkum7q1Kk69dRTdcYZZ+S6vlevXvI8T1OnTs11/SWXXKKYmJiD3zdt2lSStHr16gI91n/961+aN2+e5s2bp8mTJ+u+++7T4MGD9fe//z1XTaEacurWrZuSkpL0zTffFOi+8nP55Zfn+j5v/dOmTZMk/fWvf8213zXXXHPIaR5JevXVV9WyZUuVKFFC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",
221
+ "text/plain": [
222
+ "<Figure size 640x480 with 1 Axes>"
223
+ ]
224
+ },
225
+ "metadata": {},
226
+ "output_type": "display_data"
227
+ }
228
+ ],
229
+ "source": [
230
+ "##################################################\n",
231
+ "##### 2. Cleaning data and extracting Oregon #####\n",
232
+ "drop_columns = ['NWCG_REPORTING_AGENCY',\n",
233
+ " 'NWCG_REPORTING_UNIT_ID',\n",
234
+ " 'NWCG_REPORTING_UNIT_NAME',\n",
235
+ " 'FIRE_NAME',\n",
236
+ " 'COMPLEX_NAME', \n",
237
+ " 'OWNER_DESCR',\n",
238
+ " 'FIRE_SIZE_CLASS',\n",
239
+ " 'OWNER_CODE']\n",
240
+ "#df_CA = df_raw[df_raw.STATE == 'CA'].drop(columns=drop_columns)\n",
241
+ "df_OR = df_raw[df_raw.STATE == 'OR'].drop(columns=drop_columns)\n",
242
+ "#Extracting onset month and day\n",
243
+ "df_OR['MONTH'] = df_OR['DISCOVERY_DATE'].apply(lambda x: jd2gcal(x, 0)[1])\n",
244
+ "df_OR['DAY'] = df_OR['DISCOVERY_DATE'].apply(lambda x: jd2gcal(x, 0)[2])\n",
245
+ "df_OR.head(2)\n",
246
+ "\n",
247
+ "us_states = gpd.read_file(\"./Data/cb_2018_us_state_500k/cb_2018_us_state_500k.shp\")\n",
248
+ "oregon = us_states[us_states['NAME'] == 'Oregon']\n",
249
+ "oregon.plot(ax=plt.gca(), color='white', edgecolor='red')\n",
250
+ "plt.title(\"Oregon Boundary\")\n",
251
+ "plt.axis('off')\n",
252
+ "#plt.show()"
253
+ ]
254
+ },
255
+ {
256
+ "cell_type": "markdown",
257
+ "id": "76f69514-0e71-43da-83f2-baced0649539",
258
+ "metadata": {},
259
+ "source": [
260
+ "# Monthly/Seasonaly fire frequency"
261
+ ]
262
+ },
263
+ {
264
+ "cell_type": "code",
265
+ "execution_count": 5,
266
+ "id": "43dcfb23-f934-4455-adb1-ce6afcf24853",
267
+ "metadata": {},
268
+ "outputs": [
269
+ {
270
+ "data": {
271
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+wAAAHqCAYAAACeH8S8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4NklEQVR4nO3dd3wU1f7/8fcmIRsISYAESELHQgsIAtIlSO9FunQLFhAEFQNKUwlgAQUbGopUFYFrowtYAOn3K6iICnqR0CGhJhDO7w9/WV2T0LJhT8jr+XjM4949c/bMezabkU9m5ozDGGMEAAAAAACs4uPtAAAAAAAAIC0KdgAAAAAALETBDgAAAACAhSjYAQAAAACwEAU7AAAAAAAWomAHAAAAAMBCFOwAAAAAAFiIgh0AAAAAAAtRsAMAAAAAYCEKdgA5xsyZM+VwOLR27VpvR7kpRUdHq2TJkt6Ocd3+85//qEqVKgoMDJTD4dCSJUsu2/+bb75RnTp1FBwcLIfDocmTJ2vfvn1yOBwaPXr0DckMd3369JHD4fB2DAAAPIaCHcBNYe3atXI4HBkuWV2kf/jhh+rbt68qVaokPz8/ORwO7du3zyNjp+5D165d010fHR2tgIAAj2wrp/rll1/UqVMnBQUF6bXXXtPs2bNVrVq1DPufPHlSbdu2VWJiol566SXNnj1bzZo1u4GJs7eZM2dq8uTJ3o5xzQ4fPqynn35aFSpUUGBgoIKCglSlShWNHTtWiYmJ3o4HALgJOYwxxtshACCz1q5dqwYNGqhLly5q1apVmvWNGzdWWFiYLly4IH9/f/n4ePbvldHR0fruu+90xx136OTJk9q9e7f27t3rkTPOqWcMHQ6HNm/erKpVq6bZ9saNG3X+/PlMbyszoqOjtW/fPo/9oeJGmjZtmvr3769t27apSpUqV+y/YsUKNW3aVIsWLVL79u1d7cYYJSUlyc/PT35+flkZOVvLqu/KhQsXlJKSkiV/wNqwYYNat26txMRE3XfffapZs6ZSUlK0Zs0affzxxypRooSWL1+u22+/3ePbBgDkXPxrAsBNpXLlyurRo0eG6319fbNku++//74iIyPl5+enAQMGaPfu3R4dPyoqSr/88ouGDRumVatWeXTs7OrMmTMKDAz0yFgHDx6UJOXPnz9T/R0Ox1UXi57Mj7/kypVLuXLl8vi4Bw8eVNu2bXXx4kV9++23ql69umvdo48+qi+++ELt2rVTmzZttH37duXOnTvDsS5duqSkpKTL9gEAIBWXxAPIMTK6h/1///ufunTponz58ilv3ry65557tG3btmu6J7t48eJZeka1SJEiGjBggFavXq0VK1ZcsX9G2dO7xzr1doKZM2fqjTfeUJkyZRQQEKCKFSvqs88+kyR9//33atasmYKDg1WgQAENGDBAycnJ6W77t99+U9u2bRUSEqKgoCC1bdtWv/zyS5p+xhi99dZbqlq1qvLkyaOgoCA1aNBAa9asyTDzBx98oKpVqyp37tx67LHHrvg5fPrpp6pXr56CgoIUGBiou+66S/Pnz3fr43A4NGrUKElSqVKl5HA4LvtzL1mypHr37i1JatCggeuWhX9nvZb8q1atUpMmTZQvXz4FBASoUqVKevvtt6+4f//0wQcfqG7dugoKClKePHlUo0YNLVy40LU+JSVFRYoUUaVKldJ9f1xcnBwOh9t7kpKSNG7cOFWoUEEBAQHKly+fWrdure3bt7u995/foffee0/ly5eX0+lUiRIlNHHiRLe+DodD69at0++//+5220rq2fb169erRYsWCg8Pl9PpVHh4uBo3bqyvv/76ip9Bevewp7adOHFCDz74oAoVKqSAgADVqVNH33333RXHlKSXXnpJR44cUWxsrFuxnqpFixYaPHiwdu/erbi4OFd76jFn1apVev7553XLLbfI6XTqgw8+kHT1vwOSdP78eT399NMqUqSIAgICdMcdd2j+/PkaPXp0urfg7Ny5U/fee6/CwsLkdDpVpkwZjR07VklJSW79Ut//008/ucZ3Op2644479MUXX1zV5wMAyDqcYQdwUzl79qyOHj3q1uZ0OhUUFJRu/xMnTqhu3br6888/9dBDD6lixYratm2bGjZsqLCwsBsR+aoNHz5c7733np555hk1btzY45NrTZ06VYmJierXr58CAgI0ZcoUtW/fXh999JEeeughdevWTe3atdOKFSv0xhtvqFChQho5cqTbGGfOnFGDBg101113KTY2Vnv27NGbb76p7777Ttu2bVNkZKSrb8+ePTV//nx17NhRffv2VVJSkubOnavGjRtr0aJFatOmjdvYS5Ys0ZQpU/TII4/o4YcfVnBw8GX3J/Uy99tuu00xMTHy9/fXnDlz1L17d+3du1fDhw+X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aLup/VLXG2NUoEAB1+Rb6YmKinJ7nSdPngz7XinX1a7LSunlT80yY8YMFS1aNN33pVdIpTfGF198keEM6f8s3rp3764nn3xS77//vlq0aKENGzZoz549evHFF9OMW758eb322msZbvvfxXxmn8Lg7++vZcuWacuWLVq+fLm++uorjRkzRmPGjNGMGTPUrVu36x47o2xX+j4EBQWpePHi2r1792Vn9t+zZ49OnTql6OjoNOsy+tlf7e/AtXyfr/f7fb2fDwAga1GwA8jRSpUqpV9++UUpKSlu/2BNTk7W3r17r/oxXzeSr6+vxo0bp3bt2mU4IVmBAgW0devWNO1ZfVb5xIkTOnjwYJqzhj/99JPCwsJcZytvv/127d69W9WrV7+qS42vVepEXLt27Upz9nrXrl1ufbwp9YxpaGjoNV0Z8u8xli1bpqJFi7quHricsLAwtWjRQv/5z3+UkJCg999/Xz4+PurZs2eacePj43XPPfekmaAss640YWK1atVUrVo1jRgxQvHx8apataqeeeaZTBXsmdGhQwdNnjxZs2bN0qOPPppun2nTprn6Xo1r+R0oXbq0jDHavXt3mln+//0IyX9+9/9t//79SkhIsOK7DwC4OtzDDiBHa9OmjY4cOaJZs2a5tb/99tuue1c9LSEhQT/99FOa2eyvRdu2bVWnTh29+uqrOnz4cJr1t99+u06dOqVNmza52i5duuQ2K3dWGT9+vNvrxYsXa/fu3WrXrp2rrWfPnjLGKCYmJt0zeFe6DPxKGjdurMDAQNfM96nOnz+vV155RX5+fq7Z0L2pU6dOcjqdGj16tM6ePZtmfUJCQprHcP1bjx49JP31FIH0rqBI7/vRu3dvnT9/XnPnztWHH36oBg0apLn1oWfPnjpy5EiGfxTKzM8ob968OnnyZJqffXq/ExEREYqIiNDx48eve3uZ9dRTTyk0NFTDhw/Xli1b0qxfunSpXnvtNd1+++26//77r2rMa/kdSJ0t/uWXX3brs2PHjjSPeSxYsKDq1KmjL774Qjt27HBbl3oVxdX+UQEA4H2cYQeQoz399NOaP3++HnroIW3ZskWVKlXS1q1btWjRIt16662XvYT8n7766it99dVXkuT6B/3UqVNdk2j9c/KzxYsXq2/fvho1apTb87qv1YQJE1S3bl39+OOPcjqdbuseeughvfLKK2rfvr0GDRokf39/LVy48Kr353qFhYVp0aJFOnDggKKjo12PdStcuLDGjBnj6pf6GKu33npLO3bsUOvWrRUWFqb9+/drw4YN+uWXXzJ1NUC+fPn0yiuv6OGHH1b16tXVt29f5cqVS3PmzNGOHTv04osvqnjx4p7Y5UwpWrSo3nrrLT3wwAMqV66cevXqpRIlSujIkSP6/vvvtWTJEv3www+XfaxW9erVNWbMGI0aNUqVK1dW586dFRkZqfj4eG3dulVffPFFmgkKW7ZsqdDQUMXExCgxMTHdx5UNGjRIK1eu1DPPPKO1a9eqYcOGCg4O1h9//KHVq1crICAg3eeFX40aNWros88+0+OPP66aNWvK19dXrVu31gsvvKAVK1aoVatWrnvWly5dqm3btrk9t/5Gi4yM1JIlS9S2bVvVrl1bPXr0UM2aNZWSkqI1a9Zo4cKFKlGihD755JOrvnXjWn4HmjdvrhYtWmj27Nk6fvy467Fub775pqpUqaKtW7e6XbXw+uuv6+6771b9+vX12GOPqUiRIlqxYoU++eQTNW3aVF26dMmSzwkA4HkU7ABytNDQUH399dd66qmnNHfuXL3//vuqVauWvvzyS/Xr1y/NLNgZ+fLLL90KUkl65ZVXXP+/R48eHr/0u06dOmrTpk26s52XKlVKS5Ys0fDhw/Xcc88pNDRUPXv2VL9+/VS2bFmP5vinwMBAffnll3riiSf0zDPPyBijZs2a6ZVXXnF7BrskTZ8+XQ0aNNC0adMUGxur5ORkhYeH684771RsbGyms/Tv318RERGaOHGinn/+eRljFBUVpblz57qeCW6Dvn376vbbb9fLL7+sd955RydPnlRYWJjKlCmj559//rKTkqUaOXKkqlatqtdff12TJ0/WmTNnVKhQIUVFRaV7D7q/v7+6deumqVOnKm/evOmecc2VK5c+//xzvfnmm5o9e7ZGjRol6a/i9a677rrsM8mvZPDgwdqzZ4/mz5+vN954Q8YY7d27V+3atVN8fLw+/PBDHTp0SAEBAbr11lv15ptv6qGHHrru7XlC3bp1tWvXLr388sv6/PPPtWDBAvn4+OjWW2/VqFGjNHjw4Gv+Hb+W34GFCxfqueee07x587Rq1SqVLVtW06ZN08aNG7V161a3WejvvPNObdy4USNHjtQ777yjU6dOqWTJkho9erSeeeYZj9/iAADIOg7DbCIAkMbFixdVsGBB1ahRw20GZgCwSatWrbRmzRolJiZmetI/AIB9+BMrgBwvvbPob775pk6ePJnmGccA4A3pHae2b9+uZcuWqWHDhhTrAHCT4gw7gByvQYMGKlGihO688045HA59++23+uCDD3T77bdr69atyps3r7cjAsjhYmJitH37dt1zzz3Kly+ffvjhB7377ruSpPXr1+uOO+7wckIAQFagYAeQ473yyiuaPXu29u3bp7NnzyoiIkKtWrXS6NGj0zxnGgC8YenSpRo/frx++OEHnTx5Uvny5VO9evU0atQoinUAuIlRsAMAAAAAYCHuYQcAAAAAwEIU7AAAAAAAWIiCHQAAAAAAC/l5O0B2FR8f7+0IAAAAAHKYiIgIb0fwiHx+ZTw21smLuz02lm0o2DNh7OquXtv2yIYLvJ7BlhxksCuHDRlsyZGawZv/YU394yI/Dzsy/DNHTv9e2PA5SHZ9FrZ8N/ks7MhBBrty2JDhnzmQc3BJPAAAAAAAFqJgBwAAAADAQhTsAAAAAABYiIIdAAAAAAALUbADAAAAAGAhCnYAAAAAACxEwQ4AAAAAgIWyXcE+c+ZMORwObdmyxdtRAAAAAADIMtmuYAcAAAAAICegYAcAAAAAwELZvmDfsmWLunbtqpIlSyp37twqWbKkunXrpt9//92tX+ql9GvWrNEjjzyisLAwhYaGqkOHDjpw4ICX0gMAAAAAkL5sX7Dv27dPZcqU0eTJk7V8+XJNmDBB8fHxql69uo4ePZqm/wMPPKBcuXJp3rx5mjhxotauXasePXp4ITkAAAAAABnz83aAzOrYsaM6duzoep2SkqJWrVqpcOHCmjdvnh5//HG3/s2aNdPrr7/uen38+HE9/fTTOnjwoMLDw29YbgAAAAAALifbn2E/ffq0hg0bpltvvVV+fn7y8/NT3rx5debMGf34449p+rdp08btdaVKlSQpzSX0AAAAAAB4U7Y/w969e3etXr1azz33nKpXr67g4GA5HA61aNFC586dS9M/NDTU7bXT6ZSkdPumSkpKUlJSUpo2AAAAAACySrYu2BMSEvTZZ59p1KhReuaZZ1ztSUlJOn78uMe2ExsbqzFjxri1DRkyRKrisU0AAAAAAOAmW18S73A4ZIxxnSVP9d577yklJcVj24mJiVFCQoLbMnDgQI+NDwAAAADAv2XbM+wOh0PBwcG6++679dJLLyksLEwlS5bUunXrFBcXp3z58nlsW06nM80fBc6cOeOx8QEAAAAA+Ldsd4b97Nmzkv6+93zevHlq0KCBnn76aXXo0EFbtmzRypUrFRIS4s2YAAAAAABkSrY7w7579275+PioRIkSkqQiRYpo4cKFafrt27fP7XWfPn3Up0+fNP2io6NljMmKqAAAAAAAXLdsU7Bv3bpVmzdv1vTp09WmTRsFBQV5OxIAAAAAAFkm2xTsHTt2VEJCgtq0aaPXX3/d23EAAAAAAMhS2aZg37t3r7cjAAAAAABww2S7SecAAAAAAMgJKNgBAAAAALAQBTsAAAAAABaiYAcAAAAAwEIU7AAAAAAAWIiCHQAAAAAAC1GwAwAAAABgIYcxxng7RHYUHx/v7QgAAAAAcpiIiAhvR/CIfH5lPDbWyYu7PTaWbTjDDgAAAACAhfy8HSA7G7u6q9e2PbLhAq9nsCUHGezKYUOGf+bw5l+hU6/E4edhRw4bMtiSgwx25bAhgy05bMhgSw4y2JXDhgz/zIGcgzPsAAAAAABYiIIdAAAAAAALUbADAAAAAGAhCnYAAAAAACxEwQ4AAAAAgIUo2AEAAAAAsBAFOwAAAAAAFrK+YJ85c6YcDke6y5NPPnnV4/Tp00d58+bNwqQAAAAAAHiOn7cDXK0ZM2aobNmybm2RkZFeSgMAAAAAQNay/gx7qqioKNWsWdNtKV68uLdjAQAAAACyka+++kqtW7dWZGSkHA6HlixZ4lp34cIFDRs2TBUrVlRgYKAiIyPVq1cvHThwwG2MpKQkDRw4UGFhYQoMDFSbNm20f/9+tz4nTpxQz549FRISopCQEPXs2VMnT568pqzZpmC/nA8++EC1atVSYGCg8ubNq6ZNm2r79u3p9t21a5caNmyowMBAFSxYUAMGDNDZs2dvcGIAAAAAgDecOXNGd9xxh6ZOnZpm3dmzZ7Vt2zY999xz2rZtmxYtWqSff/5Zbdq0ces3ePBgLV68WAsWLNA333yj06dPq1WrVkpJSXH16d69u3bs2KFly5Zp2bJl2rFjh3r27HlNWbPNJfEpKSm6ePGiW5ufn5/GjRunZ599Vn379tWzzz6r5ORkvfTSS6pXr542bdqk8uXLu/pfuHBBLVq0UP/+/fXMM89o/fr1euGFF/T777/r008/vdG7BAAAAAC4wZo3b67mzZunuy4kJEQrV650a5syZYruuusu/fHHHypevLgSEhIUFxen2bNnq1GjRpKkOXPmqFixYlq1apWaNm2qH3/8UcuWLdPGjRtVo0YNSdK7776rWrVqaffu3SpTpsxVZc02BXvNmjXTtP3xxx8aNWqUBgwYoNdff93V3rhxY912220aM2aMPvjgA1d7cnKyhg4dqscff9zVL1euXBoxYoS+/fZb1alTJ+t3BAAAAADgMUlJSUpKSnJrczqdcjqdHhk/ISFBDodD+fLlkyRt3bpVFy5cUJMmTVx9IiMjFRUVpfXr16tp06basGGDQkJCXMW69FdNGxISovXr1191wZ5tLol///33tXnzZrdl+fLlunjxonr16qWLFy+6loCAANWvX19r165NM859993n9rp79+6SpDVr1tyI3QAAAAAAeFBsbKzrPvHUJTY21iNjnz9/Xs8884y6d++u4OBgSdLBgwfl7++v/Pnzu/UtXLiwDh486OpTqFChNOMVKlTI1edqZJsz7OXKlVO1atXc2pYvXy5Jql69errv8fFx/3uEn5+fQkND3drCw8MlSceOHctw2+n9xebfrwEAAAAAN15MTIyGDBni1uaJs+sXLlxQ165ddenSJb355ptX7G+MkcPhcL3+5//PqM+VZJuCPT1hYWGSpIULF6pEiRJX7H/x4kUdO3bMrWhP/evGvwv5f4qNjdWYMWPc2oYMGSJVuZ7UAAAAAABP8eTl76kuXLigzp07a+/evfryyy9dZ9elv076Jicn68SJE25n2Q8fPqzatWu7+hw6dCjNuEeOHFHhwoWvOke2uSQ+PU2bNpWfn59+/fVXVatWLd3l3+bOnev2et68eZKk6OjoDLcTExOjhIQEt2XgwIEe3RcAAAAAgPelFut79uzRqlWr0pzcrVq1qnLlyuU2OV18fLx27tzpKthr1aqlhIQEbdq0ydXnu+++U0JCgqvP1cjWZ9hLliypsWPHasSIEfrtt9/UrFkz5c+fX4cOHdKmTZsUGBjodmbc399fr7zyik6fPq3q1au7Zolv3ry56tatm+F20vuLzZkzZ7JsvwAAAAAAWeP06dP65ZdfXK/37t2rHTt2qECBAoqMjFTHjh21bds2ffbZZ0pJSXFdlV2gQAH5+/srJCRE999/v4YOHarQ0FAVKFBATz75pCpWrOiaNb5c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",
272
+ "text/plain": [
273
+ "<Figure size 1100x500 with 2 Axes>"
274
+ ]
275
+ },
276
+ "metadata": {},
277
+ "output_type": "display_data"
278
+ }
279
+ ],
280
+ "source": [
281
+ "custom_colors = ['#68A33E','#FFFF82','#FB9E60','#A10702', '#0F0326'] # Add your desired hex colors\n",
282
+ "\n",
283
+ "#custom_cmap = ListedColormap(custom_colors)\n",
284
+ "\n",
285
+ "##################################################\n",
286
+ "##### 3. Monthly/seasonal fire frequency #####\n",
287
+ "df_freq_mon = df_OR.groupby(['MONTH', 'FIRE_YEAR']).size().unstack()\n",
288
+ "# plot monthly frequency of fire events\n",
289
+ "counter_fig = 1\n",
290
+ "mon_ticks = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']\n",
291
+ "plt.figure(figsize=[11,5])\n",
292
+ "sns.heatmap(df_freq_mon, cmap=custom_colors, linewidth=.2, linecolor=[.9,.9,.9])\n",
293
+ "plt.yticks(np.arange(0.5,12.5), labels=mon_ticks, rotation=0, fontsize=12)\n",
294
+ "plt.xticks(fontsize=12);\n",
295
+ "plt.xlabel('')\n",
296
+ "plt.ylabel('Month', fontsize=13)\n",
297
+ "plt.title(f'Fig {counter_fig}. Number of fire events in Oregon', fontsize=13)\n",
298
+ "plt.tight_layout()\n",
299
+ "#plt.savefig(f'../Figures/Fig{counter_fig}.png', format='png', dpi=200)\n"
300
+ ]
301
+ }
302
+ ],
303
+ "metadata": {
304
+ "kernelspec": {
305
+ "display_name": "Python 3 (ipykernel)",
306
+ "language": "python",
307
+ "name": "python3"
308
+ },
309
+ "language_info": {
310
+ "codemirror_mode": {
311
+ "name": "ipython",
312
+ "version": 3
313
+ },
314
+ "file_extension": ".py",
315
+ "mimetype": "text/x-python",
316
+ "name": "python",
317
+ "nbconvert_exporter": "python",
318
+ "pygments_lexer": "ipython3",
319
+ "version": "3.10.12"
320
+ }
321
+ },
322
+ "nbformat": 4,
323
+ "nbformat_minor": 5
324
+ }
requirements.txt CHANGED
@@ -1,6 +1,17 @@
1
- panel
2
- jupyter
3
- transformers
4
- numpy
5
- torch
6
- aiohttp
 
 
 
 
 
 
 
 
 
 
 
 
1
+ panel==1.2.1
2
+ geopandas==0.13.2
3
+ folium==0.14.0
4
+ altair==5.1.0
5
+ notebook==6.5.4
6
+ vega==4.0.0
7
+ param==1.13.0
8
+ holoviews==1.17.0
9
+ hvplot==0.9.0
10
+ bokeh==3.2.1
11
+ jdcal==1.4.1
12
+ matplotlib==3.7.2
13
+ numpy==1.24.4
14
+ pandas==1.5.3
15
+ seaborn==0.12.2
16
+ seaborn-base==0.12.2
17
+ sqlite==3.43.0