SISVAN - analisando os dados

Olá, pessoal!
Alguém tem experiência com as bases do SISVAN (Sistema de Vigilância Alimentar e Nutricional)?

Estou trabalhando com os dados mais especificamente com o Estado Nutricional. E queria saber qual método seria o mais eficiente para fazer um observatório com atualização constante e automática dos dados.

E até onde eu vi, existem duas formas de acessar os dados.

  1. Pelo site do SISVAN
  • Requisição manual
  • Não vi formas de automatizar essa parte de extração de dados.
  1. Pelo site do Portal de Dados Abertos do Gov
  • Base consolidada do ano competência
  • Muito pesada
  1. Pela API do site do Gov
  • só consigo realizar requests de até 20 linhas por vez.

Olá, Marcos.

Não tenho experiência com esse sistema. Na verdade, até então, eu o desconhecia. Porém, posso tentar passar algumas orientações gerais.

Em primeiro lugar, é preciso refletir sobre esse observatório que você pretende construir, em termos de:

  • escopo dos dados: o observatório terá como abrangência a totalidade dos dados, ou apenas um recorte específico? Exemplos: um recorte no tempo (ex.: somente dados da última semana), no espaço (ex.: dados desagregados por município) ou no domínio específico da informação (ex.: somente sobre a população idosa).
  • periodicidade de atualização: qual é a periodicidade de atualização pretendida? As possíveis fontes de dados têm qual periodicidade de atualização?

Após ter em mente essas características pretendidas para a sua aplicação, leve em consideração também, para cada fonte:

  • limitações de acesso: as fontes de dados impõem algum limite de uso, por exemplo, quantidade máxima de requisições diárias? Há barreiras tecnológicas, como Captchas, por exemplo?
  • licenças e permissões de reúso: os dados são abertos legalmente falando? Existe algum tipo de restrição? Inclusive no que se refere à Lei Geral de Proteção de Dados (LGPD)?

Olhando brevemente cada uma das fontes que você sugeriu, pude perceber o seguinte:

1. Site do SISVAN

  • escopo dos dados: parece ser bastante abrangente no domínio e tem diversos filtros disponíveis. Granularidade temporal por mês e espacial por município.
  • periodicidade de atualização: não realizei a consulta para saber se realmente retornam dados, mas nas opções de filtros tem o ano atual e até meses futuros (dez/2024 em uma consulta feita em nov/2024). Suponho que seja mensal.
  • limitações de acesso: possui Captcha, o que dificulta muito usar como fonte de dados para raspagem. Possui uma área de acesso restrito, então pode haver dados não disponíveis ao público.
  • licenças e permissões de reúso: sem informação, o que pode ser um problema.

2. Conjunto de dados no Portal Brasileiro de Dados Abertos

  • escopo dos dados: possui um dicionário de dados com muitos campos, mas não conheço o assunto para determinar a abrangência no domínio da informação. Temporalmente possui um download de dados consolidados por ano.
  • periodicidade de atualização: diz ser anual, mas só tem dados até 2023. Daí suponho que só publiquem o arquivo consolidado após fechar o ano inteiro. Se a sua aplicação precisar de dados atuais, esse já é um impedimento para usar (exclusivamente) essa fonte.
  • limitações de acesso: parece que não há, mas o grande tamanho dos arquivos impõe alguns requisitos técnicos em relação a recursos da aplicação que for utilizá-los (memória, espaço em disco, etc.).
  • licenças e permissões de reúso: dados abertos com licença Creative Commons Atribuição (CC-BY). Lembre-se de citar a fonte.

3. API do DEMAS

  • escopo dos dados: à primeira vista parece ser o mesmo que os demais.
  • periodicidade de atualização: desconhecida. No conjunto de dados no Portal Brasileiro de Dados Abertos diz que é anual e há um link para a API. Tentei fazer consultas para o mês atual e o mês anterior, mas retorna erro 502:
    Resumo
    !DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>502 Proxy Error</title>
    </head><body>
    <h1>Proxy Error</h1>
    <p>The proxy server received an invalid
    response from an upstream server.<br />
    The proxy server could not handle the request<p>Reason: <strong>Error reading from remote server</strong></p></p>
    <hr>
    <address>Apache/2.4.41 (Ubuntu) Server at apidadosabertos.saude.gov.br Port 80</address>
    </body></html>
    
  • limitações de acesso: como você observou retorna 20 registros por requisição. Porém, isso não é problema, pois basta iterar por página e fazer várias requisições. Pode ser que haja um limite de requisições no tempo (throttling), porém, esse limite não está documentado. A instabilidade da API (às vezes retorna erros HTTP na faixa dos 500) pode ser um problema.
  • licenças e permissões de reúso: no conjunto de dados diz que a licença é CC-BY, na interface Swagger da API diz MIT. Na dúvida, cite a fonte.

Enfim, a escolha da fonte depende do que você pretende com a sua aplicação. Em geral, se você precisa de dados atualizados, a fonte n.º 3 (API) me pareceu ser mais promissora, mas a sua instabilidade é um problema.