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

De Documentação
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>

Edição atual tal como às 23h34min de 26 de junho de 2024

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.

Etapa 1 - Criação e configuração de base de dados

No ambiente Ubuntu Linux, com o SGBD PostgreSQL versão 14 instalado, Postgis instalado na versão 3, o usuário postgres 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:

sudo -i -u postgres

Em seguida, vá para a interface de linha de comando (CLI) do postgreSQL inserindo o comando:

psql

Na CLI do postgresSQL, insira o comando DDL abaixo para criar a base de dados db_br_municipios:

create database db_br_municipios;

Com a base de dados criada, alterne para o usuário root do linux por meio do comando \q, posteriormente o comando exit, e insira o comando abaixo para baixar o script de preparação da base de dados:

wget -P /tmp http://www.addressforall.org/_private/prepare1.sql

Logo em seguida, alterne para o usuário postgres (sudo -i -u postgres) e insira o seguinte comando para configurar a base de dados recém-criada:

psql db_br_municipios < /tmp/prepare1.sql

Etapa 2 - Carregamento de dados e visualização no QGIS

De volta para o usuário root,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:

wget -P /tmp http://www.addressforall.org/_private/grid_br2.sql.gz

Ao fim do download, dê permissão total ao arquivo grid_br2.sql.gz e alterne novamente para o usuário postgres (sudo -i -u postgres).

Execute o comando abaixo para inserir os dados das grades dos municípios na base de dados db_br_municipios:

gunzip -c /tmp/grid_br2.sql.gz | psql db_br_municipios

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 Suporte QGIS.

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 root (exit). Vá para o diretório na sua máquina aonde o QGIS salva os projetos, e execute o comando abaixo:

wget http://www.addressforall.org/_private/br_municipios.qgz

Ao abrir o projeto br_municipios 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:

Estrutura da view de cada municipio 1.png

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:

Propriedades simbologia views municipios.png

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.