Skip to content

Commit 668ceca

Browse files
committed
Arrumar exemplo queimadas e SVD
1 parent 8b8c177 commit 668ceca

File tree

2 files changed

+72
-10
lines changed

2 files changed

+72
-10
lines changed

tutorial/notebooks/04-Exemplo_SVD.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,8 @@ U.shape, s.shape, Vt.shape
160160
Note que `s` tem um shape diferente: só tem uma dimensão. Precisamos ter isso em mente pois operações voltadas para matrizes 2D podem não funcionar imediatamente. Por exemplo,
161161

162162
```{code-cell} ipython3
163-
---
164-
tags: [raises-exception]
165-
---
163+
:tags: [raises-exception]
164+
166165
s @ Vt
167166
```
168167

tutorial/notebooks/05-Exemplo_Queimadas.md

Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -253,26 +253,89 @@ pv = df[df['Municipio'] == "PORTO VELHO"]
253253
pv
254254
```
255255

256+
## O objeto pd.Series
257+
256258
```{code-cell} ipython3
257259
riscofogo = pv['RiscoFogo']
258260
diasemchuva = pv['DiaSemChuva']
259261
```
260262

261263
```{code-cell} ipython3
262-
import numpy as np
263-
pv = pv.replace(-999, np.nan)
264+
type(diasemchuva)
265+
```
266+
267+
```{code-cell} ipython3
268+
diasemchuva
269+
```
270+
271+
O objeto `Series` é uma array unidimensional com rótulos, capaz de conter qualquer tipo de dados:
272+
273+
```{code-cell} ipython3
274+
diasemchuva[0]
275+
```
276+
277+
```{code-cell} ipython3
278+
diasemchuva[332]
279+
```
280+
281+
```{code-cell} ipython3
282+
riscofogo.mean()
283+
```
284+
285+
```{code-cell} ipython3
286+
diasemchuva.max()
287+
```
288+
289+
```{code-cell} ipython3
290+
pv[pv['DiaSemChuva'] == 88.0]
291+
```
292+
293+
---
294+
295+
+++
296+
297+
## Risco de fogo em função do tempo para Porto Velho, RO
298+
299+
```{code-cell} ipython3
300+
pv = pv[['DataHora', 'RiscoFogo', 'DiaSemChuva']].reset_index(drop=True)
301+
```
302+
303+
```{code-cell} ipython3
304+
pv
305+
```
306+
307+
Para cada grupo de entradas com o mesmo valor de `DataHora`, calcule a média dos valores de `RiscoFogo` e `DiaSemChuva`.
308+
309+
```{code-cell} ipython3
310+
agrupado = pv.groupby(['DataHora'], as_index=False)[["RiscoFogo", "DiaSemChuva"]].mean()
311+
```
312+
313+
```{code-cell} ipython3
314+
agrupado
315+
```
316+
317+
```{code-cell} ipython3
318+
pv[pv['DataHora']=='2024/08/22 01:52:00']
264319
```
265320

321+
Surpresa! 🤡
322+
266323
```{code-cell} ipython3
267-
agrupado = pv.groupby('DataHora').mean()
324+
pv = pv[pv['RiscoFogo']!=-999.0]
268325
```
269326

270327
```{code-cell} ipython3
328+
agrupado = pv.groupby(['DataHora'])[["RiscoFogo", "DiaSemChuva"]].mean()
271329
agrupado
272330
```
273331

332+
Veja https://pandas.pydata.org/docs/user_guide/groupby.html e https://pandas.pydata.org/docs/user_guide/10min.html#grouping.
333+
274334
```{code-cell} ipython3
275335
datas = list(agrupado.index)
336+
```
337+
338+
```{code-cell} ipython3
276339
datas = [item[0:10] for item in datas]
277340
datas
278341
len(datas)
@@ -282,8 +345,8 @@ len(datas)
282345
import matplotlib.pyplot as plt
283346
284347
fig, ax = plt.subplots(2, 1, figsize=(8, 6))
285-
ax[0].plot(agrupado['riscofogo'], 'r')
286-
ax[1].plot(agrupado['diasemchuva'], 'bo')
348+
ax[0].plot(agrupado['RiscoFogo'], 'r')
349+
ax[1].plot(agrupado['DiaSemChuva'], 'bo')
287350
288351
# Preparar rótulos da primeira imagem
289352
ax[0].set_xticks(range(len(datas))[::10]);
@@ -299,11 +362,11 @@ fig.tight_layout()
299362
```{code-cell} ipython3
300363
fig, ax = plt.subplots(figsize=(8, 4))
301364
302-
ax.plot(agrupado['riscofogo'], 'r')
365+
ax.plot(agrupado['RiscoFogo'], 'r')
303366
plt.draw()
304367
305368
ax2 = ax.twinx() # instantiate a second axes that shares the same x-axis
306-
ax2.plot(agrupado['diasemchuva'], 'bo')
369+
ax2.plot(agrupado['DiaSemChuva'], 'bo')
307370
308371
ax2.set_xticks(range(len(datas))[::10]);
309372
ax.set_xticklabels(datas[::10], rotation=30);

0 commit comments

Comments
 (0)