De modo sintético, os antromas (biomas antropogênicos) representam subdivisões dos biomas terrestres, as quais são baseadas na interpolação de dados demográficos (ocupações humanas) e nas tipologias de uso e cobertura do solo. Por meio destas subdivisões diferentes propostas analíticas podem ser desenvolvidas, como o planejamento e ordenamento territorial. Entretanto, para atingirmos a construção do mapeamento dos antromas, tornou-se imprescindível analisar e mapear os dados separadamente, ou seja, operar dados demográficos e de uso e cobertura do solo individualmente, para posteriormente correlacioná-los.
O presente documento integra a Tese de Doutorado: REGIONALIZAÇÃO DOS ANTROMAS BRASILEIROS: Ferramenta para o Mapeamento em Linguagem R®. Neste capítulo, realizamos a diferentes operações em R com os dados de uso e cobertura do solo, o quais são produzidos bienalmente pelo Instituto Brasileiro de Geografia e Estatística (IBGE). Nele, retratamos desde a captação de dados, demonstrando como e onde estes dados foram baixados e tratados em nossas análises. Sequencialmente, realizamos a mineração, a junção e a plotagem dos dados, de modo a reconhecer características estruturais e espaciais destes dados nacionais. Após estas etapas, nos dedicamos à construção dos mapeamentos estático e interativo dos antromas de uso e cobertura do solo brasileiros, utilizando os próprios polígonos do conjunto de dados analisados para o primeiro e o Open Street Maps (OSM) do segundo como pano de fundo. Finalizados (os mapeamentos), nos dedicamos aos estudos de validação e incerteza do mapeamento produzido, de maneira a aferir a qualidade da informação geoespacial produzida nesta etapa de pesquisa.
Convidamos você a conhecer nosso trabalho e percorrer cada uma das etapas analíticas deste trabalho. Você também pode conhecer este trabalho através do GitHub, acessando nosso repositório de códigos: https://github.com/maximilianogobbo/brazilian-anthromes. E para conhecer mais sobre a linha de pesquisa do Grupo de Trabalho EcoMetrologia acesse nosso linktree: https://linktr.ee/maximiliano.gobbo.
O levantamento de atributos associados a um conjunto de dados geoespaciais é fundamental para identificar pontos para correlação entre diferentes tipologias de informações geográficas, como apresentou Machlis (2017). O reconhecimento destes atributos permite que informações sociais e ambientais possam ser conectadas dentro da programação para o mapeamento, gerando cartografias para as diferentes áreas do conhecimento, conforme discorreu Anderson (2021). Nesta ótica, Moreno e Basile (2021) mostraram que por meio desta integração é possível, no universo da linguagem R®, produzir mapas com qualidade suficiente para compor análises territoriais, espaciais, socioambientais, ambientais e culturais, atendendo assim aos mais diversos campos científicos. Considerando isto, Gauthier (2021) e Ellis, Beusen e Goldewijk (2020) demonstraram, por meio do mapeamento global dos biomas antropogênicos (antromas), que a correlação entre diferentes tipologias de informações geoespaciais, além de possível, mostra-se como uma ferramenta moderna para os estudos socioecológicos. Estes autores realizaram o mapeamento apenas indicado utilizando linguagem computacional, linguagem R® propriamente dita, e foram capazes de gerar um mapeamento relevante em grade hexagonal de 96 km² do DGG.
Segundo as informações reportadas nas bases estruturais sobre os antromas, Ellis e Ramankutty (2008) apontaram que as informações demográficas, como densidade demográfica, e de uso e cobertura do solo, como tipologias de coberturas, são fundamentais para a identificação, classificação e mapeamento das diferentes classes antropogênicas. Tanto no produto cartográfico reportados por estes dois autores, como naquele publicizado por Gauthier (2021) e Ellis, Beusen e Goldewijk (2021), é perceptível que os recortes territoriais dos usos do solo (polígonos estruturados) representam uma informação significativa para a classificação e para o mapeamento dos antromas.
Assumindo os produtos cartográficos descritos acima e as indicações sobre atributos de bancos de dados, e intuindo futuramente produzir o mapeamento local dos antromas brasileiros, realizamos a análise exploratória de dados sobre uso e cobertura do solo. Estes dados são produzidos pelo Instituto Brasileiro de Geografia e Estatística (IBGE), seguindo a descrição técnica documentada no Manual Técnico de Uso e Cobertura da Terra (IBGE, 2013b).
Os objetivos centrais desta investigação foram identificar os atributos que compunham os dados disponibilizados pela instituição, reconhecer a espacialização da informação geográfica de uso e cobertura do solo e verificar se existiam atributos chave para correlação destes dados geoespaciais com os dados demográficos, analisados por nós em outro trabalho. Para atingir a estes objetivos, nos baseamos nas formatação lógica e analítica apresentadas nas obras de Lovelace et al. (2019) e Anderson (2021), onde são apresentadas as funções para a análise exploratória de dados no software R®.
Os dados sobre uso e cobertura do solo utilizados nesta pesquisa foram aqueles disponibilizados na plataforma do Instituto Brasileiro de Geografia e Estatística (IBGE). Estes dados foram baixados e salvos na pasta de trabalho (diretório) associada a esta etapa da investigação. Ressaltamos que ele integram as políticas nacionais de dados abertos brasileiros (IBGE, 2019) e estão disponíveis para acesso remoto no link:
Destacamos que os dados de uso e cobertura do solo foram produzidos pelo IBGE seguindo as diretrizes metodológicas expressas no Manual Técnico de Uso e Cobertura da Terra (IBGE, 2013b). Previamente, realizamos a análise da qualidade dos dados disponibilizados pelo instituto brasileiro, verificando a conformidade deles ao uso pretendido para regionalização dos antromas brasileiros (GOBBO, 2020).
Dando prosseguimento a nossa pesquisa de Doutorado, investigamos nesta análise exploratória atributos que integravam o acervo de dados disponibilizados pelo IBGE. O objetivo central foi identificar quais atributos associados a estas informações geográficas que permitiriam a correlação entre os dados de uso e cobertura do solo e os dados demográficos, bem como a plotagem desta informações no mapeamento local dos antromas, como sugerem Guathier (2021) e Ellis, Beusen e Goldewijk (2020).
Para tanto, a análise exploratória de dados de uso e cobertura do solo foi realizada no software R®, alinhando nossa investigação àquelas realizadas pelos autores supracitados sobre os antromas. As diretrizes analíticas utilizadas na linguagem R® foram extraídas das obras de Lovelace et al. (2019) e Anderson (2021), onde os autores percorrem um caminho investigativo para identificar os atributos constituintes dos dados e a possibilidade de integração das informações a mapeamentos.
Como apresentamos anteriormente na Metodologia da Tese, nosso enfoque foi dado ao Estado de São Paulo, justificando-nos na representatividade da Unidade da Federação para economia, política e gestão nacional e pelos recortes territoriais e diversidade sociocultural das populações que compõe o mosaico paulista. Nesta perspectiva, foram baixados, do acervo digital do IBGE, os dados referentes à cobertura do solo de São Paulo para o intervalo entre os anos de 2010 e 2018.
Seguindo as recomendações metodológicas de Gauthier (2021) para classificação e mapeamento dos antromas, o qual indica que os dados de uso e cobertura e censitários devem possuir mesma datação para otimizar a correlação e reduzir as distorções das informações, optamos por utilizar os dados raster referentes ao ano de 2010, último ano em que os dados da operação censitária já se encontram totalmente disponibilizados na plataforma do instituto (IBGE, 2013a).
Para apresentar e confirmar o diretório de trabalho da análise exploratória de dados sobre uso e cobertura do solo, utilizamos a função getwd (_), a qual informa o nome da pasta em que os arquivos a serem analisados foram salvos, como demonstramos na sequência.
getwd()
## [1] "C:/ARQUIVOS COMPUTADOR/DOUTORADO/DOUTORADO TESE/03 DADOS GEOESPACIAIS/03 USO E COBERTURA DO SOLO"
Destacamos que estes dados brasileiros são do tipo raster e, portanto, seguem uma lógica de carregamento diferente dos dados vetoriais no software R®. Deste modo, empregamos a função shapefile () para carregar estes dados no programa. Entre os parênteses da função, especificamos o nome do arquivo no diretório, cujo nome era Cobertura_uso_da_terra_SP. Ressaltamos que este nome refletia um conjunto de arquivos disponibilizados pelo IBGE com diferentes extensões, os quais deveriam constar na pasta de trabalho para que a função shapefile () pudesse interpretá-los conjuntamente.
O Script 12 expressa na primeira linha como foi realizado o carregamento dos dados. Após o carregamento do conjunto de dados raster, criamos um objeto (dataframe) a partir dele, utilizando para isto o indicador (seta) precedido do nome dado de coberturasp, conforme demonstramos na segunda linha do código. Seguidamente, confirmamos a criação do objeto e sua composição utilizando somente o nome do conjunto coberturasp (destacado no script).
Script 12: Carregamento do arquivo coberturasp.shp.
# Carregamento do Arquivo
coberturasp <- st_read("coberturasp.shp")
## Reading layer `coberturasp' from data source
## `C:\ARQUIVOS COMPUTADOR\DOUTORADO\DOUTORADO TESE\03 DADOS GEOESPACIAIS\03 USO E COBERTURA DO SOLO\coberturasp.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 248217 features and 8 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: -53.10706 ymin: -25.30115 xmax: -44.16211 ymax: -19.78065
## Geodetic CRS: SIRGAS 2000
Fonte: os autores (2023). Legenda: script descrevendo o carregamento dos dados de “coberturasp.shp” por meio da função st_read() e a criação do dataframe coberturasp. No script são apresentadas diferentes informações que constituem o arquivo e os dados carregados.
Os resultados apresentados no Script 12 trouxeram informações relevantes sobre a composição do conjunto coberturasp. Primeiramente, observamos que a classe (do inglês, class) do objeto é do tipo dataframe de polígonos espaciais, ou seja, os dados descreviam um conjunto de polígonos que representavam as áreas que compunham o mosaico territorial do Estado de São Paulo. Adicionalmente, verificamos que o objeto era composto por 248.217 linhas (do inglês, features) e 8 variáveis (do inglês, variables). Estas variáveis possuíam os seguintes nomes (do inglês, names): INDICE_GRE, USO2000, USO2010, USO2012, USO2014, USO2016, USO2018 e ID_GRE.
Em valores mínimos e máximos (respectivamente, min values e max values) foram apresentados os valores mínimos e máximos para cada uma das variáveis que integravam o conjunto de dados. Por outro lado, em extend, nos deparamos com a indicação da extensão mínima e máxima dos valores de X e Y que estruturavam o conjunto de polígonos, ou seja, os valores dos pares ordenados para plotagem dos dados. Complementarmente, por meio do CRS indicado no Script 12, reconhecemos que existia um sistema de projeção e posicionamento geográfico atrelado à estrutura do conjunto de dados.
De modo a ampliar nossa percepção sobre o conjunto coberturasp e confirmar os dizeres acima, utilizamos a função summary () para identificar características básicas do dataframe poligonal. Posteriormente, empregamos a função class () na análise para ratificar a classe que o conjunto integra. Sequencialmente, utilizamos a função names () para identificar quais eram os nomes expressos na primeira linha do dataframe, ou seja, os atributos que o integravam. Para confirmar o número de linhas que integram o dataframe, aplicamos a função dim (). As funções e seus resultados foram reportados no Script 13 adiante.
Script 13: Análise preliminar de coberturasp
class(coberturasp)
## [1] "sf" "data.frame"
names(coberturasp)
## [1] "INDICE_GRE" "USO2000" "USO2010" "USO2012" "USO2014"
## [6] "USO2016" "USO2018" "ID_GRE" "geometry"
dim(coberturasp)
## [1] 248217 9
summary(coberturasp)
## INDICE_GRE USO2000 USO2010 USO2012
## Length:248217 Min. : 1.000 Min. : 1.000 Min. : 1.000
## Class :character 1st Qu.: 2.000 1st Qu.: 2.000 1st Qu.: 2.000
## Mode :character Median : 3.000 Median : 3.000 Median : 3.000
## Mean : 3.848 Mean : 3.697 Mean : 3.643
## 3rd Qu.: 4.000 3rd Qu.: 4.000 3rd Qu.: 4.000
## Max. :13.000 Max. :13.000 Max. :13.000
## USO2014 USO2016 USO2018 ID_GRE
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. :1.124e+13
## 1st Qu.: 2.000 1st Qu.: 2.000 1st Qu.: 2.000 1st Qu.:1.124e+13
## Median : 3.000 Median : 3.000 Median : 3.000 Median :1.124e+13
## Mean : 3.624 Mean : 3.605 Mean : 3.597 Mean :1.124e+13
## 3rd Qu.: 4.000 3rd Qu.: 4.000 3rd Qu.: 4.000 3rd Qu.:1.124e+13
## Max. :13.000 Max. :13.000 Max. :13.000 Max. :1.124e+13
## geometry
## POLYGON :248217
## epsg:4674 : 0
## +proj=long...: 0
##
##
##
Fonte: os autores (2023). Legenda: script com a análise preliminar de coberturasp, onde foram empregadas as funções class(), names(), dim() e summary().
Conforme os resultados apresentados acima (Script 13), ratificamos através da função class () que o objeto pertencia a classe de dataframes de polígonos espaciais. Na estrutura do objeto, verificamos ainda que o objeto possuía integrado a si um sistema de coordenadas geográficas (CRS), o qual foi representado no Script pelos valores mínimos e máximos de X e Y e pela expressão “proj4string”. Esta expressão revelou a capacidade de projeção geográfica dos dados graças às coordenadas indicadas na estrutura do objeto (pares ordenados XY).
Para além, comprovamos que coberturasp possuía a característica espacial integrada à sua estrutura, revelada pela expressão “sp”, que provém do termo inglês spatial (espacial). Outro aspecto importante foi a indicação de “attr”, expressão que demonstrou que o objeto era composto por um conjunto de atributos (attr), os quais estavam armazenados no formato de pacote (do inglês, package).
Ademais, os resultados provenientes da função names () reafirmaram os nomes dos atributos do conjunto coberturasp, bem como sua distribuição em 8 colunas. Naquilo que resguardava à função dim (), os resultados comprovaram que o objeto era constituído por 248.217 linhas e 8 colunas. Verificamos assim que cada uma das linhas se referia a diferentes estruturas poligonais do território paulista, ou seja, são retratavam as localidades e as tipologias de uso e cobertura que compõem o mosaico do Estado de São Paulo.
Por outro lado, considerando os resultados obtidos pela função names () e a tipologia dos resultados para cada um dos atributos, indicados pela função summary (), reconhecemos que os atributos “USO2000”, “USO2010”, “USO2012”, “USO2014”, “USO2016” e “USO2018” retratavam os diferentes anos do monitoramento de uso e cobertura da Terra, operação realizada pelo IBGE bienalmente (IBGE, 2017; 2018; 2020).
Nesta perspectiva, como nos interessavam o ano de 2010 para estruturação da árvore de decisão para classificação dos antromas brasileiros, filtramos os dados referentes ao ano na função plot (), utilizando para tal o nome do atributo “USO2010” entre os colchetes [] na função. A Figura 12 reporta como foram plotados os dados de coberturasp para o ano de 2010.
Figura 12: Plotagem dos dados de coberturasp para o ano de 2010.
Fonte: os autores (2023). Legenda: Figura produzida através da plotagem dos dados de coberturasp, utilizando a função plot (_) para produção e os colchetes [] para filtrar os dados referentes ao ano de 2010.
A Figura 12, produzida pela plotagem do conjunto de dados, demonstrou que a estrutura poligonal do Estado de São Paulo estava visivelmente estruturada dentro do dataframe coberturasp. Porém, o preenchimento completo da área territorial não permitiu a diferenciação dos usos e coberturas do solo que compunham o mosaico. Entretanto, pelos resultados obtidos anteriormente, pudemos identificar que existem números na coluna USO2010 e, conforme sugerido pelos metadados do IBGE, sabemos que estes números se referem a diferentes tipologias de uso e cobertura do solo. Este fato pode ser demonstrado através da aplicação da função head(), cuja aplicação versa sobre a demonstração das primeiras linhas do conjunto. O código a seguir ilustra o emprego da função.
Script: Aplicação da função head() em coberturasp.
head(coberturasp)
## Simple feature collection with 6 features and 8 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: -49.89744 ymin: -23.05592 xmax: -49.88686 ymax: -23.00143
## Geodetic CRS: SIRGAS 2000
## INDICE_GRE USO2000 USO2010 USO2012 USO2014 USO2016 USO2018 ID_GRE
## 1 1KME5422N8762 4 4 4 4 4 4 1.123535e+13
## 2 1KME5422N8763 2 2 2 2 2 2 1.123535e+13
## 3 1KME5422N8764 2 2 2 2 2 2 1.123535e+13
## 4 1KME5422N8765 2 2 2 2 2 2 1.123535e+13
## 5 1KME5422N8766 4 4 4 4 4 4 1.123535e+13
## 6 1KME5422N8767 4 4 4 4 4 4 1.123535e+13
## geometry
## 1 POLYGON ((-49.88686 -23.055...
## 2 POLYGON ((-49.88701 -23.046...
## 3 POLYGON ((-49.88715 -23.037...
## 4 POLYGON ((-49.88729 -23.028...
## 5 POLYGON ((-49.88744 -23.019...
## 6 POLYGON ((-49.88758 -23.010...
Fonte: os autores (2024). Legenda: demonstração da função head() para constatar os números nas primeiras seis linhas do conjunto coberturasp.
Conforme visualiza-se nos resultados apresentados pela função head(), notamos que na coluna USO2010 existem diferentes números para cada linha do conjunto. Sinergicamente, notamos que na figura gerada anteriormente é apresentada uma escala que vai de 0 a 14, a qual revela quais números encontram-se presentes neste conjunto. Diante destas constatações, avançamos com nossas análises para a mineração e manipulação dos dados.
Considerando nosso foco nos dados de 2010, tendo em vista os dados demográficos anteriormente analisados, nossa mineração se iniciou isolando as colunas do conjunto coberturasp que seriam úteis às análises posteriores. Assim sendo, utilizando a função select(), criamos um novo conjunto com as colunas USO2010 e geometry, que recebeu o nome de cobertura_sp_2010, como ilustra o código a seguir.
Script: criação do conjunto cobertura_sp_2010.
cobertura_sp_2010 <- coberturasp[c("USO2010", "geometry")]
cobertura_sp_2010
## Simple feature collection with 248217 features and 1 field
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: -53.10706 ymin: -25.30115 xmax: -44.16211 ymax: -19.78065
## Geodetic CRS: SIRGAS 2000
## First 10 features:
## USO2010 geometry
## 1 4 POLYGON ((-49.88686 -23.055...
## 2 2 POLYGON ((-49.88701 -23.046...
## 3 2 POLYGON ((-49.88715 -23.037...
## 4 2 POLYGON ((-49.88729 -23.028...
## 5 4 POLYGON ((-49.88744 -23.019...
## 6 4 POLYGON ((-49.88758 -23.010...
## 7 4 POLYGON ((-49.88772 -23.001...
## 8 4 POLYGON ((-49.88787 -22.992...
## 9 4 POLYGON ((-49.88801 -22.983...
## 10 4 POLYGON ((-49.93661 -22.983...
Fonte: os autores (2024). Legenda: aplicação da função select() para criar um novo conjunto de dados referente ao ano de 2010. No código foram isoladas as colunas INDICE_GRE, USO2010, ID_GRE e geometry do conjunto cobertura_sp.
Conforme verifica-se nos resultados, o conjunto cobertura_sp_2010 segue a mesma estrutura de cobertura_sp, todavia somente com os dados relevantes para as análises posteriores referentes ao ano de 2010. Com base nisso, realizamos uma sondagem na coluna USO2010 para confirmar o apresentado anteriormente sobre os valores presentes nessa coluna. Para realizar tal sondagem, empregamos a função unique(), a qual reporta os valores, no caso numéricos, presentes na coluna. A seguir tem-se a apresentação do código e dos resultados.
Script: aplicação da função unique() em cobertura_sp_2010.
unique(cobertura_sp_2010$USO2010)
## [1] 4 2 1 3 12 5 6 11 10 13 9
Fonte: os autores (2024). Legenda: aplicação da função unique() no conjunto de dados coberutra_sp_2010 na coluna USO2010 para identificar os valores numéricos presentes na coluna.
De acordo com os resultados reportados pela função unique(), notamos os identificadores numéricos: 1,2,3,4,5,6,9,10,11,12 e 13. Chamamos de identificadores numéricos porque, segundo a documentação técnica do IBGE, estes valores são atribuídos a diferentes usos e coberturas do solo. Considerando isto, devemos trazer uma síntese, com base no documento, dos respectivos usos e coberturas para podermos avançar nas nossas análises. Nos metadados disponibilizados pelo IBGE, encontramos o arquivo coberturasp2018.xlsx, no qual constam os respectivos usos e coberturas e uma breve descrição para cada um dos números acima identificados. Estas informações são reportadas na íntegra a seguir.
1.Área artificial: Áreas onde predominam superfícies antrópicas não-agrícolas. São aquelas estruturadas por edificações e sistema viário, nas quais estão incluídas as metrópoles, cidades, vilas, as aldeias indígenas e comunidades quilombolas, áreas ocupadas por complexos industriais e comerciais e edificações que podem, em alguns casos, estar situadas em áreas peri-urbanas. Também pertencem a essa classe as áreas onde ocorrem a exploração ou extração de substâncias minerais, por meio de lavra ou garimpo.
Área Agrícola: Área caracterizada por lavouras temporárias, semi-perenes e permanentes, irrigadas ou não, sendo a terra utilizada para a produção de alimentos, fibras, combustíveis e outras matérias-primas. Segue os parâmetros adotados nas pesquisas agrícolas do IBGE e inclui todas as áreas cultivadas, inclusive as que estão em pousio ou localizadas em terrenos alagáveis. Pode ser representada por zonas agrícolas heterogêneas ou extensas áreas de plantations. Inclui os tanques de aquicultura.
Pastagem com Manejo: Áreas destinadas ao pastoreio do gado e outros animais, com vegetação herbácea cultivada (braquiária, azevém, etc) ou vegetação campestre (natural), ambas apresentando interferências antrópicas de alta intensidade. Estas interferências podem incluir o plantio; a limpeza da terra (destocamento e despedramento); eliminação de ervas daninhas de forma mecânica ou química (aplicação de herbicidas); gradagem; calagem; adubação; entre outras que descaracterizem a cobertura natural.
Mosaico de Ocupações em Área Florestal: Área caracterizada por ocupação mista de área agrícola, pastagem e/ou silvicultura associada ou não a remanescentes florestais, na qual não é possível uma individualização de seus componentes. Inclui também áreas com perturbações naturais e antrópicas, mecânicas ou não mecânicas, que dificultem a caracterização da área.
Silvicultura: Área caracterizada por plantios florestais de espécies exóticas ou nativas como monoculturas. Segue os parâmetros adotados nas pesquisas de extração vegetal e silvicultura do IBGE.
Vegetação Florestal: Área ocupada por florestas. Consideram-se florestais as formações arbóreas com porte superior a 5 metros de altura, incluindo-se aí as áreas de Floresta Ombrófila Densa, de Floresta Ombrófila Aberta, de Floresta Estacional, além da Floresta Ombrófila Mista. Inclui outras feições em razão de seu porte superior a 5 m de altura, como a Savana Florestada, Campinarana Florestada, Savana-Estépica Florestada, os Manguezais e os Buritizais, conforme o Manual Técnico de Uso da Terra (IBGE, 2013).
Área Úmida: Área caracterizada por vegetação natural herbácea ou arbustiva (cobertura de 10% ou mais), permanentemente ou periodicamente inundada por água doce ou salobra. Inclui os terrenos de charcos, pântanos, campos úmidos, estuários, entre outros. O período de inundação deve ser de no mínimo 2 meses por ano. Pode ocorrer vegetação arbustiva ou arbórea, desde que estas ocupem área inferior a 10% do total.
Vegetação Campestre: Área caracterizada por formações campestres. Entende-se como campestres as diferentes categorias de vegetação fisionomicamente bem diversas da florestal, ou seja, aquelas que se caracterizam por um estrato predominantemente arbustivo, esparsamente distribuído sobre um estrato gramíneo-lenhoso. Incluem-se nessa categoria as Savanas, Estepes, Savanas-Estépicas, Formações Pioneiras e Refúgios Ecológicos. Encontram-se disseminadas por diferentes regiões fitogeográficas, compreendendo diferentes tipologias primárias: estepes planaltinas, campos rupestres das serras costeiras e campos hidroarenosos litorâneos (restinga), conforme o Manual Técnico de Uso da Terra (IBGE, 2013). Essas áreas podem estar sujeitas a pastoreio e a outras interferências antrópicas de baixa intensidade como as áreas de pastagens não manejadas do Rio Grande do Sul e do Pantanal.
Mosaico de Ocupações em Área Campestre: Área caracterizada por ocupação mista de área agrícola, pastagem e/ou silvicultura associada ou não a remanescentes campestres, na qual não é possível uma individualização de seus componentes. Inclui também áreas com perturbações naturais e antrópicas, mecânicas ou não mecânicas, que dificultem a caracterização da área.
Corpo d’água Continental:Inclui todas as águas interiores, como rios, riachos, canais e outros corpos d’água lineares. Também engloba corpos d’água naturalmente fechados (lagos naturais) e reservatórios artificiais (represamentos artificiais de água construídos para irrigação, controle de enchentes, fornecimento de água e geração de energia elétrica). Não inclui os tanques de aquicultura.
13: Corpo d’água Costeiro: Inclui as águas inseridas nas 12 milhas náuticas, conforme Lei nº 8.617, de 4 de janeiro de 1993.
Com base neste extrato do documento IBGE, retomamos nossa tabela de classes de antromas para estabelecer um paralelo entre as categorias de uso e cobertura do solo e as classes antropogêncas. A tabela a seguir representa as categorias e as cores referentes a cada antroma a ser classificado.
Tabela: Categorias e cores dos antromas.
## categorias cores
## 1 Urbano (centro urbano e aglomerado populacional denso) #FF0000
## 2 Urbanos mistos (periferia urbana) #FF4747
## 3 Vilas agrícolas #ED833B
## 4 Vilas pecuaristas #FFD966
## 5 Comunidades Tradicionais #9CC2E5
## 6 Vilas mineradoras #8C8C8C
## 7 Terras agrícolas #F4B488
## 8 Terras pecuárias #FFEEB7
## 9 Terras de mineração #B6B6B6
## 10 Silvicultura #E2EFD9
## 11 Áreas florestais de uso sustentável #A8D08D
## 12 Áreas de preservação e conservação #538135
Fonte: os autores (2024). Legenda: Categorias dos antromas e seus respectivos códigos de cores (RGB).
Considerando esta tabela e as classes anteriormente apresentadas para os usos e coberturas do solo, devemos fazer alguns apontamentos para auxiliar na compreensão das próximas etapas analíticas. Estes apontamentos resguardam aos ajustes realizados para estabelecer o parelelo entre as classes de antromas e as classes de uso e cobertura do solo presentes nos dados de cobertura_sp_2010. Enumeraremos a seguir os ajustes.
A classe de área artificial agrega diferentes tipologias de aglomerados populacionais, o que inviabiliza sua distinção em um primeiro momento. Portanto, estabelecemos para esta classe a nomenclatura e a cor referente a categoria antropogênica de urbanos mistos, considerando a amplitude das classes de antromas que estes dados podem aglomerar.
Para a tipologia área agrícola (uso e cobertura) estabelecemos a nomenclatura e a coloração de terras agrícolas, considerando a descrição fornecida pelo IBGE para esta categoria de uso e cobertura do solo. O mesmo foi aplicado a categoria de uso e cobertura referente a pastagem com manejo, cujo referencial para os antromas foram terras pecuárias. Ademais, sendo silvicultura uma categoria comum entre as classes de uso e cobertura e dos antromas, a mesma coloração foi estabelecida.
Para as categorias de uso e cobertura do solo vegetação campestre, área úmida e vegetação florestal estabelecemos a nomenclatura e a coloração de áreas de preservação e conservação, fundindo-as em um único conjunto. Nossa escolha foi realizada com base na descrição dos usos e coberturas que estas áreas descrevem. Segundo o IBGE, as três tipologias de uso e cobertura referem-se a áreas naturais não atropizadas. Notoriamente, desconsideramos as diferenças fitofisiológicas e biogeográficas associadas às três tipologias, entretanto, isto não inviabiliza a análise ulterior e pode ser considerado como uma limitação das nossas análises.
A categoria de uso e cobertura mosaico de ocupações em área florestal foi compreendida por nós como áreas florestais de uso sustentável nas categorias de antromas. Portanto, estabelecemos esta nomenclatura e coloração para tais áreas. Por outro lado, consideramos a categoria mosaico de ocupações em áreas campestres como sinérgicas às vilas agrícolas/pecuárias; assim, estabelecemos a nomenclatura e a coloração de vilas agricolas (categoria de antroma) para esta categoria de uso e cobertura. Ressalva-se que, assim como nas áreas artificiais, não era possível a distinção entre agrícola e pecuária; portanto, a distinção foi feita a posteriori com a integração dos dados demográficos aos de uso e coberutra do solo
Para as categorias corpo d’água continental e corpo d’água costeiro não haviam categorias representativas nos antromas. Para não remover este conjunto de dados das nossas análises, estabelecemos a coloração “#000066” (azul escuro) para incluir os dados nas análises posteriores e definimos a tipologia como aguas. O mantenimento deste conjunto visava retratar a relevância dos cursos d’água para manutenção e abastecimento das comunidades, bem como para as políticas de ordenamento territorial.
Após estes dizeres, estruturamos, a partir da função if/else(), o código para que os dados sejam interpretados como supramencionado. Portanto, determinamos em cobertura_sp_2010 o que cada um dos valores na coluna USO2010 representa como tipologia de uso e cobertura do solo e a cor definida para cada uma das tipologias. O código a seguir ilustra o procedimento para a inserção de duas novas colunas no conjunto cobertura_sp_2010: tipologia e cor.
Script: Determinação do uso e cobertura do solo e da coloração da tipologia com base no atributo numérico da coluna USO2010.
# Adicionar coluna de tipologia de uso e cobertura com if/else
cobertura_sp_2010$tipologia <- ifelse(cobertura_sp_2010$USO2010 == 1, "urbanos mistos",
ifelse(cobertura_sp_2010$USO2010 == 2, "terras agrícolas",
ifelse(cobertura_sp_2010$USO2010 == 3, "terras pecuárias",
ifelse(cobertura_sp_2010$USO2010 == 4, "áreas florestais de uso sustentável",
ifelse(cobertura_sp_2010$USO2010 == 5, "silvicultura",
ifelse(cobertura_sp_2010$USO2010 == 6, "áreas de preservação e conservação",
ifelse(cobertura_sp_2010$USO2010 == 9, "áreas de preservação e conservação",
ifelse(cobertura_sp_2010$USO2010 == 10, "áreas de preservação e conservação",
ifelse(cobertura_sp_2010$USO2010 == 11, "vilas agricolas",
ifelse(cobertura_sp_2010$USO2010 == 12, "aguas",
ifelse(cobertura_sp_2010$USO2010 == 13, "aguas", NA)))))))))))
# Adicionar coluna de cor especificada com if/else
cobertura_sp_2010$cor <- ifelse(cobertura_sp_2010$USO2010 == 1, "#FF4747",
ifelse(cobertura_sp_2010$USO2010 == 2, "#F4B488",
ifelse(cobertura_sp_2010$USO2010 == 3, "#FFEEB7",
ifelse(cobertura_sp_2010$USO2010 == 4, "#A8D08D",
ifelse(cobertura_sp_2010$USO2010 == 5, "#E2EFD9",
ifelse(cobertura_sp_2010$USO2010 == 6, "#538135",
ifelse(cobertura_sp_2010$USO2010 == 9, "#538135",
ifelse(cobertura_sp_2010$USO2010 == 10, "#538135",
ifelse(cobertura_sp_2010$USO2010 == 11, "#ED833B",
ifelse(cobertura_sp_2010$USO2010 == 12, "#000066",
ifelse(cobertura_sp_2010$USO2010 == 13, "#000066", NA)))))))))))
Fonte: os autores (2024). Legenda: aplicação da função if/else() para a construção das colunas tipologia (uso e cobertura do solo) e cor, utilizando como fator o atributo numérico da coluna USO2010 de cobertura_sp_2010.
Após a inserção destas duas informações no conjunto cobertura_sp_2010, realizamos a fragmentação dele para os diferentes grupos de uso e cobertura do solo representados pelos códigos: 1,2,3,4,5,6,9,10,11,12 e 13. O script a seguir ilustra o processo para a construção das classes dos antromas com base no atributo uso e cobertura do solo.
Script: fragmentação do conjunto cobertura_sp_2010 em grupos de uso e cobertura do solo.
# Área artificial (1)
ucs_urbanos_mistos = cobertura_sp_2010 %>% filter(USO2010 == 1)
# Área agrícola (2)
ucs_terras_agricolas = cobertura_sp_2010 %>% filter(USO2010==2)
# Pastagem com manejo (3)
ucs_terras_pecuarias = cobertura_sp_2010 %>% filter(USO2010 == 3)
# Mosaico de ocupações em área florestal (4)
ucs_floresta_uso_sustentavel = cobertura_sp_2010 %>% filter(USO2010 == 4)
# Silvicultura (5)
ucs_silvicultura = cobertura_sp_2010 %>% filter(USO2010 == 5)
# Matas - junção de Vegetação Florestal (6), Área Úmida (9) e Vegetação Campestre (10)
ucs_conservacao_preservacao = cobertura_sp_2010 %>% filter(USO2010 %in% c(6,9,10))
# Mosaico de ocupações em áreas campestres (11)
ucs_vilas_agricolas = cobertura_sp_2010 %>% filter(USO2010 == 11)
# Corpos d'água continental (12) e costeiro (13)
ucs_aguas = cobertura_sp_2010 %>% filter(USO2010 %in% c(12,13))
Fonte: os autores (2024). Legenda: criação das diferentes classes de antromas com base no atributo uso e cobertura do solo (provenientes de cobertura_sp_2010).
No script acima, realizamos a fragmentação do conjunto **cobertura_sp_2010* utilizando os códigos para as diferentes tipologias de uso e cobertura do solo. Destacamos que as áreas foram agregadas em conformidade ao postulado anteriormente. Proveniente desta fragmentação, também entendida como mineração dos dados, criamos os seguintes conjuntos (8 no total):
Estes conjuntos representam as tipologias de uso e cobertura do solo presentes no Estado de São Paulo e também os antromas classificados com base nos usos e coberturas presentes na Unidade da Federação. Ressalva-se que, como reportamos anteriormente, algumas tipologias agregam dados de diferentes contextos territoriais. A exemplo toma-se a área artificial a qual aglomera áreas como cidades, vilas, aldeias indígenas e comunidades quilombolas. Nesta perspectiva, tivemos um alerta para as próximas análises, tendo em vista que estas áreas descrevem diferentes antromas povoados. Assim, nesta etapa as consideramos somente como áreas artificiais, tratando-as conjuntamente. Todavia, na junção dos dados de uso e cobertura do solo com os dados populacionais, a distinção da tipologia do bioma antropogênico foi referida com base nos dados dos antromas povoados, tendo em vista a melhor diferenciação frente as ocupações e usos dos biomas antropogênicos.
Realizada a mineração e a manipulação dos dados, criando os conjuntos dos antromas de uso e cobertura do solo presentes no Estado de São Paulo, passamos para visualização destes conjuntos individualmente. No código a seguir, estabelecemos, através de st_geometry() o mecanismo para operação da função plot(), indicando que esta utilizasse a geometria dos polígonos de cada tipologia de uso e cobertura como forma para a plotagem. Além disso, usamos o fator col para que a função plot() atribuisse aos polígonos as respectivas cores destinadas à tipologia antropogênica. Ademais, removemos as bordas dos polígonos, permitindo somente a plotagem da forma colorida (border = NA). Adiante estão representados os diferentes antromas com base nos usos e coberturas do solo.
Figura: estrutura codificada para produção das imagens referentes às tipologias de antromas com base no atributo uso e cobertura do solo.
# Plotar Urbanos Mistos (1)
plot(st_geometry(ucs_urbanos_mistos), col = ucs_urbanos_mistos$cor, main = "Urbanos Mistos", border = NA)
# Plotar Terras Agrícolas (2)
plot(st_geometry(ucs_terras_agricolas), col = ucs_terras_agricolas$cor, main = "Terras Agrícolas", border = NA)
# Plotar Terras Pecuárias
plot(st_geometry(ucs_terras_pecuarias), col = ucs_terras_pecuarias$cor, main = "Terras Pecuárias", border = NA)
# Plotar Florestas de Uso Sustentável (4)
plot(st_geometry(ucs_floresta_uso_sustentavel), col = ucs_floresta_uso_sustentavel$cor, main = "Áreas Florestais de Uso Sustentável", border = NA)
# Plotar Silvicultura (5)
plot(st_geometry(ucs_silvicultura), col = ucs_silvicultura$cor, main = "Silvicultura", border = NA)
# Plotar Áreas de Conservação e Preservação (6)
plot(st_geometry(ucs_conservacao_preservacao), col = ucs_conservacao_preservacao$cor, main = "Áreas de Conservação e Preservação", border = NA)
# Plotar Vilas Agrícolas (11)
plot(st_geometry(ucs_vilas_agricolas), col = ucs_vilas_agricolas$cor, main = "Vilas Agrícolas", border = NA)
# Plotar Corpos d'água
plot(st_geometry(ucs_aguas), col = ucs_aguas$cor, main = "Corpos d'água", border = NA)
Fonte: os autores (2024). Legenda: antromas paulistas isolados com base na tipologia de uso e cobertura do solo.
As imagens geradas pela plotagem dos conjuntos revelaram como os antromas paulistas estão distribuídos dentro da Unidade da Federação isoladamente. Na figura área artificial observamos a distribuição dos aglomerados populacionais, principalmente aqueles associados a municípios, vilas, distritos e comunidades tradicionais. Vale destacar que nas imagens mosaico de ocupações em área florestal e mosaico de ocupações em áreas campestres também há presença de população, todavia, aqui foram representadas de forma genérica. Conforme pontuamos anteriormente, na junção dos antromas de uso e cobertura do solo com os antromas povoados, poderemos distinguir onde as populações estão inseridas de fato nesses dois conjuntos.
No que resguarda as imagens área agrícola e pastagem com manejo temos representadas as áreas agrícolas e áreas pecuárias isoladamente. Aqui temos a referência às áreas propriamente de plantio e criação, não havendo população diretamente associada. Do mesmo modo matas nativas, conservação e preservação representam antromas onde não há presença humana e atividade humana associada. Diferentemente, a imagem silvicultura representa áreas destinadas à produção de espécies arbóreas ou áreas de uso, mas são também áreas onde a presença humana é pouco representativa.
Finalmente, a imagem corpos d’água representam a magnitude dos rios, lagos, lagoas e cursos d’água, inclusive costeiros, que percorrem o Estado. Apesar de não representar propriamente um antroma, consideramos a relevância dos rios tanto para manutenção da qualidade de vida e ambiental, bem como por sua significativa importância para o planejamento territorial, conforme preconiza as normalizações e regulamentações nacionais.
Dando continuidade às nossas análises, passamos à junção destes conjuntos para a plotagem conjunta dos antromas de uso e cobertura do solo, de modo a obtermos um panorama geral da distribuição destes antromas no território paulista. Para tal, mostrou-se necessário criar uma legenda que representasse as tipologias e cores associdas a cada um dos antromas de uso e cobertura do solo. Para tanto, extraímos estas informações (tipologia e cor) do conjunto cobertura_sp_2010 para construção da legenda. O script a seguir ilustra o processo de criação da **legenda___antromas_ucs**.
Script: criação da legenda para os antromas de uso e cobertura do solo (legenda_antromas_ucs).
# Definir a legenda manualmente
legenda_antromas_ucs <- data.frame(tipologia = c("Urbanos Mistos", "Terras Agrícolas", "Terras Pecuárias", "Áreas Florestais de Uso Sustentável", "Silvicultura", "Áreas de Conservação e Preservação", "Vilas Agrícolas", "Corpos d'Água"),cor = c("#FF4747", "#F4B488", "#FFEEB7", "#A8D08D", "#E2EFD9", "#538135", "#ED833B", "#000066"))
Fonte: os autores (2024). Legenda: script demonstrando o mecanismo para criação da legenda a ser plotada na imagem dos antromas de uso e cobertura do solo.
Realizados estes procedimentos para construção da imagem dos antromas de uso e cobertura do solo, passamos propriamente à plotagem dos conjuntos conjuntamente. Através do operador add = TRUE colocamos em uma mesma plotagem os diferentes conjuntos dos antromas de uso e cobertura do solo. A imagem a seguir representa os antromas de uso e cobertura presentes no Estado de São Paulo.
Figura: Antromas de uso e cobertura do solo do Estado de São Paulo.
# Plotar todas as geometrias com suas cores correspondentes
plot(st_geometry(ucs_urbanos_mistos), col = ucs_urbanos_mistos$cor, border = NA, main = "Antromas de Uso e Cobertura do Solo")
plot(st_geometry(ucs_terras_agricolas), col = ucs_terras_agricolas$cor, border = NA, add = TRUE)
plot(st_geometry(ucs_terras_pecuarias), col = ucs_terras_pecuarias$cor, border = NA, add = TRUE)
plot(st_geometry(ucs_floresta_uso_sustentavel), col = ucs_floresta_uso_sustentavel$cor, border = NA, add = TRUE)
plot(st_geometry(ucs_silvicultura), col = ucs_silvicultura$cor, border = NA, add = TRUE)
plot(st_geometry(ucs_conservacao_preservacao), col = ucs_conservacao_preservacao$cor, border = NA, add = TRUE)
plot(st_geometry(ucs_vilas_agricolas), col = ucs_vilas_agricolas$cor, border = NA, add = TRUE)
plot(st_geometry(ucs_aguas), col = ucs_aguas$cor, border = NA, add = TRUE)
# Adicionar a legenda
legend("topright", legend = legenda_antromas_ucs$tipologia, fill = legenda_antromas_ucs$cor, title = "Tipologia", cex = 0.8)
Fonte: os autores (2024). Legenda: figura apresentando os diferentes antromas de uso e cobertura do solo presentes no Estado de São Paulo. A legenda presente na figura representa as cores associadas a cada uma das tipologias de antromas.
A Figura gerada representa os diferentes antromas de uso e cobertura do solo. Nesta plotagem temos as 8 classes elencadas anteriormente coloridas conforme estipulado para as classes. Ressalva-se que a plotagem, apesar de considerar o sistema de referenciamento geográfico, não representa o mapeamento no plano de coordenadas, sendo um extrato ordenado dos dados. Nas próximas etapas realizaremos a junção dos dados para plotagem através da função ggplot(), onde o plano cartográfico é visível.
Dando continuidade às análises, realizamos nesta etapa a construção do mapeamento estático por meio da função ggplot(). Entretanto, para realizarmos isto, foi preciso, primeiramente, realizar a junção das oito classes de antromas de uso e cobertura do solo. A seguir, o código para junção dos dados em um único dataframe (antromas_ucs_sp) é apresentado. Além disso, foi necessário criar um conjunto em que constavam as cores associadas a cada uma das tipologias de uso e cobertura (antromas_ucs_sp_cores); o código deste procedimento também é representado na sequência.
Script: Junção das classes de antromas de uso e cobertura do solo em um único dataframe(antromas_ucs_sp) e junção de cores ((antromas_ucs_sp_cores))
# Criar um dataframe com as geometrias e cores correspondentes
antromas_ucs_sp <- rbind(ucs_urbanos_mistos, ucs_vilas_agricolas, ucs_terras_agricolas, ucs_terras_pecuarias, ucs_silvicultura, ucs_floresta_uso_sustentavel, ucs_conservacao_preservacao, ucs_aguas)
# Obter os níveis únicos da coluna "cor"
antromas_ucs_sp_cores <- unique(antromas_ucs_sp$cor)
Fonte: os autores (2024). Legenda: script apresentando o modelo para a construção do conjunto antromas_ucs_sp, o qual aglomera as 8 classes de antromas de uso e cobertura do solo, e do conjunto antromas_ucs_sp_cores, que integra as cores associadas às diferentes tipologias de uso e cobertura do solo.
De acordo com o observado no código acima, o conjunto antromas_ucs_sp foi construído de forma correta, agregando as diferentes classes de antromas de uso e cobertura do solo em um único dataframe. Partindo deste conjunto, passamos à criação do mapeamento estático dos antromas de uso e coberutra do solo. O código a seguir demonstra como foi estruturada a função ggplot() para realizar o mapeamento dos dados dos antromas de uso e cobertura do solo, seguido da imagem referente ao Mapeamento Estático dos Antromas de Uso e Cobertura do Solo.
Script: Mapeamento Estático dos Antromas de Uso e Cobertura do Solo
# Plotar com ggplot2 e adicionar a legenda diretamente
mapa_antromas_ucs <- ggplot(antromas_ucs_sp, aes(fill = factor(cor, levels = unique(legenda_antromas_ucs$cor)))) +
geom_sf(color = NA) +
scale_fill_manual(values = legenda_antromas_ucs$cor,
labels = legenda_antromas_ucs$tipologia,
name = "Tipologia") + # Definindo o nome da legenda
labs(title = "Antromas de Uso e Cobertura do Solo",
subtitle = "Área de Estudo: Estado de São Paulo",
x = "Longitude",
y = "Latitude") +
theme_minimal()
print(mapa_antromas_ucs)
Fonte: os autores (2024). Legenda: na imagem gerada pelo script são representados os antromas de uso e cobertura do solo no Estado de São Paulo.
Detalhadamente, em ggplot() inserimos o nome do conjunto (antromas_ucs_sp) e indicamos que os polígonos fossem plotados com os preenchimentos (fill) presentes no conjunto, seguindo e pareando com as cores (cor) presentes no conjunto antromas_ucs_sp_cores. Em geom_sf determinamos que que as bordas dos polígonos não fossem representadas (color = NA), de modo a não interferir nas cores representadas pelo preenchimento.
Complementarmente, em scale_fill_manual() determinamos o formato para a construção da legenda presente no mapeamento; em values = legenda_antromas_ucs\(cor* indicamos que os valores seriam as cores presentes no conjunto **legenda_antromas_ucs**, enquanto em *labels = legenda_antromas_ucs\)tipologia indicamos as categorias que deveriam estar presentes na legenda. Por fim, em name = “tipologia” determinamos o nome escrito sobre a legenda.
Em labs() determinamos aspectos gráficos para a plotagem, como title (título), subtitle (subtítulo), dimensões gráficas x (longitude) e y (latitude).Finalmente, em theme_minimal() tem-se o formato de representação gráfica do mapeamento, como linhas e distribuições visuais, não requerendo ajustes para tal.
Com isto, conseguimos realizar o mapeamento estático dos antromas de uso e cobertura do solo no Estado de São Paulo. As análises para validação do mapeamento serão realizadas posteriormente. Deste ponto, partimos para construção do mapeamento interativo, utilizando a base OpenStreetMaps (OSM).
Realizada a construção do mapeamento estático dos antromas de uso e cobertura do solo do Estado de São Paulo, passamos ao mapeamento interativo. O mapeamento interativo teve por objetivo espacializar os resultados classificados em um layout dinâmico, que pudesse ser integrado com outras plataformas desktop, mobile ou web. Para tanto, o procedimento para criação do mapeamento interativo é representado a seguir. Destaca-se que em tentativas não reportadas neste trabalho, o conjunto de dados antromas_ucs_sp exigiu grande tempo de processamento, comprometendo a memória do computador. Tendo em vista isto, passamos ao emprego dos 8 subconjuntos que compunham o conjunto maior, ou seja, aqueles 8 conjuntos que tratavam das diferentes tipologias de antromas de uso e cobertura do solo, sendo eles:
Dito isso, o primeiro passo para construção do mapeamento interativo foi determinar que os 8 subconjuntos possuissem a mesma base de projeção geométrica ou sistema de coordenadas (crs) que o OpenStreetMaps (OSM). Para tal, utilizamos a função st_transform() nos 8 sbuconjuntos, selecionando o crs +proj=longlat +datum=WGS84 em st_crs(). Nesta etapa os nomes dos subconjuntos foram mantidos os mesmos, pois, a mudança indicada pelas funções resguarda somente à estrutura de projeção dos dados.
Realizada a transformação do crs dos subconjuntos, passamos à fusão dos polígonos que integravam os subconjuntos. Conforme apresentamos anteriormente, a tentativa de criar o mapeamento interativo com os dados fragmentados exigiu muito tempo de processamento e não viabilizou o resultado previsto. Portanto, realizamos a fusão dos polígonos por meio da função st_union(), a qual permitiu a construção de camadas de multipolígonos. Para cada um dos 8 subconjuntos foram construídas camadas que os representassem, sendo elas:
Estruturadas as 8 camadas para os subconjuntos do antromas de uso e cobertura do solo, realizamos o procedimento de simplificação das camadas. O objetivo deste procedimento também foi reduzir o tempo de processamento e a demanda por memória para construção do mapeamento interativo. De acordo com a literatura, este é um procedimento comum quando a quantidade de dados a serem mapeados é significativa (mais de 200 mil polígonos no Estado de São Paulo, por exemplo). Assim, seguindo as sugestões dos autores, aplicamos o índice de tolerância (tolerancia_deg) de 0.001, sendo este um valor que não prejudicaria a resolução do mapeamento interativo.
Após a determinação do índice de tolerância para a simplificação, construímos a função para simplificar os multipolígonos conjuntamente. A função estabeleceu a estrutura para que a simplificação ocorresse, em cada uma das 8 camadas, de modo único, utilizando a base do índice de tolerância para a simplificação. O emprego desta função culminou na criação de 8 camadas simplificadas referentes às diferentes tipologias de uso e cobertura, sendo elas:
Finalizada a etapa de simplificação, passamos à organização do layout das camadas a serem plotadas no mapeamento interativo. Esta organização foi devida à estrutura como os dados estavam organizados e distribuídos nas dimensões XY. Para que o processamento das camadas ocorressem de forma única (redução do tempo de processamento) era necessário que os dados que compunham as camadas fossem lidos de forma única. Portanto, atribuímos à lista outras duas chaves “[]”, para que a estrutura fosse lida de forma individual, como ilustra o código a seguir.
Script: Organização para leitura da camada de forma única.
# Camada de área artificial simplificada
urbanos_mistos_multipolygons <- camada_ucs_urbanos_mistos_simplificada[[1]]
terras_agricolas_multipolygons <- camada_ucs_terras_agricolas_simplificada[[1]]
terras_pecuarias_multipolygons <- camada_ucs_terras_pecuarias_simplificada[[1]]
floresta_uso_sustentavel_multipolygons <- camada_ucs_floresta_uso_sustentavel_simplificada[[1]]
silvicultura_multipolygons <- camada_ucs_silvicultura_simplificada[[1]]
conservacao_preservacao_multipolygons <- camada_ucs_conservacao_preservacao_simplificada[[1]]
vilas_agricolas_multipolygons <- camada_ucs_vilas_agricolas_simplificada[[1]]
aguas_multipolygons <- camada_ucs_aguas_simplificada[[1]]
Fonte: os autores (2024). Legenda: código demonstrando o formato para o estabelecimento de leitura única por camada de multipolígonos, de modo a reduzir o tempo de processamento dos dados durante o mapeamento das informações.
Conforme observado no código acima, 8 camadas foram estruturadas no modelo para representação no mapeamento interativo. Cada uma delas representa uma tipologia de antromas de uso e cobertura do solo a ser inserida no mapeamento. São as camadas construídas:
Com estas 8 camadas estruturadas, partimos para a construção do mapeamento interativo através da função leaflet(). A base (fundo) para o mapeamento dos dados foi a mesma utilizada na construção do mapeamento interativo dos antromas povoados, o Open Street Maps (OSM). Reiteramos que nossa escolha foi feita pela gratuidade dos serviços OSM e pela colaboração na construção de mapeamentos que esta fonte de cartografias permite. Sobre a estrutura de mapeamento, direcionamos a visualização na região do Estado de São Paulo através da função setView(), utizando as informações lng = -47.9292, lat = -23.5505, zoom = 7 (longitude, latitude e zoom, respectivamente) para tal.
A função addPolygons() foi responsável pela integração das 8 camadas ao mapeamento. Nela, direcionamos o conjunto de dados a ser plotado (data), a coloração das bordas (color), a cor do preendimento dos polígonos (fillColor), a opacidade do preencimento (fillOpacity) e o indicador do nome para aquela camada (popup). Devemos pontuar que as cores utilizadas no atributo de mapeamento fillColor foram as mesmas estabelecidas em legenda_antromas_ucs, de modo a manter o padrão colorimétrico utilizado ao longo do trabalho. Além disso, removemos as bordas na representação das camadas (color = NA), de modo que elas não se sobrepusessem em outros polígonos, afetando a visualização das outras camadas.
Por fim, fomos adicionando camada por camada ao mapeamento interativo Para que pudéssemos observar se o tempo de processamento foi otimizado e que o computador seria capaz de gerar o mapeamento interativo dos antromas de uso e cobertura do solo do Estado de São Paulo. Assim sendo, o código a seguir representa o modelo para construção do mapeamento interativo por camadas.
Script: Construção do mapeamento interativo dos antromas de uso e cobertura do solo do Estado de São Paulo por camadas.
# Criar um mapa Leaflet com base no OpenStreetMap e adicionar a camada de área artifical
antromas_ucs_interativo <- leaflet() %>%
addTiles() %>%
setView(lng = -47.9292, lat = -23.5505, zoom = 7) %>%
addPolygons(data = urbanos_mistos_multipolygons,
color = NA,
fillColor = "#FF4747",
fillOpacity = 1,
popup = "Urbanos Mistos")
# Adicionar camada de área agrícola
antromas_ucs_interativo <- antromas_ucs_interativo %>% addPolygons(data = terras_agricolas_multipolygons,
color = NA,
fillColor = "#F4B488",
fillOpacity = 1,
popup = "Terras Agrícolas")
# Adicionar camada de pastagem com manejo
antromas_ucs_interativo <- antromas_ucs_interativo %>% addPolygons(data = terras_pecuarias_multipolygons,
color = NA,
fillColor = "#FFEEB7",
fillOpacity = 1,
popup = "Terras Pecuárias")
# Adicionar camada de ocupação florestal
antromas_ucs_interativo <- antromas_ucs_interativo %>% addPolygons(data = floresta_uso_sustentavel_multipolygons,
color = NA,
fillColor = "#A8D08D",
fillOpacity = 1,
popup = "Floresta de Uso Sustentável")
# Adicionar camada de silvicultura
antromas_ucs_interativo <- antromas_ucs_interativo %>% addPolygons(data = silvicultura_multipolygons,
color = NA,
fillColor = "#E2EFD9",
fillOpacity = 1,
popup = "Silvicultura")
# Adicionar camada de Matas
antromas_ucs_interativo <- antromas_ucs_interativo %>% addPolygons(data = conservacao_preservacao_multipolygons,
color = NA,
fillColor = "#538135",
fillOpacity = 1,
popup = "Conservação e Preservação")
# Adicionar camada de Ocupação Campestre
antromas_ucs_interativo <- antromas_ucs_interativo %>% addPolygons(data = vilas_agricolas_multipolygons,
color = NA,
fillColor = "#ED833B",
fillOpacity = 1,
popup = "Vilas Agrícolas")
# Adicionar camada de Águas
antromas_ucs_interativo <- antromas_ucs_interativo %>% addPolygons(data = aguas_multipolygons,
color = NA,
fillColor = "#000066",
fillOpacity = 1,
popup = "Águas")
# Adicionar a legenda ao mapa
antromas_ucs_interativo <- antromas_ucs_interativo %>%
addLegend(position = "bottomright",
colors = legenda_antromas_ucs$cor,
labels = legenda_antromas_ucs$tipologia,
title = "Tipologia")
Fonte: os autores (2024). Legenda: código ilustrando a construção do mapeamento interativo dos biomas antropogênicos de uso e cobertura do solo do Estado de São Paulo através da função leaflet() na base Open Street Maps. Em cada linha de comando é representada a inserção de uma das camadas que representam os diferentes antromas no Estado.
Estruturado o mapeamento, passamos à visualização do mapeamento interativo dos antromas de uso e cobertura do solo do Estado de São Paulo.
Figura: Mapeamento interativo dos antromas de uso e cobertura do solo do Estado de São Paulo.
antromas_ucs_interativo