Grade logística dos municípios Brasil: mudanças entre as edições

m
Sem resumo de edição
 
(21 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
==== Consulta para verificar se um determinado nível de grade está disponível para todos os municípios brasileiros ====
Caso seja a primeira vez executando as instruções desse tutorial, siga as etapas 1 e 2. Caso contrário, apenas a etapa 2 será necessária.
<syntaxhighlight lang="sql">
select count(*) FROM grid_br.all_levels where hlevel = 3.5; --  1984


select count(*) FROM grid_br.all_levels where hlevel = 7.5; -- 142
===Etapa 1 - Criação e configuração de base de dados===
</syntaxhighlight>O quantitativo da coluna hlevel para a grade de nível 3.5, por exemplo, é superior ao nível de grade 7.5. Dessa forma, para muitos municípios a grade de nível 7.5 não estará disponível para visualização.


==== Consulta para verificação de cobertura lógistica otimizada ====
No ambiente Ubuntu Linux, com o SGBD PostgreSQL versão 14 instalado, Postgis instalado na versão 3, o usuário <code>postgres</code> criado e o serviço configurado na porta 5432, siga os passos abaixo para criar uma base de dados. Primeiro, altere para o usuário postgres usando o comando:<syntaxhighlight lang="bash">
<syntaxhighlight lang="sql">
sudo -i -u postgres
select t.isolabel_ext, count(*) n_cells, array_agg(p.code_b16h) cover from grid_br.vw_level07_0_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom  group by 1 order by 1;
</syntaxhighlight>Em seguida, vá para a interface de linha de comando (CLI) do postgreSQL inserindo o comando:<syntaxhighlight lang="bash">
psql
</syntaxhighlight>Na CLI do postgresSQL, insira o comando DDL abaixo para criar a base de dados <code>db_br_municipios</code>:<syntaxhighlight lang="sql">
create database db_br_municipios;
</syntaxhighlight>Com a base de dados criada, alterne para o usuário <code>root</code> do linux por meio do comando <code>\q</code>, posteriormente o comando <code>exit</code>, e insira o comando abaixo para baixar o script de preparação da base de dados:<syntaxhighlight lang="bash">
wget -P /tmp http://www.addressforall.org/_private/prepare1.sql
</syntaxhighlight>Logo em seguida, alterne para o usuário <code>postgres</code> (<code>sudo -i -u postgres</code>) e insira o seguinte comando para configurar a base de dados recém-criada:<syntaxhighlight lang="bash">
psql db_br_municipios < /tmp/prepare1.sql
</syntaxhighlight>
</syntaxhighlight>


==== Criação de tabela de reindexação das células para base 32 com apenas um dígito ====
===Etapa 2 - Carregamento de dados e visualização no QGIS===
<syntaxhighlight lang="sql">
 
create table grid_br.caruaru_cover as select  natcod.vbit_to_strstd(substring((ROW_NUMBER() OVER())::bit(32),32-4),'32nvu') as idx_b32nvu, * from (
 
select  p.* cover from grid_br.vw_level07_0_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom  where t.isolabel_ext like '%Caruaru' order by gid_vbit) TT;
De volta para o usuário <code>root</code>,o próximo passo é baixar os dados das grades dos municípios para serem inseridos na base de dados recém-criada e configurada, por meio do comando:
 
<syntaxhighlight lang="bash">
wget -P /tmp http://www.addressforall.org/_private/grid_br2.sql.gz
</syntaxhighlight>
</syntaxhighlight>
[[Arquivo:Eneas-caruaru-geocodigo-base32.png|centro|miniaturadaimagem|385x385px|Grade logística do município de caruaru]]
 
<syntaxhighlight lang="sql">
Ao fim do ''download'', dê permissão total ao arquivo <code>grid_br2.sql.gz</code>  e alterne novamente para o usuário <code>postgres</code> (<code>sudo -i -u postgres</code>).
create table grid_br.nova_friburgo_cover as select  natcod.vbit_to_strstd(substring((ROW_NUMBER() OVER())::bit(32),32-4),'32nvu') as idx_b32nvu, * from (
 
select  p.* cover from grid_br.vw_level07_0_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom  where t.isolabel_ext like '%NovaFriburgo' order by gid_vbit) TT;
Execute o comando abaixo para inserir os dados das grades dos municípios na base de dados <code>db_br_municipios</code>:
 
<syntaxhighlight lang="bash">
gunzip -c /tmp/grid_br2.sql.gz | psql db_br_municipios
</syntaxhighlight>
</syntaxhighlight>
[[Arquivo:Eneas-novaFriburgo-geocodigo-base32.png|centro|miniaturadaimagem|564x564px|Grade logística do municípo de nova friburgo]]
 
<syntaxhighlight lang="sql">
Após a finalizar o carregamento das grades dos municípios na base de dados, precisamos visualizar na ferramenta recomendada, o QGIS. Para mais detalhes sobre a instalação da ferramenta ver [[sup:Usando o QGIS no A4A|Suporte QGIS]].
create table grid_br.sao_bento_sapucai_cover as select  natcod.vbit_to_strstd(substring((ROW_NUMBER() OVER())::bit(32),32-4),'32nvu') as idx_b32nvu, * from (
 
select  p.* cover from grid_br.vw_level07_5_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom  where t.isolabel_ext like '%SaoBentoSapucai' order by gid_vbit) TT;
Para reaproveitar um projeto pré-configurado do QGIS,  para  esses dados de grades dos municípios, podemos baixar o existente. Alterne para o usuário <code>root</code> (<code>exit</code>). Vá para o diretório na sua máquina aonde o QGIS salva os projetos, e execute o comando abaixo:
 
<syntaxhighlight lang="bash">
wget http://www.addressforall.org/_private/br_municipios.qgz
</syntaxhighlight>
</syntaxhighlight>
Ao abrir o projeto <code>br_municipios</code> no QGIS, insira as credenciais de usuário e senha do seu postgreSQL. Em seguida, poderemos constatar a seguinte estrutura de camadas(layers) por município no projeto:
[[Arquivo:Estrutura da view de cada municipio 1.png|centro|miniaturadaimagem]]
Recomendamos fortemente que se habilite a visualização de uma ''view'' de município por vez e, além disso, habilitar a visualização de uma camada/layer de município por vez. Por exemplo, na imagem acima, no respectivo município, apenas a layer ''cover'' está habilitada para visualização. A finalidade dessa política de visualização é para que não se esgote todos os recursos de ''hardware'' e subitamente o computador trave ou pare de funcionar.
Cada ''view'' de município possui as seguintes propriedades de simbologia:
[[Arquivo:Propriedades simbologia views municipios.png|centro|600x600px]]
== Resultados ==
A melhor maneira de testar a grade instalada é visualizando no mapa, em particular através da ferramenta recomendada, o QGIS.
Abaixo alguns exemplares de visualização de grades logísticas de municípios por dígito.
<gallery widths="400" heights="400" perrow="2">
Arquivo:NovaFriburgo cover digit1.png|Nova Friburgo,  grade de cobertura, com células rotuladas pelo dígito indexador.
Arquivo:NovaFriburgo digit2.png|Nova Friburgo, segundo dígito.
Arquivo:NovaFriburgo digit3.png|Nova Friburgo, terceiro dígito.
Arquivo:Caruaru cover digit1.png|Caruaru, dígito indexador.
Arquivo:Caruaru digit2.png|Caruaru, segundo dígito.
Arquivo:Caruaru digit3.png|Caruaru, terceiro dígito.
</gallery>
2 391

edições