Replies: 1 comment
-
Boa tarde @cfbastarz. Ainda não verifiquei e li tudo, mas mesmo assim vejo que a sua ideia é excelente!! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Redesign do SCANPLOT
Pensando em melhorar o uso do SCANPLOT, surgiu a ideia de utilizar uma interface gráfica que facilita a utilização das funções de plotagem a acelera a obtenção dos resultados por parte do usuário.
Vantages:
Desvantagens:
read_namelists
eget_dataframe
) - estas funções são importantes no contexto atual pois são elas que fornecem as estruturas de dados a partir das quais são plotadas as figuras;Status atual
Atualmente, o SCANPLOT é uma coleção de scripts Python com funções específicas para ler e plotar os arquivos de estatísticas calculadas pelo SCANTEC, sejam elas em forma de tabela ou distribuição espacial. Nesse sentido, o uso do SCANPLOT requer que o usuário utilize (preferencialmente) o Jupyter notebook para carregar módulo principal do SCANPLOT e chamar manualmente todas as suas funções, o que é tipicamente feito da seguinte forma (para plotar os gráficos de linhas):
Redesign
Apesar de ser o uso típico de um pacote Python, de certa forma, isso acaba se mostrando como uma barreira para o usuário que pode não se sentir confortável com a utilização de um novo ambiente (o Jupyter) e - talvez, uma outra linguagem de programação (o Python). Pensando nisso e, considerando as necessidades de visualização do GAM - Grupo de Avaliação de Modelos da DIMNT, tive a ideia de refazer o SCANPLOT do zero de forma que não seja mais necessária a intervenção do usuário em termos de programação. Isso significa fornecer ao usuário uma interface gráfica em que o carregamento dos dados e o ajuste e escolha dos parâmetros é feita por meio de widgets (botões, menus e outros elementos de uma interface gráfica). Isso pode ser feito de várias maneiras e eu escolhi a biblioteca Panel do Python para isso.
No video a seguir, mostro o que é possível fazer com esta biblioteca e, no estágio em que se encontra, o redesign do SCANPLOT já contem algumas funções interessantes:
scanplot_video_github.mp4
Elementos da Interface
Na interface, estão propostos alguns elementos que possuem potencial de utilização na rotina de avaliação:
Catálogo de Dados
Como mostrado no video de demonstração, o usuário inicia a interface gráfica do SCANPLOT por meio da linha de comando e a interface é aberta no navegador. Na interface, para a plotagem das figuras, o usuário deve carregar um arquivo de catálogo. Esse arquivo tem o seguinte formato (exemplo):
Note que o arquivo de catálogo contém fontes de dados que representam os diferentes aspectos da avaliação feita com o SCANTEC. Por exemplo, a fonte de dados
test-gl-acor-exp15-ref_panl_agcm_clim-table
representa atable
(tabela) daacor
(correlação de anomalia) de um experimento de nomeexp15
, sobre a regiãogl
(global) cuja referência utilizada foiref_panl_agcm_clim
(a própria análise e a climatologia do modelo AGCM). O arquivo de tabela referente à esta fonte de dados está no endereço https://s0.cptec.inpe.br/pesquisa/das/dist/carlos.bastarz/SCANTEC-2.1.0/dataout/periodo/AVAL_SMNA_V2.3.1/ref_panl_agcm_clim/gl/ACOREXP15_20191115122020020212T.csv, acessível pela internet. Da mesma forma, assim como mostrado no video de demonstração, os arquivos binários com as distribuições estatísticas também podem ser acessados, o que é possível a patir do uso das bibliotecas Intake e Zarr1. Uma vantagem importante dessa estratégia é permitir que a interface seja utilizada em qualquer lugar para acessar os dados do catálogo (desde que o ambiente para a utilização do SCANPLOT esteja configurado e em uso).No repositório https://github.com/monanadmin/monan_post/tree/main/notebooks, adicioneu uma série de notebooks e script que mostram como um catálogo de dados pode ser construído utilizando as bibliotecas Intake, Zarr, Pandas e Xarray - utilizados no redesign do SCANPLOT.
Testdrive
Para testar o redesign, está disponibilizado o script que serve a interface do SCANPLOT, o arquivo de ambiente e um catálogo de dados para uso.
Uso
No seu computador (preferencialmente Linux - não testei em outros sistemas operacionais), proceda da seguinte forma:
Baixar o código do repositório
Criar o ambiente
SCANPLOT_PANEL
Abrir a interface
Para testar a interface, utilize o arquivo de catálogo
catalog-scantec-s0.yml
que está no repositório.Nota: se não funcionar de primeira, tudo bem - fazer com que funcione para todos faz parte do processo; se alguma coisa não estiver correta no ambiente, por favor, reportem para que possa ser consertado!
Notem que o redesign do SCANPLOT possui a tag
2.0.0a1
, mas ainda não foi lançada. A intenção é que a partir da série2.X
possamos utilizar esta interface e aprimorá-la para as nossas necessidades de visualização. A revisãoa1
significa que esta é a primeira revisão alpha, dirigida apenas para os desenvolvedores e aqueles que estão diretamente envolvidos com o projeto e, portanto, não se trata de uma versão completamente funcional e pública.Nota: não é garantido que esta versão funcione exatamente da forma como mostrado no video.
As discussões sobre o redesign, sobre o que devemos incluir, mudar, aprimorar etc, devem ser feitas aqui e os problemas referentes à funcionalidade, devem ser registradas na issue #29.
É isso!
Footnotes
Referência: Using Cloud Computing to Analyze Model Outpur Archived in Zarr Format. ↩
Beta Was this translation helpful? Give feedback.
All reactions