Importando dados espaciais para Postgis com OGR

Rodrigo Brust
2 min readNov 4, 2021

--

Photo by GeoJango Maps on Unsplash

Seguindo o fluxo de trabalho utilizando dados espaciais e BD com Postgis, uma pergunta bastante pertinente é: como eu faço para jogar meu shapefile, geopackage e afins para dentro de um banco de dados?

A forma que eu encontrei, que é um tanto simples, é utilizando OGR2OGR, que faz parte do GDAL. Muito provavelmente você também consegue fazer esse procedimento de importação utilizando outros métodos, como no QGIS e usando Python. Então vamos aos exemplos, que são construídos em ambiente Linux (PopOs 20.04 — baseado em Ubuntu), e banco de dados PostgreSQL:

Importando Geopackage

ogr2ogr -f "PostgreSQL"
PG:"host=localhost port 5432
dbname=nomedobanco
user=nomeusuario password=suasenha"
arquivo.gpkg

Nesse exemplo e nos que virão a seguir, vamos levar em consideração que a porta sempre será a 5432, mas pode mudar conforme sua configuração inicial. Também parto do pressuposto que você está rodando o terminal dentro da pasta em que se encontram seus arquivos.

Importando Shapefile

ogr2ogr -f "PostrgreSQL"
PG:"host=localhost port=5432
dbname=nomedobanco
user=nomedousuario password=suasenha"
-nln nome_da_camada
-nlt tipo_da_camada
-lco GEOMETRY_name=geom
-lco FIG=gid
-lco PRECISION=no
camada.shp
  • -nln (new-layer-name): nome da nova camada; configura o nome da tabela de acordo com o nome que você especificar.
  • -nlt (new-layer-type): tipo da nova camada; É preciso dizer qual tipo de geometria, se é Polygon ou MultiPolygon, já que as vezes o arquivo pode ser multiparte.
  • -lco (layer-creation-option): opções de criação da camada; Arquivos espaciais com diferentes extensões tem diferentes formas de serem criados.

> GEOMETRY_NAME: define o nome da coluna que contém informações da geometria

> FID: determina o nome da coluna com as chaves primárias.

> PRECISION: controla quantos campos numéricos são apresentados no banco de dados.

Fontes

How to create a world-wide PostgreSQL database of administrate regions

OGR2OGR Cheatsheet

How to import geopackages into Postgres/Postgis database?

Connecting to PostgreSQL databases from the command line

PostGIS in Action

Postgis Intro: Loading

--

--

Rodrigo Brust
Rodrigo Brust

Written by Rodrigo Brust

Brazilian geologist, and a lover of geotechnologies, spatial analysis, and data analysis with Python. #python #gis

No responses yet