top of page
Buscar

Degradação da Amazônia & Análise de Dados com Python.

Foto do escritor: Rafael MarianiRafael Mariani

Atualizado: 20 de set. de 2021

A floresta tropical mais importante do mundo está sendo degradada? O que os dados nos dizem?






Contexto

A floresta Amazônica representa um terço das florestas tropicais do mundo, desempenhando papel imprescindível na manutenção de serviços ecológicos, tais como, garantir a qualidade do solo, dos estoques de água doce e proteger a biodiversidade. Processos como a evaporação e a transpiração de florestas também ajudam a manter o equilíbrio climático global.


Essa floresta está inserida na Amazônia Legal: uma área de 5.217.423 km², que corresponde a 61% do território brasileiro e a totalidade dos estados do Acre, Amapá, Amazonas, Mato Grosso, Pará, Rondônia, Roraima e Tocantins e parte do Estado do Maranhão. A Amazônia Legal abriga 424 áreas indígenas (115.344.445 hectares) dos quais os povos dependem da floresta para perpetuarem seu modo de vida e sua cultura.


A floresta apresenta feridas profundas relacionada à queimadas. Os principais motivos da degradação são:

  1. Incêndios ligada ao desmatamento

  2. Incêndios em áreas de agricultura que já existem

  3. Incêndios florestais naturais ou "acidentais"



Objetivo

Orientado a dados, iremos avaliar como a Amazônia Legal está sendo degradada por queimadas nas últimas décadas.



Dataset


1) Banco de Dados de Queimadas da Amazônia Legal:


Fonte: INPE

File: https://www.kaggle.com/mbogernetto/is-brazilian-amazon-degradation-increasing

Shape:

Cobertura Temporal: 1999 - 2019

Frequência de dados: mensal


2) Degradação da Amazônia Legal


Fonte: INPE - PRODES (Programa de Monitoramento da Floresta Amazônica Brasileira por Satélite)

File: https://www.kaggle.com/mbogernetto/is-brazilian-amazon-degradation-increasing

Shape:

Cobertura Temporal: 2004 - 2019

Frequência de dados: mensal





Vamos lá!


Queimadas na Amazônia Legal entre 1999 a 2019



Importando bibliotecas

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns


Lendo o Dataset

path='C:/PYTHON/RAFAEL_MARIANI/OPEN_DATA/'
filename = 'inpe_brazilian_amazon_fires_1999_2019.csv'
data_path = path + filename #diretório dataset
df_fire = pd.read_csv(data_path)


Processamento e análise de dados

df_fire.info()
df_fire.columns
df_fire.index
df_fire.head()
df_fire.isnull().sum() #identificando se existe nans


### calculando o total de queimadas por ano ########
    j = df_fire.groupby('year').sum()
    j['year']= np.arange(1999,2020)
    j=j.drop(['latitude','longitude','month'], axis=1)
    fire_ano=j
    
    
 
#Plotando   
fig, ax = plt.subplots(figsize=(14,5))
sns.lineplot(data=df_fire,x='year',y ='firespots', color="firebrick",estimator='sum',ci=None, lw=2)
ax.fill_between(fire_ano['year'],fire_ano['firespots'], alpha = 0.2, where = (fire_ano['firespots'] > 0), color = 'red')     
start = fire_ano.loc[1999,'year']
end = fire_ano.loc[2019,'year']
ax.xaxis.set_ticks(np.arange(start, end+1, 1))
ax.tick_params(axis='x', rotation=45)

ax.set_title("Total Fire Outbreaks per Year - Amazônia Legal", size="x-large",fontweight='bold')
ax.set_xlabel('Year', size="large",fontweight='bold')
ax.set_ylabel('Total Fire Outbreaks', size="large",fontweight='bold')
ax.set_ylim(ymin=0,ymax=280000)
fig.tight_layout()


#Salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig1.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)


Insights

  • Todo ano, desde 1999, a Amazônia Legal foi impactada por mais de 50 mil focos de incêndios

  • Entre 2002 e 2007 foi o período de maior quantidade de queimadas, atingindo o máximo de mais de 250 mil focos de incêndio em 2002.





###### calculando o total mensal das queimadas  ####

j = df_fire.groupby('month').sum()
j['month']= list(['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'])
j=j.drop(['latitude','longitude','year'], axis=1)
fire_mes=j

#plt.bar(fire_mes['month'],fire_mes['firespots']) #desnecessário


#### calculando a climatologia geral mensal das queimadas ##
j = df_fire
j=j.drop(['latitude','longitude','year'],axis=1)

j=j.groupby('month').describe()
j['month']= list(['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'])
j.columns=['count','mean','std','min','25%','50%','75%','max','month']

#Plotando

fig, ax = plt.subplots(figsize=(14,5))
sns.lineplot(data=df_fire, x='month', y='firespots',color='red')
ax.set_xlabel('Month',size="large", fontweight='bold')
ax.set_ylabel("Total number of fire outbreaks", size="large", fontweight='bold')
ax.set_xticks(np.arange(1,13))
ax.set_xticklabels(j['month'], rotation=30)
ax.set_title('Firespots Monthly Climatology (1999-2019) - Amazônia Legal',size="large",fontweight='bold')
fig.tight_layout()  #otimizar o ajuste dos gráficos na página

#Salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig2.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)



Insights

  • A maior quantidade de queimadas ocorrem tipicamente no mês de setembro, com valor médio de aproximadamente 4 mil focos de incêndio

  • As queimadas aumentam significativamente a partir do mês de julho




#### Calculando a climatologia mensal das queimadas por estado #####

month= list(['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'])
#criando serie dos estados com maiores queimadas
legal_amazon = (
   df_fire[['state','firespots']].groupby('state',as_index=False)
    .sum()
    .sort_values('firespots',ascending=False)['state']
     .values
    )



fig, ax = plt.subplots(3, 3, figsize=(14,8), sharex=True)
sns.set_style("whitegrid")
ax = ax.flat

i=0 #contador inicial de subplots
for k in legal_amazon: # legal_amozon é uma lista dos nomes dos estados
   sns.lineplot(data=df_fire[df_fire['state'] == k], x='month',y ='firespots', ax=ax[i],color="firebrick")  
   #data2=df_fire[df_fire['state'] == k].groupby('year', as_index = False).sum().drop(['month','latitude','longitude'],axis=1)
   #ax[i].fill_between(data2['year'],data2['firespots'],alpha = 0.2, where = (data2['firespots'] > 0), color = 'red')
   ax[i].set_title(k, size='medium',fontweight='bold')
   ax[i].set_xticks(np.arange(1,13))
   ax[i].set_xticklabels(month, rotation=30,fontsize='medium')
   ax[i].set_xlabel("Month", size='large',fontweight='bold')
   ax[i].set_ylim(ymin=0, ymax=17000)
   ax[i].grid(False)
   
   
   

   if i==0 or i==3 or i==6:
        ax[i].set_ylabel('Firespots', size='large',fontweight='bold')
   else:
        ax[i].set_ylabel("")
    
   i += 1 #equivalente a  i = i + 1
#fig.subplots_adjust(wspace=0.16, hspace=0.12)  
fig.tight_layout()  #otimizar o ajuste dos gráficos na página


#salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig3.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)





#Plotando Quantidade Total de Queimadas por Estado

#calculando o somatório por estado e ordenando por ordem crescente
fire_estado = df_fire.groupby('state').sum().sort_values(by = ['firespots'],ascending = False)
fire_estado = fire_estado.drop(['year','longitude','latitude','month'],axis=1)
fire_estado['state']= list(fire_estado.index)

                                          
#Plotando
fig, ax= plt.subplots(figsize=(14,7))
sns.barplot(data = fire_estado, x='firespots', y='state', palette="rocket")

ax.set_xlabel('Total number of fire outbreaks',size="large", fontweight='bold')
ax.set_title('Amazonia Legal Ranking of Firespots (1999-2019)', size="large",fontweight='bold')
ax.set_ylabel('',size="large", fontweight='bold')
fig.tight_layout()  #otimizar o ajuste dos gráficos na página

#salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig4.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)




Insights

  • O estado de Pará foi o lider em maior quantidade de queimadas da Amazônia Legal, atingindo a marca de mais de 800 mil focos de incêndio entre 1999 e 2019.

  • Top 5 estados com maiores focos de incêndio: Pará, Mato Grosso, Rondônia, Amazonas e Maranhão



#Plotando Total de Queimadas anuais por Estado

fig, ax = plt.subplots(3, 3, figsize=(12,8), sharex=True)
sns.set_style("whitegrid")
ax = ax.flat



i=0
for k in legal_amazon:
   sns.lineplot(data=df_fire[df_fire['state'] == k], x='year',y ='firespots', estimator='sum', ax=ax[i], color='firebrick', ci=None)  
   data2=df_fire[df_fire['state'] == k].groupby('year', as_index = False).sum().drop(['month','latitude','longitude'],axis=1)
   ax[i].fill_between(data2['year'],data2['firespots'],alpha = 0.2, where = (data2['firespots'] > 0), color = 'red')
   ax[i].set_title(k, size='medium',fontweight ='bold')
   ax[i].set_xlabel("Year", size='large',fontweight='bold')
   ax[i].set_xticks([2000, 2005, 2010, 2015, 2020])
   ax[i].grid(False)
   ax[i].set_xticklabels([2000, 2005, 2010, 2015, 2020], fontsize='large')
   ax[i].set_ylim(ymin=0, ymax=110000)

   if i==0 or i==3 or i==6:
        ax[i].set_ylabel('Firespots', size='large',fontweight='bold')
   else:
        ax[i].set_ylabel("")
    
   i += 1
#fig.subplots_adjust(wspace=0.16, hspace=0.12)  
fig.tight_layout()  #otimizar o ajuste dos gráficos na página


#salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig5.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)




Degradação da Amazônia Legal entre 2004 a 2019




#importando datasets
path='C:/PYTHON/RAFAEL_MARIANI/OPEN_DATA/'
filename = 'def_area_2004_2019.csv'
data_path = path + filename #diretório dataset
#path_fig = 'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
df_desf = pd.read_csv(data_path)
                    
                       
df_desf.info()
df_desf.shape
df_desf.head()
df_desf.columns
df_desf.index




#Degradação anual 2004 - 2019 AMZ LEGAL
fig, ax = plt.subplots(figsize=(12,5))
sns.lineplot(data=df_desf,x='Ano/Estados', y = 'AMZ LEGAL',estimator='sum',ci=None,color='green')
ax.fill_between(df_desf['Ano/Estados'],df_desf['AMZ LEGAL'],alpha = 0.2, where = (df_desf['AMZ LEGAL'] > 0), color = 'green',lw=2)


ax.set_xlabel('Year',size="large", fontweight='bold')
ax.set_ylabel('Km²', size="large", fontweight='bold')
ax.set_xticks(np.arange(2004,2020))
ax.set_xticklabels(df_desf['Ano/Estados'], rotation=30)
ax.set_title('Amazonia Legal Anually Degradation (2004-2019)' ,size="large",fontweight='bold')
ax.grid(False)
ax.set_ylim(ymin=0, ymax=30000)

fig.tight_layout()  #otimizar o ajuste dos gráficos na página


#salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig6.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)






#Degradação anual 2004 - 2019 por estado

#criando serie dos estados com maiores queimadas


fig, ax = plt.subplots(3, 3, figsize=(12,8), sharex=True)
sns.set_style("whitegrid")
ax = ax.flat

legal_amazon_abrev=['PA','MT','RO','AM','MA','AC','RR','AM','TO']

i=0
for k in legal_amazon_abrev:
   sns.lineplot(data = df_desf, x ='Ano/Estados', y = k, estimator='sum', ax=ax[i], color='green', ci=None)  
   ax[i].fill_between(df_desf['Ano/Estados'],df_desf[k],alpha = 0.2, where = (df_desf[k] > 0), color = 'green')
   ax[i].set_title(k, size='medium',fontweight = 'bold')
   ax[i].set_xlabel("Year", size='large',fontweight = 'bold')
   ax[i].set_xticks(np.arange(2004,2021,3))
   ax[i].grid(False)
   ax[i].set_xticklabels([2004,2007,2010,2013,2016,2019],size='large')
   ax[i].set_ylim(ymin=0, ymax=12000)

   if i==0 or i==3 or i==6:
        ax[i].set_ylabel('Km²', size='large',fontweight = 'bold')
   else:
        ax[i].set_ylabel("")
    
   i += 1
#fig.subplots_adjust(wspace=0.16, hspace=0.12)  
fig.tight_layout()  #otimizar o ajuste dos gráficos na página


#salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig7.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)






######### Cruzando os dados de Queimadas x Degradação ########

# AMZ Legal x Total de queimadas Anual

#criando um dataframe
ano_fire_desf = fire_ano.loc[2004:,['year','firespots']]
#ano_fire_desf.drop('desforation',axis=1, inplace = True)
#ano_fire_desf['desforation'] = df_desf['AMZ LEGAL']
ano_fire_desf.reset_index(drop=True, inplace=True)
#ano_fire_desf['desforation'] = df_desf['AMZ LEGAL']
#ano_fire_desf.drop('desforation',axis=1, inplace = True)
ano_fire_desf['AMZ LEGAL'] = df_desf['AMZ LEGAL']

#j = df_desf['AMZ LEGAL']


#plotando yy amz legal x queimadas 2004 a 2019

fig, ax = plt.subplots(figsize=(12,8), dpi=150)
sns.set_style("whitegrid")

ax.bar(ano_fire_desf['year'], ano_fire_desf['AMZ LEGAL'], color='green', alpha=0.9, label='Deforested Area')
plt.grid(False)
ax.legend(loc="upper left")
ax.set_ylabel("Total deforested area (km²)", size="large",fontweight='bold')
ax.set_xlabel("Year", size="large",fontweight='bold')
ax.set_title("Deforested Area Amazonia Legal Vs Fire Outbreaks Amount",fontweight='bold')
ax.set_ylim(ymin = 0, ymax = 35000)

#adicionando o eixo yy ### MUITO BOM!
ax2 = ax.twinx()
sns.lineplot(ano_fire_desf['year'],ano_fire_desf['firespots'], color="red",  ax=ax2, label='Fire Outbreaks', lw=2.2)
ax2.set_xticks(ticks=list(range(2003, 2020)))
ax2.set_xlim(2003.5, 2019.5)
ax2.set_ylabel("Total fire outbreaks", size="large",fontweight='bold')
plt.grid(False)
ax2.set_ylim(ymin = 0, ymax = 250000)
ax2.legend();


#salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig8.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)





####calculando a correlação entre AMZ Legal x QUeimadas
ano_fire_desf[['AMZ LEGAL','firespots']].corr()


# Show the results of a linear regression within each dataset

fig, ax = plt.subplots(figsize=(12,8), dpi=150)
sns.set_style("whitegrid")
sns.regplot(data=ano_fire_desf, x="AMZ LEGAL", y="firespots",)
ax.set_xlabel("Total deforested Amazon Legal area (km²)", size="large",fontweight='bold')
ax.set_ylabel("Total Firespots", size="large",fontweight='bold')
ax.set_title("Deforested Area Amazonia Legal Vs Fire Outbreaks Amount",fontweight='bold')
plt.grid(False)
ax.set_xlim(xmin = 4000, xmax = 30000)
plt.text(25000, 200000, 'r = 0.83', fontweight='bold')

#salvando figura
path_fig = r'C:\Users\Rafael Mariani\Análise Exploratória de Dados\AED - Amazonia Degradação'
plt.savefig(path_fig + '\Fig9.png', dpi = 150, facecolor='w', edgecolor='w', orientation='portrait',)
print('Figura salva em ' + path_fig)








27 visualizações0 comentário

Posts recentes

Ver tudo

Comments


logo rm.png

© 2021 por Rafael Mariani. Criado orgulhosamente com Wix.com

bottom of page