1 Apresentação

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 demográficos produzidos pelo Instituto Brasileiro de Geografia e Estatística (IBGE) durante o Censo demográfico 2010. 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 dos dados demográficos brasileiros. Após estas etapas, nos dedicamos à construção dos mapeamentos estático e interativo dos antromas povoados brasileiros, utilizando um arquivo shape file dos municípios paulistas para o primeiro e o Open Street Maps (OSM) do segundo como pano de fundo para as construções. 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.

2 Introdução

De acordo com Biggs et al. (2021), uma das etapas essenciais para construção de modelos socioecológicos resguarda o levantamento de atributos que devem compor a sua estrutura analítica. Segundo estes autores, é imprescindível que sejam identificados, reconhecidos e analisados cada um dos atributos, de modo a reconhecer o perfil dos dados e sua possível aplicação, seja em termos descritivos, seja em termos de mapeamento das informações.

Nesta perspectiva, Ellis (2020) apresentou que os atributos populacionais, principalmente a densidade demográfica, associados aos antromas são fundamentais para modelagem dos biomas antropogênicos, tanto em escala global, quanto em escala local. Nos guiando por estas diretrizes acerca dos aspectos demográficos atrelados aos antromas, realizamos neste trabalho a análise exploratória dos dados censitários produzidos pelo Instituto Brasileiro de Geografia e Estatística (IBGE).

A análise exploratória teve por objetivo identificar os atributos que compunham os dados da operação censitária realizada pelo IBGE no ano de 2010 (IBGE, 2013a). Além disso, tentamos reconhecer características especiais que permitissem a integração dos dados tabulares fornecidos por esta instituição, intuindo ampliar o conjunto de dados para modelagem dos antromas localmente.

Complementarmente, nos empenhamos em avaliar a possibilidade de plotagem destes dados, ou seja, de distribuir espacialmente as informações censitárias em mapeamentos locais. Esta operação foi realizada no software R®, utilizando as diretrizes investigativas apresentadas por Lovelace et al. (2019) e Anderson (2021) para a análise exploratória e para criação de mapeamentos e plotagens de informações geográficas. Estes autores apresentaram um formato crítico-analítico em suas obras, demonstrando a lógica envolvida para atingirmos os objetivos apenas apresentados para este trabalho.

Ao longo da análise exploratória, apresentamos sínteses detalhadas das funções utilizadas e que foram extraídas das duas obras apenas tratadas. Por meio desta pesquisa, realizamos o levantamento de características dos dados censitários, nos formatos vetoriais e raster, que permitiriam o emprego deles na estruturação da árvore de decisão para classificação dos antromas localmente. Para tanto, ressaltamos que esta foi uma etapa essencial para construção da modelagem dos biomas antropogênicos em linguagem R®. Nela, reconhecemos atributos dos dados demográficos que se alinhavam àqueles identificados por Gauthier (2021) e Ellis, Beusen e Goldewijk (2020) como fundamentais para o mapeamento dos antromas no R®.

Destacamos que o formato deste manuscrito não segue os padrões textuais convencionais, onde são detalhadas separadamente “Introdução”, “Metodologia/Materiais e Métodos”, “Resultados e Discussão” e “Conclusões”. Aqui, reportamos através de um formato lógico de programação, ou seja, apresentamos primeiro o que foi realizado no software R (Metodologia), seguidamente o código R (Metodologia e Resultados) e, à medida que os resultados são gerados pelo programa computacional, eles são discutidos na sequência (Discussão). Portanto, este é o formato que se assume neste manuscrito, de modo a facilitar a compreensão analítica e concatenar as análises realizadas.

3 Dados Demográficos: do carregamento ao mapeamento

3.1 Análise Exploratória de Dados Demográficos

Na primeira etapa da análise exploratória dos dados demográficos, os arquivos tabulares fornecidos pelo Instituto Brasileiro de Geografia e Estatística (IBGE) foram baixados da plataforma digital da instituição. De acordo com o IBGE, o menor nível de desagregação de dados são os microdados do Censo 2010, ou seja, nestes dados estão inseridas as informações para cada uma das cidades investigadas pelo IBGE durante o censo demográfico. Há nestes dados a distribuição da população municipal em áreas urbanas e rurais e, também, em diferentes sistemáticas urbanas, como sede municipal ou fora da sede municipal. A página web onde estes dados encontram-se disponibilizados é:

https://www.ibge.gov.br/estatisticas/sociais/populacao/9662-censo-demografico-2010.html?=&t=microdados.

Apontamos que utilizamos os dados referentes ao Estado de São Paulo (Brasil) como modelo experimental para o mapeamento dos antromas localmente, pois, esta Unidade da Federação (UF) engloba diferentes tipologias territoriais (usos e coberturas do solo) e possui significativa representatividade na economia, na política e na gestão nacional, assim como simbólica distribuição e dimensão populacional.

Os arquivos baixados da plataforma do IBGE foram incluídos em uma pasta associada ao trabalho (diretório) para ulterior aplicação no software R®. Nesta pasta encontram-se a documentação de orientação fornecida pelo Instituto Brasileiro, os microdados e as tabelas referentes à população do Estado de São Paulo recenseada no Censo 2010. Os dados tabulares encontram-se na extensão “.xls” (Microsoft Access 365) para importação no R®.

Sinalizamos que alguns ajustes no conteúdo das tabelas foram necessários, pois, impediam a leitura correta dos arquivos no software. Portanto, os arquivos tabulares foram abertos no Microsoft Access 365 para remoção de títulos e informações adicionais, como subtítulos, legendas e referências bibliográficas, que constavam nos dados originais. Assim, nos dados editados permaneceram somente os nomes dos atributos (primeira linha de cada coluna) e os dados censitários de cada atributo necessários para análise.

Além disso, ressaltamos que os dados tabulares numéricos continham espaçamentos entre as unidades e nos valores nulos um hífen (-), características que impediam a leitura dos dados como valores numéricos, sendo interpretados pelo R como “caracteres”. Portanto, realizamos a edição das tabelas disponibilizadas pelo IBGE, removendo os espaços e substituindo os hífens por zeros (0) nos conjuntos analisados neste trabalho. Resalvamos que estas ediçoes foram realizadas no Microsoft Excel 365.

As operações realizadas nos programas Access 365 e no Excel 365 não são reportadas ao longo do texto. Todavia os arquivos tabulares editados, em formato “.xls”, foram disponibilizados como arquivos complementares deste trabalho e encontram-se disponíveis no GitHub do Projeto EcoMetrologia https://github.com/maximilianogobbo/landuseplanning.git> e podem ser acessados remotamente. Ademais, todos os documentos que integram o portifólio dos dados demográficos, incluindo os scripts R e Rmarkdown, foram salvos em um único diretório, de modo a facilitar e dinamizar a operação, a manipulação e a análise de dados no software. A função getwd (_) mostra o diretório de trabalho referido, local virtual onde estão todos os documentos desta investigação:

## [1] "C:/ARQUIVOS COMPUTADOR/DOUTORADO/DOUTORADO TESE/03 DADOS GEOESPACIAIS/02 DENSIDADE DEMOGRÁFICA"

De todos os documentos baixados da plataforma do IBGE, apenas 3 delas foram utilizadas na primeira fase da análise exploratória, pois, somente estas constavam informações sobre: a localização geográfica dos municípios do Estado de São Paulo, a população em cada uma das subdivisões estabelecidas no recenseamento, a área e/ou a densidade demográfica de cada município.

Na sequência são apresentados separadamente o carregamento de cada uma das tabelas no R® através da função read_excel (). Para que esta função operasse houve indicação do nome do arquivo e do diretório onde estavam salvas as tabelas, conforme ilustra o Script 1 a seguir.

Além disso, nesta fase preliminar foram empregadas outras duas funções subsequentemente ao carregamento. A função names (), para identificar o nome dos atributos dos conjuntos de dados (primeira linha dos dados tabulares), e a função summary (), que oferece uma síntese dos dados analisados por ela, seja em termos qualitativos (caracteres), seja em termos quantitativos (numéricos e estatísticos).

A primeira tabela carregada no software foi “populacao01.xls”, utilizando a função read_excel (). Sequencialmente, transformamos a tabela em um objeto (dataframe), que recebeu o nome populacao01. Por meio da função names (), verificamos os nomes dos atributos deste conjunto dados. Posteriormente, empregamos a função summary () para obtermos uma síntese qualitativa e quantitativa do dataframe populacao01. O Script 1 (código) ilustra este procedimento preliminar em linguagem R®.

Script: Loading and Preliminary Analysis of populacao01

names(populacao01) #a função names() apresenta os títulos em cada uma das colunas do objeto (tabela)#
##  [1] "municipio"                           "Área Urbanizada"                    
##  [3] "Área não Urbanizada"                 "Área Urbana Isolada"                
##  [5] "Área Rural (Exceto Aglomerado)"      "Aglomerado Rural de Extensão Urbana"
##  [7] "Aglomerado Rural Povoado"            "Aglomerado Rural Núcleo"            
##  [9] "Outros Aglomerados Rurais Raros"     "Código da Unidade Geográfica"
summary(populacao01)
##   municipio         Área Urbanizada    Área não Urbanizada Área Urbana Isolada
##  Length:645         Min.   :     627   Min.   :    0       Min.   :    0.0    
##  Class :character   1st Qu.:    3753   1st Qu.:    0       1st Qu.:    0.0    
##  Mode  :character   Median :    9485   Median :    0       Median :    0.0    
##                     Mean   :   59817   Mean   : 1048       Mean   :  508.3    
##                     3rd Qu.:   33907   3rd Qu.:   15       3rd Qu.:   79.0    
##                     Max.   :11065838   Max.   :65912       Max.   :41236.0    
##  Área Rural (Exceto Aglomerado) Aglomerado Rural de Extensão Urbana
##  Min.   :    0                  Min.   :    0.0                    
##  1st Qu.:  591                  1st Qu.:    0.0                    
##  Median : 1218                  Median :    0.0                    
##  Mean   : 2244                  Mean   :  246.9                    
##  3rd Qu.: 2780                  3rd Qu.:    0.0                    
##  Max.   :45899                  Max.   :54903.0                    
##  Aglomerado Rural Povoado Aglomerado Rural Núcleo
##  Min.   :   0.00          Min.   :  0.000        
##  1st Qu.:   0.00          1st Qu.:  0.000        
##  Median :   0.00          Median :  0.000        
##  Mean   :  56.94          Mean   :  8.567        
##  3rd Qu.:   0.00          3rd Qu.:  0.000        
##  Max.   :6185.00          Max.   :813.000        
##  Outros Aglomerados Rurais Raros Código da Unidade Geográfica
##  Min.   :   0.00                 Min.   :3500105             
##  1st Qu.:   0.00                 1st Qu.:3514601             
##  Median :   0.00                 Median :3528700             
##  Mean   :  40.07                 Mean   :3528698             
##  3rd Qu.:   0.00                 3rd Qu.:3543204             
##  Max.   :2889.00                 Max.   :3557303

Source: the authors (2023). Caption: preliminary analysis of the population data set using the functions: names () and summary () in the R software.

A análise preliminar dos dados de populacao01 revelou alguns aspectos importantes sobre o conjunto. O primeiro a ser pontuado envolve a função names () que indica o nome dos atributos que compõem o dataframe. Estes atributos referem-se às tipologias dos setores censitários (uso do solo) para indicar o número de habitantes recenseados em cada um deles para cada um dos municípios paulistas.

Conforme verifica-se nos resultados de summary (), existem 645 linhas (do inglês, length) que representam os municípios do Estado. Cada uma das linhas oferece o número de habitantes recenseados em cada uma das tipologias territoriais associadas à cidade, a qual é indicada na primeira linha do conjunto de dados.

Outro aspecto a ser destacado nos resultados apresentados por esta função resguarda ao atributo Código da Unidade Geográfica, apesar de ser definido por valores (números), é um descritor numérico, ou seja, uma sequência de números atribuída para determinar a área de referência. Esse código descritor é entendido, na engenharia de software e na modelagem de banco de dados, como atributos identificadores, os quais não se repetem ao longo do conjunto de dados e são exclusivamente atribuídos a uma entidade, que no caso do dataframe populacao01 são as cidades paulistas.

Dito isso, realizamos o mesmo procedimento analítico com a tabela “populacao02.xls” do diretório, a partir da qual criou-se o dataframe populacao02 e que é descrito no Script 2.

Script: Loading and Preliminary Analysis of populacao02

names(populacao02) #a função names() apresenta os títulos em cada uma das colunas do objeto (tabela)#
## [1] "municipio"                       "Total"                          
## [3] "Urbana"                          "Na sede municipal"              
## [5] "Rural"                           "Área\ntotal\n(km²)"             
## [7] "Densidade demográfica (hab/km²)" "Código da Unidade Geográfica"
summary(populacao02) #a função summary() apresenta as informações sintetizadas acerca do objeto (tabela), onde são já indicados aspectos importantes, como a estrutura do dado vetorial, os valores máximos e mínimos do objeto, entre outras. Estas informações serão de suma importância para a análise exploratória dos dados#
##   municipio             Total              Urbana         Na sede municipal 
##  Length:645         Min.   :     805   Min.   :     627   Min.   :     627  
##  Class :character   1st Qu.:    5151   1st Qu.:    3865   1st Qu.:    3681  
##  Mode  :character   Median :   12737   Median :   10352   Median :    9563  
##                     Mean   :   63972   Mean   :   61372   Mean   :   56890  
##                     3rd Qu.:   37910   3rd Qu.:   34748   3rd Qu.:   32676  
##                     Max.   :11253503   Max.   :11152344   Max.   :11111108  
##      Rural        Área\ntotal\n(km²) Densidade demográfica (hab/km²)
##  Min.   :     0   Min.   :   5.4     Min.   :    3.73               
##  1st Qu.:   628   1st Qu.: 157.9     1st Qu.:   19.69               
##  Median :  1286   Median : 281.1     Median :   38.87               
##  Mean   :  2600   Mean   : 384.8     Mean   :  302.13               
##  3rd Qu.:  2971   3rd Qu.: 508.5     3rd Qu.:  109.81               
##  Max.   :101159   Max.   :1977.4     Max.   :12519.10               
##  Código da Unidade Geográfica
##  Min.   :3500105             
##  1st Qu.:3514601             
##  Median :3528700             
##  Mean   :3528698             
##  3rd Qu.:3543204             
##  Max.   :3557303

Source: the authors (2023). Caption: preliminary analysis of the population data set using the functions: names () and summary () in the R software.

Observamos, através dos resultados obtidos pela função names (), que o conjunto populacao02 possui alguns atributos com o mesmo nome e outros diferentes daqueles presentes no dataframe populacao01. Destacamos os atributos “densidade demográfica” e “área total”, que são informações que versam sobre o número de indivíduos em determinada área e a área total do setor censitários, respectivamente. Novamente, o atributo Código da Unidade Geográfica é interpretado como atributo numérico, incorrendo no mesmo problema identificado anteriormente para populacao01.

Seguidamente, realizamos o mesmo procedimento com o arquivo “populacao03.xls”, que deu origem ao dataframe populacao03, como mostra o Script 3.

Script: Loading and Preliminary Analysis of populacao03

names(populacao03) #a função names() apresenta os títulos em cada uma das colunas do objeto (tabela)#
##  [1] "municipio"                                                    
##  [2] "População residente Absoluta"                                 
##  [3] "População residente absoluta total urbana"                    
##  [4] "População residente absoluta total na sede municipal urbana\n"
##  [5] "Total Relativa (%)...5"                                       
##  [6] "Total Relativa (%)...6"                                       
##  [7] "Na sede municipal Relativa (%)\n"                             
##  [8] "Área\ntotal\n(km²)\n"                                         
##  [9] "Densidade demográfica (hab/km²)"                              
## [10] "Código da Unidade Geográfica"
summary(populacao03) #a função summary() apresenta as informações sintetizadas acerca do objeto (tabela), onde são já indicados aspectos importantes, como a estrutura do dado vetorial, os valores máximos e mínimos do objeto, entre outras. Estas informações serão de suma importância para a análise exploratória dos dados#
##   municipio         População residente Absoluta
##  Length:645         Min.   :     805            
##  Class :character   1st Qu.:    5151            
##  Mode  :character   Median :   12737            
##                     Mean   :   63972            
##                     3rd Qu.:   37910            
##                     Max.   :11253503            
##  População residente absoluta total urbana
##  Min.   :     627                         
##  1st Qu.:    3865                         
##  Median :   10352                         
##  Mean   :   61372                         
##  3rd Qu.:   34748                         
##  Max.   :11152344                         
##  População residente absoluta total na sede municipal urbana\n
##  Min.   :     627                                             
##  1st Qu.:    3681                                             
##  Median :    9563                                             
##  Mean   :   56890                                             
##  3rd Qu.:   32676                                             
##  Max.   :11111108                                             
##  Total Relativa (%)...5 Total Relativa (%)...6 Na sede municipal Relativa (%)\n
##  Min.   :100            Min.   : 24.90         Min.   : 12.60                  
##  1st Qu.:100            1st Qu.: 78.70         1st Qu.: 71.50                  
##  Median :100            Median : 88.40         Median : 84.30                  
##  Mean   :100            Mean   : 84.32         Mean   : 79.78                  
##  3rd Qu.:100            3rd Qu.: 94.90         3rd Qu.: 92.10                  
##  Max.   :100            Max.   :100.00         Max.   :100.00                  
##  Área\ntotal\n(km²)\n Densidade demográfica (hab/km²)
##  Min.   :   5.4       Min.   :    3.73               
##  1st Qu.: 157.9       1st Qu.:   19.69               
##  Median : 281.1       Median :   38.87               
##  Mean   : 384.8       Mean   :  302.13               
##  3rd Qu.: 508.5       3rd Qu.:  109.81               
##  Max.   :1977.4       Max.   :12519.10               
##  Código da Unidade Geográfica
##  Min.   :3500105             
##  1st Qu.:3514601             
##  Median :3528700             
##  Mean   :3528698             
##  3rd Qu.:3543204             
##  Max.   :3557303

Source: the authors (2023). Caption: preliminary analysis of the population data set using the functions: names () and summary () in the R software.

No Script 3, além de apresentar os resultados das duas funções analíticas, reportamos também as 10 primeiras linhas do dataframe populacao03, apresentadas logo após o carregamento dos dados através da função read_excel ().

Observamos que no conjunto populacao03 existem outros atributos numéricos, sendo eles: Total Relativa (%), TotalRelativa (%) e Na sede municipal Relativa (%). Estes atributos, todavia, representam proporções estatísticas sobre a população em cada uma das cidades paulistas, não propriamente sendo atribuídas a dimensões populacionais, como concentração ou densidade demográfica.

Além disso, reiteramos que o atributo identificador Códigos da Unidades Geográficas integra também este dataframe, sendo este o único identificador presentes nos três conjuntos analisados até este ponto. Entretanto, não há nos três conjuntos nenhuma definição direta de informações que espacializem a informação geográfica, como longitude, latitude e altitude dos pontos ou polígonos referentes aos setores censitários.

Mesmo identificando estes empecilhos apenas tratados, expandimos a análise preliminar com outras duas funções. Primeiramente, a função class () para reconhecer o formato estrutural dos três conjuntos. Sequencialmente, a função dim () que fornece o número de linhas e colunas dos conjuntos de dados. O Script 4 adiante demonstra os resultados obtidos.

Script: Application of the functions class () and dim () in the Preliminary Analysis

class(populacao01)
## [1] "tbl_df"     "tbl"        "data.frame"
class (populacao02)
## [1] "tbl_df"     "tbl"        "data.frame"
class(populacao03)
## [1] "tbl_df"     "tbl"        "data.frame"
dim(populacao01)
## [1] 645  10
dim(populacao02)
## [1] 645   8
dim(populacao03)
## [1] 645  10

Source: the authors (2023). Caption: Preliminary analysis of the datasets using the functions: class () and dim () in the R software.

Observamos, nos resultados gerados pela função class (), que os três conjuntos de dados (populacao01, populacao02 e populacao03) são do tipo dataframes, ou seja, são estruturados seguindo a distribuição da informação em linhas e colunas (tabular, da sigla inglesa, tbl). Nas colunas dos dataframes são reportadas as informações que caracterizam os municípios do Estado de São Paulo, ou seja, a resposta para cada um dos atributos identificados na primeira linha dos dataframes. Por outro lado, a função dim () reportou que o dataframe populacao01 é composto por 645 linhas e 10 colunas, enquanto populacao02 é estruturado em 645 linhas e 8 colunas e populacao03 em 645 linhas e 10 colunas.

Diante dessas informações, confirmamos que todas as linhas do dataframe populacao01 possuem correspondência em populacao02 e populacao03, ou seja, todas as cidades estão presentes nos três dataframes. Todavia, constatamos que o número de colunas diverge entre os conjuntos de dados, fato que havíamos observado durante a aplicação das funções names () e summary (). Isto ocorre porque existem atributos que estão presentes em um que não integram os outros e vice-versa, alterando assim o número de colunas em cada um deles.

Retomando o atributo Código da Unidade Geográfica, presente nos três dataframes, realizamos uma análise específica para identificar como as informações para cada cidade são lidas pelo software. Utilizamos novamente a função summary () e filtramos a coluna deste atributo por meio de colchetes [], os quais são utilizados para especificar o atributo, como demonstramos no Script 5.

Script: Analysis of the “Geographic Unit Code” attribute

summary(populacao01["Código da Unidade Geográfica"])
##  Código da Unidade Geográfica
##  Min.   :3500105             
##  1st Qu.:3514601             
##  Median :3528700             
##  Mean   :3528698             
##  3rd Qu.:3543204             
##  Max.   :3557303
summary(populacao02["Código da Unidade Geográfica"])
##  Código da Unidade Geográfica
##  Min.   :3500105             
##  1st Qu.:3514601             
##  Median :3528700             
##  Mean   :3528698             
##  3rd Qu.:3543204             
##  Max.   :3557303
summary(populacao03["Código da Unidade Geográfica"])
##  Código da Unidade Geográfica
##  Min.   :3500105             
##  1st Qu.:3514601             
##  Median :3528700             
##  Mean   :3528698             
##  3rd Qu.:3543204             
##  Max.   :3557303

Source: the authors (2023). Caption: analysis of the “geographical unit code” attribute using the summary (_) function and selecting the attribute using square brackets [].

Em consonância àquilo que apresentamos anteriormente, a função summary () retornou informações estatísticas sobre este atributo. Acima verifica-se que são apresentados os valores mínimo (min.), primeiro quartil (1st Qu.), mediana, média, terceiro quartil (3rd Qu.) e máximo (max.) do conjunto de dados. Portanto, confirmamos que a interpretação deste atributo identificador pelo software não é feita como código identificador de área, mas como valor numérico. Isso impede a plotagem direta dos dados no mapeamento, requerendo outras informações geográficas para tal.

Nesta perspectiva, realizamos uma nova busca na plataforma do IBGE para encontrarmos os arquivos referentes ao atributo identificador Códigos das Unidades Geográficas. Os arquivos relativos a este atributo foram baixados e indexados no mesmo diretório de trabalho da análise exploratória e encontram-se disponíveis no link a seguir, acessáveis remotamente.

https://www.ibge.gov.br/geociencias/organizacao-do-territorio/estrutura-territorial/27385-localidades.html?=&t=acesso-ao-produto.

Nesta busca, captamos os arquivos shapefiles disponibilizados pelo IBGE, os quais trazem o conjunto de informações geográficas (geometria dos códigos: longitude, latitude e altitude) que representam os Códigos das Unidades Geográficas dos 3 dataframes (populacao01, populacao02 e populacao03). Intuíamos com estes shapefiles conectar os dados censitários dos três conjuntos às estruturas espaciais das suas localidades (setor censitário).

Para tanto, o primeiro passo foi o carregamento do arquivo raster no R por meio da função shapefile (), a qual é utilizada para ler dados raster no software. O conjunto de dados carregados por esta função recebeu o nome de localidades_br, convertendo-o em um objeto para análise exploratória. Após o carregamento dos dados raster, realizamos os mesmos procedimentos analíticos até aqui demonstrados. Utilizamos a função names () para identificar os nomes dos atributos que integram o conjunto de dados localidades_br. Por outro lado, a função summary () foi empregada para reconhecer a estrutura qualitativa e quantitativa deste objeto (Script 7).

Script: Preliminary analysis of localidades_br

names(localidades_br)
##  [1] "ID"         "CD_GEOCODI" "TIPO"       "CD_GEOCODB" "NM_BAIRRO" 
##  [6] "CD_GEOCODS" "NM_SUBDIST" "CD_GEOCODD" "NM_DISTRIT" "CD_GEOCODM"
## [11] "municipio"  "NM_MICRO"   "NM_MESO"    "estado"     "CD_NIVEL"  
## [16] "CD_CATEGOR" "NM_CATEGOR" "NM_LOCALID" "LONG"       "LAT"       
## [21] "ALT"        "GMRotation"
summary(localidades_br)
## Object of class SpatialPointsDataFrame
## Coordinates:
##         min        max
## x -73.49761 -32.435186
## y -33.73754   5.220071
## Is projected: FALSE 
## proj4string :
## [+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs]
## Number of points: 21886
## Data attributes:
##        ID         CD_GEOCODI            TIPO            CD_GEOCODB       
##  Min.   :    1   Length:21886       Length:21886       Length:21886      
##  1st Qu.: 5472   Class :character   Class :character   Class :character  
##  Median :10944   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :10944                                                           
##  3rd Qu.:16415                                                           
##  Max.   :21886                                                           
##                                                                          
##   NM_BAIRRO          CD_GEOCODS         NM_SUBDIST         CD_GEOCODD       
##  Length:21886       Length:21886       Length:21886       Length:21886      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##   NM_DISTRIT         CD_GEOCODM         municipio           NM_MICRO        
##  Length:21886       Length:21886       Length:21886       Length:21886      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##    NM_MESO             estado            CD_NIVEL          CD_CATEGOR       
##  Length:21886       Length:21886       Length:21886       Length:21886      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##   NM_CATEGOR         NM_LOCALID             LONG             LAT         
##  Length:21886       Length:21886       Min.   :-73.50   Min.   :-33.738  
##  Class :character   Class :character   1st Qu.:-49.89   1st Qu.:-21.588  
##  Mode  :character   Mode  :character   Median :-44.62   Median :-12.619  
##                                        Mean   :-45.54   Mean   :-14.067  
##                                        3rd Qu.:-40.15   3rd Qu.: -6.603  
##                                        Max.   :-32.44   Max.   :  5.220  
##                                                                          
##       ALT           GMRotation
##  Min.   :   0.0   Min.   :0   
##  1st Qu.: 111.1   1st Qu.:0   
##  Median : 329.3   Median :0   
##  Mean   : 372.4   Mean   :0   
##  3rd Qu.: 582.4   3rd Qu.:0   
##  Max.   :1639.2   Max.   :0   
##  NA's   :1
crs(localidades_br)
## Coordinate Reference System:
## Deprecated Proj.4 representation:
##  +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 
## WKT2 2019 representation:
## BOUNDCRS[
##     SOURCECRS[
##         GEOGCRS["unknown",
##             DATUM["Unknown based on GRS 1980 ellipsoid using towgs84=0,0,0,0,0,0,0",
##                 ELLIPSOID["GRS 1980",6378137,298.257222101,
##                     LENGTHUNIT["metre",1],
##                     ID["EPSG",7019]]],
##             PRIMEM["Greenwich",0,
##                 ANGLEUNIT["degree",0.0174532925199433],
##                 ID["EPSG",8901]],
##             CS[ellipsoidal,2],
##                 AXIS["longitude",east,
##                     ORDER[1],
##                     ANGLEUNIT["degree",0.0174532925199433,
##                         ID["EPSG",9122]]],
##                 AXIS["latitude",north,
##                     ORDER[2],
##                     ANGLEUNIT["degree",0.0174532925199433,
##                         ID["EPSG",9122]]]]],
##     TARGETCRS[
##         GEOGCRS["WGS 84",
##             DATUM["World Geodetic System 1984",
##                 ELLIPSOID["WGS 84",6378137,298.257223563,
##                     LENGTHUNIT["metre",1]]],
##             PRIMEM["Greenwich",0,
##                 ANGLEUNIT["degree",0.0174532925199433]],
##             CS[ellipsoidal,2],
##                 AXIS["latitude",north,
##                     ORDER[1],
##                     ANGLEUNIT["degree",0.0174532925199433]],
##                 AXIS["longitude",east,
##                     ORDER[2],
##                     ANGLEUNIT["degree",0.0174532925199433]],
##             ID["EPSG",4326]]],
##     ABRIDGEDTRANSFORMATION["Transformation from unknown to WGS84",
##         METHOD["Position Vector transformation (geog2D domain)",
##             ID["EPSG",9606]],
##         PARAMETER["X-axis translation",0,
##             ID["EPSG",8605]],
##         PARAMETER["Y-axis translation",0,
##             ID["EPSG",8606]],
##         PARAMETER["Z-axis translation",0,
##             ID["EPSG",8607]],
##         PARAMETER["X-axis rotation",0,
##             ID["EPSG",8608]],
##         PARAMETER["Y-axis rotation",0,
##             ID["EPSG",8609]],
##         PARAMETER["Z-axis rotation",0,
##             ID["EPSG",8610]],
##         PARAMETER["Scale difference",1,
##             ID["EPSG",8611]]]]

Source: the authors (2023).

Os resultados apresentam que o conjunto localidades_br é composto por 21.886 linhas (do inglês, features) e 22 atributos (do inglês, fields) descritos em colunas. A geometria do conjunto de dados (do inglês, geometry type) encontra-se no formato de pontos (do inglês, points) e é estruturada nas dimensões XY, possuindo valores integrados de xmin, ymin, xmax e ymax dentro da estrutura. Para além, o conjunto de dados possui o sistema de referência geográfica (CRS) baseado no formato EPSG (sigla inglesa para European Petroleum Survey Group) “SIRGAS 2000”.

Destacamos ainda que os 22 atributos que integram o conjunto de dados são: ID, CD_GEOCODI, TIPO, CD_GEOCODB, NM_BAIRRO, CD_GEOCODS, NM_SUBDIST, CD_GEOCODD, NM_DISTRIT CD_GEOCODM, MUNICIPIOS, NM_MICRO, NM_MESO, ESTADOS, CD_NIVEL, CD_CATEGOR, NM_CATEGOR, NM_LOCALID, LONG, LAT, ALT, GMRotation e GEOMETRY. Destes, confirmamos a presença de atributos associados ao posicionamento geográfico da informação, como longitude (LONG), latitude (LAT), altitude (ALT) e geometria (GEOMETRY). Além disso, temos a presença das subdivisões territoriais descritas no conjunto de dados localidades_br, pois, verificamos que, sequencialmente, o formato tabular dos dados parte do menor nível de agregação, sendo ele bairro (NM_BAIRRO), e chegando a Estados. Estes resultados, portanto, nos forneceram indícios para compreender a estrutura dos dados e para identificar atributos relevantes para a mineração dos dados em R®.

De modo a testar a espacialização das informações constantes no conjunto de dados localidades_br, aplicamos a função plot () na sequência analítica para visualizarmos a distribuição dos pontos descritos pelo dataframe, como verifica-se na Figura 1.

Figure: Plotting of data from localidades_br

Source: the authors (2023). Caption: figure produced through the function plot (_), using the data set localidades_br. Outline in red representing the Brazilian territorial polygon, inserted to demonstrate the distribution of points.

A plotagem ilustra cada um dos 21.886 pontos que integram o conjunto de dados, utilizando para sua realização as coordenadas geográficas de cada uma das localidades brasileiras. Os espaços em branco, onde não há marcação de pontos na plotagem, representam áreas onde não houve recesseamento de população (áreas sem ocupação humana/vazios demográficos) e/ou que as populações amostradas nestas áreas foram consideradas dentro de setores censitários próximos à sua área de estabelecimento, conforme sugere o documento de referência para realização da operação censitária brasileira (IBGE, 2013).

Com base nos nomes dos atributos de localidades_br, verificamos que a coluna NM_UF, referente ao Nome da Unidade da Federação, permite a filtragem dos dados relativos ao Estado de São Paulo, possibilitando o recorte do conjunto de dados para atender a área experimental desta pesquisa. Ademais, verificamos que este dataframe é composto por pontos distribuídos geograficamente, tendo em vista a presença dos atributos longitude (LONG), latitude (LAT) e altitude (ALT). Além disso, há no dataframe características estruturais que auxiliam na espacialização das informações geográficas, sendo elas apresentadas no Script 7 pelas informações coords.x1 e coords.x2.

Intuindo individualizar os dados do Estado de São Paulo, retornamos ao programa Microsoft Access 365 (formato inicial do conjunto de dados disponibilizados pelo IBGE) para filtrar os dados de localidades_br. Filtramos o conjunto de dados utilizando o atributo NM_UF, que resguarda os Nomes das Unidades da Federação, selecionando somente as linhas que possuíam São Paulo como dado de resposta (caractere inserido na linha da coluna NM_UF). Estes dados selecionados foram copiados para uma planilha Excel 365 e salvos na extensão “.xls” com o nome localsp.xls. Reiteramos que, seja o arquivo original (Access 365), seja o arquivo produzido (Excel 365) encontram-se no acervo digital GitHub e são acessáveis remotamente.

Após a produção do arquivo localsp.xls, retornamos ao R, onde buscamos o arquivo no diretório do trabalho para carregamento no software através da função read_excel (). Conjuntamente ao carregamento, criamos o objeto localsp, como ilustra o Script. Após o carregamento dos dados, aproveitamos para renomear alguns atributos que integravam o conjunto de dados através da função names (), sendo eles: a) NM_MUNICIPIO, substituído por municipio; b) NM_UF, por estado; c) LONG por longitude; d) LAT por latitude; e) ALT por altitude. Finalmente, confirmamos a criação do conjunto de dados e as alterações nos nomes dos atributos, ações que são descritas no script a seguir.

Script: Loading data and creating the localsp object.

localsp
## # A tibble: 2,142 × 21
##       ID CD_GEOCODIGO TIPO   CD_GEOCODBA NM_BAIRRO CD_GEOCODSD CD_GEOCODDS
##    <dbl>        <dbl> <chr>        <dbl> <chr>           <dbl>       <dbl>
##  1 15316      3.50e14 URBANO          NA <NA>      35001050500   350010505
##  2 15317      3.50e14 URBANO          NA <NA>      35001050500   350010505
##  3 15318      3.50e14 URBANO          NA <NA>      35001050500   350010505
##  4 15319      3.50e14 URBANO          NA <NA>      35001050500   350010505
##  5 15320      3.50e14 URBANO          NA <NA>      35001050500   350010505
##  6 15321      3.50e14 URBANO          NA <NA>      35001050500   350010505
##  7 15322      3.50e14 URBANO          NA <NA>      35002040500   350020405
##  8 15323      3.50e14 URBANO          NA <NA>      35002040500   350020405
##  9 15324      3.50e14 URBANO          NA <NA>      35002040500   350020405
## 10 15325      3.50e14 URBANO          NA <NA>      35003030500   350030305
## # ℹ 2,132 more rows
## # ℹ 14 more variables: NM_DISTRITO <chr>, CD_GEOCODMU <dbl>, municipio <chr>,
## #   NM_MICRO <chr>, NM_MESO <chr>, estado <chr>, CD_NIVEL <dbl>,
## #   CD_CATEGORIA <dbl>, NM_CATEGORIA <chr>, NM_LOCALIDADE <chr>,
## #   longitude <dbl>, latitude <dbl>, altitude <dbl>, GM_PONTO_sk <chr>

Source: the authors (2023). Caption: loading data from localsp.xls and creating the localsp object. In the script, the format of the data set and the attributes (variables) that constitute it are highlighted.

A conferência da criação do objeto permitiu que extraíssemos algumas informações relevantes sobre o conjunto localsp. Os resultados no Script 10 indicaram que o objeto se estrutura em modelo de dataframe (tradução livre do inglês, tibble), o qual é composto por 2.142 linhas (do inglês, rows) e 21 variáveis (do inglês, variables) distribuídas em colunas, que retratam os atributos deste conjunto de dados. Os nomes dos atributos (variáveis) foram destacados no Script acima e pontuamos que são os mesmos atributos que compõem localidades_br, excetuando o atributo geometria (GEOMETRY) que não era passível de filtragem no Access 365 e, portanto, não integra o conjunto localsp.

Seguindo as mesmas funções anteriormente utilizadas na análise preliminar (Quadro 10), exploramos o conjunto de dados localsp, intuindo identificar características relevantes para a análise exploratória, como demonstramos no Script 11.

Script 11: Preliminary analysis of localsp

names(localsp)
##  [1] "ID"            "CD_GEOCODIGO"  "TIPO"          "CD_GEOCODBA"  
##  [5] "NM_BAIRRO"     "CD_GEOCODSD"   "CD_GEOCODDS"   "NM_DISTRITO"  
##  [9] "CD_GEOCODMU"   "municipio"     "NM_MICRO"      "NM_MESO"      
## [13] "estado"        "CD_NIVEL"      "CD_CATEGORIA"  "NM_CATEGORIA" 
## [17] "NM_LOCALIDADE" "longitude"     "latitude"      "altitude"     
## [21] "GM_PONTO_sk"
summary(localsp)
##        ID         CD_GEOCODIGO           TIPO            CD_GEOCODBA       
##  Min.   :15316   Min.   :3.500e+14   Length:2142        Min.   :3.502e+11  
##  1st Qu.:15851   1st Qu.:3.514e+14   Class :character   1st Qu.:3.514e+11  
##  Median :16386   Median :3.529e+14   Mode  :character   Median :3.533e+11  
##  Mean   :16386   Mean   :3.528e+14                      Mean   :3.531e+11  
##  3rd Qu.:16921   3rd Qu.:3.542e+14                      3rd Qu.:3.549e+11  
##  Max.   :17456   Max.   :3.557e+14                      Max.   :3.555e+11  
##  NA's   :1       NA's   :1                              NA's   :1997       
##   NM_BAIRRO          CD_GEOCODSD         CD_GEOCODDS        NM_DISTRITO       
##  Length:2142        Min.   :3.500e+10   Min.   :350010505   Length:2142       
##  Class :character   1st Qu.:3.514e+10   1st Qu.:351410605   Class :character  
##  Mode  :character   Median :3.529e+10   Median :352850205   Mode  :character  
##                     Mean   :3.528e+10   Mean   :352799828                     
##                     3rd Qu.:3.542e+10   3rd Qu.:354165305                     
##                     Max.   :3.557e+10   Max.   :355730305                     
##                     NA's   :1           NA's   :1                             
##   CD_GEOCODMU       municipio           NM_MICRO           NM_MESO         
##  Min.   :3500105   Length:2142        Length:2142        Length:2142       
##  1st Qu.:3514106   Class :character   Class :character   Class :character  
##  Median :3528502   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :3527998                                                           
##  3rd Qu.:3541653                                                           
##  Max.   :3557303                                                           
##  NA's   :1                                                                 
##     estado             CD_NIVEL      CD_CATEGORIA    NM_CATEGORIA      
##  Length:2142        Min.   :1.000   Min.   : 1.000   Length:2142       
##  Class :character   1st Qu.:1.000   1st Qu.: 3.000   Class :character  
##  Mode  :character   Median :3.000   Median : 5.000   Mode  :character  
##                     Mean   :3.655   Mean   : 8.192                     
##                     3rd Qu.:6.000   3rd Qu.:10.000                     
##                     Max.   :6.000   Max.   :70.000                     
##                     NA's   :1       NA's   :1                          
##  NM_LOCALIDADE        longitude         latitude         altitude       
##  Length:2142        Min.   :-53.06   Min.   :-25.22   Min.   :   1.363  
##  Class :character   1st Qu.:-49.48   1st Qu.:-23.31   1st Qu.: 465.505  
##  Mode  :character   Median :-48.08   Median :-22.67   Median : 575.228  
##                     Mean   :-48.29   Mean   :-22.43   Mean   : 580.182  
##                     3rd Qu.:-46.95   3rd Qu.:-21.57   3rd Qu.: 712.080  
##                     Max.   :-44.20   Max.   :-19.87   Max.   :1639.155  
##                     NA's   :1        NA's   :1        NA's   :1         
##  GM_PONTO_sk       
##  Length:2142       
##  Class :character  
##  Mode  :character  
##                    
##                    
##                    
## 
dim(localsp)
## [1] 2142   21
class(localsp)
## [1] "tbl_df"     "tbl"        "data.frame"

Source: the authors (2023). Caption: Preliminary analysis of the localsp set. The script presents the results obtained by applying the names (), dim (), class () and summary () function.

Através da função names (), confirmamos os nomes dos atributos associados ao conjunto de dados, ou seja, os nomes na primeira linha do objeto. Constatamos ainda que localsp é composto por diferentes características espaciais, como longitude, latitude e altitude, e por atributos identificadores, como ID e CD_GEOCODIGO. Devemos destacar que o atributo ID, apesar de referir-se à identidade de determinada informação geográica, é um código variante em cada linha do conjunto de dados, como constata-se nos resultados gerados pelo Script 10. Notamos que um mesmo município possui diferentes códigos IDs e que eles referem-se à tipologias diferentes de usos dos solo ou aglomerados urbanos, o que confirma-se através dos atributos CD_NIVEL e CD_CATEGORIA (códigos numéricos que referem-se às diferentes tipologias) e NM_CATEGORIA (variáveis nomenclaturais de especificação da tipologia).

Por outro lado, ao atentarmos para o atributo CD_GEOCODIGO, observamos a repetição numérica para os diferentes perfis de uso e cobertura do solo e de tipologias de aglomerados humanos, ou seja, o mesmo código identificador era repetido para os municípios. Segundo a documentação técnica do Censo 2010 (IBGE, 2013), constatou-se que o CD_GEOCODIGO refere-se ao código geográfico identificador de área, o qual é estabelecido pelo IBGE para referir-se a determinado polígono (setor censitário) no território brasileiro, como havíamos tratado anteriormente.

Aditivamente, a função dim () evidenciou que o conjunto é composto por 2142 linhas e 21 colunas, as quais descrevem atributos dos dados. Ademais, a função class () revelou que o formato de apresentação dos dados de localsp está estruturado no modelo tabular (da sigla, tbl) e constitui um dataframe (df).

Complementarmente, a função summary () expandiu as informações sobre cada um dos atributos associados ao conjunto. Por meio de sua aplicação, diferentes características foram sumarizadas. Para os atributos que assumiam o perfil de caractere (do inglês, character), a função retornou o número de linhas em cada coluna (do inglês, length), a classe das informações na coluna (do inglês, class) e o modelo de apresentação (do inglês, mode). Para as informações que não eram caracteres, houve o retorno de resultados estatísticos para os valores numéricos associados aos atributos, como: valor mínimo, primeiro e terceiro quartil, mediana, média e máximo.

Pontuamos que os resultados estatísticos, no caso de localsp, não são relevantes para a análise exploratória. Porém, são estes resultados que demonstram quais atributos são interpretados pelo software como atributos numéricos. Assim, identificamos que os atributos longitude, latitude e altitude possuem dados numéricos para cada um dos setores censitários. Isto favorece o emprego dessas informações para a espacialização da informação geográfica pontual, como identificamos nos conjuntos populacao01, populacao02 e populacao03.

Comparativamente, verificamos, por meio dos resultados gerados pela função dim (), que os dataframes populacionais (populacao01, populacao02 e populacao03) são formados por 645 linhas (Script 4), enquanto localsp é formado por 2.142 linhas (Script 11). Esta diferença substancial em número de linhas entre os conjuntos populacionais e localsp reflete a fragmentação da informação populacional, ou seja, no dataframe localsp existem subdivisões das tipologias de aglomerados populacionais que compõem o perímetro urbano, como indicamos anteriormente sobre os códigos CD_NIVEL, CD_CATEGORIA e NM_CATEGORIA que integram este conjunto.

Como apuramos na documentação do Censo Demográfico 2010 (IBGE, 2013a), os pontos amostrais que integram os dados de localsp detalham a malha territorial de forma mais robusta, ou seja, fracionam ainda mais as porções territoriais, chegando aos microdados do Censo demográfico. Da outra parte, em populacao01, populacao02 e populacao03 tem-se a aglomeração destes microdados dados por municipios, reduzindo o número de linhas quando equiparados à localsp. Entretanto, como observou-se nos Scripts 1, 2 e 3, as tipologias de aglomerados populacionais são atributos que integram os três conjuntos populacionais (populacao01/02/03). Portanto, através destas indicações sobre as componentes dos 4 conjuntos (localsp e populacao01/02/03) tem-se a indicação para proceder com a junção destes dataframes.

3.2 Mineração e Manipulação dos Dados

Indicados os aspectos relevantes sobre os quatro conjuntos centrais desta análise exploratória, passamos à mineração dos dados que integram os conjuntos para ulterior conexão entre eles. No conjunto de dados de localsp, identificamos a presença de subdivisões territoriais na coluna NM_CATEGORIA, as quais refletiam a tipologia do setor censitário. O Script a seguir revela os nomes das variáveis presentes na coluna deste atributo do conjunto (localsp). De acordo com a documentação técnica do Censo 2010 (IBGE, 2013a), as categorias nos microdados retratam o perfil dos aglomerados populacionais presentes no território nacional e, consequentemente, no Estado de São Paulo. Assim, compreende-se que estas categorias revelam como se dá o formato de inserção dos agrupamentos humanos no território, assumindo forte relação com os usos e cobertura do solo.

## [1] "CIDADE"                  "AUI"                    
## [3] "VILA"                    "NÚCLEO"                 
## [5] "POVOADO"                 "LUGAREJO"               
## [7] "PROJETO DE ASSENTAMENTO" "ALDEIA INDÍGENA"        
## [9] NA

Ponderar sobre as categorias, extraiu-se da documentação do IBGE (2013a), que elas se subdivem em dois grupos: urbanos e rurais. Entre os urbanos encontram-se: cidades, áreas urbanas isoladas (AUI) e vilas; enquanto nos rurais tem-se: núcleos, povoados, lugarejos, projetos de assentamentos e aldeias indígenas (comunidades tradicionais). Seguindo a lógica descrita pelo Instituto, realizamos a subdivisão do conjunto de dados de localsp com base no atributo NM_CATEGORIA, gerando para cada uma das categorias conjuntos de dados referentes às diferentes tipologias dos setores censitários e/ou aglomerados populacionais. O Script a seguir retrata o procedimento para criação dos conjuntos: sp_cities, sp_isolatedurbanareas, sp_urbanvillages, sp_traditionalcommunities, sp_ruralvillage, sp_ruralcore, sp_settlement e sp_settlementproject; o qual foi realizado por meio da função filter().

Script: Subdivisão do conjunto de dados de localsp com base no atributo NM_CATEGORIA.

#Urban Groups
#creating the city group
sp_cities = localsp %>% filter(NM_CATEGORIA == "CIDADE")

#creating isolated urban areas group
sp_isolatedurbanareas = localsp %>% filter(NM_CATEGORIA == "AUI")

#creating the group of villages (urban)
sp_urbanvillages = localsp %>% filter(NM_CATEGORIA == "VILA")

#Rural Groups
#creating the group of indigenous villages
sp_traditionalcommunities = localsp %>% filter(NM_CATEGORIA == "ALDEIA INDÍGENA")

#creating the group of rural villages
sp_ruralvillage = localsp %>% filter(NM_CATEGORIA == "LUGAREJO")

#creating the rural core group
sp_ruralcore = localsp %>% filter(NM_CATEGORIA == "NÚCLEO")

#creating the settlement group (rural)
sp_settlement = localsp %>% filter(NM_CATEGORIA == "POVOADO")

#creating the settlement project group (rural)
sp_settlementproject = localsp %>% filter(NM_CATEGORIA == "PROJETO DE ASSENTAMENTO")

Fonte: os autores (2023). Legenda: Script descrevendo a separação do conjunto de dados localsp em 8 categoriais, as quais descrevem as tipologias dos aglomerados populacionais do Censo 2010, separadas em dois grupos: urbanos e rurais.

Após a criação dos diferentes conjuntos de dados, com base nas categorias do agrupamentos populacionais, realizamos a plotagem de cada um deles, usando as colunas longitude e latitude (18 e 19 respectivamente) para avaliar a capacidade de espacialização destes dados.

Figura: Plotagem dos dados provenientes de localsp separados por categorias de aglomerados populacionais.

Fonte: os autores (2023). Legenda: Figura gerada a partir dos dados categorizados de localsp, onde cada um dos gráficos representa uma categoria de aglomerado populacional. O número de pontos reflete o número de variáveis nos oito conjuntos plotados.

Quando nos voltamos para os conjuntos de dados populacionais (populacao01/02/03), identificamos que o conjunto populacao01 era o que discriminava de forma mais completa as diferentes categorias de aglomerados populacionais. Essa confirmação se deu através da análise dos atributos que integravam os três conjuntos, como ilustra o Script a seguir, o qual emprega a função names() para a comparação.

Tabela: Comparação dos atributos que integram conjuntos populacionais.

##                           População 01                    População 02
## 1                            municipio                       municipio
## 2                      Área Urbanizada                           Total
## 3                  Área não Urbanizada                          Urbana
## 4                  Área Urbana Isolada               Na sede municipal
## 5       Área Rural (Exceto Aglomerado)                           Rural
## 6  Aglomerado Rural de Extensão Urbana              Área\ntotal\n(km²)
## 7             Aglomerado Rural Povoado Densidade demográfica (hab/km²)
## 8              Aglomerado Rural Núcleo    Código da Unidade Geográfica
## 9      Outros Aglomerados Rurais Raros                            <NA>
## 10        Código da Unidade Geográfica                            <NA>
##                                                     População 03
## 1                                                      municipio
## 2                                   População residente Absoluta
## 3                      População residente absoluta total urbana
## 4  População residente absoluta total na sede municipal urbana\n
## 5                                         Total Relativa (%)...5
## 6                                         Total Relativa (%)...6
## 7                               Na sede municipal Relativa (%)\n
## 8                                           Área\ntotal\n(km²)\n
## 9                                Densidade demográfica (hab/km²)
## 10                                  Código da Unidade Geográfica

Fonte: os autores (2023). Legenda: Tabela apresentando os atributos que integram os três conjuntos populacionais (populacao01, populacao02 e populacao03). O “NA” demonstra que o conjunto populacao02 possui número menor de colunas em sua estrutura.

Conforme verifica-se nos resultados gerados, confirmamos que o conjunto populacao01 apresenta a discriminação das categoriais de aglomerados populacionais encontradas anteriormente em localsp, sendo elas: municipio, área urbanizada, área não urbanizada, área urbana isolada, área rural (exceto aglomerado), aglomerado rural de extensão urbana, aglomerado rural povoado, aglomerado rural núcleo e outros aglomerados rurais raros. Diante disso, optamos por focalizar no conjunto populacao01 para avançar na correlação dos dados, tendo em vista sua sinergia aos dados de localsp (e suas categorias) e sua completude sobre os municípios paulistas.

Nesta perspectiva, realizamos a fragmentação dos dados de populacao01 em 8 grupos, seguindo a lógica de construção do dataframe. Em cada um dos 8 conjuntos criados, mantivemos a primeira e a última coluna, respectivamente “municipio” e “CD_GEOCODIGO”, ambos de suma importância para correlação com os dados de localsp, como tratamos outrora. Por outro lado, as demais colunas de populacao01 foram os objetos variáveis para criação dos 8 novos conjuntos, integrando cada uma delas um novo conjunto.

Portanto, o Script a seguir descreve como foram realizadas as criações dos conjuntos isolados de informações demográficas segundo a categoria (tipologia) do aglomerado populacional. Vale destacar que para o particionamento e criação dos 8 conjuntos a seguir, utilizamos como referência a documentação técnica do Censo 2010 (IBGE, 2013a), a qual explicita a quais categorias competem cada um dos atributos descritos nas colunas de 2 a 9 do conjunto populacao01 e que são também as categorias presentes em localsp (NM_CATEGORIA).

Script: Particionamento dos dados de populacao01 conforme as categorias de aglomerados populacionais.

pop01_cities <- populacao01[,c(1,2,10)]
pop01_cities
## # A tibble: 645 × 3
##    municipio              `Área Urbanizada` `Código da Unidade Geográfica`
##    <chr>                              <dbl>                          <dbl>
##  1 ADAMANTINA                         31713                        3500105
##  2 ADOLFO                              3155                        3500204
##  3 AGUAÍ                              27261                        3500303
##  4 ÁGUAS DA PRATA                      5513                        3500402
##  5 ÁGUAS DE LINDÓIA                    6886                        3500501
##  6 ÁGUAS DE SANTA BÁRBARA              3681                        3500550
##  7 ÁGUAS DE SÃO PEDRO                  2707                        3500600
##  8 AGUDOS                             32173                        3500709
##  9 ALAMBARI                            3036                        3500758
## 10 ALFREDO MARCONDES                   2690                        3500808
## # ℹ 635 more rows
pop01_isolatedurbanareas <- populacao01[,c(1,4,10)]
pop01_isolatedurbanareas
## # A tibble: 645 × 3
##    municipio              `Área Urbana Isolada` `Código da Unidade Geográfica`
##    <chr>                                  <dbl>                          <dbl>
##  1 ADAMANTINA                               180                        3500105
##  2 ADOLFO                                    45                        3500204
##  3 AGUAÍ                                   1025                        3500303
##  4 ÁGUAS DA PRATA                          1258                        3500402
##  5 ÁGUAS DE LINDÓIA                           0                        3500501
##  6 ÁGUAS DE SANTA BÁRBARA                   578                        3500550
##  7 ÁGUAS DE SÃO PEDRO                         0                        3500600
##  8 AGUDOS                                   161                        3500709
##  9 ALAMBARI                                 636                        3500758
## 10 ALFREDO MARCONDES                          0                        3500808
## # ℹ 635 more rows
pop01_urbanvillages <- populacao01[,c(1,3,10)]
pop01_urbanvillages
## # A tibble: 645 × 3
##    municipio              `Área não Urbanizada` `Código da Unidade Geográfica`
##    <chr>                                  <dbl>                          <dbl>
##  1 ADAMANTINA                                55                        3500105
##  2 ADOLFO                                     0                        3500204
##  3 AGUAÍ                                    715                        3500303
##  4 ÁGUAS DA PRATA                             0                        3500402
##  5 ÁGUAS DE LINDÓIA                       10225                        3500501
##  6 ÁGUAS DE SANTA BÁRBARA                     0                        3500550
##  7 ÁGUAS DE SÃO PEDRO                         0                        3500600
##  8 AGUDOS                                   659                        3500709
##  9 ALAMBARI                                   0                        3500758
## 10 ALFREDO MARCONDES                        565                        3500808
## # ℹ 635 more rows
pop01_traditionalcommunities <- populacao01[,c(1,5,10)]
pop01_traditionalcommunities
## # A tibble: 645 × 3
##    municipio              Área Rural (Exceto Aglomerado…¹ Código da Unidade Ge…²
##    <chr>                                            <dbl>                  <dbl>
##  1 ADAMANTINA                                           0                3500105
##  2 ADOLFO                                               0                3500204
##  3 AGUAÍ                                             3147                3500303
##  4 ÁGUAS DA PRATA                                     813                3500402
##  5 ÁGUAS DE LINDÓIA                                   155                3500501
##  6 ÁGUAS DE SANTA BÁRBARA                            1342                3500550
##  7 ÁGUAS DE SÃO PEDRO                                   0                3500600
##  8 AGUDOS                                            1531                3500709
##  9 ALAMBARI                                          1212                3500758
## 10 ALFREDO MARCONDES                                  636                3500808
## # ℹ 635 more rows
## # ℹ abbreviated names: ¹​`Área Rural (Exceto Aglomerado)`,
## #   ²​`Código da Unidade Geográfica`
pop01_ruralvillage <- populacao01[,c(1,6,10)]
pop01_ruralvillage
## # A tibble: 645 × 3
##    municipio              Aglomerado Rural de Extensão …¹ Código da Unidade Ge…²
##    <chr>                                            <dbl>                  <dbl>
##  1 ADAMANTINA                                           0                3500105
##  2 ADOLFO                                               0                3500204
##  3 AGUAÍ                                                0                3500303
##  4 ÁGUAS DA PRATA                                       0                3500402
##  5 ÁGUAS DE LINDÓIA                                     0                3500501
##  6 ÁGUAS DE SANTA BÁRBARA                               0                3500550
##  7 ÁGUAS DE SÃO PEDRO                                   0                3500600
##  8 AGUDOS                                               0                3500709
##  9 ALAMBARI                                             0                3500758
## 10 ALFREDO MARCONDES                                    0                3500808
## # ℹ 635 more rows
## # ℹ abbreviated names: ¹​`Aglomerado Rural de Extensão Urbana`,
## #   ²​`Código da Unidade Geográfica`
pop01_ruralcore <- populacao01[,c(1,8,10)]
pop01_ruralcore
## # A tibble: 645 × 3
##    municipio              `Aglomerado Rural Núcleo` Código da Unidade Geográfi…¹
##    <chr>                                      <dbl>                        <dbl>
##  1 ADAMANTINA                                     0                      3500105
##  2 ADOLFO                                         0                      3500204
##  3 AGUAÍ                                          0                      3500303
##  4 ÁGUAS DA PRATA                                 0                      3500402
##  5 ÁGUAS DE LINDÓIA                               0                      3500501
##  6 ÁGUAS DE SANTA BÁRBARA                         0                      3500550
##  7 ÁGUAS DE SÃO PEDRO                             0                      3500600
##  8 AGUDOS                                         0                      3500709
##  9 ALAMBARI                                       0                      3500758
## 10 ALFREDO MARCONDES                              0                      3500808
## # ℹ 635 more rows
## # ℹ abbreviated name: ¹​`Código da Unidade Geográfica`
pop01_settlement <- populacao01[,c(1,7,10)]
pop01_settlement
## # A tibble: 645 × 3
##    municipio              `Aglomerado Rural Povoado` Código da Unidade Geográf…¹
##    <chr>                                       <dbl>                       <dbl>
##  1 ADAMANTINA                                      0                     3500105
##  2 ADOLFO                                          0                     3500204
##  3 AGUAÍ                                           0                     3500303
##  4 ÁGUAS DA PRATA                                  0                     3500402
##  5 ÁGUAS DE LINDÓIA                                0                     3500501
##  6 ÁGUAS DE SANTA BÁRBARA                          0                     3500550
##  7 ÁGUAS DE SÃO PEDRO                              0                     3500600
##  8 AGUDOS                                          0                     3500709
##  9 ALAMBARI                                        0                     3500758
## 10 ALFREDO MARCONDES                               0                     3500808
## # ℹ 635 more rows
## # ℹ abbreviated name: ¹​`Código da Unidade Geográfica`
pop01_settlementproject <- populacao01[,c(1,9,10)]
pop01_settlementproject
## # A tibble: 645 × 3
##    municipio              Outros Aglomerados Rurais Rar…¹ Código da Unidade Ge…²
##    <chr>                                            <dbl>                  <dbl>
##  1 ADAMANTINA                                           0                3500105
##  2 ADOLFO                                               0                3500204
##  3 AGUAÍ                                                0                3500303
##  4 ÁGUAS DA PRATA                                       0                3500402
##  5 ÁGUAS DE LINDÓIA                                     0                3500501
##  6 ÁGUAS DE SANTA BÁRBARA                               0                3500550
##  7 ÁGUAS DE SÃO PEDRO                                   0                3500600
##  8 AGUDOS                                               0                3500709
##  9 ALAMBARI                                             0                3500758
## 10 ALFREDO MARCONDES                                    0                3500808
## # ℹ 635 more rows
## # ℹ abbreviated names: ¹​`Outros Aglomerados Rurais Raros`,
## #   ²​`Código da Unidade Geográfica`

Fonte: os autores (2023). Legenda: No script são particionados os dados do conjunto populacao01 conforme a categoria do aglomerado populacional. As colunas de 2 a 9 do conjunto populacao01 são isoladas e integradas às colunas 1 (municipio) e 10 (CD_GEOCODIGO), estrutando 8 novos conjuntos de dados, sendo eles: pop01_cities, pop01_isolatedurbanareas, pop01_urbanvillages, pop01_traditionalcommunities, pop01_ruralvillage, pop01_ruralcore, pop01_settlement e pop01_settlementproject.

Comparando os 8 conjuntos provenientes de localsp e os 8 de populacao01, notamos que há entre eles divergência no número de linhas e mostra-se necessário fazer alguns apontamentos sobre a tabela a seguir. O primeiro reflete que nem todas as categorias de microdados (NM_CATEGORIAS) encontram-se presentes em todos os municípios paulista e, portanto, não possuem correspondência entre os conjuntos. Da outra parte, nota-se que existem mais de um ponto para descrever uma categoria, ou seja, constam mais de um ponto identificado para determinada categoria, como é o caso de áreas urbanas isoladas (985 linhas).

Tabela: Comparação entre o número de linhas dos 8 conjuntos formados a partir de populacao01 e os 8 derivados de localsp

##   Dados.provenientes.de.populacao01 Dados.provenientes.de.localsp
## 1                               645                           645
## 2                               645                           985
## 3                               645                           295
## 4                               645                            12
## 5                               645                           104
## 6                               645                            30
## 7                               645                            61
## 8                               645                             9

Fonte: os autores (2023). Legenda: Tabela comparando o número de linhas dos conjuntos provenientes de populacao01 (primeira coluna) e localsp (segunda coluna).

Apesar da divergência entre o número de linhas, ressaltamos que isto não invalida a mineração dos dados; ao contrário, isto confirma a presença e/ou a ausência de diferentes categorias no território paulista e permite reconhecer a demografia em cada um dos municípios que integram os microdados.

3.3 Junção dos Dados

Estabelecidos os 8 conjuntos a partir de localsp e os 8 derivados de populacao01, partimos para a junção destes conjuntos, como forma de espacializar os dados demográficos. Assim, nos guiamos pelos dados provenientes de localsp, aos quais adicionamos as respectivas populações (número de pessoas). Como destacamos anteriormente, há divergência numérica entre os dados provenientes dos dois conjuntos (Tabela) e portanto devemos ponderar dois aspectos.

O primeiro resguarda a números de linhas iguais ou inferiores a 645, onde há correspondência entre a Coluna 1 (dados provenientes de populacao01) e a Coluna 2 (dados provenientes de localsp) da Tabela. Neste sentido, quando não há ponto descrito para a amostragem (coluna 2), tem-se que não há população descrita para dterminada tipologia de setor censitário. Por outro lado, quando todas as linhas da Coluna 2 possuem correspondência na Coluna 1, todos os pontos amostrais tiveram suas populações integradas.

No segundo aspecto, retratamos os casos em que a Coluna 2 possui número de pontos maior que 645 linhas, extrapolando o número de linhas presentes na Coluna 1, ou seja, nem todos os pontos geográficos provenientes de localsp possuem correspondência em populacao01. O único caso descrito e representado ao longo da mineração de dados foi o para áreas urbanas isoladas (AUI), retratadas no conjunto sp_isolatedurbanareas. De acordo com a documentação técnica do IBGE (2023), áreas urbanas isoladas são “área definida por lei e separada da sede distrital [município] por área rural ou por um outro limite legal”; assim, entende-se que um mesmo município pode haver integrada diferentes AUIs durante a amostragem censitária, como constata-se na Coluna 2 da Tabela (linha 2). Entretanto, como observa-se na Coluna 1 da Tabela, os dados são aglutinados, ou seja, todas as áreas urbanas isoladas do município têm suas populações retratadas em uma única linha. Para tanto, a título de análise, e já identificando uma limitação da amostragem, consideramos a população total das AUIs para cada ponto, ou seja, os valores de um mesmo município (Coluna 1) são repetidos para os pontos associados a uma mesma municipalidade (Coluna 2). Esta superestimação dos dados será tratada durante o mapeamento dos dados através da diferenciação de cores no mapa e, conjuntamente, na legenda referente aos dados de áreas urbanas isoladas.

Dito isso, passamos à junção de dados. Seguindo a mesma lógica apenas utilizada, dividimos a junção em dois momentos, o primeiro para os conjuntos da Coluna 2 com pontos iguais ou inferiores à 645 linhas e o segundo para número de pontos superiores a 645.

Script: Junção dos dados de populacao01 e localsp.

#Junção dos dados da tipologia "Cidades (Cities)"
cities <- sp_cities%>%left_join(pop01_cities)

#Junção dos dados da tipologia "Vilas Urbanas (Urban Villages)"
urbanvillages <- sp_urbanvillages%>%inner_join(pop01_urbanvillages)

#Junção dos dados da tipologia "Comunidades Tradicionais (Traditional Communities)"
traditionalcommunities <- sp_traditionalcommunities%>%inner_join(pop01_traditionalcommunities)

#Junção dos dados da tipologia "Vilas Rurais  (Rural Village)"
ruralvillage <- sp_ruralvillage%>%inner_join(pop01_ruralvillage)

#Junção dos dados da tipologia "Núcleos Rurais  (Rural Core)"
ruralcore <- sp_ruralcore%>%inner_join(pop01_ruralcore)

#Junção dos dados da tipologia "Povoados Rurais  (Settlement)"
ruralsettlement <- sp_settlement%>%inner_join(pop01_settlement)

#Junção dos dados da tipologia "Projetos de Assentamentos  (Settlement Project)"
settlementproject <- sp_settlementproject%>%inner_join(pop01_settlementproject)

#Junção dos dados da tipologia "Áreas Urbanas Isoladas  (Isolated Urban Areas)"
isolatedurbanareas <- sp_isolatedurbanareas%>%right_join(pop01_isolatedurbanareas)
isolatedurbanareas <- isolatedurbanareas[complete.cases(isolatedurbanareas$altitude, isolatedurbanareas$latitude),]

Source: the autors (2023). Legenda: no script as informações de populacao01 são associadas às localidades de localsp, através da função join() e suas variantes.

De acordo com o Script, conseguimos conectar os dados provenientes de populacao01 e de localsp, agregando às diferentes tipologias censitárias as respectivas populações. Desta forma, estruturamos novos conjuntos, onde se encontram as informações populacionais e as geolocalizações de cada um dos pontos estruturados para elas, sendo eles: cities, urbanvillages, isolatedurbanareas, traditionalcommunities, ruralvillage, ruralcore, ruralsettlement e settlementproject.

3.4 Plotagem dos dados

Finalizada a etapa de junção de dados, passamos à plotagem destes dados. Primeiramente devemos destacar que a escolha de cores para a plotagem seguiu as diretrizes estabelecidas por Ellis e Ramankutty (2008), onde tons de vermelho representam populações urbanas e suas nuances; enquanto populações rurais são associadas a tons terrosos (laranja e marrom). Ademais, utilizamos tons de azul para distiguir populações tradicionais, tendo em vista sua singularidade sociocultural, tanto no que refere-se à sua relação com a natureza quanto em relação à sua relevância para a manutenção e preservação da identidade destes grupos. Na Tabela são apresentados os tons utilizados (código RGB) para cada tipologia territorial descrita pelos dados.

Cabe ressaltar aqui, que diferentemente do preposto para os antromas, consideramos os traços identificados pelos IBGE (2023) na proposta do contínuo espacial. Segundo este documento, notamos uma expanção dos conceitos e, consequentemente, dos recortes urbano-rural, e que mostra-se de suma relevância para a estruturação de políticas públicas no páis. Assim sendo, o projeto de contínuo proposto pelo Instituto Brasileiro expande as diretrizes propostas por Ellis (2020) acerca dos antromas e, por tal, consideramos isto como uma melhoria no delineamento dos antromas brasileiros.

Ressaltamos desde de já que o documento do IBGE, publicado em 2023, utiliza em sua estruturação analítica e modelagem, em grande parte, os dados provenientes do Censo Demográfico 2010 (IBGE, 2013), fato que alinha nosso projeto aos desenvolvimentos técnicos-científicos do Instituto Brasileiro e não invalida tais dados como fonte para a produção científica atual. Cabe ainda ponderar que tanto o documento do IBGE (2023) quanto esta pesquisa precedem a publicação dos dados completos do Censo Demográfico de 2022, ou seja, esta limitação se faz presente em ambos os produtos, os quais deverão ser atualizados após a publicação dos dados completos do IBGE. Entretanto, reiteramos, isto não invalida o desenvolvimento deste trabalho, pois, a estrutura codificada é adaptável às diferentes fontes de informação, bem como a ulterior atualização dos dados do Censo Demográfico brasileiro, realizado no ano de 2022.

Dito isso, retomamos os atributos longitude e latitude que integram os conjuntos de dados apenas produzidos. Sendo estes dois atributos fundamentais para a espacialização na plotagem e, posteriormente, no mapeamento das informações populacionais, são eles os utilizados para a construção da plotagem dos dados a seguir. Portanto, selecionamos estas duas informações através do uso do operador “$” em cada um dos conjuntos. Complementarmente, escolhemos o formato para a plotagem dos pontos através do descritor “pch”, empregando o número “15” para plotar como quadrados preenchidos na mesma cor, a qual foi escolhida através do descritor “col”. Como dissémos acima, as cores variam de acordo com a tipologia do setor censitário (Tabela). A seguir, encontra-se o Script que codifica a separação dos dados, a plotagem deles e a respectiva coloração de cada um.

Script: Plotagem dos 8 conjuntos de dados isoladamente.

Fonte: os autores (2023). Legenda: plotagem dos dados populacionais das diferentes tipologias territoriais com suas respectivas colorações.

Conforme observa-se nas plotagens apenas produzidas, os dados de cada uma das tipologias territoriais foram espacializados conforme as duas informações geográficas (latitude e longitude). O descritor “cex” definiu para cada município o tamanho do quadrado plotado seguindo a dimensão da população de referência (atributo população de cada conjunto de dados). Destaca-se que adicionamos uma nova coluna aos 8 conjuntos de dados, a qual recebeu o nome de categoria; nesta coluna foram inseridas as tipologias territoriais nos conjuntos de dados, para que pudéssemos plotar os 8 conjuntos em uma única plotagem. Além disso, criamos o conjunto colors, o qual determina as cores para a plotagem única dos antromas povoados. No Script a seguir são apresentados estes processos.

Script: Estrutura codificada para plotagem dos 8 conjuntos de dados.

populated_anthromes <- rbind(transform(cities, categoria = "Cities"), transform(isolatedurbanareas, categoria = "Isolated Urban Areas"), transform(urbanvillages, categoria = "Urban Villages"), transform(ruralvillage, categoria = "Rural Village"), transform(ruralcore, categoria = "Rural Core"), transform(ruralsettlement, categoria = "Rural Settlement"), transform(settlementproject, categoria = "Settlement Project"), transform(traditionalcommunities, categoria = "Traditional Communities"))

colors <- c("Cities" = "#FF0000", "Isolated Urban Areas" = "#FF4747", "Urban Villages"= "#F66969", "Rural Village"= "#ED833B", "Rural Core"="#DF9B6D", "Rural Settlement"="#FFD966", "Settlement Project"="#968551", "Traditional Communities"="#9CC2E5")

legend_populatedanthromes <- data.frame(Categorias = unique(populated_anthromes$categoria), Cores = unique(colors))

legend_populatedanthromes
##                Categorias   Cores
## 1                  Cities #FF0000
## 2    Isolated Urban Areas #FF4747
## 3          Urban Villages #F66969
## 4           Rural Village #ED833B
## 5              Rural Core #DF9B6D
## 6        Rural Settlement #FFD966
## 7      Settlement Project #968551
## 8 Traditional Communities #9CC2E5

Fonte: os autores (2023). Legenda: no script são apresentadas as estruturas codificadas para a plotagem dos 8 conjuntos de dados, as quais são guiadas pelos conjuntos de dados populated_anthromes e colors.

Realizadas estas operações, passamos à plotagem dos dados dos 8 conjuntos concomitantemente. Seguimos o padrão de cores estabelecidos pelo conjunto colors e as respectivas tipologias dos setores populacionais descritas por categoria. Reiteramos que a espacialização dos dados foi feita a partir das informações latitude e longitude.

Figura: Plotagem dos dados dos 8 conjuntos dos antromas populacionais.

Fonte: os autores (2023). Legenda: plotagem dos dados referentes aos antromas povoados do Estado de São Paulo, divididos entre as 8 categorias criadas com base nos dados do IBGE.

A Figura revela que a plotagem dos dados provenientes dos 8 conjuntos populacionais (tipologias censitárias) ocorreu de forma correta, permitindo a integração das diferentes tipologias em uma única figura. Ademais, nota-se que a legenda segue a coloração estabelecida para as diferentes categorias territoriais. Portanto, tem-se, por meio da figura, a constatação de adequação da distribuição dos dados para o mapeamento territorial, realizado na sequência analítica.

3.5 Mapeamento estático dos antromas povoados

Realizada a plotagem dos dados de populated_anthromes, passamos ao mapeamento estático deste conjunto de dados. O mapeamento estático teve por objetivo estruturar a distribuição dos pontos no arquivo shapefile dos municípios (perímetros urbanos) do Estado de São Paulo. Para a realização deste mapeamento, alguns ajustes nos conjuntos foram necessários, os quais são sintetizados na sequência. O código para realização destas ações foi ocultado neste documento; todavia, ele encontra-se no arquivo disponibilizado no GitHub associado a este trabalho.

  1. Organização e determinação das categorias de cores utilizadas para cada tipologia de antroma povoado, determinando como deveria ocorrer a junção das informações colorimétricas e os tipos antropogênicos.
  2. Carregamento do arquivo shapefile sp_municipios.shp disponibilizado pelo IBGE. Este arquivo refere-se somente aos municípios do Estado de São Paulo, portanto, somente os polígonos referentes às cidades paulistas aparecem no mapa gerado.
  3. Criação do conjunto shapefile cidades_shape, onde foram selecionados os atributos NM_MUNICIP e geometry do conjunto sp_municipios.shp, isoloando-os para a construção do mapeamento das cidades paulistas.

Aproveitamos para justificar o uso do arquivo shapefile como meio para a construção do mapeamento. Nossa primeira opção para o mapeamento era utilizar as imagens orbitais fornecidas pelo Google Earth, utilizando a API Key para a integração do mapeamento à plataforma da Google LCC.. Entretanto, durante a construção do mapeamento, identificamos que o uso das imagens fornecidas pela empresa ocorre somente mediante pagamento. Apesar das vantagens tecnológicas do uso destas imagens do Earth no mapeamento, optamos por não utilizá-las, tendo em vista o custo para operação nesta etapa da pesquisa e a gratuidade dos serviços já fornecidos pelo Instituto Brasileiro de Geografia e Estatística, como demonstraremos pelo arquivo shapefile utilizado no mapeamento. Para tanto, optamos pelos arquivos do IBGE para mantermos nosso alinhamento técnico-científico com as estruturas de dados nacionais e gratuitas, permitindo a outros pesquisadores e usuários de acessarem e realizarem a construção de mapeamentos como o apresentado adiante.

Realizadas estas operações, passamos ao mapeamento dos dados do conjunto populated_anthromes sobre o arquivo shapefile cidades_shape. Para a construção do mapeamento utilizamos o pacote ggplot() e combinamos diferentes funções a ele associado. Destacamos a seguir as principais funções, seguindo a ordem de aplicação:

  1. geom_sf (): carregamento do arquivo shapefile cidades_shape;
  2. geom_point (): determinação dos pontos mapeados de populated_anthromes;
  3. scale_color_manual (): determinação das cores e da ordem para o mapamento dos antromas povoados;
  4. labs () e variáveis: determinação de características gráficas da legenda e do mapeamento.

Isto posto, o Script a seguir apresenta o código para a construção do mapeamento e, como resultado, o mapeamento dos antromas povoados.

Script: Mapeamento Estático dos Antromas Povoados no Estado de São Paulo.

#estruturando os pontos a serem plotados
mapa_antromas <- ggplot()+
  geom_sf(data = cidades_shape)+
  geom_point(data = populated_anthromes, aes(x = longitude, y = latitude, color = categoria), width = 0.01, height = 0.01, pch = 15)+
  scale_color_manual(values = setNames(cores_categorias$cor, cores_categorias$categoria), breaks = ordem_categorias, labels = ordem_categorias)+
  labs (title = "Populated Anthromes", subtitle = "Study Area: State of São Paulo (Brazil)", fill = cores_categorias$categoria)+
  xlab ("Longitude")+
  ylab ("Latitude")+
  labs (color = "Populated Anthromes")+
  theme_minimal()

print(mapa_antromas)

Fonte: os autores (2023). Legenda: código apresentando a estrutura utilizada para o mapeamento dos dados do conjunto populated_anthromes sobre o arquivo shapefile cidades_shape.

O mapeamento gerado pelo código acima demonstra que os dados de populated_anthromes foram sobrepostos ao arquivo shapefile cidades_shape conforme esperado. O mapeamento seguiu as diretrizes para distribuição dos pontos amostrais segundo a longitude e latitude descrita no conjunto populated_anthromes, assim como a coloração estabelecida para cada categoria.

Observa-se, entretanto, que alguns quadrados (pontos referentes aos antromas povoados), extrapolam as áreas do arquivo shapefile cidades_shape. Este aspecto foi considerado no estudo da incerteza do mapeamento dos antromas provoados, estudo que apresentaremos posteriormente ao mapeamento interativo dos antromas povoados.

No próximo tópico, transpomos o mapeamento estático para o mapeamento interativo, de modo a estruturar um mapa que possa ser integrado aos serviços tecnológicos, como sites e o acervo GitHub.

3.6 Mapeamento interativo dos antromas povoados

Primeiramente, foi preciso preparar algumas estruturas para o mapeamento interativo a ser criado na sequência. O primeiro deles foi a estruturação das componentes usadas na legenda a ser impressa no mapeamento. Para tanto, criamos o conjunto antromas_povoados, no qual constam os nomes das 8 tipologias de antromas povoados que foram mapeados até este ponto. Complementarmente, para a definição das categorias e das cores impressas no mapeamento retomamos o conjunto de dados descrito no dataframe legend_populatedanthromes, tendo em vista seu uso precedente para a plotagem dos dados (realizada no item anterior).

Definidos estes aspectos, passamos ao mapeamento propriamente dito. Para a criação do mapeamento interativo, utilizamos o pacote leaflet() e os recursos editáveis a ela associados e destacaremos aqueles mais relevantes. Primeiramente, a função addMarkers() auxiliou na demarcação dos pontos onde foram encontrados dados no conjunto populated_anthromes, utilizando os atributos latitude e longitude para a plotagem.

Complementarmente, a função addRectangles() auxiliou na definição da posição e da dimensão dos quadrados utilizados para demarcar os antromas povoados. Neste ponto, devemos evidenciar que utilizamos a medida, em graus, de 0.03 (positivo e negativo) para dimensionar os quadrados de áreas. A escolha foi baseada na análise da literatura e do mapeamento propriamente dito, pois, durante os testes, observamos que para graus menores, os quadrados não cobriam a superfície de algumas cidades, tendo em vista o caráter pontual do conjunto de dados populated_anthromes. Assim, optamos por utilizar estes graus como referência e considerá-los posteriormente na análise da incerteza do mapeamento gerado.

Assim, assumindo o predito, o primeiro mapeamento interativo dos antromas brasileiros é apresentado na sequência, retratando a área modelo deste trabalho, a do Estado de São Paulo, e os antromas povoados presentes nela. Ele foi estruturado sobre a base do Open Street Maps (do inglês, Mapa Aberto de Ruas), um projeto global de mapeamento colaborativo e gratuito, o qual pode ser utilizado por qualquer usuário e pesquisador ao redor do mundo. Reiteramos aqui que nossa escolha é mediada pela difusão do conhecimento e a reprodutibilidade da pesquisa aqui realizada, portanto, a gratuidade e a disponibilidade destes mapas abertos justificam nossa escolha.

Figura: Mapeamento Interativo dos Antromas Povoados no Estado de São Paulo.

Fonte: os autores (2023). Legenda: mapeamento interativo produzido em linguagem R (R Studio) onde são apresentados os antromas povoados presentes no Estado de São Paulo (Brasil), área de referência para o estudo piloto dos antromas brasileiros. No mapeamento são apresentados os quadrados que descrevem os setores antropogênicos, utilizando os graus de 0.03 (positivo e negativo) para latitude e longitude para demarcação de cada um dos quadrados. A legenda no mapeamento representa as cores visualizáveis no mapeamento e as tipologias dos setores antropogênicos a que se referem.

Notoriamente, o produto possui suas limitações, entretanto representa de forma relevante os setores antropogênicos povoados distribuídos no território paulista. Retomando a questão sobre as dimensões dos quadrados presentes no mapeamento, realizamos o cálculo para dimensionar a área descrita por cada um dos quadrados. Utilizamos para tal, a média das variáveis latitude e longitude que constavam no conjunto populated_anthromes como base para os cálculos, tendo em vista o número elevado de pontos isolados.

Além disso, consideramos para os cálculos de largura e altura do quadrado as duas primeiras fórmulas apresentadas a seguir. Posteriormente, com base nos resultados, cálculamos a área do quadrado através da terceira fórmula na sequência.

Fórmulas

\(Largura (longitude)=0.03×111.32×cos(latitude média)\)

\(Altura (latitude)=0.03×111.32×sen(latitude média)\)

\(Área do quadrado = largura×altura\)

Apresentadas as expressões matemáticas, os resultados obtidos são apresentados na sequência.

## Largura do quadrado (longitude) em quilômetros: 3.020237 km
## Altura do quadrado (latitude) em quilômetros: 1.425164 km
## Área média do quadrado em quilômetros quadrados: 4.304335 km²

Ressalvamos que até este ponto não foram realizados os estudos de incerteza do mapeamento, sendo esta a etapa subsequente do trabalho.

3.7 Estudos de validação e incerteza do mapeamento

Conforme estabelecemos na metodologia deste trabalho, realizamos determinados procedimentos para avaliar e atestar a qualidade do mapeamento regional dos antromas. Seguindo as diretrizes investigativas estabelecidas por Lovelace, Nowosad e Muenchow (2019) e Wickham, Çetinkaya-Rundel e Grolemund (2023), elencamos estudos para confirmar a espacialização da informação geoespacial (distribuição dos dados populacionais), para avaliar a incerteza e o erro associado ao mapeamento aos olhos das Ciências Terrestres e Ambientais e para atestar a qualidade do produto gerado por este estudo. Conforme apresentam os autores supracitados, estas investigações intregram os estudos de incerteza e validação do mapeamento, as quais são reportadas na sequência.

3.7.1 Análise de sobreposição

A etapa inicial da análise da qualidade do mapeamento reflete a análise da sobreposição dos pontos mapeados dos antromas povoados do Estado de São Paulo e os dados das localidades paulistas, os quais retratam os setores censitários utilizados durante o Censo Demográfico de 2010 (IBGE, 2013). De acordo com o aparato legal brasileiro (MAPA/INCRA, 2022; BRASIL, 2018; MMA, 2006; 2002), a análise de sobreposição revela-se com instrumento regulamentado dentro da Federação para avaliar a sobreposição de polígonos de áreas cadastradas nas diferentes instituições de governo. O objetivo é identificar se propriedades rurais e urbanas se sobrepõem espacialmente nos cadastros de propriedades (rurais e urbanas), podendo gerar conflitos territoriais, inadimplências fiscais, entre outros problemas judiciais, cívicos e ambientais.

Nesta perspectiva, analisar a sobreposição dos antromas povoados com os dados brutos do IBGE assume como meta demonstrar o alinhamento do produto com a malha urbano-rural dos setores censitários. Conforme extrai-se da regulamentação apenas tratada, a não sobreposição dos antromas povoados e das localidades paulistas retrataria a imprecisão do mapeamento, podendo incorrer nos problemas supracitados para o planejamento territorial e, consequentemente, para as esferas de governo. Assim, seguindo as premissas de Lovelace, Nowosad e Muenchow (2019) e Wickham, Çetinkaya-Rundel e Grolemund (2023), investigamos como os pontos referentes aos antromas povoados se sobrepõem aos dados dos setores censitários paulistas.

Assim, realizamos a conversão dos dados brutos de localidades_br (shapefile) em conjunto de dados simples (sf) através da função st_as_sf(). Após a conversão, extraímos os dados referentes ao Estado de São Paulo, utilizando para tal a função filter(). Com ela, estruturamos o conjunto de dados saopaulo, referente aos setores censitários do Estado paulista. Após a estruturação desse conjunto, aqui entendido como comparador, realizamos a determinação do número de pontos amostrais, elegendo a totalidade dos pontos (2143) como amostra para análise de sobreposição.

Determinados os pontos amostrais do comparador (saopaulo), estabelecemos o sistema de coordenadas (CRS) de 4326, o mesmo dos dados de populated_anthromes. A Figura a seguir demonstra o número de pontos amostrais (dados brutos IBGE) estabelecidos para análise de sobreposição e sua distribuição espacial. A escolha pelo roxo provem de esta cor não integrar nenhum dos conjuntos de dados até aqui trabalhados.

Figura: Pontos amostrais provenientes dos dados brutos do IBGE (localidades_br)

Fonte: os autores (2023). Legenda: figura apresentando a distribuição (espacialização) dos pontos estabelecidos para a análise de sobreposição com os pontos referentes aos antromas povoados.

Realizada a estruturação dos pontos amostrais para análise de sobreposição, retomamos os dados de mapa_antromas, ou seja, dos dados mapeados dos antromas povoados. De modo a não gerar conflitos, o layer (camada) com o shapefile dos municípios do Estado de São Paulo foi removido, permanecendo somente os quadrados referentes as áreas dos antromas povoados.

Partindo do mapeamento, construímos um conjunto de dados simples, utilizando as dimensões x e y como parametros de latitude e longitude e determinando o CRS 4326 como sistema de coordenadas associado, mesmo do conjunto amostral/comparador e dos mapeamentos produzidos no item precedente(mapeamento dos antromas).

Estabelecidos os dois conjuntos de informações geográficas, antromas povoados (anthromes_data_sf) e amostra (amostra_sf), passamos à comparação de ambos. Primeiramente, verificou-se se ambos possuíam o mesmo CRS associado às suas estruturas, pois, por meio do CRS é possivel identificar se as informações geoespaciais estão distribuídas na mesma área e se se sobrepõem dentro desta durante a espacialização. Assumindo isso, realizamos a comparação através das funções if()/else() para comparar os dois conjuntos de dados. O script revela a estrutura da função e apresenta o resultado através da setença (frase) que indicamos como resposta para a pergunta if/else.

Script: Comparação dos CRS dos conjuntos anthromes_data_sf e amostra_sf.

## [1] "os CRS são os mesmos"

Fonte: os autores (2023). Legenda: script apresentando a construção da função if()/else() para comparação entre os dois conjuntos no que resguarda ao sistema de referenciamento geográfico (CRS).

Confirmado que os CRS dos dois conjuntos são os mesmos, passamos à análise de sobreposição. Para tal, utilizando a função st_join(), combinamos os dois conjuntos (anthromes_data_sf e amostra_sf) em um único conjunto de dados simples (sf), o qual recebeu o nome juncao_sp.

Partindo de juncao, sumarizamos os dados através de summarize(), indicando que houvesse a contagem de pontos agrupados pelas coordenadas (group_by(LAT&LONG) - latitude e longitude). O produto deste código indica quantos pontos se sobrepõem, utilizando como referência as coordenadas dos pontos (latitude e longitude). O script a seguir mostra a organização da função para identificar o número de pontos e na sequência são apresentados os números de pontos de sobreposição.

Script: Contagem de pontos de sobreposição entre os conjuntos.

## Simple feature collection with 1 feature and 2 fields
## Geometry type: MULTIPOINT
## Dimension:     XY
## Bounding box:  xmin: -53.05865 ymin: -25.21507 xmax: -44.19936 ymax: -19.87297
## Geodetic CRS:  WGS 84
## # A tibble: 1 × 3
##   `LAT & LONG` contagem_de_pontos                                       geometry
##   <lgl>                     <int>                               <MULTIPOINT [°]>
## 1 TRUE                       2143 ((-53.05865 -22.58118), (-53.0027 -22.52495),…

Fonte: os autores (2023). Legenda: script descrevendo a função para análise do número de pontos de sobreposição entre os dois conjuntos de dados (anthromes_data_sf e saopaulo), seguida do resultado tabelado da comparação.

De acordo com os resultados gerados pela função, observamos que os 2143 pontos amostrados se encontram sobrepostos aos pontos provenientes dos antromas povoados (populated_anthromes). Após a constatação do número de pontos sobrepostos, a literatura sugere que sejam avaliados visualmente os resultados, de maneira a constatar a precisão na sobreposição dos dados.

Considerando isto, realizamos a organização dos conjuntos para visualização da sobreposição dos pontos. Primeiramente, unimos o conjunto tabela_contagem_sp com os dados de saopaulo, produzindo o conjunto map_results_sp, o qual representa o aglutinado dos dados.

Sequencialmente, utilizando a função ggplot(), estruturamos o mapeamento para visualização da sobreposição dos pontos. Os dados de map_results_sp foram plotados em verde escuro (darkgree) e os dados dos antromas povoados (anthromes_data_sf) em vermelho (red). De modo a facilitar a visualização dos pontos sobrepostos, optamos por ampliar a dimensão dos pontos provenientes de map_results_sp para 2 e reduzir os pontos de anthromes_data_sf para 0.5, ou seja, os primeiros foram plotados em dimensões expressivamente maiores que os segundos. Assim, o script a seguir apresenta o código e, posteriormente, a visualização da sobreposição dos dados dos dois conjuntos.

Script: Visualização dos pontos sobrepostos entre os dois conjuntos de dados.

Fonte: os autores (2023). Legenda: script apresentando a estrutura para mapeamento dos dados comparados pela análise de sobreposição e mapeamento gerado permitindo a visualização dos pontos sobrepostos no território do Estado de São Paulo.

Através do mapeamento dos dados sobrepostos, observamos que os pontos de anthromes_data_sf (derivado de populated_anthromes, em vermelho) encontram-se sobrepostos ao padrão ouro do IBGE (dados brutos provenientes de saopaulo, mapeados em verde escuro).Deste modo, a visualização dos pontos de sobreposição permitiu constatar que a espacialização dos dados referentes aos antromas povoados ocorre de forma adequada, seguindo as mesmas coordenadas geográficas dos dados de saopaulo e distribuindo-se no território paulista, como visualiza-se sobre a camada shapefile de cidades_shape. Assim, a confirmação visual trouxe indicativos que apontam para a validação do mapeamento em um primeiro momento.

3.7.2 Exame das propriedades dos dados

De modo a garantir a qualidade dos dados e a precisão no mapeamento das informações geoespaciais dos antromas povoados, realizamos exames sobre as propriedades dos conjuntos de dados sobrepostos, ou seja, os dados dos antromas povoados (populated_anthromes, map_anthromes_data, anthromes_data_sf) e do padrão ouro com base nos dados do IBGE (saopaulo). Conforme destacamos anteriormente, os conjuntos de dados possuem o mesmo sistema de coordenadas geográficas (CRS) associado às suas estruturas. Além disso, possuem, ambos, dimensões espaciais de latitude e longitude, as quais permitiram a inserção dos pontos no mapeamento.

Dando continuidade à análise, realizamos a verificação dos limites geográficos (coordenadas), a qual tem por objetivo comprovar que ambos os conjuntos representam a mesma área territorial do mapeamento, ou seja, que os dois conjuntos possuem as mesmas informações de latitude e longitude na sua estrutura de referenciamento geográfico. Nesta perspectiva, utilizando os dados de populated_anthromes e saopaulo, realizamos a análise através da função range(), a qual traz os limites mínimos e máximos dos parâmetros investigados, que neste caso foram latitude/LAT e longitude/LONG (Quadro).

Quadro: Limites mínimos e máximos de latitude e longitude dos conjuntos populated_anthromes e saopaulo.

## Latitude máxima e mínima de populated_anthromes: -25.21507 -19.87297
## Latitude máxima e mínima de saopaulo: -25.21507 -19.87297
## Longitude máxima e mínima de populated_anthromes: -53.05865 -44.19936
## Longitude máxima e mínima de saopaulo: -53.05865 -44.19936

Fonte: os autores (2023). Lengenda: quadro apresentando os limites mínimos e máximos de latitude e longitude dos dois conjuntos de dados analisados através da função range().

As informações provenientes da função range() confirmam que os limites mínimos e máximos, tanto de longitude quanto de latitude, são os mesmos para os dois conjuntos. Prosseguindo com a verificação, empregamos a função summary() para analisar valores estatísticos extremos associados aos dois conjuntos (Script). Assim como realizamos a análise por meio da função range(), consideramos aqui as informações de latitude e longitude dos dois conjuntos.

Script: Aplicação da função summary() para análise de valores extremos.

summary(populated_anthromes$latitude)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -25.22  -23.31  -22.67  -22.43  -21.57  -19.87
summary(saopaulo$LAT)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -25.22  -23.31  -22.67  -22.43  -21.58  -19.87
summary(populated_anthromes$longitude)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -53.06  -49.48  -48.08  -48.29  -46.95  -44.20
summary(saopaulo$LONG)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -53.06  -49.48  -48.07  -48.29  -46.95  -44.20

Fonte: os autores (2023). Legenda: código para sumarização estatística dos dados de populated_anthromes e saopaulo, apresentando os valores mínimo, primeiro quartil, mediana, média, terceiro quartil e máxima.

Verificamos que os resultados obtidos encontram-se sinérgicos, com diferenças pequenas no terceiro quartil de latitude (0.01) e na mediana de longitude (0.01). Esta diferença está associada ao número de pontos descritos pelos dois conjuntos, pois, populated_anthromes é composto por 2141 pontos, enquanto saopaulo é composto por 2143.

## Simple feature collection with 2 features and 22 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -46.97105 ymin: -22.27151 xmax: -46.97078 ymax: -22.24241
## Geodetic CRS:  WGS 84
##      ID      CD_GEOCODI   TIPO CD_GEOCODB NM_BAIRRO  CD_GEOCODS NM_SUBDIST
## 1 17457 355730305000009 URBANO       <NA>      <NA> 35573030500       <NA>
## 2 17458 355730305000010 URBANO       <NA>      <NA> 35573030500       <NA>
##   CD_GEOCODD   NM_DISTRIT CD_GEOCODM    municipio   NM_MICRO  NM_MESO    estado
## 1  355730305 ESTIVA GERBI    3557303 ESTIVA GERBI MOJI-MIRIM CAMPINAS SAO PAULO
## 2  355730305 ESTIVA GERBI    3557303 ESTIVA GERBI MOJI-MIRIM CAMPINAS SAO PAULO
##   CD_NIVEL CD_CATEGOR NM_CATEGOR             NM_LOCALID      LONG       LAT
## 1        6        001        AUI            RANCHO NOVO -46.97105 -22.24241
## 2        6        002        AUI RECANTO DO ORI\xc7ANGA -46.97078 -22.27151
##        ALT GMRotation                    geometry
## 1 669.9272          0 POINT (-46.97105 -22.24241)
## 2 624.0211          0 POINT (-46.97078 -22.27151)

Realizando a análise dos conjuntos para identificar as linhas faltantes em populated_anthromes, observamos que as duas linhas de saopaulo referem-se a duas áreas urbanas isoladas (AUI) do município de Estiva Gerbi (área distrital de Moji Mirim). De acordo com os dados de populacao01, conjunto utilizado para associar a densidade demográfica aos antromas povoados (setores censitários), os dados das AUIs são aglomerados e associados a um ponto, que podem descrever mais de uma localidade. Portanto, o erro (ou limitação espacial)é devido a este aspecto de aglomeração de dados e está representado na Figura a seguir.

Figura: Representação mapeada dos pontos faltantes em populated_anthromes.

Fonte: os autores (2023). Legenda: figura apresentando a síntese da análise de sobreposição, onde são indicados em vermelho os dois pontos faltantes em populated_anthromes e que constam em saopaulo.

3.8 Estatísticas de resumo do mapeamento

Adensando nossas análises estatísticas sobre o mapeamento dos antromas paulistas, considerando o padrão ouro os dados provenientes do Censo Demográfico Brasileiro (IBGE, 2013), passamos às Estatísticas de Resumo. Para realizá-las, estabelecemos uma grade estatística sobre o território paulista, utilizando os dados de saopaulo (conjunto de dados simples - sf - derivados de localidades_br, nosso comparador ou padrão ouro). Esta grade foi construída na base de 400 células (20 por 20), considerando a escala esférica, como apresentaremos a seguir.

Primeiramente, realizamos a conversão do conjunto saopaulo em um objeto do tipo espacial (do inglês, spatial), utilizando a função *as(_, “spatial”)*, dando origem ao conjunto saopaulo_spatial. Partindo deste, estabelecemos os valores de X e Y mínimo e máximo (longitude e latitude, respectivamente).

Estabelecidos o valores mínimos e máximos de X e Y, realizamos o dimensionamento do tamanho da célula, o que foi feito através da subtração do valor mínimo do valor máximo e, posteriormente, a divisão por 20 (número de células na horizontal e na vertical da grade estatística). Com este cálculo chegamos aos valores tamanho_celula_x e tamanho_celula_y, representando a largura (longitude) e a altura (latitude) do quadrado da grade estatística.

Destaca-se que nestes cálculos sobre a dimensão dos quadrados (células) da grade estatística foi considerada a esfericidade da Terra, derivando as fórmulas aqui empredas da Fórmula de Haversine, a qual é comumente empregada para calcular a distância entre dois pontos. A estrutura global desta fórmula é assim representada:

\[ a = \sin^2\left(\frac{\Delta\text{lat}}{2}\right) + \cos(\text{lat}_1) \cdot \cos(\text{lat}_2) \cdot \sin^2\left(\frac{\Delta\text{lon}}{2}\right) \]

\[ c = 2 \cdot \text{atan2}\left(\sqrt{a}, \sqrt{1-a}\right) \]

\[ d = R \cdot c \]

onde: - \(\Delta\text{lat}\) é a diferença de latitude entre os dois pontos, - \(\Delta\text{lon}\) é a diferença de longitude entre os dois pontos, - \(\text{lat}_1\) e \(\text{lat}_2\) são as latitudes dos dois pontos em radianos, - \(R\) é o raio da esfera (por exemplo, o raio médio da Terra).

Deste modo, conseguimos dimensionar as distancias entre dois pontos de longitude e latitude, chegando às dimensões de largura e altura das células da grade e, por conseguinte, fomos capazes de dimensionar a área aproximada de cada uma delas. A seguir são apresentados os valores dimensionais obtidos pelos cálculos realizados.

Quadro: Dimensões das células em grade estatística 20x20 (400 células).

## Tamanho da célula (quadrante) em quilômetros (km):
## Largura (tamanho_celula_x_km): 45.57963 km
## Altura (tamanho_celula_y_km): 11.34617 km
## Área de cada quadrante da grade em km²: 517.1542 km²
## Dimensão média dos lados do quadrado da grade em km: 22.74102 km

Fonte: os autores. Legenda: quadro representando os valores obtidos durante o dimensionamento da altura, da largura e da área das células da grade estatística estruturada em 20x20 (400).

Ademais, com estas dimensões estruturamos a grade estatística com 400 células utilizando a função raster(), que recebeu o nome grade_quadrantes e que foi utilizada nos cálculos posteriores. Complementarmente, foi necessário estruturar os pares ordenados XY da grade estatística para que pudessemos visualizar as células na plotagem, o que foi realizado através da função as.data.frame()

Após o estabelecimento da grade estatística com 400 células, passamos à contagem de pontos em cada uma das células. O objetivo foi identificar o comportamento de distribuição dos pontos do mapeamento dos antromas comparado ao padrão ouro (dados do IBGE). Esta contagem foi realizada em dois momentos, onde o primeiro deu-se para os dados de saopaulo e o segundo, para populated_anthromes.

Utilizando a função rasterize(), realizamos a contagem de pontos por quadrante em saopaulo. A contagem permitiu a construção de um dataframe de 2 colunas e 400 linhas, no qual as colunas representam as células (400) e o número de pontos em cada uma delas. Assim, cada uma das linhas refere-se a uma das células da grade estatística.

Concluída a contagem de pontos de saopaulo, realizamos procedimento similar com os dados de populated_anthromes. Primeiramente este conjunto foi convertido em um objeto do tipo espacial (do inglês, spatial), por meio da função st_as_sf(), estruturando o objeto populated_anthromes_spatial. Sequencialmente, a função rasterize() levou à contagem de pontos na grade estatística para os antromas povoados, gerando o dataframe contagem_por_quadrante_antromas. Novamente, isolaram-se as informações de células e números de pontos por célula em um conjunto referente aos dados dos antromas povoados (antromas_contpontos). Com estes dados, pudemos mapear a distribuição de pontos na grade estatística dos antromas.

A figura a seguir ilustra a Grade Estatística com a Contagem de Pontos para saopaulo (padrão ouro) e para populated_anthromes. Comparativamente, observamos que alguns dos pontos referentes ao padrão ouro são contados em outras células nos antromas povoados. Notoriamente, esta diferença está associada à estrutura EPSG em que se encontravam os dois conjuntos. Como levantamos anteriormente, os CRS eram diferentes entre os dois conjuntos (padrão ouro e antromas povoados) e houve ajuste ao longo das análises. Isto gerou pequenas distorções na distribuição dos pontos, em alguns poucos casos, como demonstraremos através de outras métricas acerca do mapeamento.

Figura: Grades Estatísticsa com as Contagens de Pontos do Padrão Ouro e dos Antromas Povoados do Estado de São Paulo.

Fonte: os autores (2023). Legenda: Figura representando a grade estatística com a contagem de pontos de (a) saopaulo (padrão ouro) e de (b) populated_anthromes, ambos referentes ao Estado de São Paulo. As áreas coloridas representam o gradiente de coloração de acordo com o número de pontos nas células da grade. As áreas em cinza representam as células onde não haviam pontos, ou seja, áreas que extrapolavam a área de análise do perímetro do Estado de São Paulo e, consequentemente, dos antromas povoados da Unidade da Federação.

3.8.1 Estruturação da Matriz de Confusão para as Análises Estatísticas

Primeiramente, realizamos a combinação dos dois conjuntos de dados associados à contagem de pontos (saopaulo_contpontos e antromas_contpontos). A combinação dos dois conjuntos teve por objetivo estruturar a matriz de confusão para as análises estatísticas. Nela, alinhamos os números de pontos em cada célula da grade estatística (20x20) dos dois conjuntos, de modo a estabelecer as seguintes relações:

  1. Verdadeiros Positivos (VPs): quadrantes da grade estatística onde o número de pontos é igual entre saopaulo_contpontos e antromas_contpontos;
  2. Verdadeiros Negativos (VNs): quadrantes da grade estatística onde não há pontos representados tanto em saopaulo_contpontos quanto em antromas_contpontos;
  3. Falsos Negativos (FNs): quadrantes da grade estatística onde o número de pontos de saopaulo_contpontos é maior que o número de pontos em antromas_contpontos.
  4. Falsos Positivos (FPs): quadrantes da grade estatística onde o número de pontos de saopaulo_contpontos é menor que o número de pontos em antromas_contpontos.

Para estruturar estas relações, utilizamos a função ifelse(). Se o número de pontos fossem iguais e diferentes de 0 nos dois conjuntos para determinar se os valores são iguais (VP) ou diferentes (VN), maiores (FN) ou menores (FP) em saopaulo_contpontos quando comparados a antromas_contpontos.

Se o número de pontos fossem iguais nos dois conjuntos e diferentes de 0, a coluna VP receberia o valor de 1 e nas coluna VN, FP e FN o valor de 0. Caso o número de pontos fossem iguais a 0 nos dois conjuntos, a coluna VN receberia o valor de 1 e VP, FN e FP de 0. Complementarmente, se o número de pontos no quadrante da grade fosse maior saopaulo_contpontos que em antromas_contpontos, a coluna FN receberia também o valor de 1 e as colunas VP, VN e FP o valor de 0. Por outro lado, se o número de pontos fosse menor em saopaulo_contpontos que em antromas_contpontos, a coluna FP receberia o valor de 1 e as colunas VP, VN e FN o valor de 0.

Ressalva-se que na grade estatística existiam áreas que não representavam os dados de São Paulo (áreas em cinza na Figura acima), ou seja, linhas onde constavam “NA”. Estas linhas foram substituídas por 0 no conjunto combinado através da função [is.na(conjunto_combinado)] <- 0, de modo a permitir o cálculos estatísticos a partir da matriz de confusão. A tabela a seguir ilustra a matriz de confusão estruturada por esta operação

Tabela: Matriz de Confusão

##     Celula saopaulo_contpontos antromas_contpontos VP VN FN FP
## 1        1                   0                   0  0  1  0  0
## 2        2                   0                   0  0  1  0  0
## 3        3                   0                   0  0  1  0  0
## 4        4                   0                   0  0  1  0  0
## 5        5                   1                   1  1  0  0  0
## 6        6                  10                  10  1  0  0  0
## 7        7                  15                  15  1  0  0  0
## 8        8                   3                   3  1  0  0  0
## 9        9                   1                   1  1  0  0  0
## 10      10                   0                   0  0  1  0  0
## 11      11                   0                   0  0  1  0  0
## 12      12                   4                   4  1  0  0  0
## 13      13                   6                   6  1  0  0  0
## 14      14                   0                   0  0  1  0  0
## 15      15                   0                   0  0  1  0  0
## 16      16                   0                   0  0  1  0  0
## 17      17                   0                   0  0  1  0  0
## 18      18                   0                   0  0  1  0  0
## 19      19                   0                   0  0  1  0  0
## 20      20                   0                   0  0  1  0  0
## 21      21                   0                   0  0  1  0  0
## 22      22                   0                   0  0  1  0  0
## 23      23                   0                   0  0  1  0  0
## 24      24                   0                   0  0  1  0  0
## 25      25                  28                  28  1  0  0  0
## 26      26                   9                   9  1  0  0  0
## 27      27                   8                   8  1  0  0  0
## 28      28                   5                   5  1  0  0  0
## 29      29                   6                   6  1  0  0  0
## 30      30                   2                   2  1  0  0  0
## 31      31                   2                   2  1  0  0  0
## 32      32                  10                  10  1  0  0  0
## 33      33                   5                   5  1  0  0  0
## 34      34                   1                   1  1  0  0  0
## 35      35                   0                   0  0  1  0  0
## 36      36                   0                   0  0  1  0  0
## 37      37                   0                   0  0  1  0  0
## 38      38                   0                   0  0  1  0  0
## 39      39                   0                   0  0  1  0  0
## 40      40                   0                   0  0  1  0  0
## 41      41                   0                   0  0  1  0  0
## 42      42                   0                   0  0  1  0  0
## 43      43                   0                   0  0  1  0  0
## 44      44                   2                   2  1  0  0  0
## 45      45                   3                   3  1  0  0  0
## 46      46                   9                   9  1  0  0  0
## 47      47                   8                   8  1  0  0  0
## 48      48                  11                  11  1  0  0  0
## 49      49                  10                  10  1  0  0  0
## 50      50                   8                   8  1  0  0  0
## 51      51                   4                   4  1  0  0  0
## 52      52                   5                   5  1  0  0  0
## 53      53                   9                   9  1  0  0  0
## 54      54                   3                   3  1  0  0  0
## 55      55                   0                   0  0  1  0  0
## 56      56                   0                   0  0  1  0  0
## 57      57                   0                   0  0  1  0  0
## 58      58                   0                   0  0  1  0  0
## 59      59                   0                   0  0  1  0  0
## 60      60                   0                   0  0  1  0  0
## 61      61                   0                   0  0  1  0  0
## 62      62                   0                   0  0  1  0  0
## 63      63                   0                   0  0  1  0  0
## 64      64                   6                   6  1  0  0  0
## 65      65                   3                   3  1  0  0  0
## 66      66                   4                   4  1  0  0  0
## 67      67                  11                  11  1  0  0  0
## 68      68                  14                  14  1  0  0  0
## 69      69                  17                  17  1  0  0  0
## 70      70                   8                   8  1  0  0  0
## 71      71                   7                   7  1  0  0  0
## 72      72                   5                   5  1  0  0  0
## 73      73                   1                   1  1  0  0  0
## 74      74                   0                   0  0  1  0  0
## 75      75                   0                   0  0  1  0  0
## 76      76                   0                   0  0  1  0  0
## 77      77                   0                   0  0  1  0  0
## 78      78                   0                   0  0  1  0  0
## 79      79                   0                   0  0  1  0  0
## 80      80                   0                   0  0  1  0  0
## 81      81                   0                   0  0  1  0  0
## 82      82                   0                   0  0  1  0  0
## 83      83                   2                   2  1  0  0  0
## 84      84                   3                   3  1  0  0  0
## 85      85                   6                   6  1  0  0  0
## 86      86                  22                  22  1  0  0  0
## 87      87                  25                  25  1  0  0  0
## 88      88                   7                   7  1  0  0  0
## 89      89                  11                  11  1  0  0  0
## 90      90                  13                  13  1  0  0  0
## 91      91                  10                  10  1  0  0  0
## 92      92                  17                  17  1  0  0  0
## 93      93                   5                   5  1  0  0  0
## 94      94                   1                   1  1  0  0  0
## 95      95                   0                   0  0  1  0  0
## 96      96                   0                   0  0  1  0  0
## 97      97                   0                   0  0  1  0  0
## 98      98                   0                   0  0  1  0  0
## 99      99                   0                   0  0  1  0  0
## 100    100                   0                   0  0  1  0  0
## 101    101                   0                   0  0  1  0  0
## 102    102                   0                   0  0  1  0  0
## 103    103                   6                   6  1  0  0  0
## 104    104                   8                   8  1  0  0  0
## 105    105                   3                   3  1  0  0  0
## 106    106                  11                  11  1  0  0  0
## 107    107                  13                  13  1  0  0  0
## 108    108                  20                  20  1  0  0  0
## 109    109                  13                  13  1  0  0  0
## 110    110                  13                  13  1  0  0  0
## 111    111                   9                   9  1  0  0  0
## 112    112                   8                   8  1  0  0  0
## 113    113                   7                   7  1  0  0  0
## 114    114                   3                   3  1  0  0  0
## 115    115                   3                   3  1  0  0  0
## 116    116                   0                   0  0  1  0  0
## 117    117                   0                   0  0  1  0  0
## 118    118                   0                   0  0  1  0  0
## 119    119                   0                   0  0  1  0  0
## 120    120                   0                   0  0  1  0  0
## 121    121                   0                   0  0  1  0  0
## 122    122                   0                   0  0  1  0  0
## 123    123                   4                   4  1  0  0  0
## 124    124                   9                   9  1  0  0  0
## 125    125                  14                  14  1  0  0  0
## 126    126                   9                   9  1  0  0  0
## 127    127                   7                   7  1  0  0  0
## 128    128                   4                   4  1  0  0  0
## 129    129                  23                  23  1  0  0  0
## 130    130                   8                   8  1  0  0  0
## 131    131                   7                   7  1  0  0  0
## 132    132                   5                   5  1  0  0  0
## 133    133                   6                   6  1  0  0  0
## 134    134                   5                   5  1  0  0  0
## 135    135                   7                   7  1  0  0  0
## 136    136                   0                   0  0  1  0  0
## 137    137                   0                   0  0  1  0  0
## 138    138                   0                   0  0  1  0  0
## 139    139                   0                   0  0  1  0  0
## 140    140                   0                   0  0  1  0  0
## 141    141                   0                   0  0  1  0  0
## 142    142                   0                   0  0  1  0  0
## 143    143                   4                   4  1  0  0  0
## 144    144                  10                  10  1  0  0  0
## 145    145                  15                  15  1  0  0  0
## 146    146                  17                  17  1  0  0  0
## 147    147                   7                   7  1  0  0  0
## 148    148                   6                   6  1  0  0  0
## 149    149                   8                   8  1  0  0  0
## 150    150                  10                  10  1  0  0  0
## 151    151                   5                   5  1  0  0  0
## 152    152                   5                   5  1  0  0  0
## 153    153                   8                   8  1  0  0  0
## 154    154                   8                   8  1  0  0  0
## 155    155                   6                   6  1  0  0  0
## 156    156                   0                   0  0  1  0  0
## 157    157                   0                   0  0  1  0  0
## 158    158                   0                   0  0  1  0  0
## 159    159                   0                   0  0  1  0  0
## 160    160                   0                   0  0  1  0  0
## 161    161                   0                   0  0  1  0  0
## 162    162                   0                   0  0  1  0  0
## 163    163                   2                   2  1  0  0  0
## 164    164                  15                  15  1  0  0  0
## 165    165                   5                   5  1  0  0  0
## 166    166                   5                   5  1  0  0  0
## 167    167                  10                  10  1  0  0  0
## 168    168                  18                  18  1  0  0  0
## 169    169                  10                  10  1  0  0  0
## 170    170                  20                  20  1  0  0  0
## 171    171                  12                  12  1  0  0  0
## 172    172                   8                   8  1  0  0  0
## 173    173                   8                   8  1  0  0  0
## 174    174                  10                   8  0  0  1  0
## 175    175                   3                   3  1  0  0  0
## 176    176                   0                   0  0  1  0  0
## 177    177                   0                   0  0  1  0  0
## 178    178                   0                   0  0  1  0  0
## 179    179                   0                   0  0  1  0  0
## 180    180                   0                   0  0  1  0  0
## 181    181                   2                   2  1  0  0  0
## 182    182                   1                   1  1  0  0  0
## 183    183                   4                   4  1  0  0  0
## 184    184                   5                   5  1  0  0  0
## 185    185                   5                   5  1  0  0  0
## 186    186                   3                   3  1  0  0  0
## 187    187                   6                   6  1  0  0  0
## 188    188                   9                   9  1  0  0  0
## 189    189                  13                  13  1  0  0  0
## 190    190                  14                  14  1  0  0  0
## 191    191                  13                  13  1  0  0  0
## 192    192                   7                   7  1  0  0  0
## 193    193                  13                  13  1  0  0  0
## 194    194                  20                  20  1  0  0  0
## 195    195                   6                   6  1  0  0  0
## 196    196                   0                   0  0  1  0  0
## 197    197                   0                   0  0  1  0  0
## 198    198                   0                   0  0  1  0  0
## 199    199                   4                   4  1  0  0  0
## 200    200                   0                   0  0  1  0  0
## 201    201                   2                   2  1  0  0  0
## 202    202                   2                   2  1  0  0  0
## 203    203                   0                   0  0  1  0  0
## 204    204                   1                   1  1  0  0  0
## 205    205                   4                   4  1  0  0  0
## 206    206                  10                  10  1  0  0  0
## 207    207                   6                   6  1  0  0  0
## 208    208                   3                   3  1  0  0  0
## 209    209                   6                   6  1  0  0  0
## 210    210                  10                  10  1  0  0  0
## 211    211                  14                  14  1  0  0  0
## 212    212                  15                  15  1  0  0  0
## 213    213                  47                  47  1  0  0  0
## 214    214                  48                  48  1  0  0  0
## 215    215                  29                  29  1  0  0  0
## 216    216                   0                   0  0  1  0  0
## 217    217                   4                   4  1  0  0  0
## 218    218                   5                   5  1  0  0  0
## 219    219                  10                  10  1  0  0  0
## 220    220                   5                   6  0  0  0  1
## 221    221                   0                   0  0  1  0  0
## 222    222                   0                   0  0  1  0  0
## 223    223                   0                   0  0  1  0  0
## 224    224                   0                   0  0  1  0  0
## 225    225                   0                   0  0  1  0  0
## 226    226                   6                   6  1  0  0  0
## 227    227                   3                   3  1  0  0  0
## 228    228                  12                  12  1  0  0  0
## 229    229                  17                  17  1  0  0  0
## 230    230                   5                   5  1  0  0  0
## 231    231                   7                   7  1  0  0  0
## 232    232                  12                  12  1  0  0  0
## 233    233                  14                  14  1  0  0  0
## 234    234                  33                  33  1  0  0  0
## 235    235                  25                  25  1  0  0  0
## 236    236                   3                   3  1  0  0  0
## 237    237                  20                  20  1  0  0  0
## 238    238                   8                   8  1  0  0  0
## 239    239                   6                   6  1  0  0  0
## 240    240                   0                   0  0  1  0  0
## 241    241                   0                   0  0  1  0  0
## 242    242                   0                   0  0  1  0  0
## 243    243                   0                   0  0  1  0  0
## 244    244                   0                   0  0  1  0  0
## 245    245                   0                   0  0  1  0  0
## 246    246                   0                   0  0  1  0  0
## 247    247                   0                   0  0  1  0  0
## 248    248                   1                   1  1  0  0  0
## 249    249                  21                  21  1  0  0  0
## 250    250                  39                  39  1  0  0  0
## 251    251                  15                  15  1  0  0  0
## 252    252                  27                  27  1  0  0  0
## 253    253                  33                  33  1  0  0  0
## 254    254                  44                  44  1  0  0  0
## 255    255                  97                  97  1  0  0  0
## 256    256                  18                  18  1  0  0  0
## 257    257                  12                  12  1  0  0  0
## 258    258                   3                   3  1  0  0  0
## 259    259                   0                   0  0  1  0  0
## 260    260                   0                   0  0  1  0  0
## 261    261                   0                   0  0  1  0  0
## 262    262                   0                   0  0  1  0  0
## 263    263                   0                   0  0  1  0  0
## 264    264                   0                   0  0  1  0  0
## 265    265                   0                   0  0  1  0  0
## 266    266                   0                   0  0  1  0  0
## 267    267                   0                   0  0  1  0  0
## 268    268                   0                   0  0  1  0  0
## 269    269                  13                  13  1  0  0  0
## 270    270                  11                  11  1  0  0  0
## 271    271                   7                   7  1  0  0  0
## 272    272                  14                  14  1  0  0  0
## 273    273                  33                  33  1  0  0  0
## 274    274                  41                  41  1  0  0  0
## 275    275                  42                  42  1  0  0  0
## 276    276                  46                  46  1  0  0  0
## 277    277                   8                   8  1  0  0  0
## 278    278                   3                   3  1  0  0  0
## 279    279                   2                   2  1  0  0  0
## 280    280                   0                   0  0  1  0  0
## 281    281                   0                   0  0  1  0  0
## 282    282                   0                   0  0  1  0  0
## 283    283                   0                   0  0  1  0  0
## 284    284                   0                   0  0  1  0  0
## 285    285                   0                   0  0  1  0  0
## 286    286                   0                   0  0  1  0  0
## 287    287                   0                   0  0  1  0  0
## 288    288                   1                   1  1  0  0  0
## 289    289                   7                   7  1  0  0  0
## 290    290                   1                   1  1  0  0  0
## 291    291                   4                   4  1  0  0  0
## 292    292                  10                  10  1  0  0  0
## 293    293                  14                  14  1  0  0  0
## 294    294                   5                   5  1  0  0  0
## 295    295                  69                  69  1  0  0  0
## 296    296                  14                  14  1  0  0  0
## 297    297                   3                   3  1  0  0  0
## 298    298                   6                   6  1  0  0  0
## 299    299                   0                   0  0  1  0  0
## 300    300                   0                   0  0  1  0  0
## 301    301                   0                   0  0  1  0  0
## 302    302                   0                   0  0  1  0  0
## 303    303                   0                   0  0  1  0  0
## 304    304                   0                   0  0  1  0  0
## 305    305                   0                   0  0  1  0  0
## 306    306                   0                   0  0  1  0  0
## 307    307                   0                   0  0  1  0  0
## 308    308                   0                   0  0  1  0  0
## 309    309                   4                   4  1  0  0  0
## 310    310                   4                   4  1  0  0  0
## 311    311                   4                   4  1  0  0  0
## 312    312                   1                   1  1  0  0  0
## 313    313                   2                   2  1  0  0  0
## 314    314                   2                   2  1  0  0  0
## 315    315                  14                  14  1  0  0  0
## 316    316                  14                  14  1  0  0  0
## 317    317                   0                   0  0  1  0  0
## 318    318                   1                   1  1  0  0  0
## 319    319                   0                   0  0  1  0  0
## 320    320                   0                   0  0  1  0  0
## 321    321                   0                   0  0  1  0  0
## 322    322                   0                   0  0  1  0  0
## 323    323                   0                   0  0  1  0  0
## 324    324                   0                   0  0  1  0  0
## 325    325                   0                   0  0  1  0  0
## 326    326                   0                   0  0  1  0  0
## 327    327                   0                   0  0  1  0  0
## 328    328                   0                   0  0  1  0  0
## 329    329                   1                   1  1  0  0  0
## 330    330                   6                   6  1  0  0  0
## 331    331                   1                   1  1  0  0  0
## 332    332                   3                   3  1  0  0  0
## 333    333                  13                  13  1  0  0  0
## 334    334                   8                   8  1  0  0  0
## 335    335                   1                   1  1  0  0  0
## 336    336                   0                   0  0  1  0  0
## 337    337                   0                   0  0  1  0  0
## 338    338                   0                   0  0  1  0  0
## 339    339                   0                   0  0  1  0  0
## 340    340                   0                   0  0  1  0  0
## 341    341                   0                   0  0  1  0  0
## 342    342                   0                   0  0  1  0  0
## 343    343                   0                   0  0  1  0  0
## 344    344                   0                   0  0  1  0  0
## 345    345                   0                   0  0  1  0  0
## 346    346                   0                   0  0  1  0  0
## 347    347                   0                   0  0  1  0  0
## 348    348                   0                   0  0  1  0  0
## 349    349                   2                   2  1  0  0  0
## 350    350                  11                  11  1  0  0  0
## 351    351                   4                   4  1  0  0  0
## 352    352                   3                   3  1  0  0  0
## 353    353                   1                   1  1  0  0  0
## 354    354                   1                   1  1  0  0  0
## 355    355                   0                   0  0  1  0  0
## 356    356                   0                   0  0  1  0  0
## 357    357                   0                   0  0  1  0  0
## 358    358                   0                   0  0  1  0  0
## 359    359                   0                   0  0  1  0  0
## 360    360                   0                   0  0  1  0  0
## 361    361                   0                   0  0  1  0  0
## 362    362                   0                   0  0  1  0  0
## 363    363                   0                   0  0  1  0  0
## 364    364                   0                   0  0  1  0  0
## 365    365                   0                   0  0  1  0  0
## 366    366                   0                   0  0  1  0  0
## 367    367                   0                   0  0  1  0  0
## 368    368                   0                   0  0  1  0  0
## 369    369                   0                   0  0  1  0  0
## 370    370                   0                   0  0  1  0  0
## 371    371                   2                   2  1  0  0  0
## 372    372                   8                   8  1  0  0  0
## 373    373                   2                   2  1  0  0  0
## 374    374                   0                   0  0  1  0  0
## 375    375                   0                   0  0  1  0  0
## 376    376                   0                   0  0  1  0  0
## 377    377                   0                   0  0  1  0  0
## 378    378                   0                   0  0  1  0  0
## 379    379                   0                   0  0  1  0  0
## 380    380                   0                   0  0  1  0  0
## 381    381                   0                   0  0  1  0  0
## 382    382                   0                   0  0  1  0  0
## 383    383                   0                   0  0  1  0  0
## 384    384                   0                   0  0  1  0  0
## 385    385                   0                   0  0  1  0  0
## 386    386                   0                   0  0  1  0  0
## 387    387                   0                   0  0  1  0  0
## 388    388                   0                   0  0  1  0  0
## 389    389                   0                   0  0  1  0  0
## 390    390                   0                   0  0  1  0  0
## 391    391                   0                   0  0  1  0  0
## 392    392                   1                   2  0  0  0  1
## 393    393                   0                   0  0  1  0  0
## 394    394                   0                   0  0  1  0  0
## 395    395                   0                   0  0  1  0  0
## 396    396                   0                   0  0  1  0  0
## 397    397                   0                   0  0  1  0  0
## 398    398                   0                   0  0  1  0  0
## 399    399                   0                   0  0  1  0  0
## 400    400                   0                   0  0  1  0  0

Fonte: os autores (2023). Legenda: Matriz de confusão estruturada a partir do alinhamento por células de saopaulo_contpontos e antromas_contpontos. A tabela exibe as primeiras 10 linhas do conjunto de 400 linhas (células da grade estatística).

3.8.2 Cálculo da Sensibilidade do Mapeamento

Após a estruturação da matriz de confusão, passamos à análise da sensibilidade do mapeamento em grade estatística de 20x20 para o Estado de São Paulo. O cálculo da sensibilidade do mapeamento visa avaliar a capacidade do modelo de identificar verdadeiros positivos (VPs), ou seja, através desta métrica é possível avaliar se o mapeamento dos antromas paulista consegue identificar com eficiência os pontos presentes no território paulista (padrão ouro). A estimativa desta métrica foi feita a partir da fórmula:

\[\text{Sensibilidade (Recall)} = \frac{VP}{VP + FN}\]

onde VP representa os verdadeiros positivos e FN representa os falsos positivos.

#Calculando a sensibilidade
sensibilidade <- sum(conjunto_combinado$VP) / (sum(conjunto_combinado$VP) + sum(conjunto_combinado$FN))

#Exibindo o resultado
sensibilidade
## [1] 0.9951691

Por meio do cálculo de sensibilidade, obtivemos o valor de 0.9951691, ou seja, aproximadamente 99.52% dos pontos do padrão ouro são capturados dentro dos pontos dos antromas povoados. Por esta métrica, confirmamos que o modelo empregado no mapeamento dos antromas povoados do Estado de São Paulo é capaz de identificar áreas representadas similarmente pelo padrão ouro, apontando, consequentemente, para a qualidade do mapeamento e para sensibilidade do método.

3.8.3 Especificidade do Mapeamento

Dando continuidade às análises estatísticas acerca do mapeamento dos antromas povoados do Estado de São Paulo, passamos à análise da especificidade do mapeamento. De acordo com a literatura, esta métrica refere-se à capacidade do modelo de identificar pontos mapeados que não fazem parte do padrão de comparação (padrão ouro). Nesta perspectiva, a análise de especificidade visou identificar se o modelo empregado no mapeamento (populated_anthromes) é capaz de apontar quais pontos não estão enquadrados na mesma célula da grade estatística que o padrão ouro (saopaulo).

Deste modo, retomamos o conjunto_combinado para a análise, onde verificou-se a proporção de pontos identificados como Verdadeiros Negativos (VNs) em relação ao número de pontos Falsos Positivos (FPs). Em outras palavras, analisou-se a proporção entre os quadrantes em que o número de pontos do padrão ouro era maior comparado com os quadrantes onde o número de pontos dos antromas era maior (FPs). A fórmula empregada na estimativa da especificidade é representada pela fórmula:

\[\text{Especificidade} = \frac{VN}{VN + FP}\]

onde VN representa o número de quadrantes identificados como Verdadeiros Negativos e FN o número de Falsos Positivos.

#Calculando a Especificidade
especificidade <- sum(conjunto_combinado$VN) / (sum(conjunto_combinado$VN) + sum(conjunto_combinado$FP))

#Exibindo o resultado
print(especificidade)
## [1] 0.9896373

O resultado obtido para a métrica especificidade do mapeamento foi de 0.9896373, ou seja, nos quadrantes da grade estatística onde não há pontos plotados pelo padrão ouro, o modelo utilizado para o mapeamento de antromas opera com uma proporção de 98.96% de acerto, classificando corretamente a ausência de pontos nestas áreas. Considera-se ainda que este valor indica que existem quadrantes onde os pontos mapeados por antromas_contpontos superam o número de pontos que integram saopaulo_contpontos; esta indicação remete à análise de sobreposição realizada anteriormente, onde demonstramos que alguns pontos foram distorcidos durante a distribuição espacial (latitude e longitude dos pontos no mapa) e, quando estabelecemos a grade estatística, enquadraram células diferentes daquelas do padrão ouro.

Deste modo, apesar das limitações apenas tratadas, observamos que esta métrica também contribui para inferir sobre a qualidade do modelo empregado no mapeamento, demonstrando sua adequação ao uso pretendido.

3.8.4 Acurácia e Erro Global do Mapeamento

Avançando nas análises estatísticas, adentramos a métrica da acurácia global do mapeamento. Segundo a literatura, esta métrica visa identificar a proporção de pontos que foram identificados corretamente pelo mapeamento de antromas quando comparado ao padrão ouro. Em outras palavras, esta métrica estima o número de Verdadeiros Positivos (VPs) frente ao número total de células da grade. O cálculo da acurácia global é feito pela fórmula:

\[\text{Acurácia Global} = \frac{VP + VN}{VP + VN + FP + FN}\]

onde VP, que representa as células da grade em que o número de pontos é igual no mapeamento de antromas e no padrão ouro, é dividido pelo total de células da grade estatística, ou seja, pelo somatório das células com número de pontos iguais (VPs) e diferentes (FPs e FNs) entre os conjuntos.

#Calculando a Acurácia Global
acuracia_global <- (sum(conjunto_combinado$VP) + sum(conjunto_combinado$VN)) / (sum(conjunto_combinado$VP) + sum(conjunto_combinado$VN) + sum(conjunto_combinado$FP) + sum(conjunto_combinado$FN))

#Exibindo o resultado
print(acuracia_global)
## [1] 0.9925

Com base na estimativa de acurácia global, obtivemos o resultado de 0.9925, ou seja, aproximadamente 99.25% dos pontos mapeados para os antromas encontram-se corretamente mapeados no Estado de São Paulo quando comparado ao padrão ouro. Esta proporção demonstra que há uma alta taxa de correspondência entre os dados mapeados, apontando para a qualidade do produto gerado para os antromas na Unidade da Federação.

Assumindo isto, passamos ao cálculo do erro global, o qual, de acordo com a literatura, indica a proporção de áreas classificadas erroneamente pelo modelo. Em outras palavras, esta métrica utiliza a proporção entre Falsos Positivos (FPs) e Falsos Negativos (FNs) comparada ao número total de células da grade estatística. O cálculo do erro global é dado pela fórmula:

\[\text{Erro Global} = \frac{FP + FN}{VP + VN + FP + FN}\]

onde temos o somatório de FPs e FNs, áreas com número divergente de pontos entre os antromas e o padrão ouro, dividido pelo número total de células com pontos.

#Calculando o Erro Global
erro_global <- (sum(conjunto_combinado$FP) + sum(conjunto_combinado$FN)) / (sum(conjunto_combinado$VP) + sum(conjunto_combinado$VN) + sum(conjunto_combinado$FP) + sum(conjunto_combinado$FN))

#Exibindo o resultado
print(erro_global)
## [1] 0.0075

Através dos cálculos do erro global obtivemos a estimativa de 0.0075, ou seja, apenas 0.75% das áreas mapeadas nos antromas povoados foram classificadas erroneamente quando comparado ao padrão ouro do IBGE. Este valor indica a baixa taxa de erro do modelo e aponta para a precisão do mapeamento dos antromas, reforçando os apontamentos sobre a qualidade do mapeamento.

3.9 Síntese das Estatísticas do Mapeamento e Visualização dos Resultados

Ao longo das análises sobre as métricas estatísticas do mapeamento, a saber: sensibilidade, especificidade, acurácia global e erro global; observamos resultados promissores para o modelo empregado no mapeamento dos antromas povoados no Estado de São Paulo, como evidencia a tabela a seguir.

Tabela: Resultados das Métricas Estatísticas do Modelo para o Mapeamento dos Antromas Povoados.

##           Métrica Estimativa Porcentagem
## 1   Sensibilidade  0.9951691      99.52%
## 2  Especificidade  0.9896373      98.96%
## 3 Acurácia Global  0.9925000      99.25%
## 4     Erro Global  0.0075000       0.75%

Fonte: os autores (2023). Legenda: tabela com a síntese dos resultados obtidos para as quatro métricas estatísticas analisadas, sendo elas: sensibilidade, especificidade, acurária global e erro global. Os resultados são apresentados em dois formatos, a estimativa e a porcentagem (com duas casas decimais).

De acordo com outros trabalho que envolvem tais métricas em mapeamentos, seja para a validação do produto (cartografia), seja para a análise do modelo (estrutura de produção do mapa), verifica-se que as estimativas para o modelo de antromas povoados alinham-se aos requisitos para adequação ao uso pretendido, refletindo na qualidade da distribuição dos pontos e na eficiência da representação dos mesmos.

A seguir apresentamos o gráfico de barras referente às métricas apresentadas na tabela. Como observa-se, o erro global mostra-se como a única métrica mais próxima de zero, o que de acordo com a literatura é expressivamente positivo, tendo em vista o baixo índice de distorção do produto (antromas povoados) comparado ao padrão ouro (dados IBGE).

Por outro lado, nota-se que sensibilidade, especificidade e acurária global encontram-se próximas de 1. Segundo a literatura, ao aproximar-se de 1, melhor é a capacidade do modelo em representar os dados, seguindo as diretrizes do comparador (padrão ouro). Assim sendo, tem-se que o modelo de antromas atende a estas premissas e é capaz de atender as especificações destas métricas com relevante eficiência.

Gráfico: Resultados das Métricas Estatísticas

Fonte: os autores (2023). Legenda: Gráfico de barras sintetizando as estimativas obtidas para as métricas estatísticas empregadas na análise da qualidade do mapeamento, sendo elas: acurácia global (vermelho), erro global (roxo), especificidade (verde) e sensibilidade (azul).

Outro padrão de visualização que nos pareceu relevante para apresentar as estimativas obtidas para as métricas analisadas foi o gráfico Radar. Nele, as quatro métricas são apresentadas concomitantemente em um alvo, no qual o centro representa o valor de 0 e o último círculo de dentro para fora o valor de 1. Este padrão é comumente empregado pela Metrologia para analisar a capacidade de medição de determinado método ou instrumento. Sendo esta uma das Ciências que integram nosso bojo analítico e que sedimenta nosso olhar sobre as Ciências Ambientais e a Ecologia Humana, absorvemos tal modelagem gráfica nas análises, reforçando nosso esforço em alinhar estas Ciências.

Gráfico: Gráfico Radar das Métricas Investigadas

## `geom_path()`: Each group consists of only one observation.
## ℹ Do you need to adjust the group aesthetic?

Fonte: os autores (2023). Legenda: gráfico radar das métricas estatísticas para validação do mapeamento e do modelo analisadas. O gráfico reporta as estimativas obtidas para sensibilidade, especificidade, acurácia global e erro global.

Conforme apresentamos na tabela anteriormente, os valores para sensibilidade, especificidade e acurácia global encontram-se próximos de um, levando a impressão de que estes valores encontram-se em 1 (último círculo de dentro para fora) no padrão de visualização do gráfico radar. De outro modo, o valor do erro global sendo próximo de 0 encontra-se no centro do modelo gráfico, reiterando as colocações feitas e assumindo as premissas interpretativas do modelo gráfico da literatura.

4 Conclusões

Com isto, encerramos nossas análises acerca do mapeamento de antromas povoados. Ao longo desta análise realizamos o tratamento e a mineração dos dados provenientes do Censo Demográfico 2010 (IBGE, 2013), classificando os dados geoespaciais em tipologias diferentes de antromas povoados, seguindo as diretrizes estabelecidas por Ellis (2020) para classificação e os metadados do IBGE para o alinhamento. Posteriormente, executamos a plotagem dos dados classificados e, sequencialmente, o mapeamento estático e interativo dos antromas povoados do Estado de São Paulo.

Finalizadas as etapas de construção do mapeamento, passamos às análises estatística para validação do produto cartográfico. Neste momento, efetuamos a análise de sobreposição, comparando a cartografia dos antromas povoados ao padrão ouro, o qual foi estipulado com base nos dados do IBGE. Identificamos algumas distorções no conjunto de dados e, consequentemente, no mapeamento, mas que não invalidam o produto desta Tese; todavia, mostra-se como uma limitação do produto.

Sequencialmente, operamos as análises das métricas estatísticas de sensibilidade, especificidade, acurácia global e erro global. As estimativas obtidas para estas métricas mostraram que o modelo possui relevante adequação ao uso pretendido de mapeamento de informações demográficas, realizando com eficiência a distribuição dos pontos na cartografia e o mapeamento das informações censitárias, quando comparado ao padrão ouro. As pequenas distorções identificadas nesta etapa também mostram-se como limitações da modelagem, porém não invalidam a modelagem empregada para o mapeamento dos antromas povoados.