Assentamento/Calculos-de-Porcentagem.html

1.1 MiB
Raw Blame History

<html> <head> </head>

Cálculos da ocupação de áreas por indicadores específicos

Adenor Vicente Wendling

23/02/2021

knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2     ✓ purrr   0.3.4
## ✓ tibble  3.0.4     ✓ dplyr   1.0.2
## ✓ tidyr   1.1.2     ✓ stringr 1.4.0
## ✓ readr   1.4.0     ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(readr)

Introdução

O presente script (tutorial), tem como finalidade demonstrar um método para calcular os dados das imagens do projeto doAssentamento SL. Quero calcular: Porcentagem de APP Porcentagem de Mata Nativa Porcentagem de área para cada orientação

Calculo Porcentagem de cada altitude

Para esse cálculo, será utilizado a Camada Raster Altitude_SL, que já está com dados da área do Assentamento. Da mesma forma como está representado na camada, será calculado a porcentagem para 10 grupos de altitudes. Para realizar o cálculo, segue-se os seguintes passos: 1 - Na Caixa de ferramentas de processamento busco pelas opções, digitando “Report” na linha de busca. 2 - Seleciona-se o comando r.report. 3 - Na janela do será aberta (Imagem 1), seleciona-se o raster com o qual queremos realizar os calculos.

Imagem 1 - Janela r.report, para definição dos procedimentos de calculo

Ao clicar em ..., abre-se uma nova janela (Imagem 2), com as camadas rasters do projeto, onde deve ser selecionada a camada correspondente. No exemplo, foi selecionado o raster Altitude_SL.

Imagem 2 - Janela r.report, seleção da camada raster com os quais serão realizados os cálculos

As demais opções a serem selecionados aparecem na Imagem 1 e 3. Na opção unidades (figura 1) foi selecionado a opção me que calcula os dados em metros quadrados. Mas tem as opções de h para hectares, entre outras. Não opç~oes de comprimento e largura de págnina não é necessário alterar. Na opção Número de subfaixas fp para coletar estatísticas de é necessário selecionar o número de grupos a serem calculados. Para a altutude, como já mencionado acima, foram selecionados 10 grupos. No entanto, podem ser selecionados outros valores, de acordo com o interesse de cada projetista.
No final da janela, na última linha, é necessário (importante) selecionar o caminho e definir o nome do arquivo de saída dos dados, que será em arquivo do tipo txt.
Pronto. Estão definidas as especificações, e só resta clicar em executar, para rodar os cálculos.

Imagem 3 - Janela r.report, para definição das especificações dos cálculos e arquivo a ser gerado

O resultado será em formato .txt. que podem ser importados e manipulados aqui no R.

Alt_estatistica <- read_delim("data/Alt_estatistica.txt", "|", escape_double = FALSE, col_names = FALSE, 
    trim_ws = TRUE, skip = 4)
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   X1 = col_character(),
##   X2 = col_character(),
##   X3 = col_character(),
##   X4 = col_number(),
##   X5 = col_logical()
## )
## Warning: 2 parsing failures.
## row col  expected    actual                       file
##  11  -- 5 columns 3 columns 'data/Alt_estatistica.txt'
##  13  -- 5 columns 1 columns 'data/Alt_estatistica.txt'
#View(Alt_estatistica)

Porém, é necessário manipular o nome das colunas, para ser possível trabalhar com os dados.

Altitude_SL<-Alt_estatistica%>%
  filter(X3=="from  to . . . . . . . . . . . .")%>%
  select(X2,X4)%>%
  transmute(
    De_Ate=X2,
    Metro_Quad=X4,
    Ha=X4/10000, 
    Porcentagem=X4/ sum(X4) *100,
  )%>%
  tidyr::separate(De_Ate, into=c("De","Até"), sep="-", remove="TRUE" )%>%
 mutate(
        Alt_Menor = as.numeric(De),
        Alt_Maior = as.numeric(Até)
)
view(Altitude_SL)

A tabela com os dados

kable(Altitude_SL[ ,3:6 ], 
      format = "simple", 
      digits = 1,
      padding = 2,
      caption = "1 - Quantidade de metros quadrados de área de cada altitude, no assentamento Sâo Lourenço")
1 - Quantidade de metros quadrados de área de cada altitude, no assentamento Sâo Lourenço
Metro_Quad Ha Porcentagem Alt_Menor
195401 19.5 1.3 1198.5
600729 60.1 3.9 1067.8
837927 83.8 5.5 1184.0
1038504 103.9 6.8 1082.3
1720259 172.0 11.3 1169.4
1721960 172.2 11.3 1096.8
2181861 218.2 14.3 1111.3
2261305 226.1 14.9 1140.4
2280130 228.0 15.0 1154.9
2377347 237.7 15.6 1125.9

Os dados são os seguintes: A menor área está em altitude de metros acima do nível do mar (ANM) com 19.5401 hectares de área, ou seja, 1.2842298 porcento da área total. A maior área está em altitude de - ANM, com 237.7347ha de área, ou seja, 15.624587 porcento da área total.

Grafico1 <-ggplot(Altitude_SL, aes(x=Alt_Menor, y=Porcentagem))+
geom_col(col="red",fill="blue" )+
  theme_bw()+
  theme(axis.text = element_text( 
    size=12, 
    face=3)
  )+
  xlab("Altitude (m)")

Grafico1 +ggtitle("Gráfico 1: Distribuição das terras de acordo com a altitude, no Assentamento São Lourenço")

Dados de Orientação

Os dados de orientação mostram para qual quadrante a área está inclinada. Será usado o arquivo raster Orientacao_SL, e a saída em txt gerada pelo comando r.report do Qgis.
> Para a importação correta deste arquivo, deletei as linhas do cabeçalho em editor de texto.

Orient_NEst <- read_delim("data/Orient_NEst.txt", 
    "|", escape_double = FALSE, col_names = FALSE, 
    trim_ws = TRUE, skip = 1)
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   X1 = col_character(),
##   X2 = col_character(),
##   X3 = col_character(),
##   X4 = col_number(),
##   X5 = col_logical()
## )
## Warning: 4 parsing failures.
## row col  expected    actual                   file
##   9  -- 5 columns 3 columns 'data/Orient_NEst.txt'
##  10  -- 5 columns 4 columns 'data/Orient_NEst.txt'
##  11  -- 5 columns 1 columns 'data/Orient_NEst.txt'
##  12  -- 5 columns 1 columns 'data/Orient_NEst.txt'
View(Orient_NEst)

Porém, é necessário manipular o nome das colunas, para ser possível trabalhar com os dados.

Altitude_SL<-Alt_estatistica%>%
  filter(X3=="from  to . . . . . . . . . . . .")%>%
  select(X2,X4)%>%
  transmute(
    De_Ate=X2,
    Metro_Quad=X4,
    Ha=X4/10000, 
    Porcentagem=X4/15215421*100,
  )%>%
  tidyr::separate(De_Ate, into=c("De","Até"), sep="-", remove="TRUE" )%>%
 mutate(
        Alt_Menor = as.numeric(De),
        Alt_Maior = as.numeric(Até)
)
view(Altitude_SL)

A tabela com os dados

kable(Altitude_SL[ ,3:6 ], 
      format = "simple", 
      digits = 1,
      padding = 2,
      caption = "1 - Quantidade de metros quadrados de área de cada altitude, no assentamento Sâo Lourenço")
1 - Quantidade de metros quadrados de área de cada altitude, no assentamento Sâo Lourenço
Metro_Quad Ha Porcentagem Alt_Menor
195401 19.5 1.3 1198.5
600729 60.1 3.9 1067.8
837927 83.8 5.5 1184.0
1038504 103.9 6.8 1082.3
1720259 172.0 11.3 1169.4
1721960 172.2 11.3 1096.8
2181861 218.2 14.3 1111.3
2261305 226.1 14.9 1140.4
2280130 228.0 15.0 1154.9
2377347 237.7 15.6 1125.9

Os dados são os seguintes: A menor área está em altitude de metros acima do nível do mar (ANM) com 19.5401 hectares de área, ou seja, 1.28423 porcento da área total. A maior área está em altitude de - ANM, com 237.7347ha de área, ou seja, 15.624589 porcento da área total.

Grafico1 <-ggplot(Altitude_SL, aes(x=Alt_Menor, y=Porcentagem))+
geom_col(col="red",fill="blue" )+
  theme_bw()+
  theme(axis.text = element_text( 
    size=12, 
    face=3)
  )+
  xlab("Altitude (m)")

Grafico1 +ggtitle("Distribuição das terras de acordo com a altitude, no Assentamento São Lourenço")

Dados de Orientação

Os dados de orientação mostram para qual quadrante a área está inclinada. Será usado o arquivo raster Orientacao_SL, e a saída em txt gerada pelo comando r.report do Qgis.

Orient_NEst <- read_delim("data/Orient_NEst.txt", 
    "|", escape_double = FALSE, col_names = FALSE, 
    trim_ws = TRUE, skip = 1)
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   X1 = col_character(),
##   X2 = col_character(),
##   X3 = col_character(),
##   X4 = col_number(),
##   X5 = col_logical()
## )
## Warning: 4 parsing failures.
## row col  expected    actual                   file
##   9  -- 5 columns 3 columns 'data/Orient_NEst.txt'
##  10  -- 5 columns 4 columns 'data/Orient_NEst.txt'
##  11  -- 5 columns 1 columns 'data/Orient_NEst.txt'
##  12  -- 5 columns 1 columns 'data/Orient_NEst.txt'
#View(Orient_NEst)
Orient_NEst<-Orient_NEst%>%
  filter(X3=="from  to . . . . . . . . . . . . .")%>%
  select(X2,X4)%>%
  transmute(
    De_Ate=X2,
    Metro_Quad=X4,
    Ha=X4/10000, 
    Porcentagem=X4/15163779*100,
  )%>%
  tidyr::separate(De_Ate, into=c("De","Até"), sep="-", remove="TRUE" )%>%
 mutate(
      Orient_Menor = as.numeric(De),
      Orient_Maior = as.numeric(Até)
)%>%
  arrange(Orient_Menor)

str(Orient_NEst)
## tibble [8 × 7] (S3: tbl_df/tbl/data.frame)
##  $ De          : chr [1:8] "0.050844" "45.037363" "90.023881" "135.0104" ...
##  $ Até         : chr [1:8] "45.037363" "90.023881" "135.0104" "179.996919" ...
##  $ Metro_Quad  : num [1:8] 2523735 2125164 2213918 2272266 1452114 ...
##  $ Ha          : num [1:8] 252 213 221 227 145 ...
##  $ Porcentagem : num [1:8] 16.64 14.01 14.6 14.98 9.58 ...
##  $ Orient_Menor: num [1:8] 0.0508 45.0374 90.0239 135.0104 179.9969 ...
##  $ Orient_Maior: num [1:8] 45 90 135 180 225 ...

A tabela com os dados

kable(Orient_NEst[ ,6:3 ], 
      format = "simple", 
      digits = 1,
      padding = 2,
      caption = "1 - Quantidade de metros quadrados de área de cada altitude, no assentamento Sâo Lourenço")
1 - Quantidade de metros quadrados de área de cada altitude, no assentamento Sâo Lourenço
Orient_Menor Porcentagem Ha Metro_Quad
0.1 16.6 252.4 2523735
45.0 14.0 212.5 2125164
90.0 14.6 221.4 2213918
135.0 15.0 227.2 2272266
180.0 9.6 145.2 1452114
225.0 7.7 117.2 1171881
270.0 8.4 127.5 1275427
315.0 14.0 212.9 2129273
library(plotrix)

OrietNames<-c("N","NW","W","SW","S","SE", "E", "NE")
OrientaHa<-Orient_NEst$Ha

radial.plot(OrientaHa,labels=OrietNames,rp.type="r",label.prop=1.1, main="Área (ha) conforme orientação, do assentamento São Lourenço",
            grid.unit="Ha",poly.col="green",radial.lim=c(0,250),show.grid.labels=1,
            line.col = "red", lwd=5, grid.col = "blue")

Capacidade de uso

segundo LEPSCH et al., 1991

Para o calculo da declividade foi utilizado o arquivo topodata Decliv(B), que apresenta os dados conforme as Classes de capacidade de uso -definem o grau de limitação do uso (I, II, III, IV, V, VI, VII e VIII):

Classe I: terras cultiváveis, aparentemente sem problemas especiais de conservação;

Classe II: terras cultiváveis com problemas simples de conservação;

Classe III: terras cultiváveis com problemas complexos de conservação;

Classe IV: terras cultiváveis apenas ocasionalmente ou em extensão limitada, com sérios problemas de conservação;

Classe V: terras adaptadas em geral para pastagens e/ou reflorestamento, sem necessidade de práticas especiais de conservação, cultiváveis apenas em casos muito especiais;

Classe VIII: terras impróprias para cultura, pastagem ou reflorestamento, podendo servir apenas como abrigo e proteção da fauna e flora silvestre, como ambiente para recreação, ou para fins de armazenamento de água (LEPSCH et al., 1991).

Buscando os dados

Declive_B<- read_delim("data/declive_b.txt",
                              "|",
                              escape_double = FALSE, 
                              col_names = FALSE, 
                              trim_ws = TRUE,
                              skip = 4)
View(Declive_B)

organizando dados

Declive_b<-Declive_B%>%
  filter(!is.na(X4))%>%
  select(X2,X4)%>%
  transmute(
    Classe=X2,
    Metro_Quad=X4,
    Ha=X4/10000, 
    Porcentagem=X4/sum(X4)*100,
  )%>%
  arrange(Classe)

head(Declive_b)
## # A tibble: 5 x 4
##   Classe Metro_Quad     Ha Porcentagem
##   <chr>       <dbl>  <dbl>       <dbl>
## 1 2          200520  20.1        1.32 
## 2 3         2973715 297.        19.5  
## 3 4         4963703 496.        32.6  
## 4 5         7043355 704.        46.3  
## 5 6           34134   3.41       0.224

A tabela com os dados

kable(Declive_b, 
      format = "simple", 
      digits = 1,
      padding = 2,
      caption = "1 - Quantidade de metros quadrados de área de cada classe de declividade, no assentamento Sâo Lourenço")
1 - Quantidade de metros quadrados de área de cada classe de declividade, no assentamento Sâo Lourenço
Classe Metro_Quad Ha Porcentagem
2 200520 20.1 1.3
3 2973715 297.4 19.5
4 4963703 496.4 32.6
5 7043355 704.3 46.3
6 34134 3.4 0.2

Segundo Embrapa 1999

Classe nº Classe de relevo Declividade (%)
1 Plano 0 3
2 Suave Ondulado 3 8
3 Ondulado 8 20
4 Forte Ondulado 20 45
5 Montanhoso 45 75
6 Escarpado > 75

Buscando os dados

Declive_C<- read_delim("data/declive_c.txt",
                              "|",
                              escape_double = FALSE, 
                              col_names = FALSE, 
                              trim_ws = TRUE,
                              skip = 4)
View(Declive_C)

organizando dados

Declive_c<-Declive_C%>%
  filter(!is.na(X4))%>%
  select(X2,X4)%>%
  transmute(
    Classe=X2,
    Metro_Quad=X4,
    Ha=X4/10000, 
    Porcentagem=X4/sum(X4)*100,
  )%>%
  arrange(Classe)

#head(Declive_c)

A tabela com os dados

kable(Declive_c, 
      format = "simple", 
      digits = 1,
      padding = 2,
      caption = "1 - Quantidade de metros quadrados de área de cada classe de declividade, conforme classificação da Embrapa (1991) no assentamento Sâo Lourenço")
1 - Quantidade de metros quadrados de área de cada classe de declividade, conforme classificação da Embrapa (1991) no assentamento Sâo Lourenço
Classe Metro_Quad Ha Porcentagem
1 20478 2.0 0.1
2 1492385 149.2 9.8
3 10559749 1056.0 69.4
4 3108681 310.9 20.4
5 34134 3.4 0.2
</html>