Modelo: linhas; medições: pontos. Mesmas referências provisórias. Dados anteriores preservados e observações atualizadas em 29/10. Sem novas simulações, ajuste de parâmetros, deslocamento de relógios ou preenchimento de lacunas.

| Ciclo | Estação | n | RMSE (cm) | Obs−modelo (cm) |
|---|---|---|---|---|
| update_20261027 | Cantareira B | 577 | 8.97 | 4.48 |
| update_20261028 | Cantareira B | 576 | 9.7 | 6.16 |
| forecast_20261028_qconstant | Cantareira B | 0 | nan | nan |
| update_20261027 | Cais dos Banhos | 77 | 13.56 | -0.71 |
| update_20261028 | Cais dos Banhos | 29 | 14.74 | -0.18 |
| forecast_20261028_qconstant | Cais dos Banhos | 0 | nan | nan |
O forecast foi calculado depois de T0 e usa caudal constante: confronto diagnóstico, não demonstração de previsão operacional independente. A igualdade na sobreposição verifica reprodutibilidade com os mesmos dados.
{
"state": "PILOT_REVIEW_COMPLETED_WITH_LIMITATIONS",
"created_utc": "2026-10-29T09:24:28.187550+00:00",
"no_simulations_rerun": true,
"references_unchanged": true,
"observation_coverage": {
"Cantareira B": {
"n": 864,
"start_utc": "2026-10-25T00:00:00Z",
"end_utc": "2026-10-27T23:55:00Z",
"changed_values_from_previous_snapshot": 0,
"gaps_filled": false
},
"Cais dos Banhos": {
"n": 77,
"start_utc": "2026-10-25T00:00:00Z",
"end_utc": "2026-10-26T14:00:00Z",
"changed_values_from_previous_snapshot": 0,
"gaps_filled": false
}
},
"metrics": [
{
"cycle": "update_20261027",
"station": "Cantareira B",
"selection": "whole_window",
"n": 577,
"start_utc": "2026-10-25T00:00:00Z",
"end_utc": "2026-10-27T00:00:00Z",
"bias_m": 0.04476595895357778,
"rmse_m": 0.0896513436382326,
"centered_rmse_m": 0.07767478571008135,
"correlation": 0.9973699273680854,
"residual_definition": "observation minus model",
"paired_span_hours": 48.0,
"dominant_amplitude_model_over_observed": 0.9799534444506585,
"model_lag_minutes": 5.984868175750937,
"harmonic_caution": "Single 12.4206h proxy, not resolved M2/S2"
},
{
"cycle": "update_20261027",
"station": "Cantareira B",
"selection": "after_calibration_26Oct",
"n": 289,
"start_utc": "2026-10-26T00:00:00Z",
"end_utc": "2026-10-27T00:00:00Z",
"bias_m": 0.03815565473692021,
"rmse_m": 0.08545700909024698,
"centered_rmse_m": 0.0764659820720789,
"correlation": 0.9977977285045512,
"residual_definition": "observation minus model",
"paired_span_hours": 24.0,
"dominant_amplitude_model_over_observed": 0.9669403779148187,
"model_lag_minutes": 5.591756074653009,
"harmonic_caution": "Single 12.4206h proxy, not resolved M2/S2"
},
{
"cycle": "update_20261028",
"station": "Cantareira B",
"selection": "whole_window",
"n": 576,
"start_utc": "2026-10-26T00:00:00Z",
"end_utc": "2026-10-27T23:55:00Z",
"bias_m": 0.06158349397632344,
"rmse_m": 0.09697314260160815,
"centered_rmse_m": 0.07490836839566031,
"correlation": 0.9978076320157383,
"residual_definition": "observation minus model",
"paired_span_hours": 47.916666666666664,
"dominant_amplitude_model_over_observed": 0.9754626252243537,
"model_lag_minutes": 5.018096533283624,
"harmonic_caution": "Single 12.4206h proxy, not resolved M2/S2"
},
{
"cycle": "update_20261028",
"station": "Cantareira B",
"selection": "after_calibration_26Oct",
"n": 576,
"start_utc": "2026-10-26T00:00:00Z",
"end_utc": "2026-10-27T23:55:00Z",
"bias_m": 0.06158349397632344,
"rmse_m": 0.09697314260160815,
"centered_rmse_m": 0.07490836839566031,
"correlation": 0.9978076320157383,
"residual_definition": "observation minus model",
"paired_span_hours": 47.916666666666664,
"dominant_amplitude_model_over_observed": 0.9754626252243537,
"model_lag_minutes": 5.018096533283624,
"harmonic_caution": "Single 12.4206h proxy, not resolved M2/S2"
},
{
"cycle": "forecast_20261028_qconstant",
"station": "Cantareira B",
"selection": "whole_window",
"n": 0,
"start_utc": null,
"end_utc": null
},
{
"cycle": "forecast_20261028_qconstant",
"station": "Cantareira B",
"selection": "after_calibration_26Oct",
"n": 0,
"start_utc": null,
"end_utc": null
},
{
"cycle": "update_20261027",
"station": "Cais dos Banhos",
"selection": "whole_window",
"n": 77,
"start_utc": "2026-10-25T00:00:00Z",
"end_utc": "2026-10-26T14:00:00Z",
"bias_m": -0.007084847565034945,
"rmse_m": 0.13555581372110737,
"centered_rmse_m": 0.13537054173110108,
"correlation": 0.9952560854025497,
"residual_definition": "observation minus model",
"paired_span_hours": 38.0,
"dominant_amplitude_model_over_observed": 0.9153665082007099,
"model_lag_minutes": 9.24558687962224,
"harmonic_caution": "Single 12.4206h proxy, not resolved M2/S2"
},
{
"cycle": "update_20261027",
"station": "Cais dos Banhos",
"selection": "after_calibration_26Oct",
"n": 29,
"start_utc": "2026-10-26T00:00:00Z",
"end_utc": "2026-10-26T14:00:00Z",
"bias_m": -0.0017725747818846393,
"rmse_m": 0.14742803382889372,
"centered_rmse_m": 0.14741737732471047,
"correlation": 0.9946847651724217,
"residual_definition": "observation minus model",
"paired_span_hours": 14.0
},
{
"cycle": "update_20261028",
"station": "Cais dos Banhos",
"selection": "whole_window",
"n": 29,
"start_utc": "2026-10-26T00:00:00Z",
"end_utc": "2026-10-26T14:00:00Z",
"bias_m": -0.0017725747818846393,
"rmse_m": 0.14742803382889372,
"centered_rmse_m": 0.14741737732471047,
"correlation": 0.9946847651724217,
"residual_definition": "observation minus model",
"paired_span_hours": 14.0
},
{
"cycle": "update_20261028",
"station": "Cais dos Banhos",
"selection": "after_calibration_26Oct",
"n": 29,
"start_utc": "2026-10-26T00:00:00Z",
"end_utc": "2026-10-26T14:00:00Z",
"bias_m": -0.0017725747818846393,
"rmse_m": 0.14742803382889372,
"centered_rmse_m": 0.14741737732471047,
"correlation": 0.9946847651724217,
"residual_definition": "observation minus model",
"paired_span_hours": 14.0
},
{
"cycle": "forecast_20261028_qconstant",
"station": "Cais dos Banhos",
"selection": "whole_window",
"n": 0,
"start_utc": null,
"end_utc": null
},
{
"cycle": "forecast_20261028_qconstant",
"station": "Cais dos Banhos",
"selection": "after_calibration_26Oct",
"n": 0,
"start_utc": null,
"end_utc": null
}
],
"forcing_transitions": [
{
"to": "update_20261028",
"at_utc": "2026-10-26T00:00:00Z",
"Atlantic_": {
"preceding_cycle_at_same_time": 0.698583342405,
"new_cycle_initial": 0.698583342405,
"difference": 0.0
},
"Crestuma_": {
"preceding_cycle_at_same_time": 0.0,
"new_cycle_initial": 0.0,
"difference": 0.0
}
},
{
"to": "forecast_20261028_qconstant",
"at_utc": "2026-10-28T00:00:00Z",
"Atlantic_": {
"preceding_cycle_at_same_time": -0.208416700675,
"new_cycle_initial": -0.208416700675,
"difference": 0.0
},
"Crestuma_": {
"preceding_cycle_at_same_time": 469.66,
"new_cycle_initial": 469.66,
"difference": 0.0
}
}
],
"numerical_QA": {
"update_20261027": {
"gate": "PASS",
"checks": {
"inputs_unchanged": true,
"exact_duration": true,
"finite_active_levels": true,
"boundary_Q": true,
"closed_walls_zero_flux": true,
"finite_bounded_speed": true,
"mass_balance": true,
"restart_exists": true,
"restart_exact_UTC": true
},
"finished_check_utc": "2026-10-28T10:37:16.013643+00:00",
"duration_seconds": 172800,
"map_frames": 577,
"max_Q_error_m3s": 7.568359376364242e-05,
"max_volume_error_m3": 3.361701965332031e-05,
"max_closed_wall_flux_m3s": 0.0,
"missing_active_levels": 0,
"max_speed_ms": 8.056971549987793,
"max_water_level_m": 2.2211806774139404,
"max_northern_water_level_m": 1.8422024250030518,
"expected_river_volume_m3": 17876232.0,
"map_sampled_river_volume_m3": 17947344.007873535,
"volume_sampling_note": "MAP five-minute quadrature is diagnostic; boundary jumps may require endpoint convention review; exact target from hourly BC",
"restart": "[ficheiro local]
"scientific_validation": false,
"spinup_gate": "PHYSICAL_REVIEW_REQUIRED; 48h duration alone does not establish spinup convergence",
"update_automatic_launch": false,
"interpretation": "Cold initialization excluded from update. Review extrema, final state and forcing continuity before admitting restart."
},
"update_20261028": {
"gate": "PASS",
"checks": {
"inputs_unchanged": true,
"exact_duration": true,
"finite_active_levels": true,
"boundary_Q": true,
"closed_walls_zero_flux": true,
"finite_bounded_speed": true,
"mass_balance": true,
"restart_exists": true,
"restart_exact_UTC": true
},
"finished_check_utc": "2026-10-28T14:53:40.836956+00:00",
"duration_seconds": 172800,
"map_frames": 577,
"max_Q_error_m3s": 0.0001220703125,
"max_volume_error_m3": 3.0875205993652344e-05,
"max_closed_wall_flux_m3s": 0.0,
"missing_active_levels": 0,
"max_speed_ms": 8.056971549987793,
"max_water_level_m": 2.8228492736816406,
"max_northern_water_level_m": 1.8422024250030518,
"expected_river_volume_m3": 48421728.0,
"map_sampled_river_volume_m3": 48562625.97885132,
"volume_sampling_note": "MAP five-minute quadrature is diagnostic; boundary jumps may require endpoint convention review; exact target from hourly BC",
"restart": "[ficheiro local]
"scientific_validation": false,
"spinup_gate": "PHYSICAL_REVIEW_REQUIRED; 48h duration alone does not establish spinup convergence",
"update_automatic_launch": false,
"interpretation": "Cold initialization excluded from update. Review extrema, final state and forcing continuity before admitting restart."
},
"forecast_20261028_qconstant": {
"gate": "PASS",
"checks": {
"inputs_unchanged": true,
"exact_duration": true,
"finite_active_levels": true,
"boundary_Q": true,
"closed_walls_zero_flux": true,
"finite_bounded_speed": true,
"mass_balance": true,
"restart_exists": true,
"restart_exact_UTC": true
},
"finished_check_utc": "2026-10-28T18:16:08.070471+00:00",
"duration_seconds": 259200,
"map_frames": 865,
"max_Q_error_m3s": 6.46972655999889e-05,
"max_volume_error_m3": 2.682209014892578e-05,
"max_closed_wall_flux_m3s": 0.0,
"missing_active_levels": 0,
"max_speed_ms": 8.445511817932129,
"max_water_level_m": 2.267791748046875,
"max_northern_water_level_m": 1.7824652194976807,
"expected_river_volume_m3": 121735871.99999999,
"map_sampled_river_volume_m3": 121735872.30834961,
"volume_sampling_note": "MAP five-minute quadrature is diagnostic; boundary jumps may require endpoint convention review; exact target from hourly BC",
"restart": "[ficheiro local]
"scientific_validation": false,
"spinup_gate": "PHYSICAL_REVIEW_REQUIRED; 48h duration alone does not establish spinup convergence",
"update_automatic_launch": false,
"interpretation": "Cold initialization excluded from update. Review extrema, final state and forcing continuity before admitting restart."
}
},
"forecast_is_constant_Q_scenario": true,
"forecast_issue_not_T0": "Computed 28Oct afternoon, not archived operational forecast at midnight",
"limitations": [
"Empirical vertical reference, no independent levelling",
"Synthetic deepening awaiting measured bathymetry",
"One T0 cannot establish operational forecast skill",
"Native speed extrema require local wet-depth review",
"Brown overlay upstream Arrabida is a viewer defect, not dry model at selected face"
]
}{
"restart_transitions": [
{
"to": "update_20261027",
"time_utc": "2026-10-25T00:00:00Z",
"checks": {
"mesh2d_s1": {
"valid_pairs": 70341,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"mesh2d_waterdepth": {
"valid_pairs": 104043,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"mesh2d_ucmag": {
"valid_pairs": 104043,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"restart_copy_identical": true
}
},
{
"to": "update_20261028",
"time_utc": "2026-10-26T00:00:00Z",
"checks": {
"mesh2d_s1": {
"valid_pairs": 69589,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"mesh2d_waterdepth": {
"valid_pairs": 104043,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"mesh2d_ucmag": {
"valid_pairs": 104043,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"restart_copy_identical": true
}
},
{
"to": "forecast_20261028_qconstant",
"time_utc": "2026-10-28T00:00:00Z",
"checks": {
"mesh2d_s1": {
"valid_pairs": 66415,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"mesh2d_waterdepth": {
"valid_pairs": 104043,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"mesh2d_ucmag": {
"valid_pairs": 104043,
"max_abs_difference": 0.0,
"rms_difference": 0.0,
"mask_changes": 0
},
"restart_copy_identical": true
}
}
],
"rolling_overlap": {
"mesh2d_s1": {
"common_5minute_frames": 289,
"max_abs_difference": 0.001381993293762207,
"mask_changes": 0
},
"mesh2d_waterdepth": {
"common_5minute_frames": 289,
"max_abs_difference": 0.001381993293762207,
"mask_changes": 0
},
"mesh2d_ucmag": {
"common_5minute_frames": 289,
"max_abs_difference": 0.0,
"mask_changes": 0
}
},
"same_forcings_not_independent_validation": true
}Restarts contínuos em nível, profundidade e velocidade; nenhuma alteração de máscara inicial. Na sobreposição dos updates, diferença máxima de nível de 1,382 mm. Oceano, caudal e vento/pressão contínuos em T0. Calibração mantida para uso piloto dos níveis, com referências verticais provisórias. Picos de velocidade de 8,06 m/s nos updates e 7,08 m/s no forecast são isolados e contrastam com as velocidades das arestas; requerem revisão da reconstrução/geometria local. Não são velocidades físicas validadas.
O objetivo é apresentar os resultados do Delft3D clássico já executado pelo FEWS. Não se pretende ativar o FM no FEWS operacional. O levantamento encontrou mapas e séries exportados, mas os cabeçalhos ASCII usam índices M/N: a georreferenciação e a orientação devem ser verificadas antes da publicação. Ainda não há cenário clássico publicado.