GAD-DIMNT-CPTEC / SCANTEC

Sistema Comunitário de Avaliação de modelos Numéricos de Tempo e Clima (SCANTEC)
https://gad-dimnt-cptec.github.io/SCANTEC
Other
4 stars 1 forks source link

Implementar as saídas do SMNA no ecFlow #13

Open afrassoni opened 1 year ago

afrassoni commented 1 year ago

Ajustar o ecFlow no ambiente do Egeon para gerar as avaliações do BAM+AD

afrassoni commented 1 year ago

Garcia, precisamos conversar sobre o link dos dados da rodada do BAM + AD no ecflow

afrassoni commented 1 year ago

Aguardando ZR interagir com a Bárbara para passar para ela o trabalho com o ecFlow

afrassoni commented 1 year ago

Comandos do ECFLOW vistos na reunião entre José Roberto e Bárbara:

Diretrizes iniciais ECFLOW já instalado na Egeon (usamos a instalação do suporte) ecflowserver (ecflow*) Configuramos apenas a porta que ele funcionará para nós export ECF_PORT=3143 - obrigatório export ecf_suite=BAM source ~/ecflow/Modelos/BAM/scripts/config01-avaliacao.bash

Funcionamento Checar se o ecflow_server está rodando $ netstat -lnptu | grep ecflow → Check servers (0 0.0.0.0 = localhost) tcp 0 0 0.0.0.0:3143 0.0.0.0:* LISTEN 27413/ecflow_server ecflow_server -d (VERIFICAR) Iniciar a UI e visualizar as suites ecflow_ui & Name: GAM-EGEON Host: headnode.egeon.cptec.inpe.br Port: 3143

Starting and Stopping the server ecflow_server -d → máquina local (default to localhost:3141), with debug Editar …/scripts/00-ECF_PORT.txt (todos os scripts de manutenção lêem este arquivo) Usar ../scripts/00-StartEcflowServer.ksh (entra no diretório de logs antes) ecflow_client --group="halt=yes; check_pt; terminate=yes" # Terminate servers netstat -lnptu | grep ecflow # Check servers (0 0.0.0.0 = localhost) ecflow_client --ping --host=0.0.0.0 --port=3143 # Server test via shell client

As cores do status das saídas na UI

Dois aliases interessantes para colocar no .bashrc dtree alias dtree='pwd; ls -aR | grep : | perl -pe '\''s/:$//;s/[^-][^\/]\// /g;s/^ (\S)/└── \1/;s/(^ | (?= ))/│ /g;s/ (\S)/└── \1/'\''' ftree alias ftree='pwd; find . | sort | sed -e '\''s/[^-][^\/]\// |/g'\'' -e '\''s/|([^ ])/|-\1/'\'''

Comandos principais do ecflow export ecf_suite=TEST ecflow_client --stats # Check server status ecflow_client --restart # Run this if Status = HALTED (importante!) ecflow_client --load=${ecf_suite}.def # Carrega a suite mas não inicia

Executar estes dois comandos quando houver mudanças nos scripts ecflow_client --replace=/${ecf_suite} ${ecf_suite}.def # Substitui a suite. ecflow_client --begin=${ecf_suite} # Inicia a execução suite. ecflow_client --suspend=/${ecf_suite} # Suspende a execução da suite ecflow_client --delete /${ecf_suite} # Remove a suite da lista de suites ecflow_client --delete=/${ecf_suite} # remove suite ecflow_client --load=${ecf_suite}.def # carrega suite ecflow_client --begin=${ecf_suite} # restart suite Ou ecflow_client --replace=/${ecf_suite} ${ecf_suite}.def # replace the whole suite ecflow_client --replace=/${ecf_suite}/t1 ${ecf_suite}.def # or just the one task

Outros commandos ecflow_client --get_state # Suite definition from the server and status for each node (tasks, families, etc) ecflow_client --get # get the suite definition ecflow_client --requeue=force /${ecf_suite} # force requeue (DANGEROUS, zumbies!)

Definindo uma nova suíte (DEF file) a hierarchical node tree, describes how your task’s run and interact) ecflow_client --load=${ecf_suite}.def # Carrega a suite mas não inicia Check UI and refresh ecflow_client --begin=${ecf_suite} # Inicia a suite Check UI and refresh

Definindo a primeira tarefa (ECF FILE) cd $HOME/ecflow/Modelos/${ecf_suite}/ecflow cp copie_para_t1.ecf t1.ecf Check UI and refresh - QQ ALTERAÇÃO NECESSITA REPLACE + BEGIN

Atalhos para scripts 00-ECF_PORT.txt 00-Start_EcflowServer # cd logs; ecflow_server --port=${ECF_PORT} & 00-Status_EcflowServer # ecflow_client --stats 00-Stop_EcflowServer # ecflow_client --group="halt=yes; …" 01-Open_Ecflow_UI # cd logs; ecflow_ui >> ecflowview.${USER}.logs & 02-Inicializa_SuiteDef ${ecf_suite} # load + begin 03-Atualiza_SuiteDef ${ecf_suite} # replace + begin

Sobre os includes Evolve the task’s code with head.h and tail.h → contain frequently used tasks to be executed in the beginning and at the end of a task (set variables, establish connection, diretórios etc) export MEU_DIR_DE_DADOS=/home/barbara.yamada/dados # exemplo

Sobre criação de jobs Arquivos ecf são transformados em job files, t1.jobN (”checking”) O que o processo de job creation faz: expande os includes com substituição de variáveis e checa arquivos

Sobre o client (ecflow_client) All communication with the ecflow_server is done with ecflow_client which needs to know the server’s machine and port. Multiple servers can exist on the same machine (in different ports) Default host and port is localhost:3141 Can be overridden by ECF_HOST and ECF_PORT environment variables Which, in turn, can be further overridden by using –port and –host options

Ecflow_ui ⇒ graphical interface Menu Servers / Manage Servers / Add server": name=GAM-EGEON, host=headnode….., port 3143 Also ⇒ check Add server to current view Tools / Preferences / Menus / Aba Menu mode / Menu mode = Administrator (shows an enhanced set of options) Habilita a opção Rerun, Execute e Requeue no menu suspenso Panels / Add Info Panel

Execute: runs the task immediately, ignoring any dependency that holds the task. Preserva as saídas anteriores (de nome t1.N) e cria uma nova saída. Esta saída é vista na UI na aba Output.

Rerun: This places the task back into the queued state. Concerns dependencies, i.e., time dependencies, limits, triggers, suspend parents, etc. The previous output is preserved.

Requeue: This resets the task back to the queued state. If the task has a default status, this is applied. The task output number is reset, starting in to t1.1 again (overwrite the files) Any subsequent calls to execute or rerun will now overwrite the output files, t1.2, t1.3 etc.

Families, hierarquia de variáveis family = diretório e tasks = arquivos Famílias podem conter outras famílias, tasks de mesmo nome podem estar em famílias diferentes

Variables - 3 type - name them with CAPITAL LETTERS Variable used by ECFLOW: ECF_HOME, ECFINCLUDE, … Custom variables: don’t start with “ECF”: PATH_OBS, TIME_TO_START,... Variables generated by ECFLOW and can be used in the scripts: ECF_DATE, …

Triggers ⇒ declare dependencies between tasks How to make sure that t4 only runs once t3 is complete? ⇒ triggers! P.e., Task t4 might need data created by task t3.

Completeness dependency rules: All task’s parents hierarchy is complete only when all sons are complete A task will be started if its triggers and the triggers of all its parent families evaluate to true A node can only have one trigger expression, but very complex expressions can be built (not, and, or, ...), node attributes (event, meter, variable, repeat, limits and generated variables) Triggers of the parent nodes are also implicit triggers Triggers can prevent too many jobs from running at the same time, but it’s better to use Limits (see section) Nodes can be addressed in trigger expressions using: full names: /test/f1/t1 refers to the task t1, and /test/f1 refers to the family f1. Relative names: in some contexts, such as ../t1. Change TEST.def, reload and resume TEST while checking the ui task t4 trigger t3 eq complete # or t3 == complete

Highlight the hint ⇒ No DEF, atente para a localização da variável SLEEP em relação a task f1/t4

Time command - running tasks at a given time - finaliza o nó completamente Can be absolute (p.e. 14:00:00), relative to the moment the suite is begun or with a frequency time 23:00 # at next 23:00 time 10:00 20:00 01:00 # every hour from 10am to 8pm time +00:01 # one minute after the suite has begun time +00:10 01:00 00:05 # 10 to 60 minutes after begin every 5 minutes

Comando cron command - não finaliza o nó completamente cron 23:00 # every day at 23:00 cron 08:00 12:00 01:00 # every hour between 8 and 12 cron -w 0,2 11:00 # every sunday and tuesday at 11 am cron -d 1,15 02:00 # every 1st and 15th of each month at 2 am cron -m 1 -d 1 14:00 # every first of January at 2 pm cron -w 5L 23:00 # run on last Friday(5L) of each month at 23pm cron -d 1,L 23:00 # Run on the first and last of the month at 23pm

date or day commands - absolute timing, allows wild cards date 31.12.2012 # the 31st of December 2012

Reload and resume test while checking the ui 'Why tab': special window to explain why a task is queued. Select a queued task and click on it Vary the time attributes so that all task runs

LABELS → String to show task specific info

afrassoni commented 1 year ago

Caminho dos dados do SMNA: /mnt/beegfs/enver.ramirez/model/bam_hibrido_2.2.1/build_branch.t299/pos/dataout/TQ0299L064/rfd_c/2020012800-2020020718/template.ctl

barbarayamada commented 1 year ago

Ariane, ao passar o caminho dos dados do SMNA para o José Roberto, ficamos com uma dúvida: as avaliações serão diariamente recorrentes sobre as saídas da execução do BAM na Operação ou serão esporádicas para um determinado período de tempo?

afrassoni commented 1 year ago

Oi Bárbara,

Será as duas coisas. Teremos a avaliação contínua e a avaliação de experimentos que o Enver está produzindo.

Abs, Ariane

Em seg., 29 de mai. de 2023 às 6:04 PM, barbarayamada < @.***> escreveu:

Ariane, ao passar o caminho dos dados do SMNA para o José Roberto, ficamos com uma dúvida: as avaliações serão diariamente recorrentes sobre as saídas da execução do BAM na Operação ou serão esporádicas para um determinado período de tempo?

— Reply to this email directly, view it on GitHub https://github.com/GAM-DIMNT-CPTEC/SCANTEC/issues/13#issuecomment-1567515270, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVJEWKSGNTDUEHMQLQWQ6WLXIUFPNANCNFSM6AAAAAAVZIQ7GM . You are receiving this because you were assigned.Message ID: @.***>

-- ------::-----::-----::-----::-----::-----::-----::-----::----- Ariane Frassoni National Institute for Space Research, Center for Weather Forecasting and Climate Studies Rodovia Presidente Dutra, km 40, Cachoeira Paulista, SP, Brazil Tel: +55 (12)3186-8400

E-mail: @., @.

barbarayamada commented 1 year ago

José Roberto criou uma suíte BAM_AD, para a avaliação de experimentos que o Enver está produzindo. Estamos realizando testes.

barbarayamada commented 1 year ago

Ariane, dentre as verificações do scantec, uma delas é a verificação de uma tabela que o scantec precisa para avaliar o modelo, e esta deve estar de acordo com o modelo. Essa tabela tem por padrão o nome BAM_TQ0299L064_18levs.model. Na suíte criada para essa verificação, o arquivo da tabela existe mas está dando erro de compatibilidade, você saberia dizer se é possível gerar essa tabela?

afrassoni commented 1 year ago

Bárbara, qual a resolução do BAM do experimento do Enver? Agora não lembro se é T299. Se não for, deve ser por isso. Vou marcar o @cfbastarz e @joaogerd para ajudar aqui.

barbarayamada commented 1 year ago

No caminhos dos dados consta t299:

/mnt/beegfs/enver.ramirez/model/bam_hibrido_2.2.1/build_branch.t299/pos/dataout/TQ0299L064/rfd_c/2020012800-2020020718/template.ctl

afrassoni commented 1 year ago

Bom dia Bárbara,

Veja por favor se o template.ctl tem o mesmo formato que o arquivo BAM_TQ0299L064_18levs.model

On Tue, 6 Jun 2023 at 19:06, barbarayamada @.***> wrote:

No caminhos dos dados consta t299:

/mnt/beegfs/enver.ramirez/model/bam_hibrido_2.2.1/build_branch.t299/pos/dataout/TQ0299L064/rfd_c/2020012800-2020020718/template.ctl

— Reply to this email directly, view it on GitHub https://github.com/GAM-DIMNT-CPTEC/SCANTEC/issues/13#issuecomment-1579514425, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVJEWKVKDPKHGSUEPNUWGD3XJ6SV5ANCNFSM6AAAAAAVZIQ7GM . You are receiving this because you were assigned.Message ID: @.***>

-- ------::-----::-----::-----::-----::-----::-----::-----::----- Ariane Frassoni National Institute for Space Research, Center for Weather Forecasting and Climate Studies Rodovia Presidente Dutra, km 40, Cachoeira Paulista, SP, Brazil Tel: +55 (12)3186-8400

E-mail: @., @.

cfbastarz commented 1 year ago

Ariane, dentre as verificações do scantec, uma delas é a verificação de uma tabela que o scantec precisa para avaliar o modelo, e esta deve estar de acordo com o modelo. Essa tabela tem por padrão o nome BAM_TQ0299L064_18levs.model. Na suíte criada para essa verificação, o arquivo da tabela existe mas está dando erro de compatibilidade, você saberia dizer se é possível gerar essa tabela?

Bom dia @barbarayamada, qual erro está ocorrendo?

cfbastarz commented 1 year ago

@afrassoni eu preparei um repositório com alguns scripts para a utilização dos dados de reanálise do Era5 como referência para as avaliações com o SCANTEC (https://github.com/GAD-DIMNT-CPTEC/cfbastarz/tree/main/Era5) - é um pouco macarrônico mas funciona. Dentre as variáveis que costumamos considerar (ie., vtpm, temp, psnm, agpl, zgeo, uvel e vvel), apenas tive dificuldade de obter os dados de agpl (água precipitável - não consigo baixar). Também a psnm (pressão reduzida ao nível médio do mar) está com algum problema - já não me lembro exatamente qual, mas acabei substitundo pela pslc:1000. Se for interessante para o GAM, posso passar este repositório para vocês.

afrassoni commented 1 year ago

Oi Carlos, obrigada pela mensagem. Sim, é muito bem vindo este desenvolvimento. Por favor, passe para nós este repo. Abs, Ariane

On Wed, 7 Jun 2023 at 09:00, Carlos Frederico Bastarz < @.***> wrote:

@afrassoni https://github.com/afrassoni eu preparei um repositório com alguns scripts para a utilização dos dados de reanálise do Era5 como referência para as avaliações com o SCANTEC ( https://github.com/GAD-DIMNT-CPTEC/cfbastarz/tree/main/Era5) - é um pouco macarrônico mas funciona. Dentre as variáveis que costumamos considerar (ie., vtpm, temp, psnm, agpl, zgeo, uvel e vvel), apenas tive dificuldade de obter os dados de agpl (água precipitável - não consigo baixar). Também a psnm (pressão reduzida ao nível médio do mar) está com algum problema - já não me lembro exatamente qual, mas acabei substitundo pela pslc:1000. Se for interessante para o GAM, posso passar este repositório para vocês.

— Reply to this email directly, view it on GitHub https://github.com/GAM-DIMNT-CPTEC/SCANTEC/issues/13#issuecomment-1580664410, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVJEWKW3VO2FPCLIVP6ZTA3XKBUNHANCNFSM6AAAAAAVZIQ7GM . You are receiving this because you were mentioned.Message ID: @.***>

-- ------::-----::-----::-----::-----::-----::-----::-----::----- Ariane Frassoni National Institute for Space Research, Center for Weather Forecasting and Climate Studies Rodovia Presidente Dutra, km 40, Cachoeira Paulista, SP, Brazil Tel: +55 (12)3186-8400

E-mail: @., @.

cfbastarz commented 1 year ago

Oi @afrassoni, estou permissão no GAM para criar um repositório, tentei colocar os script no repositório Dados, mas também estou sem permissão. Então deixei o meu repositório https://github.com/GAD-DIMNT-CPTEC/cfbastarz/tree/main/Era5 como público, assim vocês podem copiar os scripts e alocá-los em um repositório adequado.

Abs.

Garcia-INPE commented 1 year ago

Olá @cfbastarz, está ocorrendo isso: image

A table está em /home/roberto.garcia/sfw/SCANTEC-2.0.0/tables/BAM_TQ0299L064_18levs.model e estou rodando o caso em: /home/roberto.garcia/dataout/SCANTEC-2.0.0/BAM_AD/results/Am_Sul (contém scantec.conf e scantec.x)

Consegue ajudar, pfv?

cfbastarz commented 1 year ago

Olá @Garcia-INPE, dei uma olhada na sua tabela BAM_TQ0299L064_18levs.model e ela está correta, está igual à que eu estou usando. O que está ocorrendo é que os dados do BAM que você está lendo, foram pós-processados em grade linear. Veja:

BAM grade linear:

xdef   900 linear    0.000   0.4000000000
ydef   451 linear  -90.000   0.4000000000

BAM grade Gaussiana:

xdef   900 linear    0.000   0.4000000000
ydef   450 levels
-89.69415 -89.29794 -88.89940 -88.50032 -88.10105 -87.70167 -87.30225 -86.90279
-86.50331 -86.10381 -85.70430 -85.30479 -84.90526 -84.50574 -84.10621 -83.70667
-83.30714 -82.90760 -82.50806 -82.10851 -81.70897 -81.30943 -80.90988 -80.51033
...

A grade Gaussiana é a grade que está descrita no arquivo BAM_TQ0299L064_18levs.model que você está usando. Portanto, para resolver o problema, você pode criar um novo arquivo BAM_TQ0299L064_18levs-linear.model com o seguinte conteúdo (abaixo, removi os comentários do arquivo para ocupar menos espaço):

ftype: grib
undef: 9.999E+20
xdim: 900 linear    0.000   0.4000000000
ydim: 451 linear  -90.000   0.4000000000
zdim:    18 levels 1000  925  850  775  700  500  400  300  250  200
150  100   70   50   30   20   10    3

vars:
vtmp:925 vtmp2(temp:925,umes:925)
vtmp:850 vtmp2(temp:850,umes:850)
vtmp:500 vtmp2(temp:500,umes:500)
temp:850 temp:850
temp:500 temp:500
temp:250 temp:250
psnm:000 psnm:1000
umes:925 umes:925
umes:850 umes:850
umes:500 umes:500
agpl:925 agpl:1000
zgeo:850 zgeo:850
zgeo:500 zgeo:500
zgeo:250 zgeo:250
uvel:850 uvel:850
uvel:500 uvel:500
uvel:250 uvel:250
vvel:850 vvel:850
vvel:500 vvel:500
vvel:250 vvel:250
::

Depois, basta modificar o arquivo scantec.conf para que seja utilizada a tabela BAM_TQ0299L064_18levs-linear ao invés da tabela BAM_TQ0299L064_18levs.

Eu fiz isso com os seus arquivos scantec.x e scantec.conf e o problema não ocorre mais. Porém, notei uma outra coisa:

zr

Isso aconteceu porque o arquivo GPOSNMC20200128002020012800P.fct.TQ0299L064.ctl não existe. Esse é um arquivo de análise (veja as datas 2020012800-2020012800) que o BAM escreve com o identificador icn e, de fato, o arquivo GPOSNMC20200128002020012800P.icn.TQ0299L064.ctl existe. Para resolver essa outra parte, será necessário criar links simbólicos dos arquivos de análise como se fosse arquivos de previsões, isto é:

ln -s GPOSNMC20200128002020012800P.icn.TQ0299L064.ctl GPOSNMC20200128002020012800P.fct.TQ0299L064.ctl
ln -s GPOSNMC20200128002020012800P.icn.TQ0299L064.grb GPOSNMC20200128002020012800P.fct.TQ0299L064.grb

Como são vários diretórios, você pode usar esse script a seguir para facilitar (nota: requer o inctime e alguns ajustes para o seu caso): https://gist.github.com/cfbastarz/6b4f055d3739128c963cb3c93046f664

At.te,

Carlos

Garcia-INPE commented 1 year ago

Ok @cfbastarz , obrigado, vou ajustar para a grade linear. Quanto aos arquivos que estão faltando, podemos fazer para os casos que lá estão para agilizar, mas não é o caso do provedor do teste fornecer o conjunto de dados completo nos próximos? O acham @barbarayamada e @afrassoni?

cfbastarz commented 1 year ago

Ok @cfbastarz , obrigado, vou ajustar para a grade linear. Quanto aos arquivos que estão faltando, podemos fazer para os casos que lá estão para agilizar, mas não é o caso do provedor do teste fornecer o conjunto de dados completo nos próximos? O acham @barbarayamada e @afrassoni?

@Garcia-INPE, pelo menos a operação já faz isso com os arquivos do BAM - não dizer quanto aos outros modelos:

zr2

Garcia-INPE commented 1 year ago

Ok @cfbastarz , obrigado, vou ajustar para a grade linear. Quanto aos arquivos que estão faltando, podemos fazer para os casos que lá estão para agilizar, mas não é o caso do provedor do teste fornecer o conjunto de dados completo nos próximos? O acham @barbarayamada e @afrassoni?

@Garcia-INPE, pelo menos a operação já faz isso com os arquivos do BAM - não dizer quanto aos outros modelos:

zr2

@afrassoni e @barbarayamada, acredito que precisamos de atuação do dono da área (do Enver) para a criação desses links. O que acham?

Garcia-INPE commented 1 year ago

Olá @Garcia-INPE, dei uma olhada na sua tabela BAM_TQ0299L064_18levs.model e ela está correta, está igual à que eu estou usando. O que está ocorrendo é que os dados do BAM que você está lendo, foram pós-processados em grade linear. Veja:

BAM grade linear:

xdef   900 linear    0.000   0.4000000000
ydef   451 linear  -90.000   0.4000000000

BAM grade Gaussiana:

xdef   900 linear    0.000   0.4000000000
ydef   450 levels
-89.69415 -89.29794 -88.89940 -88.50032 -88.10105 -87.70167 -87.30225 -86.90279
-86.50331 -86.10381 -85.70430 -85.30479 -84.90526 -84.50574 -84.10621 -83.70667
-83.30714 -82.90760 -82.50806 -82.10851 -81.70897 -81.30943 -80.90988 -80.51033
...

A grade Gaussiana é a grade que está descrita no arquivo BAM_TQ0299L064_18levs.model que você está usando. Portanto, para resolver o problema, você pode criar um novo arquivo BAM_TQ0299L064_18levs-linear.model com o seguinte conteúdo (abaixo, removi os comentários do arquivo para ocupar menos espaço):

ftype: grib
undef: 9.999E+20
xdim: 900 linear    0.000   0.4000000000
ydim: 451 linear  -90.000   0.4000000000
zdim:    18 levels 1000  925  850  775  700  500  400  300  250  200
150  100   70   50   30   20   10    3

vars:
vtmp:925 vtmp2(temp:925,umes:925)
vtmp:850 vtmp2(temp:850,umes:850)
vtmp:500 vtmp2(temp:500,umes:500)
temp:850 temp:850
temp:500 temp:500
temp:250 temp:250
psnm:000 psnm:1000
umes:925 umes:925
umes:850 umes:850
umes:500 umes:500
agpl:925 agpl:1000
zgeo:850 zgeo:850
zgeo:500 zgeo:500
zgeo:250 zgeo:250
uvel:850 uvel:850
uvel:500 uvel:500
uvel:250 uvel:250
vvel:850 vvel:850
vvel:500 vvel:500
vvel:250 vvel:250
::

Depois, basta modificar o arquivo scantec.conf para que seja utilizada a tabela BAM_TQ0299L064_18levs-linear ao invés da tabela BAM_TQ0299L064_18levs.

Eu fiz isso com os seus arquivos scantec.x e scantec.conf e o problema não ocorre mais. Porém, notei uma outra coisa:

zr

Isso aconteceu porque o arquivo GPOSNMC20200128002020012800P.fct.TQ0299L064.ctl não existe. Esse é um arquivo de análise (veja as datas 2020012800-2020012800) que o BAM escreve com o identificador icn e, de fato, o arquivo GPOSNMC20200128002020012800P.icn.TQ0299L064.ctl existe. Para resolver essa outra parte, será necessário criar links simbólicos dos arquivos de análise como se fosse arquivos de previsões, isto é:

ln -s GPOSNMC20200128002020012800P.icn.TQ0299L064.ctl GPOSNMC20200128002020012800P.fct.TQ0299L064.ctl
ln -s GPOSNMC20200128002020012800P.icn.TQ0299L064.grb GPOSNMC20200128002020012800P.fct.TQ0299L064.grb

Como são vários diretórios, você pode usar esse script a seguir para facilitar (nota: requer o inctime e alguns ajustes para o seu caso): https://gist.github.com/cfbastarz/6b4f055d3739128c963cb3c93046f664

At.te,

Carlos

Arquivo ajustado, realmente parou no novo erro que vocẽ citou.

Obrigado.

CGCT-CPTEC-DIMNT commented 1 year ago

@afrassoni eu preparei um repositório com alguns scripts para a utilização dos dados de reanálise do Era5 como referência para as avaliações com o SCANTEC (https://github.com/GAD-DIMNT-CPTEC/cfbastarz/tree/main/Era5) - é um pouco macarrônico mas funciona. Dentre as variáveis que costumamos considerar (ie., vtpm, temp, psnm, agpl, zgeo, uvel e vvel), apenas tive dificuldade de obter os dados de agpl (água precipitável - não consigo baixar). Também a psnm (pressão reduzida ao nível médio do mar) está com algum problema - já não me lembro exatamente qual, mas acabei substitundo pela pslc:1000. Se for interessante para o GAM, posso passar este repositório para vocês.

Obrigada @cfbastarz, já copiei seu repositório para o GAM. Muito obrigada.

CGCT-CPTEC-DIMNT commented 1 year ago

Oi @Garcia-INPE, conversei com a @afrassoni e então chegamos a conclusão de que nós é que devemos gerar esses links simbólicos nas nossas áreas.

Garcia-INPE commented 1 year ago

Ok, mas como o scantec vai ver esses arquivos em outro diretório senão o que direcionamos ele pra fazer? Se você souber pode fazer e depois me explica como, se não precisamos de ajuda.

afrassoni commented 1 year ago

@Garcia-INPE eu esperava que vc, como especialista em computação, pudesse resolver esse problema, mas pelo que entendo não está conseguindo. Vc gostaria de mais alguns dias para tentar solucionar?

Garcia-INPE commented 1 year ago

Poxa @afrassoni, desculpe decepcioná-la, mas o problema não é do ECFLOW e nem com a criação de links mas sim como o SCANTEC funciona e isso não sei mesmo. O @cfbastarz já nos deu umas dicas mas agora estamos (eu e @barbarayamada) tentado dribrar algumas "particularidades" (digamos assim) que o conjunto do Enver foi nos apresentado, que seguem.

  1. Os nomes dos diretórios fogem do padrao pois está no formato YYYYMMDDHH-YYYYMMDDHH, e para isso a solução que aplicamos foi gerar links dos diretórios no formato YYYYMMDDHH"

  2. Há rodadas incompletas entre a série de rodadas (o primeiro dia já está sem dados, mas ok, começamos pela 2a. data.) image Aqui o dia 28 tem poucos arquivos (notificamos o Enver mas nossa série para testes precisa ir até um dia antes) image

  3. Há vários CTLs zerados (fct, icn e inz) que também foram solucionados com a criação dos mesmos através de templates

  4. Esse problema também se aplica ao CTL icn que precisa ser transformado em CTL fct, conforme o @cfbastarz nos insinou, pois alguns destes também foram encontrados zerados. image image

  5. Estamos agora precisando de ajuda do @joaogerd ou @cfbastarz para saber como resolver esse problema, que já não é mais com o ECFLOW mas sim do modo que o SCANTEC funciona. Conseguimos "driblar" os problemas acima citados e executamos um conjunto de dias image ...seguem mais dias até que outro erro ocorre (notamos que, apesar de estipularmos nossa série até dia 27, o processamento "invade" o dia 28, que é aquele citado acima que está com poucos arquivos) ... image

Bom, na minha opinião, esses consertos que fizemos são ações paliativas e deveria estar tudo certo com esses conjuntos de rodadas, como ter rodadas completas e sem arquivos zerados, pois assim os novos testes fluiriam mais rapidamente, evitando a necessidade de tratar a falta de padronização caso a caso.

cfbastarz commented 1 year ago

Bom dia pessoal, tudo bem?

@Garcia-INPE, esse problema com o arquivo /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012800/GPOSCPT20200128002020012800P.icn.TQ0299L064.ctl está ocorrendo porque, como a mensagem de erro está informando, o arquivo não existe. Não existe nenhum problema no SCANTEC quanto a isso. É necessário entender a lógica empregada no SCANTEC para a leitura dos arquivos de referência e as previsões dos experimentos.

Por exemplo, considerando a configuração de avaliação que você está utilizando neste teste com o SCANTEC:

$ ./scantec.x
 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
 !                         Climatology Not Found                       !
 !         The mean reference field will be used as climatology        !
 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
 !                          Running scantec                            !
 !     Please wait while the system is performing the statistics       !
 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
   Analisys   Forecast        fct
...
 2020011800 2020011800        00h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020011800P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020011800P.fct.TQ0299L064.ctl

 2020011800 2020011900        24h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011900/GPOSCPT20200119002020011900P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020011900P.fct.TQ0299L064.ctl

 2020011800 2020012000        48h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012000/GPOSCPT20200120002020012000P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012000P.fct.TQ0299L064.ctl

 2020011800 2020012100        72h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012100/GPOSCPT20200121002020012100P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012100P.fct.TQ0299L064.ctl

 2020011800 2020012200        96h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012200/GPOSCPT20200122002020012200P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012200P.fct.TQ0299L064.ctl

 2020011800 2020012300       120h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012300/GPOSCPT20200123002020012300P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012300P.fct.TQ0299L064.ctl

 2020011800 2020012400       144h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012400/GPOSCPT20200124002020012400P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012400P.fct.TQ0299L064.ctl

 2020011800 2020012500       168h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012500/GPOSCPT20200125002020012500P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012500P.fct.TQ0299L064.ctl

 2020011800 2020012600       192h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012600/GPOSCPT20200126002020012600P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012600P.fct.TQ0299L064.ctl

 2020011800 2020012700       216h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012700/GPOSCPT20200127002020012700P.icn.TQ0299L064.ctl
 BAM_TQ0299L064_18levs-linear Experiment BAM-AD
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020011800/GPOSCPT20200118002020012700P.fct.TQ0299L064.ctl

 2020011800 2020012800       240h
 BAM_TQ0299L064_18levs-linear Reference refer
 FileName: /home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012800/GPOSCPT20200128002020012800P.icn.TQ0299L064.ctl
scan_dataMOD :: loadData( ): File not found!/home/roberto.garcia/sfw/SCANTEC-2.0.0/datain/TQ0299L064/2020012800/GPOSCPT20200128002020012800P.icn.TQ0299L064.ctl error, stat =-1
scan_dataMOD :: loadData( )
...

Veja que a sua data de referência, i.e., a data para a qual serão avaliadas as previsões, é a prórpia data da previsão. Logo, uma previsão de 24 horas válida para o dia 2020011900 foi inicializada por uma análise válida para o dia 2020111800; da mesma forma, uma previsão de 48 horas válida para o dia 2020012000 foi inicializada por uma análise também válida para o dia 2020011800. Consequentemente, uma previsão de 240 horas (10 dias) válida para o dia 2020012800, também foi inicializada por uma análise válida para o dia 2020011800. O detalhe é que todas estas previsões (de 24, 48, 72, ..., 240 horas) são todas comparadas contra as referências válidas para as datas de referências (neste caso, as datas de previsões). Então, como a referência escolhida para a avaliação das previsões é a própria análise do modelo, logo a previsão de 240 horas que é válida para o dia 2020012800 deverá ser comparada contra a análise válida para o dia 2020012800. Como esse arquivo não existe, então o SCANTEC pára a execução do programa principal com essa mensagem. Essa lógica fica fácil de entender com os nomes dos arquivos sendo impressos sempre que eles são lidos pelo SCANTEC. Veja a subrotina loadData da rotina scan_dataMOD.f90:

https://github.com/GAM-DIMNT-CPTEC/SCANTEC/blob/f9f1f7663ac18c348c47a197ceb302af7363a197/core/scan_dataMOD.f90#L415-L416

Como você já mencionou as correções no conjunto de dados (criação de arquivo CTL etc), minha sugestão é fazer a avaliação do experimento apenas até o dia 2020011700 ao invés de 2020012800 como está sendo feito. Aliás, é sempre necessário considerar que o período completo do experimento não é necessariamente o período que poderá ser utilizado na avaliação, devido aos aspectos discutidos acima.

afrassoni commented 1 year ago

@barbarayamada bom dia, tudo bem? Poderia por favor enviar uma atualização sobre este trabalho? Peço que me indique se podemos fechar esse trabalho até a sexta-feira da próxima semana. Realmente precisamos deste trabalho finalizado para poder aplicar com o SMNA na pré-operação. Obrigada.

barbarayamada commented 1 year ago

Oi @afrassoni, hoje eu e o José Roberto nos reunimos para atualização dos links do script cria_links. Este script cria os arquivos CTLs faltantes e cria os arquivos ICN nos devidos diretórios para que possamos realizar a avaliação. Amanhã nos reuniremos novamente e com os testes dando certo poderemos finalizar o trabalho.

afrassoni commented 1 year ago

@barbarayamada boa tarde! Qual o status desta tarefa por favor?