Primeiramente, baixe o PostgreSQL e mantenha a instalação default do programa. Segue o link para o Download PostgreSQL.
Seguindo com o processo, inicie a instalação do Stack Builder. No momento do menu de extensões, selecione a opção "PostGIS 3.3 Bundle for PostgreSQL 15 (64 bit)".
Para saber mais sobre o manual aprofundado do PostGis acesse PostGis WorkShop.
Entre no aplicativo do PGAdmin 4, utilizando a senha definida pelo usuário. Inicialmente, cria-se um server ao qual irá conter o banco de dados.
Insira o nome do host que irá hospedar o servidor (no caso utilizaremos localhost). Além da senha estabelecidade e a porta, no nosso caso:
5432
Na página do PGAdmin 4, cria-se um ambiente para importar o banco de dados. Inseri-se um nome para o dataset.
Após gerar o ambiente, roda-se o SQL Querry, para isso utiliza-se a ferramenta: Querry Tool. Segue os comandos para inserir e executar no terminal Querry:
CREATE EXTENSION postgis;
SELECT postgis_full_version();
OBS: Caso o programa aponte um problema como Utility file not found. Please correct the Binary Path in the Preferences dialog postgres. Sugere-se encontrar o caminho da bin do PostgreSQL e copie-o.
Arquivos de Programa >> PostgreSQL >> 15 >> bin
No aplicativo do pgAdmin 4, selecione na aba superior Files e clique em Preferences. Encontre a área Path e selecione Binay paths. Baseado na versão do seu PostgreSQL, altere o caminho da Database Server.
Ao utilizar o QGIS e OSGeo4W como uma ferramenta de visualição e manipulação de formatos. Temos o comando ogr2ogr capaz de converter os arquivos shapefile (disponibilizados pelo professor Hudson) para conseguir manipula-los dentro do Banco de Dados.
Inicia-se o OSGeo4W Shell, conectamos OSGeo4W Shell com o PostGIS e suas tabelas. Através do seguinte comando no terminal:
ogrinfo PG:"host=localhost port=5432 user='postgres' password='PASSWORD' dbname='geoia-db'"
INFO: Open of
PG:host=localhost port=5432 user='postgres' password='PASSWORD' dbname='geoia-db'' using driver
PostgreSQL' successful.
Assim, para inserir as informações do dataset para as tabelas do PostGIS, deve-se acessar o diretório que os arquivos estão armazenados. Como, por exemplo, no nosso caso:
cd C:\Users\...\database_observatorio
Em seguida, aplica-se o seguinte código no terminal:
ogr2ogr -f "PostgreSQL" PG:"host=localhost user=postgres dbname=geoia-db password=PASSWORD" -nlt POLYGON inferencia_out_2021.shp
OBS: Encontrou-se uma ferramenta disponível no ogr2ogr, chamada de simplify. Essa função reduz o número de polígonos por meio de uma simplificação por uma tolerância de distância:
ogr2ogr -f "PostgreSQL" PG:"host=localhost user=postgres dbname=geoia-db password=PASSWORD" -nlt POLYGON -simplify 10 inferencia_out_2021.shp
Mais informações sobre o comando, segue a Documentação do OGR2OGR.
Desse modo, ao abrir o pgAdmin 4, observa-se que na aba do ícone Tables encontra-se as tabelas referentes aos valores disponibilizados pelo shapefile.
Possibilitando assim, uma visualização bruta do dataset. Clique em View Data e depois, ao lado de wkb geometry, selecione a figura: View all geometries in the column. Dessa maneira, possibilita verificar os polígonos.
ST_Transform - Pontos em um sistema de referência.
Função responsável por gerar novos pontos/polígonos com suas coordenadas em outros sistemas de referência espacial. Basicamente, as geometrias em um mapa (sistema de referência).
SELECT ST_Transform(wkb_geometry, 4326) FROM inferencia_out_2021
Por convenção dos alunos, utilizou-se o seguinte valor de sistema de referência:
4326
OBS: Caso deseje utilizar outro valor de referência, utilize o seguinte comando:
SELECT * FROM spatial_ref_sys
ST_AsGeoJSON - Conversão em GeoJSON.
Função responsável por retornar os pontos/polígonos como uma "geometria" GeoJSON.
SELECT ST_AsGeoJSON(ST_Transform(wkb_geometry, 4326), 6) FROM inferencia_out_2021
O parâmetro "6" é associado como maneira de reduzir o número máximo de casas decimais. Recomenda-se para o sistema de referência 4326, o valor 6.
ST_Contains e ST_MakeEnvelop - Seleção de pontos em área específica.
Na realização das atividades do Observatório Pantanal, como forma de selecionar polígonos em uma determinada precisão espacial, nossa solução são as funções ST_Contais e ST_MakeEnvelope.
A função ST_Contais retorna um booleano verdadeiro se e somente se nenhum ponto/polígono de B estiver no exterior de A, e pelo menos um ponto/polígonos do interior de B estiver no interior de A.
Enquanto a função ST_MakeEnvelope gera um polígono retangular a partir dos valores mínimo e máximo para X e Y. Os valores de entrada devem estar no sistema de referência espacial especificado pelo SRID. Se nenhum SRID for especificado, o sistema de referência espacial desconhecido (SRID 0) será usado.
Seguindo a área da aplicação, utiliza-se da função ST_MakeEnvelope para especificar a área desejada. Desse modo, a função ST_Contais, verifica os polígonos que estão totalmente contidos na área determinada, sempre mantendo o mesmo sistema de referência.
SELECT ST_AsGeoJSON(ST_Transform(wkb_geometry, 4326), 6) FROM inferencia_out_2021
WHERE ST_Contains(ST_MakeEnvelope(-58,-22,-57,-21, 4326), ST_Transform(wkb_geometry, 4326))
Para visualizar os pontos/polígonos da área desejada, utilza-se o programa QGIS. Primeiramente, necessita-se criar um arquivo do tipo Views. Para isso, execute o próximo comando na Querry Tool do pgAdmin 4:
CREATE OR REPLACE VIEW view_inferencia_out_2021 AS (SELECT * FROM inferencia_out_2021
WHERE ST_Contains(ST_MakeEnvelope(-58,-22,-57,-21, 4326), ST_Transform(wkb_geometry, 4326)))
SELECT * from view_inferencia_out_2021
Posteriormente estabele-se um conexão entre o QGIS e o banco de dados. Observe a image abaixo:
Para manipulação dos shapefiles utilza-se a ferramenta OSGeo4W Shell , conectamos OSGeo4W Shell com o PostGIS e suas tabelas. Através do seguinte comando no terminal:
ogrinfo PG:"host=localhost port=5432 user='postgres' password='PASSWORD' dbname='geoia-db'"
INFO: Open of
PG:host=localhost port=5432 user='postgres' password='PASSWORD' dbname='geoia-db'' using driver
PostgreSQL' successful.
Para exemplificar os próximos passos e ajudar na visualização, utiza-se a função -nln para inserir as informações no banco de dados.
ogr2ogr -f "PostgreSQL" PG:"host=localhost user=postgres dbname=geoia-db password=PASSWORD" -nln "OUTPUT_NAME" -nlt POLYGON inferencia_out_2021.shp
A função -simplify gera um arquivo shapefile capaz de reduzir o tamanho do shapefile, por meio de um algoritmo de simplificação de polígonos.
ogr2ogr -f "PostgreSQL" PG:"host=localhost user=postgres dbname=geoia-db password=PASSWORD" -simplify 100 -nln "output_simplify100" -nlt POLYGON inferencia_out_2021.shp
Tolerance | Polígonos | Tamanho do Arquivo |
---|---|---|
Nenhuma |
109273 | 45.38 MB |
10 |
30878 | 17.39 MB |
50 |
14672 | 11.43 MB |
100 |
21695 | 10.51 MB |
1000 |
21695 | 9.82 MB |
5000 |
2091 | 9.77 MB |
A função -skipfailures optimiza a performance da tabela, ignorando erros.
ogr2ogr -f "PostgreSQL" PG:"host=localhost user=postgres dbname=geoia-db password=PASSWORD" -skipfailures -nln "OUTPUT_NAME" -nlt POLYGON inferencia_out_2021.shp
Por meio do Site do IBGE, instala-se os shapefiles das regiões do Brasil.
Ao instalar o arquivo ZIP, descompacte-o na workspace. Abra o OSGeo4W Shell, acesse o diretório do arquivo das regiões e insira o comando para registrar o shapefile no banco de dados:
ogr2ogr -f "PostgreSQL" PG:"host=localhost user=postgres dbname=geoia-db password=PASSWORD" -nln "regioes_brasil" -nlt POLYGON RG2017_regioesgeograficas2017.shp
Desse modo, os arquivos do IBGE estão cadastrados no dataset. Para visualiza-los, acesse o pgAdmin 4 e no QuerryTool, utilize o comando:
SELECT inferencia_out_2021.ogc_fid,
inferencia_out_2021.fid,
inferencia_out_2021.wkb_geometry
FROM inferencia_out_2021
WHERE st_contains((
SELECT st_transform(regioes_brasil.wkb_geometry, 4326) AS st_transform
FROM regioes_brasil
WHERE regioes_brasil.nome::text = 'Corumbá'::text), st_transform(inferencia_out_2021.wkb_geometry, 4326));
Criou-se uma planilha para monitorar os dados recebidos pelo laboratório da Geomática. As informações são separadas baseado no mês e a região referente ao shapefile (região da Amazônia e região do Pantanal). Segue o link para a planilha de controle.
Em razão de como são oferecidos os dados pela Equipe da Geomática, monitorados pelo professor Marcato, torna-se necessário unir os dataset disposto em, normalmente, 4 shapefiles. Para isso, utiliza-se dos seguintes comandos:
ogr2ogr -f "ESRI SHAPEFILE" -update -append MERGE_SHAPEFILE.shp SOURCE_X.shp
OBS: Existe a necessidade de rodar o código anterior para cada shapefile, nesse caso altere o nome dos arquivos na posição do: SOURCE_X.shp.
Em razão de como são oferecidos os dados pela Equipe da Geomática, monitorados pelo professor Marcato, torna-se necessário adicionar um ponto referencial no dataset. Para resolver esse problema no momento, utiliza-se do Software QGIS para fazer as alterações necessárias. Para isso, deve-se abrir o arquivo shapefile no QGIS:
Encontra-se o diretório em que o arquivo está salvo, e clique no arquivo MERGE_SHAPEFILE.shp. Ao cliclar no botão Adicionar, aparecerá uma interface. Insira na aba de pesquisa do Filtro o código de referência do Pseudo-Mercator, no caso: 3857.
OBS: Caso não apareça a interface, clique no canto inferior direito do QGIS, em que estará escrito algo similar: EPSG:4326.
Por fim, exporte o arquivo shapefile para o sistema de referência que o usuário desejar.