Iberia clássico × CMEMS IBI zos

Leixões e ponto Douro nas coordenadas offshore nativas, confirmadas em NEFIS. Forecast Iberia:29/10/2026 11UTC–01/11 11UTC.145 instantes coincidentes por ponto, sem interpolação temporal. Comparação bruta preservada; a secção G7 acrescenta uma correção empírica apenas para diagnóstico.

LocalMédia IBI−IberiaRMS sem diferença médiaRazão amplitude IBI/Iberia¹Atraso IBI¹
LeixoesTG-0.301 m0.068 m0.9944.3 min
Douro-0.307 m0.070 m0.9934.4 min
¹Ajuste diagnóstico de oscilação12,4206h+constante+tendência. Não é separação independente dos constituintes M2/S2. Atraso positivo significa IBI mais tarde.

A diferença entre os níveis brutos inclui referências verticais distintas. A média da diferença não é uma correção aprovada. As anomalias retiram a média de cada série apenas para comparar forma e fase. A curva25h é uma diferença suavizada, não um resíduo meteorológico isolado.

Comparação na referência empírica G7

Aplicou-se apenas à cópia de análise do IBI a constante anteriormente adotada no FM: +0,6475833399829765 m. O Iberia mantém os níveis nativos. A conversão ZH→NMM das observações da Cantareira é distinta e não foi somada ao IBI. Os dados originais, o FEWS e os forçamentos permanecem inalterados.

Ponto offshoreIBI bruto − IberiaIBI + G7 − Iberia
Leixões-30.10 cm+34.66 cm
Douro-30.67 cm+34.09 cm
Níveis Iberia, IBI bruto e IBI corrigido G7, e diferenças corrigidas em Leixões e Douro

Na referência provisória G7, o IBI fica cerca de 34–35 cm acima do Iberia. Esta comparação é pertinente para a hipótese de nível médio em falta, mas não comprova a decomposição em 20 cm de subida secular e 14–15 cm regionais: a própria correção empírica pode incorporar diferenças de zero, nível médio e suporte espacial. Não constitui uma ligação geodésica independente.

Adicionar uma constante mantém amplitudes, fase, RMS centrado e variação lenta pico-a-pico (~9 cm). A janela de 72 h continua insuficiente para separar subida secular, sazonalidade, circulação e diferenças atmosféricas. Os gráficos brutos abaixo preservam o diagnóstico original.

Comparação bruta e anomalias

A0, nível médio e processos oceânicos

A0 = 0,000 m nos 150 extremos das 75 fronteiras abertas. Auditoria integral do snapshot Iberia de 29/10 às 11 UTC; não é uma amostra. A fronteira astronómica não contém um termo médio atualizado nem uma tendência secular de subida do mar. A data Itdate=2015-08-10 é a origem do relógio, não a época do zero vertical.

O Iberia inclui maré, vento e pressão WRF. A0 nulo não obriga a média interior a ser nula: meteorologia, marés de longo período, não linearidades e restart podem produzir médias não nulas. A configuração inspecionada tem uma camada, sem transporte ativo de temperatura/salinidade; não resolve circulação baroclínica 3D nem recebe nestas fronteiras astronómicas a evolução remota da superfície livre oceânica. O IBI inclui dinâmica 3D, condições oceânicas globais e assimilação, além de maré e atmosfera. Diferenças WRF/ECMWF também entram na comparação.

Atenção ao sinal: IBI bruto − Iberia = −30,10 cm em Leixões e −30,67 cm no Douro. O IBI está abaixo, não acima. Não podemos decompor esta diferença em +20 cm de subida do NMM e +10 cm de oscilação regional. Primeiro é necessário compatibilizar referências: zos é referido ao geóide do modelo, que não equivale automaticamente ao datum histórico de Cascais. A0=0 não comprova essa equivalência.

Uma subida da ordem de 20–25 cm face ao NMM histórico de Cascais é plausível: a FCUL refere aproximadamente 23 cm, e a sua tabela de Cascais para 2026 dá NM=2,32 m para ZH=2,08 m abaixo do NMM convencional (diferença 24 cm). É contexto independente e local, não uma correção deduzida destes três dias, nem um valor automaticamente transferível para o zero nativo do Iberia. As tabelas de previsão não substituem a análise de uma série observada anual.

A diferença lenta varia aproximadamente 9 cm pico-a-pico nas duas células; pode conter condições regionais comuns, mas também diferenças atmosféricas e maré remanescente. Não identifica isoladamente NAO/oscilação do Atlântico, efeitos estéricos ou subida secular. Recomenda-se uma série mais longa, comparação IH e referências fixadas independentemente. Mantêm-se os gráficos brutos e de anomalias. A secção G7 mostra separadamente a correção empírica aplicada à análise; nenhuma alteração foi aplicada ao A0, FEWS ou forçamentos.

Fontes: DGT: datum Cascais · FCUL: níveis médios e ZH · Copernicus: SSH e referências · IBI: documentação física · Auditoria A0 e configuração · 150 valores A0.

Correspondência espacial

Os pontos com nomes costeiros representam células do Iberia, não as posições dos marégrafos. A comparação usa o suporte IBI válido nessas coordenadas. O ficheiro JSON inclui distância e sensibilidade à escolha espacial.

Interpretação e limites

Ambos os modelos incluem maré e efeitos atmosféricos. A diferença pode refletir a formulação da maré, meteorologia, resolução, batimetria e atrito, além de condições oceânicas de grande escala, circulação e assimilação do IBI. Não atribuir automaticamente o resultado a um único processo em falta. Os ciclos de emissão não estão comprovadamente emparelhados: é um diagnóstico entre modelos, não validação operacional independente.

As imagens usam apenas modelos, sem observações IH/SNIRH. A janela de72h é insuficiente para separar os constituintes próximos e certificar uma componente não-mareal. Não foram alterados os modelos, o FEWS ou as referências da calibração FM.

Pares de valores CSV · Metodologia e resultados completos JSON · Voltar aos níveis Iberia

Resultados detalhados
{
  "state": "COMPLETE_INTERMODEL_DIAGNOSTIC_NO_CALIBRATION_CHANGE",
  "Iberia": {
    "model": "Iberia Delft3D classic / operational FEWS",
    "T0_utc": "2026-10-29T11:00:00Z",
    "valid_end_utc": "2026-11-01T11:00:00Z",
    "step_minutes": 10,
    "points": 11,
    "slot": 4,
    "source": "[ficheiro local]
    "source_sha256": "159695f7f430f906e3799f496c535b31a7e34632a9b5107a75134fb938d5b778",
    "source_unchanged_during_read": true,
    "snapshot_utc": "2026-10-29T11:14:22.188304+00:00",
    "access": "Immutable copy of FSS export; Iberia filter currently not exposed by PI REST",
    "vertical_reference": "Native classical levels; no IBI/G7/gauge correction applied",
    "not_observations": true,
    "harmonic_boundary_types": [
      "A"
    ],
    "harmonics": [
      "A0",
      "K1",
      "K2",
      "M2",
      "M4",
      "MF",
      "MM",
      "MN4",
      "MS4",
      "N2",
      "O1",
      "P1",
      "Q1",
      "S2"
    ],
    "wind_pressure_files": {
      "Fwndgu": "x_wind.dat",
      "Fwndgv": "y_wind.dat",
      "Fwndgp": "air_pressure.dat"
    }
  },
  "IBI_fetch": {
    "request": {
      "dataset_id": "cmems_mod_ibi_phy_anfc_0.027deg-2D_PT15M-i",
      "variables": [
        "zos"
      ],
      "minimum_longitude": -8.85,
      "maximum_longitude": -8.65,
      "minimum_latitude": 41.08,
      "maximum_latitude": 41.22,
      "start_datetime": "2026-10-29T11:00:00",
      "end_datetime": "2026-11-01T11:00:00",
      "output_filename": "ibi_zos_raw_20261029T11_20261101T11.nc",
      "output_directory": "[ficheiro local]
      "skip_existing": true,
      "disable_progress_bar": true
    },
    "retrieval_utc": "2026-10-29T11:42:43.938423+00:00",
    "raw_offset_applied_m": 0,
    "not_archived_forecast_vintage_at_Iberia_T0": true,
    "state": "ACQUIRED",
    "sha256": "415685e9b7867bef6a20a87bfac6ee30edd3fbabe05bfd9be4b514ba0aa1e569",
    "bytes": 43164
  },
  "IBI_variable_attributes": {
    "_FillValue": -32767,
    "easting": "longitude",
    "latitude_max": "56.08294177f",
    "latitude_min": "26.16535726f",
    "long_name": "Sea surface height",
    "longitude_max": "5.084567f",
    "longitude_min": "-19.0828411f",
    "northing": "latitude",
    "standard_name": "sea_surface_height_above_geoid",
    "unit_long": "Meters",
    "units": "m",
    "valid_max": 10000,
    "valid_min": -10000,
    "add_offset": 0.0,
    "scale_factor": 0.0010000000474974513
  },
  "IBI_global_attributes": {
    "institution": "NOW Systems (Spain)",
    "references": "http://marine.copernicus.eu/",
    "source": "NEMO3.6",
    "title": "Ocean surface 15-minutes instantaneous fields for the Iberia-Biscay-Ireland (IBI) region"
  },
  "forecast_vintages_matched": false,
  "vintage_note": "Iberia fixedT0 29Oct11UTC; IBI latest snapshot retrieved29Oct. Exact IBI issue time not established by subset. Same valid times, not proof of equal information available at T0.",
  "stations": [
    {
      "station": "LeixoesTG",
      "native_lonlat": [
        -8.753203289318032,
        41.167571810849175
      ],
      "native_MN": [
        122,
        101
      ],
      "geolocation_QA": "Direct NEFIS XYSTAT and NAMST; matches4nativeGRDcorners and same grid/obs SHA as Iberia snapshot",
      "IBI_spatial_method": "Bilinear at native Iberia XYSTAT station centre; four wet corners",
      "spatial_support": [
        {
          "lon": -8.77696937,
          "lat": 41.16581746,
          "weight": 0.1353248161542164,
          "distance_m": 2004.0108672615645
        },
        {
          "lon": -8.749190740000001,
          "lat": 41.16581746,
          "weight": 0.801520490861446,
          "distance_m": 389.04613146375493
        },
        {
          "lon": -8.77696937,
          "lat": 41.19359609,
          "weight": 0.009122527650382491,
          "distance_m": 3511.3545036156534
        },
        {
          "lon": -8.749190740000001,
          "lat": 41.19359609,
          "weight": 0.05403216533395502,
          "distance_m": 2909.7319842392726
        }
      ],
      "nearest_wet_distance_m": 389.04613146375493,
      "IBI_centres_inside_Iberia_cell": 2,
      "common_samples": 145,
      "start_utc": "2026-10-29T11:00:00Z",
      "end_utc": "2026-11-01T11:00:00Z",
      "time_pairing": "Exact matching timestamps UTC every30minutes; no temporal interpolation",
      "Iberia_native_levels": {
        "mean_m": 0.004109089310344828,
        "std_m": 0.8477731624196843,
        "min_m": -1.4260235,
        "max_m": 1.4357702
      },
      "IBI_raw_zos": {
        "mean_m": -0.2969134934211938,
        "std_m": 0.8470576994473846,
        "min_m": -1.8441610457237778,
        "max_m": 1.0967545469697744
      },
      "IBI_minus_Iberia_raw": {
        "mean_m": -0.30102258273153865,
        "std_m": 0.06809390488937414,
        "min_m": -0.4988254881037035,
        "max_m": -0.17104683430425538
      },
      "raw_RMS_difference_m": 0.30862821516745537,
      "centred_RMS_difference_m": 0.06809390488937414,
      "correlation": 0.9967719081910507,
      "representative_semidiurnal_fit": {
        "period_hours": 12.4206,
        "IBI_amplitude_over_Iberia": 0.9941895124928064,
        "IBI_lag_minutes_relative_Iberia": 4.308697873370067,
        "caution": "One representative oscillation, not resolved M2/S2 and not a correction applied"
      },
      "spatial_sampling_sensitivity": {
        "nearest_minus_primary_rms_m": 0.0004899550391752594,
        "nearest_minus_primary_centred_rms_m": 0.0004889909805363708,
        "footprint_average_minus_primary_rms_m": 0.0009604221338538792,
        "footprint_average_minus_primary_centred_rms_m": 0.0006854547673005398
      },
      "slow_difference_25h": {
        "start_utc": "2026-10-29T23:30:00Z",
        "end_utc": "2026-10-31T22:30:00Z",
        "mean_m": -0.29895121695517485,
        "std_m": 0.02433358814876911,
        "min_m": -0.3448411729596174,
        "max_m": -0.2553800821255333,
        "amplitude_response_to_tidal_components": {
          "12.4206h_proxy": 0.006316400704975371,
          "S2_12h": 0.039318516525781284,
          "K1_23.934h": 0.04243995732150386,
          "O1_25.819h": 0.032665442282703995
        },
        "caution": "Smoothed inter-model difference, includes unknown constant reference and residual tides/long-period tides; not isolated meteorological residual"
      },
      "vertical_offsets_applied_m": 0,
      "not_independent_model_validation": true,
      "empirical_G7_overlay": {
        "offset_m": 0.6475833399829765,
        "mean_IBI_corrected_minus_Iberia_m": 0.34656075725143787,
        "slow_difference_min_m": 0.30274216702335904,
        "slow_difference_max_m": 0.39220325785744314,
        "centred_RMS_difference_m": 0.06809390488937414,
        "status": "Provisional empirical reference; not independently certified geodetic conversion",
        "applies_to": "IBI only, for this diagnostic overlay; no model/forcing edits; no additional Cantareira observation correction"
      }
    },
    {
      "station": "Douro",
      "native_lonlat": [
        -8.753203289318032,
        41.11757181084917
      ],
      "native_MN": [
        122,
        100
      ],
      "geolocation_QA": "Direct NEFIS XYSTAT and NAMST; matches4nativeGRDcorners and same grid/obs SHA as Iberia snapshot",
      "IBI_spatial_method": "Bilinear at native Iberia XYSTAT station centre; four wet corners",
      "spatial_support": [
        {
          "lon": -8.77696937,
          "lat": 41.1102602,
          "weight": 0.10642737067792782,
          "distance_m": 2154.9536685964636
        },
        {
          "lon": -8.749190740000001,
          "lat": 41.1102602,
          "weight": 0.6303627140320923,
          "distance_m": 879.1594623830232
        },
        {
          "lon": -8.77696937,
          "lat": 41.13803883,
          "weight": 0.03801997312667106,
          "distance_m": 3024.7810493325196
        },
        {
          "lon": -8.749190740000001,
          "lat": 41.13803883,
          "weight": 0.22518994216330873,
          "distance_m": 2297.83122743538
        }
      ],
      "nearest_wet_distance_m": 879.1594623830232,
      "IBI_centres_inside_Iberia_cell": 4,
      "common_samples": 145,
      "start_utc": "2026-10-29T11:00:00Z",
      "end_utc": "2026-11-01T11:00:00Z",
      "time_pairing": "Exact matching timestamps UTC every30minutes; no temporal interpolation",
      "Iberia_native_levels": {
        "mean_m": 0.004037008510344833,
        "std_m": 0.8480098289531823,
        "min_m": -1.4277835,
        "max_m": 1.4366466
      },
      "IBI_raw_zos": {
        "mean_m": -0.30264755047336805,
        "std_m": 0.8468138745358267,
        "min_m": -1.851184773408365,
        "max_m": 1.0920294249223321
      },
      "IBI_minus_Iberia_raw": {
        "mean_m": -0.30668455898371294,
        "std_m": 0.06977581556677367,
        "min_m": -0.5201894491684069,
        "max_m": -0.17796413124445823
      },
      "raw_RMS_difference_m": 0.314521991531662,
      "centred_RMS_difference_m": 0.06977581556677366,
      "correlation": 0.9966110638141614,
      "representative_semidiurnal_fit": {
        "period_hours": 12.4206,
        "IBI_amplitude_over_Iberia": 0.9934123304534364,
        "IBI_lag_minutes_relative_Iberia": 4.420830518647068,
        "caution": "One representative oscillation, not resolved M2/S2 and not a correction applied"
      },
      "spatial_sampling_sensitivity": {
        "nearest_minus_primary_rms_m": 0.0010370235288826258,
        "nearest_minus_primary_centred_rms_m": 0.0008088241322847682,
        "footprint_average_minus_primary_rms_m": 0.0011299562347918193,
        "footprint_average_minus_primary_centred_rms_m": 0.0010741470254896693
      },
      "slow_difference_25h": {
        "start_utc": "2026-10-29T23:30:00Z",
        "end_utc": "2026-10-31T22:30:00Z",
        "mean_m": -0.3049054838737233,
        "std_m": 0.024520318427962765,
        "min_m": -0.3500475565754887,
        "max_m": -0.2606226099868208,
        "amplitude_response_to_tidal_components": {
          "12.4206h_proxy": 0.006316400704975371,
          "S2_12h": 0.039318516525781284,
          "K1_23.934h": 0.04243995732150386,
          "O1_25.819h": 0.032665442282703995
        },
        "caution": "Smoothed inter-model difference, includes unknown constant reference and residual tides/long-period tides; not isolated meteorological residual"
      },
      "vertical_offsets_applied_m": 0,
      "not_independent_model_validation": true,
      "empirical_G7_overlay": {
        "offset_m": 0.6475833399829765,
        "mean_IBI_corrected_minus_Iberia_m": 0.3408987809992636,
        "slow_difference_min_m": 0.29753578340748776,
        "slow_difference_max_m": 0.38696072999615566,
        "centred_RMS_difference_m": 0.06977581556677366,
        "status": "Provisional empirical reference; not independently certified geodetic conversion",
        "applies_to": "IBI only, for this diagnostic overlay; no model/forcing edits; no additional Cantareira observation correction"
      }
    }
  ],
  "conclusion_limits": [
    "A constant difference is not automatically a geodetic offset or physical model error",
    "Demeaning removes a constant only for plotting/diagnostic; no heights or forcing changed",
    "Differences may include tidal propagation, resolution, bathymetry, friction, WRF/ECMWF forcing, remote ocean conditions and circulation",
    "25h smoothing is not full tidal separation;72h cannot resolve M2/S2 independently",
    "No observations used here; this is an inter-model comparison"
  ],
  "shared_spatial_pattern": {
    "difference_series_correlation": 0.9985621162003934,
    "Douro_difference_minus_Leixoes_difference": {
      "mean_m": -0.00566197625217428,
      "std_m": 0.004061093498626359,
      "min_m": -0.02150900718456006,
      "max_m": 0.006237780522745595
    },
    "interpretation": "Common pattern across two nearby offshore cells; cannot identify whether datum or regional physics causes its mean"
  },
  "A0_and_physics_audit": {
    "snapshot": "[ficheiro local]
    "boundaries": 75,
    "endpoints": 150,
    "all_A0_zero": true,
    "settings": {
      "MNKmax": "186 148 1",
      "Itdate": "#2015-08-10#",
      "Sub1": "#  W #",
      "Sub2": "#   #",
      "Tempw": "1.5000000e+001",
      "Salw": "3.1000000e+001",
      "Filana": "#Iberia10.bca#",
      "Restid": "#Iberia.rst#",
      "Fwndgu": "#x_wind.dat#",
      "Fwndgv": "#y_wind.dat#",
      "Fwndgp": "#air_pressure.dat#"
    },
    "source_sha256": {
      "Iberia.mdf": "005f9b301abd6117ce8ce93f38c2bf5d665170ce7ee4e051e270b5baf0386a34",
      "Iberia10.bca": "9def085d84b772ad81d41121baacf5f4fd5b4d14f00e329aeeed36f708bd6e60",
      "Iberia10.bnd": "5e4ae549902584eaeb0dea4cc8d7d52666c83f841fd5f1d67a53fa5b86c65b4f"
    },
    "interpretation": [
      "No imposed mean-level offset or secular sea-level trend in A0 of the astronomical boundaries.",
      "Wind and atmospheric pressure are included. A0 zero does not force every interior temporal mean to zero.",
      "One computational layer; no active transported temperature/salinity in the inspected setup: no resolved 3D baroclinic ocean circulation.",
      "No evolving remote ocean SSH prescribed by these astronomical boundaries. Long-period tides and internally generated atmospheric/nonlinear effects remain.",
      "Itdate is a model clock origin, not evidence of a vertical-datum epoch.",
      "The geodetic zero of the native Iberia harmonics is not established by A0=0.",
      "Raw IBI minus Iberia is negative about 0.30m. Cannot identify this as positive 0.20m rise plus 0.10m regional signal."
    ]
  },
  "G7_overlay": {
    "offset_m": 0.6475833399829765,
    "inherited_from": "Previously adopted FM G7 empirical correction",
    "original_data_preserved": true,
    "source_models_and_forcing_unchanged": true,
    "no_causal_decomposition": "Not evidence of 20cm secular rise plus remaining regional oscillation",
    "invariants": "Constant offset leaves amplitudes, phase, centred RMS and peak-to-peak variability unchanged"
  }
}