Skip to content
Octo × ET-EDGV PT Request an assessment

Octo for vector datasets in ET-EDGV 3.0

The dataset enters the model by script. What each feature is, you decide.

An ET-EDGV 3.0 dataset is a PostGIS database with one schema for classes and another for domains. Creating that database, loading an old dataset, clipping IBGE's BC250 and flagging dangles and gaps between polygons all run through psql, ogr2ogr and qgis_process. Octo builds and checks these batches. The mapping of each feature, the acceptance of each fix and the approval of the data stay with the responsible cartographer.

Three layers from a legacy CAD dataset, with rivers, a lake and blocks, pass through Octo and reach a database with the edgv and dominios schemas; beside it, a map excerpt of the drainage with a dangle and a gap flagged for review LEGACY DATA · CAD / SHP BLOCKS HYDRO_LAKE HYDRO_RIVER TYPE=RIVER · STREAM · CULVERT REGIME=P · I · (empty) POSTGIS edgv. hid_trecho_drenagem_l hid_massa_dagua_a lml_municipio_a dominios. regime (0..5) auxiliar (0, 1, 2) 9999 A SER PREENCHIDO FK MATCH FULL VALIDATION FLAGS → REVIEWER ogr2ogr -f PostgreSQL PG:"service=edgv_trab" ... OCTO × EDGV 3.0 VECTOR DATASETS C-03
Illustration: legacy dataset entering the ET-EDGV 3.0 model; fictitious data.
ET-EDGV3.0CONCAR, December 2017
Categories in the standard1914 for small scales and 5 for large scales
BC250, 2025 version71layers; 45 changed
Sources14listed at the end of the page
01

What Octo does with ET-EDGV datasets.

Six possible deliverables, drawn from the research. All run on a working database, with read access to the official one, and all go to review by whoever is technically accountable for the data.

Database in the model, at a pinned commit

Creates the PostGIS database from the SQL that DSG Tools publishes for ET-EDGV 3.0, replaces the SRID placeholder, checks the number of classes and domains and applies it in a single transaction.

Deliverable: working database and hash of the model used

Reviewable mapping table

Inventories the legacy dataset, counts the values in each field and proposes the table that maps source layer and code to EDGV class and domain, with a status for the cartographer.

Deliverable: mapping CSV with real counts

Load with checks

Imports into a staging schema with ogr2ogr and loads the classes through SQL: 9999 where the source doesn't say, geometry made valid and input-versus-output counts.

Deliverable: trial load and pending-items report

Batch topology validation

Invalid geometry, polygon coverage, gaps, dangles, crossings without a node and pending attributes, through SQL in PostGIS and DSG Tools algorithms in qgis_process.

Deliverable: flag layer for the reviewer

BC250 clipped and measured

Downloads BC250 2025 with a hash, clips it to the project area and measures length in Polyconic and area in Albers, with the parameters the IBGE documentation specifies.

Deliverable: GPKG clip and recorded measurements

Questions to the model

Answers "does this column exist?", "which code is dry?" and "which classes does BC250 not include?" by reading the model SQL and the documentation, without opening QGIS.

Deliverable: answer with source file and line
02

Eight arms, one dataset in the model.

The same Octo cycle, applied to ET-EDGV datasets. Each arm has a narrow role; the ones who map the feature, accept the fix and approve the data are people.

  1. Discovery

    Finds the datasets and versions

    Where the CAD, shapefile, geodatabase and PostGIS data live; which EDGV version each one follows; whether there is a DSG Tools database and from which model.

  2. Data

    Reads the actual model

    Classes, columns and domains taken from the model SQL; mapping table with real counts; product SRID and scale pinned before the load.

  3. Security

    Takes care of access and data

    Connection through a PostgreSQL service, no password in scripts; read access to the official database. Records with personal data are assessed with the client (under Brazil's LGPD) before anything leaves the environment.

  4. Architecture

    Picks the path

    SQL in PostGIS or a DSG Tools algorithm for each rule; direct load or staging schema; GeoPackage or dump for BC250.

  5. Development

    Writes the batch

    Scripts with a trial run, simulation, transaction and count check, with the source of each syntax noted in the file.

  6. Review

    Checks by the numbers and on the map

    Input equals loaded plus discarded plus no-geometry; kilometers before and after; an area the team knows opened in QGIS.

  7. Release

    Applies to the working database

    Only with your OK, it runs the COMMIT on the working database. Moving it to the official database is done by a person.

  8. Documentation

    Records what applies to your project

    Model commit, approved mapping table, tolerances, counts and pending items for each batch. One city's mapping table is not assumed ready for another.

Octo works with read access and as support. It does not edit the official database, does not approve data and does not sign cartographic products: that belongs to licensed professionals, with an ART.

03

Each task, its own path.

The criteria Octo uses to choose, with open-source tools and IBGE's public datasets.

TaskPathNote
Create an ET-EDGV 3.0 databaseDSG Tools SQL with [epsg] and # replaced, psql --single-transactionPin the model commit
Find out whether a column existsgrep in the SQL or in the models repositoryWithout opening QGIS
Inventory a legacy datasetogrinfo -ro -so -alCount and fields per layer
Import into PostGISogr2ogr -lco SCHEMA=staging -lco GEOMETRY_NAME=geom -nlt PROMOTE_TO_MULTI -makevalidNever directly into the edgv schema
Map to the classesSQL with a mapping tableMapping table approved by the cartographer
Validate geometry and coverageST_IsValidDetail, ST_CoverageInvalidEdgesWrites flags, does not fix
Validate with DSG rulesqgis_process run dsgtools:<algorithm>Output in GPKG and JSON
Fix coverageST_CoverageClean on a copyPostGIS 3.6 and GEOS 3.14; only after approval
Use BC250 2025Official GeoPackage, sha256sum, ogr2ogr -spat -clipsrc1:250,000 scale; boundaries with no official standing
Measure area and lengthAlbers for area, Polyconic for lengthParameters from the IBGE documentation
04

From questions about the model to a dataset maintained in batch.

Three steps. Each one only makes sense after the previous one has shown results with your mapping team.

A proposal, not a promise

1 Today

Questions and inventory

Octo reads the model and your datasets and tells you what exists, in which version and what is missing, without changing anything.

  • Classes and domains taken from the model SQL
  • Inventory of legacy layers with counts
  • BC250 clip for the project area
Benefit: decisions based on numbers, not memory
2 Next

Conversion with a mapping table

Legacy datasets enter the model through a trial load, with a pending-items report and count checks.

  • Mapping table approved by the cartographer
  • Load in a transaction, 9999 visible
  • Comparison with BC250 by tolerance band
Benefit: the team reviews a report, not the whole dataset
3 Later

Continuous validation

Each editing batch goes through the same set of rules before reaching the reviewer, with the summary read by Octo.

  • SQL and DSG Tools in the same run
  • Flags by rule, class and editor
  • Log of tolerances and of each decision
Benefit: topology errors caught the same day, not at delivery
05

Confirmed by sources.

Every point below has a source published by the responsible body (Planalto, IBGE, the Brazilian Army, CONCAR), by the project or by the standards organization. The sources are in the next section.

4

points with a published source, each with its reference alongside.

ConfirmedScope of ET-EDGV 3.0
Standardizes the official reference vector data structures for scales of 1:1,000 and smaller, in 19 categories: 14 for small-scale mapping (1:25,000 and smaller) and 5 for large-scale mapping. Data from producers outside the federal agencies of the SCN only enters the INDE as official if approved by an authority with technical competence.Source: ET-EDGV 3.0, CONCAR, December 2017 (INDE PDF)
ConfirmedBC250, 2025 version
Seventh version, in the ET-EDGV 3.0 model, with 13 of the 16 categories planned for 1:250,000; 71 layers, 45 changed; 125 m tolerance in validations; boundaries with no official standing. Files dated March 3, 2026 in GeoPackage (824 MB), PostgreSQL dump and shapefile.Source: BC250 2025 technical documentation and the versao2025 folder (geoftp.ibge.gov.br)
ConfirmedThe model inside PostGIS
In the DSG Tools SQL for EDGV 3.0: edgv and dominios schemas, 292 and 146 tables, domains through foreign keys with code 9999 "A SER PREENCHIDO" (to be filled in), commands separated by # and the SRID as the placeholder [epsg].Source: github.com/dsgoficial/DsgTools, commit a9413f6
ConfirmedCoverage functions in PostGIS
ST_CoverageInvalidEdges has existed since PostGIS 3.4.0; ST_CoverageClean, since 3.6.0, requires GEOS 3.14 and offers four strategies for overlaps, with the neighbor sharing the longest boundary as the default.Source: postgis.net/docs
06

What Octo does and what stays with you.

Octo prepares everything, but does not sign. The document of record stays with whoever is accountable for it.

Octo prepares

Surveys, calculates, organizes and produces the documents: spreadsheets, reports, sheets, maps and drafts.

Deliverable: material ready to check

Your team checks

The licensed professional checks what Octo delivered before signing. If something doesn't add up, it goes back to Octo with the correction.

Step: review by the signer

Who signs

Octo does not sign. Designs, technical reports, ART/RRT (Brazil's professional responsibility records), accountability reports and any official document are still signed by the company's or agency's licensed professional: here, the cartographic engineer or another licensed professional, with an ART; official data goes into the INDE only after approval by the competent authority.

Sign-off: licensed professional, with ART
07

Sources.

Standards, datasets and documentation used in the research, accessed on October 31, 2026.

Your dataset in the model, with every pending item in plain view.

The assessment starts with a layer your team already maintains, without touching the official database. You get the inventory, a proposed mapping table and a trial validation run, and decide with that in hand.