6.4 OPÇÃO 4: ogr2ogr (Conversão Direta CSV → GeoJSON) ⚠️ Método Avançado#

⚠️ ATENÇÃO: Este método requer conhecimento de linha de comando e instalação do GDAL. Se você é iniciante, recomendamos usar a Opção 1 ou Opção 2.

Use esta opção se você prefere usar linha de comando e já tem as geometrias no CSV (como WKT ou lat/lon).

O que é ogr2ogr: ogr2ogr é uma ferramenta de linha de comando do GDAL que converte entre diversos formatos geoespaciais, incluindo CSV para GeoJSON.


A. Instalação:#

Linux:

sudo apt install gdal-bin  # Debian/Ubuntu
sudo pacman -S gdal        # Arch Linux

Mac:

brew install gdal

Windows:


B. Preparar CSV com Geometria WKT:#

Certifique-se de que seu CSV tem uma coluna wkt com as geometrias:

id,wkt,lote,rodovia,item,detalhamento_servico,unidade,quantidade,km_inicial,km_final,local,data_inicial,data_final,observacoes_gerais
conserva-001,"LINESTRING(-46.633308 -23.550520, -46.634567 -23.551234)",L13,SP0000280,a.1.1,Recuperação funcional do pavimento,km,5.25,22.500,27.750,PISTA_NORTE;PISTA_SUL,2026-03-15,2026-07-20,Período noturno
conserva-002,"POINT(-46.635000 -23.552000)",L13,SP0000330,c.2.4,Sinalização vertical,un,15,132.100,138.500,PISTA_NORTE,2026-02-01,2026-02-15,

C. Converter usando ogr2ogr:#

Opção C.1: CSV com coluna WKT#

ogr2ogr -f GeoJSON \
  -s_srs EPSG:4674 \
  -t_srs EPSG:4674 \
  -oo GEOM_POSSIBLE_NAMES=wkt \
  -oo KEEP_GEOM_COLUMNS=NO \
  L13_conservacao_2026_R0.geojson \
  dados_com_wkt.csv

Opção C.2: CSV com colunas lat/lon#

ogr2ogr -f GeoJSON \
  -s_srs EPSG:4674 \
  -t_srs EPSG:4674 \
  -oo X_POSSIBLE_NAMES=lon \
  -oo Y_POSSIBLE_NAMES=lat \
  -oo KEEP_GEOM_COLUMNS=NO \
  L13_conservacao_2026_R0.geojson \
  dados_com_latlon.csv

Explicação dos parâmetros:

  • -f GeoJSON: Formato de saída
  • -s_srs EPSG:4674: Sistema de referência de origem (SIRGAS 2000)
  • -t_srs EPSG:4674: Sistema de referência de destino (SIRGAS 2000)
  • -oo GEOM_POSSIBLE_NAMES=wkt: Nome da coluna com geometria WKT
  • -oo X_POSSIBLE_NAMES=lon: Nome da coluna com longitude
  • -oo Y_POSSIBLE_NAMES=lat: Nome da coluna com latitude
  • -oo KEEP_GEOM_COLUMNS=NO: Não manter colunas wkt/lat/lon no GeoJSON final

D. Resultado Esperado:#

O GeoJSON gerado terá esta estrutura:

{
  "type": "FeatureCollection",
  "name": "dados_com_wkt",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "id": "conserva-001",
        "lote": "L13",
        "rodovia": "SP0000280",
        "item": "a.1.1",
        "local": "PISTA_NORTE;PISTA_SUL",
        ...
      },
      "geometry": {
        "type": "LineString",
        "coordinates": [[-46.633308, -23.55052], [-46.634567, -23.551234]]
      }
    }
  ]
}

E. ⚠️ IMPORTANTE - Ajustes Necessários:#

O arquivo gerado pelo ogr2ogr NÃO estará 100% conforme o schema R0. Você ainda precisará:

  1. Remover campo name (se existir):

    • Deletar a linha "name": "dados_com_wkt",
  2. Adicionar campo crs correto:

    • O ogr2ogr pode omitir o CRS ou usar formato RFC7946
    • Você precisa adicionar manualmente:
    "crs": {
      "type": "name",
      "properties": {
        "name": "urn:ogc:def:crs:EPSG::4674"
      }
    },
  3. Adicionar campo metadata:

    "metadata": {
      "schema_version": "R0",
      "data_geracao": "2025-11-08T10:30:00-03:00"
    },
  4. Converter campo local de string para array:

    • De: "local": "PISTA_NORTE;PISTA_SUL"
    • Para: "local": ["PISTA_NORTE", "PISTA_SUL"]
    • Use uma das opções descritas em Adicionar Metadados e Ajustar Formato (manual, regex, script Python, ou jq)

Vantagens e Desvantagens#

Vantagens:

  • ✅ Geometria já vem pronta no GeoJSON
  • ✅ Não precisa usar interface gráfica do QGIS
  • ✅ Rápido para grandes volumes de dados
  • ✅ Pode ser automatizado em scripts

Desvantagens:

  • ❌ Requer instalação do GDAL/ogr2ogr
  • ❌ Ainda precisa de ajustes manuais no JSON (CRS, metadata, campo local)
  • ❌ Requer conhecimento de linha de comando

F. Prosseguir para o Passo 5#

Continue para Adicionar Metadados e Ajustar Formato.


📌 Próximo passo:

➡️ Adicionar Metadados e Validar