OGC API EDR - Rede de estações maregráficas ativas - Observações
Versão beta.
1. Introdução
Esta página descreve o acesso aos dados de observação da altura da superfície do mar (sea surface height, SSH) disponibilizados em tempo-quase-real (NRT) pelo Instituto Hidrográfico (IH) através de uma OGC API.
A implementação segue as normas do Open Geospatial Consortium (OGC), combinando:
- OGC API - Features, para consulta da rede de estações maregráficas;
- OGC API - Environmental Data Retrieval (EDR), para consulta das séries temporais de observações.
A OGC API encontra-se disponível em:
https://ogcapi.hidrografico.pt
A descrição OpenAPI/Swagger pode ser consultada através da ligação disponibilizada na página inicial da OGC API.
2. Coleção tide_obs_nrt
2.1. Características gerais
A rede de estações maregráficas ativas e as respetivas observações de SSH estão publicadas na coleção tide_obs_nrt:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt
As datas e horas são expressas em Tempo Universal Coordenado (UTC), segundo a norma ISO 8601. Os valores de SSH são expressos em metros relativamente à superfície de referência do Zero Hidrográfico (ZH) de Portugal, identificada pelo sistema de referência vertical EPSG:10349.
Os níveis de processamento são disponibilizados através do mecanismo de instances da OGC API - EDR. As consultas que não especifiquem uma instance utilizam l1 por omissão.
Este serviço disponibiliza apenas observações em NRT, não integrando as previsões astronómicas de maré.
2.2. Níveis de processamento
Os níveis de processamento disponíveis podem ser consultados através de:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances?f=json
| Instância | Processamento | QC | Resolução temporal | Latência | Janela temporal |
|---|---|---|---|---|---|
l1 |
L1 | Sem controlo de qualidade (QC) | 10 ou 60 segundos | 1 minuto | 8 dias |
l2 |
L2 | Com QC automático | 5 minutos | 1 dia | 15 dias |
Cada instance disponibiliza os tipos de consulta locations, area e radius.
2.3. Consultas disponíveis
| Objetivo | Interface | Consulta | Resposta |
|---|---|---|---|
| Consultar a rede de estações | OGC API - Features | /items |
GeoJSON |
| Consultar os níveis de processamento | OGC API - EDR | /instances |
JSON |
| Consultar as estações disponíveis numa instância | OGC API - EDR | /instances/{instanceId}/locations |
GeoJSON |
| Consultar a série temporal de uma estação | OGC API - EDR | /instances/{instanceId}/locations/{locationId} |
CoverageJSON |
| Consultar por área | OGC API - EDR | /instances/{instanceId}/area |
CoverageJSON |
| Consultar por distância a um ponto | OGC API - EDR | /instances/{instanceId}/radius |
CoverageJSON |
3. Acesso aos dados
3.1. Metadados da coleção
Os metadados podem ser consultados no Catálogo de Metadados do IH.
A descrição da coleção na OGC API pode ser consultada em HTML ou JSON:
# HTML
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt?f=html
# JSON
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt?f=json
A resposta inclui, entre outros elementos:
- Título, descrição e palavras-chave;
- Extensão espacial da rede maregráfica;
- Ligações para metadados, licença, vocabulários e sistemas de referência;
- Parâmetros disponíveis;
- Tipos de consulta suportados.
3.2. Rede de estações
A rede de estações é disponibilizada através de OGC API - Features:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/items?f=json
O endpoint devolve um objeto GeoJSON do tipo FeatureCollection. O número de estações pode ser limitado com o parâmetro limit:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/items?f=json&limit=10
Também é possível filtrar espacialmente as estações através de um retângulo delimitador (bbox), com os limites ordenados por longitude mínima, latitude mínima, longitude máxima e latitude máxima (OGC CRS84):
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/items?f=json&bbox=-17.2,32.5,-16.6,33.0
No contexto OGC API - EDR, as estações disponíveis para cada nível de processamento podem ser consultadas através de:
# L1
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l1/locations?f=json&limit=10
# L2
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l2/locations?f=json&limit=10
Nas consultas OGC API - EDR /locations, os atributos last_date_time e last_sea_surface_height correspondem à observação mais recente da instance selecionada. No catálogo OGC API - Features (/items), estes atributos correspondem ao produto L1.
Os atributos das estações disponibilizados são:
| Atributo | Descrição | Formato |
|---|---|---|
id |
Identificador único da estação (codp-id_mar). |
Texto |
codp |
Código do porto. | Número inteiro |
id_mar |
Identificador único do marégrafo. | Número inteiro |
title |
Designação da estação. | Texto |
eu_lau_code |
Código da estação segundo a unidade administrativa local. | Texto |
category |
Prioridade operacional da estação. | Texto |
lat |
Latitude da estação. | Número decimal (graus) |
lon |
Longitude da estação. | Número decimal (graus) |
last_date_time |
Data e hora da observação mais recente disponível. | UTC (ISO 8601) |
last_sea_surface_height |
Valor mais recente de SSH. | Número decimal (metros) |
geometry |
Geometria da estação. | GeoJSON Point - OGC CRS84 (longitude, latitude) |
3.3. Parâmetros comuns às consultas OGC API - EDR
As consultas OGC API - EDR utilizam os seguintes argumentos comuns:
| Argumento | Descrição / formato | Exemplo |
|---|---|---|
instanceId |
Nível de processamento indicado no caminho do endpoint. | l1 ou l2 |
datetime |
Instante ou intervalo temporal em UTC (ISO 8601). | YYYY-MM-DDThh:mm:ssZ/YYYY-MM-DDThh:mm:ssZ |
parameter-name |
Parâmetro ou lista de parâmetros separados por vírgula. | sea_surface_height |
f |
Formato da resposta. | json |
O argumento datetime pode assumir as seguintes formas:
- Instante:
datetime=YYYY-MM-DDThh:mm:ssZ; - Intervalo fechado:
datetime=início/fim; - Intervalo com início aberto:
datetime=../fim; - Intervalo com fim aberto:
datetime=início/...
As janelas temporais utilizadas quando datetime é omitido e os limites operacionais das consultas são apresentados na secção 3.6.
Quando o argumento parameter-name é omitido, são devolvidos todos os parâmetros disponíveis.
3.4. Série temporal de uma estação
A série temporal de uma estação é obtida através da consulta:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/{instanceId}/locations/{locationId}
O argumento locationId corresponde ao atributo id da estação e é composto pelos campos codp e id_mar, separados por hífen. Exemplo:
152-303
Exemplos de consulta:
# L1
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l1/locations/152-303?f=json¶meter-name=sea_surface_height
# L2
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l2/locations/152-303?f=json¶meter-name=sea_surface_height,sea_surface_height_qc
3.5. Consultas espaciais
As consultas espaciais area e radius selecionam estações existentes e não realizam interpolação espacial. Cada estação selecionada é devolvida como uma série temporal independente.
3.5.1. Consulta por área
A consulta area seleciona as estações cuja localização intersecta a área definida por um polígono ou multipolígono:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/{instanceId}/area
| Argumento | Descrição | Exemplo |
|---|---|---|
coords |
Geometria WKT do tipo POLYGON ou MULTIPOLYGON (OGC CRS84). |
POLYGON((-17.2 32.5,-16.6 32.5,-16.6 33.0,-17.2 33.0,-17.2 32.5)) |
Exemplo no browser:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l1/area?coords=POLYGON%28%28-17.2%2032.5%2C-16.6%2032.5%2C-16.6%2033.0%2C-17.2%2033.0%2C-17.2%2032.5%29%29¶meter-name=sea_surface_height&f=json
Exemplo no terminal:
curl --get \
'https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l1/area' \
--data-urlencode 'coords=POLYGON((-17.2 32.5,-16.6 32.5,-16.6 33.0,-17.2 33.0,-17.2 32.5))' \
--data-urlencode 'parameter-name=sea_surface_height' \
--data-urlencode 'f=json'
3.5.2. Consulta por raio
A consulta radius seleciona as estações localizadas dentro de uma determinada distância a um ponto ou conjunto de pontos:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/{instanceId}/radius
| Argumento | Descrição | Exemplo |
|---|---|---|
coords |
Geometria WKT do tipo POINT ou MULTIPOINT (OGC CRS84). |
POINT(-16.9108 32.6448) |
within |
Distância máxima. | 20 |
within-units |
Unidade da distância: m, km ou nmi. |
km |
Exemplo no browser:
https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l1/radius?coords=POINT%28-16.9108%2032.6448%29&within=20&within-units=km¶meter-name=sea_surface_height&f=json
Exemplo no terminal:
curl --get \
'https://ogcapi.hidrografico.pt/collections/tide_obs_nrt/instances/l1/radius' \
--data-urlencode 'coords=POINT(-16.9108 32.6448)' \
--data-urlencode 'within=20' \
--data-urlencode 'within-units=km' \
--data-urlencode 'parameter-name=sea_surface_height' \
--data-urlencode 'f=json'
3.6. Janelas temporais e limites operacionais
Quando o argumento datetime é omitido, o serviço utiliza as janelas temporais indicadas na tabela seguinte.
| Consulta | L1 | L2 | Limite por pedido |
|---|---|---|---|
/instances/{instanceId}/locations |
Não aplicável | Não aplicável | 100 estações |
/instances/{instanceId}/locations/{locationId} |
24 horas, terminando no momento atual | 24 horas, terminando 24 horas antes do momento atual | 10 000 observações |
/instances/{instanceId}/area |
1 hora, terminando no momento atual | 1 hora, terminando 24 horas antes do momento atual | 20 estações e 10 000 observações |
/instances/{instanceId}/radius |
1 hora, terminando no momento atual | 1 hora, terminando 24 horas antes do momento atual | 20 estações e 10 000 observações |
Quando fornecido explicitamente, o argumento datetime deve estar compreendido na janela temporal disponível para a instance selecionada: 8 dias para l1 e 15 dias para l2.
4. Estrutura e semântica dos dados
4.1. Estrutura da resposta CoverageJSON
As consultas OGC API - EDR de observações devolvem um objeto CoverageJSON do tipo CoverageCollection. Cada estação selecionada é representada por uma Coverage com domínio PointSeries.
| Elemento | Conteúdo |
|---|---|
type |
Tipo de objeto, normalmente CoverageCollection. |
domainType |
Tipo de domínio, nesta coleção PointSeries. |
parameters |
Metadados semânticos dos parâmetros, incluindo a propriedade observada, a unidade de medida e a referência ao vocabulário de QC. |
coverages[].id |
Identificador da estação. |
coverages[].domain.axes.x |
Longitude da estação. |
coverages[].domain.axes.y |
Latitude da estação. |
coverages[].domain.axes.t |
Instantes das observações. |
coverages[].ranges.sea_surface_height.values |
Valores de SSH. |
coverages[].ranges.sea_surface_height_qc.values |
Códigos QC. |
Exemplo simplificado da estrutura da resposta:
{
"type": "CoverageCollection",
"domainType": "PointSeries",
"parameters": {
"sea_surface_height": {},
"sea_surface_height_qc": {}
},
"coverages": [
{
"type": "Coverage",
"id": "1001-307",
"domain": {
"axes": {
"x": {"values": [-16.9]},
"y": {"values": [32.6]},
"t": {
"values": [
"2026-07-29T14:20:00Z",
"2026-07-29T14:21:00Z"
]
}
}
},
"ranges": {
"sea_surface_height": {"values": [2.134, 2.141]},
"sea_surface_height_qc": {"values": [0, 0]}
}
}
]
}
A estrutura CoverageJSON é comum aos dois níveis de processamento. A instance selecionada determina a origem dos dados, a resolução temporal e o QC das observações.
4.2. Parâmetros
| Parâmetro | Descrição | Unidade | Formato |
|---|---|---|---|
sea_surface_height |
Altura da superfície do mar relativamente à superfície de referência do ZH de Portugal (EPSG:10349) (NVS P07 CF15N1) | m (NVS P06 ULAA) | Número decimal |
sea_surface_height_qc |
Código de QC associado sea_surface_height (NVS L20) |
- | Número inteiro |
Para solicitar ambos os parâmetros:
parameter-name=sea_surface_height,sea_surface_height_qc
4.3. Vocabulários e sistemas de referência
| Elemento | Referência |
|---|---|
| Sistema de referência horizontal - OGC CRS84 (WGS 84, longitude/latitude) | OGC CRS84 |
| Referência vertical - ZH Portugal | EPSG:10349 |
| Sistema temporal | Calendário Gregoriano; UTC (ISO 8601). |
| Vocabulários |
5. Termos, condições e acesso
5.1. Licença e condições de utilização
Os dados são disponibilizados nos termos da licença CC BY-NC 4.0, conforme indicado nos metadados, requerendo, entre outros:
- Identificar a fonte dos dados;
- Manter a referência aos metadados, DOI e à licença aplicável;
- Indicar alterações ou transformações realizadas sobre os dados, quando aplicável;
- Não atribuir aos dados uma precisão, validação ou nível de qualidade superior ao declarado;
- Considerar que o produto L1 é disponibilizado sem QC e o L2 é submetido a procedimentos automáticos de QC;
- Respeitar a restrição de utilização não comercial definida pela licença.
As observações são disponibilizadas em NRT e podem conter falhas, atrasos, valores ausentes ou anomalias instrumentais. O utilizador é responsável pela avaliação da adequação dos dados à finalidade pretendida.
5.2. Autenticação
Na configuração atual, o acesso aos endpoints descritos não requer autenticação nem API key.