Ir para o conteúdo

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

sem sumário de edição
Sem resumo de edição
Sem resumo de edição
Linha 7: Linha 7:
</syntaxhighlight>Com a base de dados criada e habilitada para trabalhar com dados geográficos, agora precisamos prepará-la para lidar com rotulação hierárquica por meio de scripts SQL do repositório https://github.com/AddressForAll/WhitePaper01.
</syntaxhighlight>Com a base de dados criada e habilitada para trabalhar com dados geográficos, agora precisamos prepará-la para lidar com rotulação hierárquica por meio de scripts SQL do repositório https://github.com/AddressForAll/WhitePaper01.


 
Vá para o diretório <code>/var/gits/_a4a/</code> e insira o comando abaixo para clonar o repositório WhitePaper01.
<nowiki>Vá para o diretório {{/var/gits/_a4a/ e insira o comando abaixo para clonar o repositório WhitePaper01.</nowiki><syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git clone https://github.com/AddressForAll/WhitePaper01
git clone https://github.com/AddressForAll/WhitePaper01
</syntaxhighlight>Acesse o diretório <nowiki><code>/var/gits/_a4a/WhitePaper01/sql</code></nowiki> e execute sequencialmente os comandos abaixo.<syntaxhighlight lang="bash">
</syntaxhighlight>Acesse o diretório <code>/var/gits/_a4a/WhitePaper01/sql</code> e execute sequencialmente os comandos abaixo.<syntaxhighlight lang="bash">
psql <nome_base_de_dados> < prepare0-binCodes.sql
psql <nome_base_de_dados> < prepare0-binCodes.sql
</syntaxhighlight><syntaxhighlight lang="bash">
</syntaxhighlight><syntaxhighlight lang="bash">
Linha 24: Linha 24:
</syntaxhighlight><syntaxhighlight lang="bash">
</syntaxhighlight><syntaxhighlight lang="bash">
psql <nome_base_de_dados> < prepare2b-demo.sql | diff - ../data/prepare2b-demo.txt
psql <nome_base_de_dados> < prepare2b-demo.sql | diff - ../data/prepare2b-demo.txt
</syntaxhighlight>A base de dados está pronta para receber as grades do Brasil. Agora vá para o diretório /tmp e execute o comando abaixo para fazer download das grades do Brasil.<syntaxhighlight lang="bash">
</syntaxhighlight>A base de dados está pronta para receber as grades do Brasil. Agora vá para o diretório <code>/tmp</code> e execute o comando abaixo para fazer download das grades do Brasil.<syntaxhighlight lang="bash">
wget http://www.addressforall.org/_private/grid_br_dump2.sql.gz
wget http://www.addressforall.org/_private/grid_br_dump2.sql.gz
</syntaxhighlight>Dê as permissoões necessárias ao arquivo recém-baixado para que o mesmo possa ser descompactado. Após isso, mude o usuário do Ubuntu para o usuário postgres por meio do comando:<syntaxhighlight lang="bash">
</syntaxhighlight>Dê as permissões necessárias ao arquivo recém-baixado para que o mesmo possa ser descompactado. Após isso, mude o usuário do Ubuntu para o usuário postgres por meio do comando:<syntaxhighlight lang="bash">
sudo -i -u postgres
sudo -i -u postgres
</syntaxhighlight>Agora vá para o diretório /tmp, e execute o comando abaixo:<syntaxhighlight lang="bash">
</syntaxhighlight>Agora vá para o diretório <code>/tmp</code>, e execute o comando abaixo:<syntaxhighlight lang="bash">
gunzip -c grid_br_dump2.sql.gz | <nome_base_de_dados>
gunzip -c grid_br_dump2.sql.gz | <nome_base_de_dados>
</syntaxhighlight>Após a finalizar o carregamento das grades do brasil na base de dados, algumas configurações adicionais ainda são necessárias. Ainda no usuário postgres, mude para a interface de linha de comando (CLI) do postgres com o comando:<syntaxhighlight lang="bash">
</syntaxhighlight>Após a finalizar o carregamento das grades do brasil na base de dados, algumas configurações adicionais ainda são necessárias. Ainda no usuário postgres, mude para a interface de linha de comando (CLI) do postgres com o comando:<syntaxhighlight lang="bash">
Linha 131: Linha 131:
</syntaxhighlight>O script SQL acima proporciona a base de dados a lidar com projeções compatíveis com o IBGE.
</syntaxhighlight>O script SQL acima proporciona a base de dados a lidar com projeções compatíveis com o IBGE.


Em seguida, precisamos criar as funções vbit_interleave e ints_to_interleavedbits. Ainda na CLI do postgres, adicione na sequência, os scripts SQL abaixo: <syntaxhighlight lang="sql">
Em seguida, precisamos criar as funções <code>vbit_interleave</code> e <code>ints_to_interleavedbits</code>. Ainda na CLI do postgres, adicione na sequência, os scripts SQL abaixo: <syntaxhighlight lang="sql">
CREATE FUNCTION vbit_interleave(x varbit, y varbit) returns varbit as $f$
CREATE FUNCTION vbit_interleave(x varbit, y varbit) returns varbit as $f$
   SELECT  string_agg(( substring(x,i,1)||substring(y,i,1) )::text,'')::varbit  
   SELECT  string_agg(( substring(x,i,1)||substring(y,i,1) )::text,'')::varbit  
Linha 142: Linha 142:
</syntaxhighlight>Agora a base de dados está pronta e configurada. Iremos para a próxima fase que é a de geração de ''views'' para o QGIS. Mantenha-se na CLI do postgres.
</syntaxhighlight>Agora a base de dados está pronta e configurada. Iremos para a próxima fase que é a de geração de ''views'' para o QGIS. Mantenha-se na CLI do postgres.


=== Geração de ''views'' para os municípios de PE-Caruaru, RJ-NovaFriburgo e SP-SãoBentoSapucai ===
=== Geração de ''views'' para os municípios de PE-Caruaru, RJ-NovaFriburgo e SP-SãoBentoSapucai===




Linha 152: Linha 152:
</syntaxhighlight>...
</syntaxhighlight>...


==== Consulta para verificação de cobertura lógistica otimizada ====
====Consulta para verificação de cobertura lógistica otimizada====
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
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;
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;
Linha 165: Linha 165:
</syntaxhighlight>Podemos constatar que o quantitativo de células está otimizado para os municípios de caruaru e nova friburgo. O município de Santo bento do sapucaí ainda é passível de otimização por meio de uma camada de nível 7.5.
</syntaxhighlight>Podemos constatar que o quantitativo de células está otimizado para os municípios de caruaru e nova friburgo. O município de Santo bento do sapucaí ainda é passível de otimização por meio de uma camada de nível 7.5.


==== Criação de tabela de reindexação das células para base 32 com apenas um dígito ====
====Criação de tabela de reindexação das células para base 32 com apenas um dígito ====
<syntaxhighlight lang="sql">
<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 (
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 (
36

edições