IBGE data, checked
Downloads 2022 Census boundaries and tables through the IBGE APIs, records a SHA-256 hash and checks the codes on both sides before joining. A mismatch stops the batch.
Deliverable: dated folder with boundaries, table and checkOcto for thematic mapping
Boundaries and the 2022 Census table come from the IBGE APIs; the join, classification, legend and the 27 sheets, one per state, come from short scripts with QGIS, PostGIS and Python. Octo downloads, checks the codes, shows the same data in several methods side by side and points out the classic mistakes. Which variable, which method, how many classes and what the map claims stay with whoever is accountable for it.
Six possible deliverables, drawn from the research. All with open-source software or what the client already has, and all go to review by whoever is accountable for the map.
Downloads 2022 Census boundaries and tables through the IBGE APIs, records a SHA-256 hash and checks the codes on both sides before joining. A mismatch stops the batch.
Deliverable: dated folder with boundaries, table and checkThe same data in natural breaks, quantiles, equal intervals and head/tail, side by side, with counts per class, a goodness-of-fit measure and an empty-class warning.
Deliverable: comparison figure + CSV for the choiceAbsolute counts become a proportional symbol (area ∝ value) at a point inside the municipality, or a Dorling cartogram, with each unit's displacement reported.
Deliverable: layers ready to symbolizeOrigin-destination in PostGIS: curved lines, proportional width, totals at the destination and a table of what each threshold hides, so a person can decide the cutoff.
Deliverable: commented SQL + threshold tableCounts in a choropleth, no-data painted as zero, rates from small populations, the wrong color ramp, boundaries and data from different years, a legend with no source or year.
Deliverable: list of findings per mapStyle saved as QML with PyQGIS and an atlas by state with qgis_process, without opening QGIS: title, legend, source, year and reference system on every sheet.
The same Octo cycle, applied to thematic mapping. Each arm has a narrow role; the ones who choose the variable, the method and what the map claims are people.
Maps already published, styles, layouts and QGIS projects, source spreadsheets, software version and where each piece of data comes from.
The 7-digit IBGE code as text, the year of the data and of the boundaries, the variable's unit and whether it is a count, a rate or a density.
Origin-destination surveys, health and social registry data contain personal data; very small population units expose people. Assessed with the client (under Brazil's LGPD data protection law) before anything leaves the environment.
A figure in geopandas or a sheet in QGIS; symbol, cartogram or choropleth; SQL in PostGIS or a script; atlas from the command line.
Download with hash, checked join, compared classification, QML style and batch by state, with the source of each syntax noted in the file.
Counts in a choropleth, no-data as zero, empty classes, the wrong ramp, a legend with no source, year or reference system. Checks the map, not just the absence of errors.
Only with your OK, it generates the sheets in batch in a proof folder. Publishing, printing or sending to the end client is a person's decision.
Source, table, variable, data and boundary year, method, breaks and reference system for each map. A choice made for one study is not assumed right for another.
Octo works with read access and as support. It does not correct official data, does not choose what the map claims and does not sign cartographic products: that belongs to licensed people.
The criteria Octo uses to choose. Always with the documentation for the installed version.
| Task | Path | Note |
|---|---|---|
| Municipal boundaries by state | Boundaries API v3, intrarregiao=municipio | Simplified: not suitable for measuring area |
| 2022 Census data | Aggregates API v3, table 4714 | Values as text; symbols for no data |
| Join table and boundaries | 7-digit IBGE code, as text | Stop if a code exists on only one side |
| Rate or density | Sequential choropleth | Compare methods side by side |
| Absolute count | Proportional symbols or cartogram | Symbol area ∝ value |
| Change with a neutral midpoint | Diverging choropleth | Light center at zero or at the mean |
| Classify | mapclassify or QGIS graduated | Same breaks in both |
| Flows | PostGIS ST_MakeLine + data-driven width | Threshold decided by a person |
| Sheets in batch | qgis_process run native:atlaslayouttomultiplepdf | QT_QPA_PLATFORM=offscreen on a server |
Three steps. Each one only makes sense after the previous one has shown results on your team.
A proposal, not a promise
You describe the map and Octo downloads the data, checks the join and shows the classification options before the final figure.
Approved styles become reusable QML, and maps repeated by state or region come out in batch.
When IBGE publishes new data, the pipeline downloads, checks, regenerates the proofs and waits for approval.
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.
3
points with a published source, each with its reference alongside.
qgis_process lists, describes and runs algorithms, with --json and --project_path; the atlas comes out as several PDFs through native:atlaslayouttomultiplepdf.Source: qgis_process and cartography algorithms (docs.qgis.org)Octo prepares everything, but does not sign. The document of record stays with whoever is accountable for it.
Surveys, calculates, organizes and produces the documents: spreadsheets, reports, sheets, maps and drafts.
Deliverable: material ready to checkThe 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 signerOcto 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 ARTIBGE, QGIS, GDAL, PySAL and GeoPandas documentation used in the research, accessed on October 31, 2026.
The assessment starts with a map your team already makes by hand. You get the same map redone by script, with the classification options side by side and the list of what to review, and decide with it in hand.