Avaliação preliminar de funcionalidades do sistema Quarto para publicação de estatísticas da população em área de risco.
Author
Joaquim
Published
January 10, 2022
Introdução
Quarto é um sistema de produção de publicações técnicas e científicas que incorpora ferramentas de formatação de texto com códigos de programação para produção de gráficos e tabelas. É o sucessor do R markdown e segue a linha de outros notebooks reativos, como o Jupyter Notebook. É um sistema de código aberto cujos principais destques são permitir a utilização de diversas linguagens de programação (Python, R, Julia e Observable) e a exportação para diversos formatos de publicação através da utilização do Pandoc.
As suas funcionalidades relativas ao processamento de dados espaciais e tabulares com linguagens de programação e produção de documentos em .pdf ou .doc já são interessantes por facilitar a padronização da análise e publicação de resultados. Mas são sua integração com o Observable e capacidade de produção de documentos html que oferecem as maiores possibilidades de enriquecimento da publicação com conteúdo dinâmico e interativo.
Elementos interativos como listas de seleção, tabelas, e gráficos, etc, produzidos nas linguagens Python, R ou Julia possuem recursos limitados de interatividade em publicações online, necessitando de frameworks como o Dash ou o Shiny para poderem apresentar comportamento realmente dinâmico. Esses frameworks exigem a configuração do servidor de hospedagem com os interpretadores e bibliotecas e também de tempo de processamento para atender requisições dos usuários, dificultando a utilização dessas capacidades na publicação de resultados de pesquisas. O Observable, porém, é um JavaScript melhorado que é interpretado diretamente pelo navegador do usuário, dispensando a utilização do servidor no processamento dos dados. Essa característica, associada à utilização de geoserviços do IBGE, permite desde a publicação enriquecida com conteúdo interativo até a produção de dashboards complexos com dados de diversas fontes sem a necessidade de gastos com servidor e apoio institucional.
Exemplos de funcionalidades
Para avaliar algumas funcionalidades de maior relevância, foram utilizados os dados de Alertas de riscos de desastres emitidos pelo CEMADEN compilados para o Atlas Nacional Digital do Brasil - 2022.
Dados e Bibliotecas
Carrega a tabela com os dados e as bibliotecas utilizadas.
Ainda vou testar as possibilidades de produção de gráficos interativos.
Mapas
primeiro carrega as bibliotecas do Observable. Foram usadas a bertin para produção de cartogramas e Leaflet para a incorporação de mapas com pan e zoom.
As camadas utilizadas são obtidas dos geoserviços do IBGE. Para reduzir a transferência de dados, só são requisitados do servidor os dados necessários para construir as listas e mapa mosca das UFs e Municípios e representar as BATERs do município selecionado, através dos campos PropertyName e cql_filter.
Funções do Observable utilizadas no código anterior. Devido à natureza reativa do Observable, a ordem dos códigos do mesmo no documento não tem importância.
Code
asyncfunctionwfsRequest( url, operation ="GetCapabilities", extraParameters = {}) {const queryParameters =newURLSearchParams({request: operation,service:"WFS",...extraParameters }).toString();console.log(queryParameters);const response =awaitfetch(`${url}?${queryParameters}`);const responseFormat = response.headers.get("Content-Type");// If the WFS server returns Content-Type header containing "json" it will read the data as json, otherwise as text.const data = responseFormat.includes("json")?await response.json():await response.text();return {data: data,status: response.status };};// Maranhão é o único estado com acento no nome na camada de municípios mapeados :P - mantive o "ã" com acentofunctionstripAccents(str) {var reAccents =/[àáâäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ]/g;var replacements ='aaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY';return str.replace(reAccents,function (match) {return replacements[reAccents.source.indexOf(match)]; });};