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
Uh oh!
There was an error while loading. Please reload this page.
-
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_namelistseget_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-tablerepresenta 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_PANELAbrir a interface
Para testar a interface, utilize o arquivo de catálogo
catalog-scantec-s0.ymlque 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.Xpossamos utilizar esta interface e aprimorá-la para as nossas necessidades de visualização. A revisãoa1significa 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