403 lines
12 KiB
Plaintext
403 lines
12 KiB
Plaintext
---
|
||
title: "Cálculos da ocupação de áreas por indicadores específicos"
|
||
author: "Adenor Vicente Wendling"
|
||
date: "23/02/2021"
|
||
output:
|
||
html_document:
|
||
toc: yes
|
||
word_document:
|
||
toc: yes
|
||
---
|
||
|
||
```{r setup}
|
||
knitr::opts_chunk$set(echo = TRUE)
|
||
```
|
||
|
||
```{r}
|
||
library(knitr)
|
||
library(tidyverse)
|
||
library(readr)
|
||
library(kableExtra)
|
||
```
|
||
|
||
# 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 cada altitude`
|
||
`Porcentagem de área para cada orientação`
|
||
`Capacidade de uso do solo`
|
||
`Porcentagem de APP `
|
||
`Porcentagem de Mata Nativa`
|
||
|
||
|
||
## 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](../imagens/janela_Report1.png)
|
||
|
||
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](../imagens/Selec_Raster_Report.png)
|
||
|
||
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](../imagens/janela_Report2.png)
|
||
|
||
O resultado será em formato .txt. que podem ser importados e manipulados aqui no R.
|
||
|
||
```{r}
|
||
|
||
Alt_estatistica <- read_delim("data/Alt_estatistica.txt", "|", escape_double = FALSE, col_names = FALSE,
|
||
trim_ws = TRUE, skip = 4)
|
||
View(Alt_estatistica)
|
||
str(Alt_estatistica)
|
||
```
|
||
|
||
|
||
|
||
Porém, é necessário manipular o nome das colunas, para ser possível trabalhar com os dados.
|
||
|
||
```{r, include=TRUE}
|
||
|
||
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
|
||
|
||
```{r kable_a_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")
|
||
```
|
||
|
||
Os dados são os seguintes: A menor área está em altitude de `r min(Altitude_SL$De_Ate)` metros acima do nível do mar (ANM) com `r min(Altitude_SL$Ha)` hectares de área, ou seja, **`r min(Altitude_SL$Porcentagem)`** porcento da área total.
|
||
A maior área está em altitude de `r max(Altitude_SL$De_Ate)` ANM, com `r max(Altitude_SL$Ha)`ha de área, ou seja, `r max(Altitude_SL$Porcentagem)` porcento da área total.
|
||
|
||
```{r}
|
||
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.
|
||
|
||
```{r}
|
||
Orient_NEst <- read_delim("data/Orient_NEst.txt",
|
||
"|", escape_double = FALSE, col_names = FALSE,
|
||
trim_ws = TRUE, skip = 1)
|
||
View(Orient_NEst)
|
||
```
|
||
|
||
|
||
Porém, é necessário manipular o nome das colunas, para ser possível trabalhar com os dados.
|
||
|
||
```{r, include=TRUE}
|
||
|
||
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
|
||
|
||
```{r kable_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")
|
||
```
|
||
|
||
Os dados são os seguintes: A menor área está em altitude de `r min(Altitude_SL$De_Ate)` metros acima do nível do mar (ANM) com `r min(Altitude_SL$Ha)` hectares de área, ou seja, **`r min(Altitude_SL$Porcentagem)`** porcento da área total.
|
||
A maior área está em altitude de `r max(Altitude_SL$De_Ate)` ANM, com `r max(Altitude_SL$Ha)`ha de área, ou seja, `r max(Altitude_SL$Porcentagem)` porcento da área total.
|
||
|
||
```{r}
|
||
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.
|
||
|
||
```{r}
|
||
Orient_NEst <- read_delim("data/Orient_NEst.txt",
|
||
"|", escape_double = FALSE, col_names = FALSE,
|
||
trim_ws = TRUE, skip = 1)
|
||
#View(Orient_NEst)
|
||
```
|
||
|
||
|
||
```{r, include=TRUE}
|
||
|
||
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)
|
||
```
|
||
|
||
|
||
## A tabela com os dados
|
||
|
||
```{r kable_b_dados alt}
|
||
|
||
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")
|
||
```
|
||
|
||
|
||
|
||
```{r}
|
||
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
|
||
```{r message = FALSE, echo = TRUE, comment=FALSE, warning=FALSE}
|
||
|
||
Declive_B<- read_delim("data/declive_b.txt",
|
||
"|",
|
||
escape_double = FALSE,
|
||
col_names = FALSE,
|
||
trim_ws = TRUE,
|
||
skip = 4)
|
||
View(Declive_B)
|
||
```
|
||
|
||
|
||
### organizando dados
|
||
```{r, include=TRUE}
|
||
|
||
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 tabela com os dados
|
||
|
||
```{r kable_b_dados declive}
|
||
|
||
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")
|
||
```
|
||
|
||
|
||
## 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
|
||
```{r message = FALSE, echo = TRUE, comment=FALSE, warning=FALSE}
|
||
|
||
Declive_C<- read_delim("data/declive_c.txt",
|
||
"|",
|
||
escape_double = FALSE,
|
||
col_names = FALSE,
|
||
trim_ws = TRUE,
|
||
skip = 4)
|
||
View(Declive_C)
|
||
```
|
||
|
||
|
||
### organizando dados
|
||
```{r, include=TRUE}
|
||
|
||
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
|
||
|
||
```{r}
|
||
|
||
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")
|
||
```
|
||
|
||
|
||
# Calculos com Vetores
|
||
## Área de Reserva Legal
|
||
Para calcular a área de cada informação vetorial, deve-se seguir os mesmos passos utilizados com os dados Raster, e, ao escolher a ferramenta de cálculo, ao invés de selecionar r.report, se seleciona **v.report**.
|
||
É importante ficar atento e definir um arquivo, com caminho conhecido e extensão .txt, para permitir sua importanção pelo R.
|
||
|
||
```{r}
|
||
RESERVA <- read_delim("Assentamento/RESERVA.TXT",
|
||
"|", escape_double = FALSE, na = "0" )
|
||
|
||
RESERVA1<-RESERVA%>%
|
||
filter(area>1)
|
||
|
||
AreaReserva=sum(RESERVA1$area)
|
||
AreaReserva
|
||
RLporc=AreaReserva/4495
|
||
|
||
RLporc
|
||
```
|
||
|
||
|
||
## Area de App
|
||
```{r}
|
||
library(readr)
|
||
APPs<-read_delim("Assentamento/app.txt",
|
||
"|", escape_double = FALSE, trim_ws = TRUE)
|
||
str(APPs)
|
||
#APPs$area
|
||
```
|
||
|
||
|
||
## Solos
|
||
## Área de Reserva Legal
|
||
Para calcular a área de cada informação vetorial, deve-se seguir os mesmos passos utilizados com os dados Raster, e, ao escolher a ferramenta de cálculo, ao invés de selecionar r.report, se seleciona **v.report**.
|
||
É importante ficar atento e definir um arquivo, com caminho conhecido e extensão .txt, para permitir sua importanção pelo R.
|
||
|
||
```{r}
|
||
library(readr)
|
||
soloAssts <- read_delim("data/soloAssts.txt",
|
||
"|", escape_double = FALSE, trim_ws = TRUE)
|
||
|
||
View(soloAssts)
|
||
require(dplyr)
|
||
soloAssts1<-soloAssts%>%
|
||
mutate(Porcentagem = area/44466284*100)## area somada manualmente
|
||
soloAssts1%>% select(SBCS, area,Porcentagem)
|
||
```
|
||
|