Soft commodity facilities like grain stores, silos, and cooperatives in Brazil.
Guidance for AI agents and automated clients querying this collection.
One rule survives every edit to this file. Every claim here is either quoted from a source or measured from the data. If you cannot point at where a fact came from, it does not belong in this file.
Every count below was measured on 2026-08-20 over the full published files. No sampling. The catalog-level AGENTS.md carries the cross-cutting traps; this file carries the per-file detail.
Base URL:
https://data.source.coop/tristangruppwri/soft-commodity-infrastructure/facilities/
No nulls and no empty geometries in any file. Only BR_muni reaches the eastern
extreme -29.299; that is the Trindade and Martim Vaz island municipality, and it
stretches any map fitted to the collection bbox.
Declared as table:columns on each asset in collection.json. The old metadata
advertised all 38 columns on every asset, which was wrong; the lists below are
read from the Parquet footers.
BR_facilities (8): entity_id, entity_kind, tier, weight, basis, geom_method, source, geometryBR_intake_points (18): cda, especie, tipo, tipo_entidade, municipio_nome, cod_ibge, uf, capacity_t, cap_exp_t, cap_rec_t, lat, lon, operator, endereco, is_cooperative, basis, geom_method, geometryBR_sisbi_points (14): facility_id, cnpj, company, municipio_nome, state, inspection_level, commodity, lat, lon, entity_kind, basis, geom_method, source, geometryBR_muni (6): cod_ibge, municipio_nome, uf, cx, cy, geometryBR_membership_muni (5): cod_ibge, coop_members, municipio_nome, uf, geometryBR_buyer_points (15): nr_sif, cnpj, razao_social, municipio_nome, uf, logradouro, cep, capacity_band, entity_kind, commodity, lat, lon, geom_method, basis, geometryBR_mill_points (12): cnpj, razao_social, municipio_nome, uf, capacity_m3d, entity_kind, commodity, lat, lon, geom_method, basis, geometryOnly basis, geom_method and geometry appear in all seven. cod_ibge
appears in three. entity_id and tier appear only in BR_facilities.
tier: intake_point 18,796 · slaughter_point 13,096 · membership_muni
5,257 · gravity_catchment 3,103 · mill_point 417.
entity_kind: trader 15,395 · buyer 13,096 · cooperative 11,463 ·
mill 417 · official 298.
source: CONAB 21,899 · Trase-SISBI 11,582 · IBGE-6848 5,257 ·
MAPA-SIF 1,514 · ANP 417.
basis: observed 37,566 · modelled 3,103.
geom_method: registered 18,796 · geocoded 12,007 · municipality 5,257 ·
derived 3,103 · municipality_centroid 1,506.
Five nearest grain silos to a coordinate:
Facilities inside a named municipality, by spatial predicate:
Municipalities with no membership row:
ST_GeomFromWKB(geometry) raises a binder error. DuckDB types the column as
GEOMETRY('OGC:CRS84') on read. Pass it straight to the spatial function.
entity_id is not a primary key. 40,669 rows, 35,478 distinct values, and
the namespace changes with tier: CNPJ-shaped strings, CONAB cda codes, SIF
numbers, Trase facility_ids and IBGE municipality codes share the column.
Filter on tier before joining on it.
weight mixes units across tiers. Tonnes for silos, capacity band 1–4 for
SIF plants, cubic metres per day for mills, member count for membership rows.
Never aggregate it without a tier filter.
BR_facilities has no cod_ibge. Join it to municipalities spatially, not
by code.
municipio_nome is not a join key. BR_intake_points writes SINOP-MT
where BR_muni writes the plain name.
uf is the two-letter code; BR_sisbi_points.state is the full name.
Three polygons fail an OGC validity test, the same three in BR_muni,
BR_membership_muni and BR_facilities. Wrap in ST_MakeValid if a predicate
errors.
lat and lon duplicate the geometry in five of the seven files. They
agree with it, but they are a convenience copy, not a second source.
No spatial pruning is possible. The files are GeoParquet 1.0.0 with one row group each and no bbox covering column, so a bounding-box filter reads the whole file. The largest file is 4.9 MB, so this costs little in practice.
No PMTiles, no MapLibre style, no partition:glob, and no STAC items. Every
asset is one file at its own absolute https href. A client that expects a tile
source or a partition glob will not find one.
| -71.4450, -31.6907, -34.8832, 3.1180 |
BR_mill_points.parquet | 417 | 27,987 | Point | -67.8357, -29.8441, -34.9191, -1.3709 |