Cooperativismo, floresta e renda na Amazônia — dados
  • Início
  • Mapa principal
  • Catálogo de bases
  • Indicadores
  • Mapas
    • Desmatamento e áreas protegidas (mapa principal)
    • Municípios da Amazônia Legal
    • Áreas designadas e entorno
    • Setores censitários
    • Cooperativas e associações
    • Cooperados × não cooperados (Censo Agro, por UF)
    • Páginas dos municípios do Acre
  • Análises
    • Pressão por desmatamento nas reservas extrativistas
  • Metodologia
    • Níveis de análise e definições
    • Metodologia dos cruzamentos
    • Registro de decisões
    • Política de dados
    • Dados para baixar
  • Sobre
    • Sobre o site
    • Pendências e próximos passos
Versão de trabalho para a equipe do projeto · dados preliminares, não citar

Catálogo de bases

As bases de dados secundárias mapeadas pelo projeto — o que já foi extraído, onde ver no site e o que vem depois

catalogo = FileAttachment("gerado/catalogo.json").json()
SITUACOES = [
  {cod: "ingerida", rotulo: "Extraída e tratada", nota: "baixada, tratada e documentada pelo projeto"},
  {cod: "verificada", rotulo: "Verificada", nota: "endereço, versão e cobertura conferidos"},
  {cod: "catalogada", rotulo: "Catalogada", nota: "sabemos que existe; falta conferir"},
  {cod: "a_solicitar", rotulo: "A solicitar", nota: "só por pedido (LAI, sala restrita, parceiros)"},
  {cod: "baixa_utilidade", rotulo: "Baixa utilidade", nota: "avaliada e descartada, com o porquê"}
]
selo = s => html`<span class="selo selo-${s.cod ?? s}">${s.rotulo ?? SITUACOES.find(x => x.cod === s)?.rotulo}</span>`
html`<div class="faixa-situacoes">${SITUACOES.map(s => {
  const n = catalogo.filter(d => d.status_cod === s.cod).length;
  const b = html`<button class="chip-situacao selo-${s.cod}" title="${s.nota}"><strong>${n}</strong> ${s.rotulo}</button>`;
  b.onclick = () => { const el = viewof situacao; el.value = s.rotulo; el.dispatchEvent(new Event("input", {bubbles: true}));
                      document.querySelector("#explorar")?.scrollIntoView({behavior: "smooth"}); };
  return b;
})}<a class="chip-situacao chip-csv" href="gerado/catalogo.csv" download>↓ baixar o catálogo (CSV)</a></div>`

Já extraídas — e onde ver no site

Estas bases já foram baixadas, tratadas e documentadas. Cada cartão leva aos mapas e gráficos que as usam (os links abrem o mapa já no indicador certo) e à ficha completa, com como a base foi obtida e tratada.

html`<div class="cartoes-bases">${catalogo.filter(d => d.status_cod === "ingerida").map(d => html`<div class="cartao-base">
  <div class="topo"><a class="nome" href="${d.pagina}">${d.nome}</a><small>${d.instituicao}${d.versao ? " · " + d.versao : ""}</small></div>
  ${d.no_site.length
    ? html`<ul>${d.no_site.slice(0, 4).map(v => html`<li><a href="${v.href}">${v.titulo}</a></li>`)}${d.no_site.length > 4
        ? html`<li><a href="${d.pagina}#onde-ver">e mais ${d.no_site.length - 4}…</a></li>` : ""}</ul>`
    : html`<p class="sem-vista">Usada nos cálculos (ver a ficha); sem mapa próprio no site.</p>`}
  <a class="ficha" href="${d.pagina}">ficha completa →</a></div>`)}</div>`

Explorar o catálogo

viewof busca = Inputs.search(catalogo, {placeholder: "nome, instituição, variável…", label: "Buscar",
                                        format: n => `${n} base${n === 1 ? "" : "s"}`})
viewof situacao = Inputs.select(["Todas", ...SITUACOES.map(s => s.rotulo)], {label: "Situação"})
viewof nivel = Inputs.select(["Todos", ...Array.from(new Set(catalogo.flatMap(d => d.nivel))).sort()], {label: "Nível de análise"})
viewof tema = Inputs.select(["Todos", ...Array.from(new Set(catalogo.map(d => d.tema))).sort()], {label: "Tema"})
viewof acesso = Inputs.select(["Todos", ...Array.from(new Set(catalogo.map(d => d.acesso))).sort()], {label: "Acesso"})
viewof agro = Inputs.select(["Todas", "Sim", "Em parte", "Não"], {label: "Identifica agroextrativismo?"})
viewof prioridade = Inputs.select(["Todas", "Máxima", "Crítica", "Alta", "Média", "Baixa"], {label: "Prioridade"})
viewof soSite = Inputs.toggle({label: "Só as que aparecem no site"})

Situação: extraída e tratada (baixada, tratada e documentada), verificada (endereço, versão e cobertura conferidos), catalogada (sabemos que existe), a solicitar (só por pedido) ou baixa utilidade (avaliada e descartada). Nível de análise: a menor unidade em que o dado é publicado.

filtrado = busca.filter(d =>
  (situacao === "Todas" || d.status === situacao) && (nivel === "Todos" || d.nivel.includes(nivel)) &&
  (tema === "Todos" || d.tema === tema) && (acesso === "Todos" || d.acesso === acesso) &&
  (agro === "Todas" || d.agroextrativismo === agro) && (prioridade === "Todas" || d.prioridade === prioridade) &&
  (!soSite || d.no_site.length > 0))
  .sort((a, b) => SITUACOES.findIndex(s => s.cod === a.status_cod) - SITUACOES.findIndex(s => s.cod === b.status_cod)
                  || a.tema.localeCompare(b.tema) || a.nome.localeCompare(b.nome))
html`<p class="contagem"><strong>${filtrado.length}</strong> de ${catalogo.length} bases</p>`
Inputs.table(filtrado, {
  columns: ["nome", "tema", "nivel", "periodo", "status", "agroextrativismo", "no_site"],
  header: {nome: "Base", tema: "Tema", nivel: "Nível de análise", periodo: "Período", status: "Situação",
           agroextrativismo: "Agroextr.?", no_site: "No site"},
  format: {
    nome: (n, i, dados) => html`<div class="cel"><a href="${dados[i].pagina}">${n}</a><br><small>${dados[i].instituicao} · ${dados[i].acesso}</small></div>`,
    nivel: v => html`<div class="cel">${v.join(", ") || "—"}</div>`,
    periodo: v => html`<div class="cel">${v || "—"}</div>`,
    status: (s, i, dados) => selo(dados[i].status_cod),
    no_site: (v, i, dados) => v.length ? html`<a href="${dados[i].pagina}#onde-ver">${v.length} vista${v.length > 1 ? "s" : ""}</a>` : "—"
  },
  width: {nome: 360, tema: 110, nivel: 150, periodo: 150, status: 130, agroextrativismo: 80, no_site: 80},
  rows: Math.max(filtrado.length, 1) + 1, select: false, layout: "fixed"
})

O catálogo é mantido no repositório do projeto (dados-secundarios/fontes/, um arquivo por base, com as fichas técnicas em dados-secundarios/fichas/) e validado automaticamente; esta página é gerada a partir dele.

Gerado em 03/11/2026 22:41 a partir do commit 2209fa1 do repositório do projeto. Dados: PRODES Amazônia Legal v20260408 (raster) e PRODES Cerrado v20260407 (INPE), com as manchas de 1–6,25 ha do PRODES bioma Amazônia vetorial v20260717 — outra versão que a do raster; limite da Amazônia Legal 2024 (IBGE); demais versões nas páginas de cada fonte.

Projeto UFAC · IESP-UERJ · IFAC (2026–2029). Versão de trabalho — dados preliminares, não citar.