Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual do usuário∗
Phelype H. Oleinik†
2022-12-01
Prefácio
Este manual descreve o funcionamento e a utilização do programa Spec2Wave para a geração de
dados a partir do espectro de onda. O programa consiste do executável spec2wave, deste manual,
e de um ou mais bancos de dados.
O Spec2Wave é freeware. O programa, assim como este manual, são distribuídos sob os
termos da licença Creative Commons by-nc-nd 4.01 .
O software é fornecido “como está”, sem garantia de qualquer tipo, expressa ou implícita,
incluindo, mas não se limitando às garantias de comercialização, adequação a uma finalidade
específica e não-violação. Em nenhum caso os autores ou detentores de direitos autorais serão
responsáveis por qualquer reclamação, danos ou outra responsabilidade, seja em uma ação de
contrato, ato ilícito ou de qualquer outra forma, decorrente de, ou em conexão com o software
ou seu uso.
Bugs e Funcionalidades
O Spec2Wave é um programa relativamente novo, e está em estágio inicial de desenvolvi-
mento, portanto está vazando2 bugs. Pelo mesmo motivo, pode também estar faltando alguma
funcionalidade que ao escrever o programa não percebi.
Assim, qualquer problema, solicitação de funcionalidade, ou sugestão em geral pode ser
enviado por e-mail e eu atenderei o mais rápido possível.
Além disso, o formato do banco de dados ainda é experimental e pode mudar bastante de
uma versão para outra, então por enquanto também fornecerei os bancos de dados conforme a
necessidade. Basta solicitar a localização e o intervalo de tempo necessários.
∗
Esse manual corresponde à versão 1.2.1 do programa, revisado em 2022-12-01.
†
E-mail: oleinik ⟨at⟩ duck.com
1
https://creativecommons.org/licenses/by-nc-nd/4.0
2
Não está vazando, Marge. Está transbordando. — Homer Simpson.
1
Sumário
1 Introdução 3
2 A transformação do espectro em parâmetros de ondas 3
2.1 Selecionando um ponto no espaço . . . . . . . . . . . . . . . . . . . . . 3
2.2 Selecionando um intervalo no tempo . . . . . . . . . . . . . . . . . . . . 4
2.3 Transformando o espectro em elevação . . . . . . . . . . . . . . . . . . . 4
2.4 Unindo os segmentos da série temporal . . . . . . . . . . . . . . . . . . . 6
2.4.1 Otimização das uniões entre segmentos . . . . . . . . . . . . . . . . 6
2.4.2 Suavização das uniões entre segmentos . . . . . . . . . . . . . . . . 8
3 Variáveis de saída 9
4 Modo Overview 11
5 show points 11
6 Fontes de dados 12
6.1 elevation file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.2 spectrum file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7 O arquivo de parâmetros 13
7.1 A sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.2 Codificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
8 Parâmetros do Spec2Wave 15
8.1 Parâmetros disponíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9 Interface de linha de comando 24
10 Exemplo de utilização 25
10.1 Localizando um ponto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10.2 Definindo o período de tempo . . . . . . . . . . . . . . . . . . . . . . . 25
10.3 Citando este documento . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11 Bancos de dados disponíveis 28
11.1 DB001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11.2 DB002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Referências 29
Índice 30
2
1 Introdução
O programa Spec2Wave não possui uma interface gráfica por motivos de falta de tempo e
excesso de preguiça de quem vos fala. Além disso, o Fortran não é uma linguagem apropriada
para interfaces gráficas devido à falta de bibliotecas necessárias (que, por sua vez, são devido ao
abandono do desenvolvimento da linguagem por quase 20 anos depois do Fortran 77). Sim, o
programa poderia ter sido feito em uma linguagem mais moderna, mas isso exigiria mais tempo,
o que, na época em que o programa foi feito, não era o recurso meu recurso mais abundante.
Mas, voltando ao programa: a comunicação com o usuário é feita através de um arquivo
de parâmetros que configura o programa de acordo com as necessidades do usuário. A seção 7
mostra como criar e configurar esse arquivo para extrair os dados do banco de dados. A seção 8
lista os parâmetros que podem ser utilizados no arquivo de parâmetros.
No entanto, vários dos parâmetros dos programa não são óbvios pois são relacionados a
uma etapa específica do processo de transformação dos dados, desde a forma espectral até o
salvamento dos arquivos de resultados. Portanto, antes de apresentar os parâmetros, a seção 2
deste manual descreverá (não tão) brevemente o funcionamento do programa para então, na
seção 8, mostrar como o usuário pode modificar o comportamento do programa.
A intenção das primeiras seções (2 a 5) é familiarizar o usuário com o funcionamento do
programa que está utilizando (algo surpreendentemente incomum!), e das seções finais (7 a 9)
é servir como manual de consulta ao operar o programa. Ao final do manual, há também um
exemplo de utilização (10), e um Índice para facilitar a busca por algum parâmetro.
𝑡
passo 𝑖 + 0 passo 𝑖 + 1 passo 𝑖 + 2
𝛥𝑡s
3
A ilustração representa uma sequência de 3 passos de tempo de comprimento 𝛥𝑡s consecu-
tivos, cada qual com seu espectro. O retângulo tracejado delimita o domínio de validade de cada
espectro, que termina imediatamente antes do domínio do espectro seguinte começar.
4
O processo de transformação do espectro nas séries temporais de elevação da superfície é
feito conforme descrito em Oleinik et al. (2021). A transformação do espectro, junto com o
algoritmo de suavização e o processo de transformação da elevação em velocidades orbitais, são a
base de funcionamento do Spec2Wave.
Nota: A transformação do espectro em uma série temporal de elevação da superfície exige a
criação de um espectro de fase aleatório. Esse espectro aleatório é necessário para garantir
que não haja efeito de ressonância entre as componentes discretas do espectro de amplitude.
O Spec2Wave utiliza a função random_number nativa do GNU Fortran, que utiliza
o algoritmo xorshift1024* (Marsaglia, 2003) para a geração de números aleatórios
uniformemente distribuídos. Estes, por sua vez, são mapeados para uma distribuição
normal utilizando a forma polar (Knop, 1969) da transformada de Box e Muller (1958).
O gerador de números aleatórios do GNU Fortran pode ser “semeado” com um vetor
de números inteiros. A semente é utilizada como um ponto de partida para o gerador de
números, e a partir dela a geração dos números é aleatória, porém, determinística. Assim,
para uma mesma semente os números aleatórios gerados serão os mesmos, garantindo
reprodutibilidade dos dados gerados. Mais informações sobre o gerador de números
aleatórios podem ser encontradas no manual do GNU Fortran (https://gcc.gnu.
org/onlinedocs/gcc-5.4.0/gfortran.pdf).
5
Essas condições permitem “arrastar” a função dentro do seu domínio sem perda de continuidade
(imagine uma função senoidal de período 𝑇, e uma janela de largura também 𝑇 que pode se
mover pelo eixo da função: qualquer que seja a posição da janela, a senoide será contínua no
intervalo 𝑇).
Nota: Essa condição de continuidade exige que alguns requisitos sobre a natureza da função
sejam satisfeitos, dentre eles o da função ser Hermitiana (Gentleman e Sande, 1966).
Como todos esses critérios são satisfeitos pela função da elevação da superfície e pelos
espectros originais, a explicação omite esses detalhes.
6
de 𝜂 sobre 𝜂′ , e priorizar 𝜂′ sobre 𝜂″ . Ao alterar o valor de least squares coef, leve em conta
que os coeficientes são elevados ao quadrado na ponderação.
Seguindo com o exemplo, o programa toma o último valor de 𝜂, 𝜂′ , e 𝜂″ (𝜂″ é omitido, mas
o princípio é o mesmo) no primeiro segmento como referência, e busca, ao longo do segundo
segmento, o ponto em que a soma dos quadrados das diferenças ponderadas dessas variáveis é
mínimo (essa soma é chamada de “badness”). Na figura, a linha que corta o segundo segmento
mostra o valor de 𝜂 no final do primeiro segmento, e as tangentes mostram o valor de 𝜂′ :
O programa então “arrasta” o segmento em questão até o ponto em que o badness é mínimo,
colocando assim o segmento na posição ideal. A figura a seguir mostra o deslocamento do
segundo segmento:
O Spec2Wave tenta minimizar o badness abaixo de um limite máximo. Esse limite pode ser
alterado com maximum badness, cujo valor padrão é 0.05. Caso não seja possível o programa emite
um aviso na janela de comando dizendo o valor atingido. O valor de badness tende a aumentar
quando o segmento é muito curto, pois nesse caso o programa não tem muitas opções de pontos
para unir as séries temporais. O segmento pode ficar curto nas extremidades, dependendo do
valor de initial time e duration, ou quando valor de time step é muito grande. Dependendo
da situação o Spec2Wave dá uma dica da causa do problema.
Em alguns casos o valor de badness atingido é muito pouco acima do limite de maximum
badness. Nesses casos, ao invés de aumentar maximum badness, o usuário que se sentir desconfor-
tável com o aviso mostrado pelo programa pode ajustar manualmente a random seed utilizada
pelo programa para eliminar o aviso (use show seed para ver a semente utilizada pelo programa).
7
Vale enfatizar que essa manipulação terá apenas uma pequena influência no valor de badness e só
ajudará quando a diferença entre o valor atingido e o valor limite for pequena.
Perceba que no exemplo a primeira união ficou (visualmente) boa, não aparentando des-
continuidade em 𝜂 nem em 𝜂′ (evidenciado pela variação suave da inclinação da curva de 𝜂).
No entanto, na segunda união, embora a elevação da superfície esteja aparentemente correta,
há uma “dobra” na função, o que caracteriza uma descontinuidade na velocidade da superfície.
O processo a seguir trata de suavizar essa dobra.
𝑌(𝑡) = (2𝑡3 − 3𝑡2 + 1)𝑦1 + (𝑡3 − 2𝑡2 + 𝑡)𝑦1′ + (−2𝑡3 + 3𝑡2 )𝑦2 + (𝑡3 − 𝑡2 )𝑦2′
onde 𝑦 é o valor da função e 𝑦′ é a sua derivada. O subscrito 1 indica o ponto inicial do intervalo
a interpolar e 2 o ponto final. A variável 𝑡 indica o domínio normalizado da interpolação, no
intervalo fechado [0, 1].
Para suavizar as uniões entre segmentos o Spec2Wave descarta 𝑁𝑆 pontos de dados de
cada lado da união e então utiliza o ponto 𝑁𝑆 + 1 para interpolar uma spline em cada um dos 𝑁𝑆
pontos removidos. Devido à condição de inclinação imposta na spline, o valor calculado para o
ponto 𝑁𝑆 coincidirá com o valor original então, na prática, o processo altera o valor da elevação
em 2(𝑁𝑆 − 1) pontos.
Tomando como exemplo uma situação similar à segunda união do exemplo anterior (as
linhas são ilustrativas; os pontos representam os dados):
𝑁𝑆
⋯
3
2
10
2 10
3
⋯
𝑁𝑆
8
Os pontos na ilustração acima estão numerados de 1 a 𝑁𝑆 (5 no exemplo, valor padrão do
programa), que é o número de pontos utilizados pelo Spec2Wave para fazer a interpolação das
uniões. O programa permite modificar o valor de 𝑁𝑆 usando o parâmetro spline length. O
valor de 𝑁𝑆 deve ser maior ou igual a 2. Qualquer outro valor é ignorado.
Nota: O valor mínimo de 𝑁𝑆 é 2 pois, caso contrário, a interpolação seria feita, efetivamente,
em zero pontos. Portanto o programa limita 𝑁𝑆 a um mínimo de 2. Limitando 𝑁𝑆
a esse mínimo, o comprimento de um segmento também é limitado, em um mínimo
de 2𝑁𝑆,min = 4. Caso seja detectado um segmento mais curto que isso, o programa
automaticamente junta-o ao segmento adjacente antes mesmo de fazer a transformação
do espectro.
Nota: Além desse mínimo, o programa sugere outro valor mínimo para o comprimento de um
“bom” segmento. Esse mínimo é de 32 pontos de dados e não é configurável. Quando o
programa encontra um segmento menor que esse mínimo próximo a outro segmento longo
o suficiente, o número de pontos desse segmento curto é adicionado ao segmento longo
adjacente e o segmento curto é eliminado. Esse limite de um “bom” segmento é sugerido
para assegurar uma qualidade mínima (mínima, não suficiente) ao conjunto de dados
gerado. A IDFT aplicada a esses segmentos muito curtos tende a retornar valores mais
baixos do que o correto, portanto se o resultado do programa não estiver representando
bem o espectro original, é possível que os segmentos estejam demasiadamente curtos (nesse
caso o Spec2Wave entrará em pânico e mostrará vários avisos na janela de comando).
Agora o leitor é convidado a parar a leitura desse parágrafo e pular para o próximo.
O Spec2Wave (intencionalmente) não permite mudar o número de pontos de um “bom”
segmento. No entanto, caso o usuário sinta a necessidade, o efeito desse parâmetro pode
ser desabilitado usando o parâmetro I know what I am doing. Lembrando que o autor
não se responsabiliza por mau uso do programa.
Voltando ao exemplo, o algoritmo usa o valor de 𝜂 e 𝜂′ dos pontos 𝑁𝑆 + 1 (omitidos da
figura) na equação da spline para fazer a interpolação nos demais pontos nesse intervalo:
o programa então substitui os valores originais pelos valores suavizados com a interpolação,
diminuindo assim possíveis problemas de descontinuidade tanto na elevação da superfície quanto
na velocidade.
3 Variáveis de saída
Após fazer todo o processo de transformação do espectro em uma série temporal de elevação da
superfície (𝜂), o Spec2Wave prepara as variáveis de saída. O Spec2Wave tem um conjunto de
9
variáveis de saída implementadas. Caso alguma outra variável seja necessária contate o autor para
solicitar a implementação.
Há dois tipos de variáveis: temporais e espectrais. As variáveis temporais são todas obtidas
a partir da série temporal de 𝜂 e obedecem todos os parâmetros do programa conforme explicado
na seção 2. As variáveis espectrais (na falta de um nome mais adequado) são variáveis calculadas
a partir do espectro do banco de dados. Há muitas diferenças entre esses dois tipos de variáveis,
portanto o Spec2Wave foi dividido em três modos de operação: normal (padrão), overview, e
show points. O modo normal opera conforme descrito na seção 2, transformando o espectro
em 𝜂, unindo segmentos etc. Os modos overview e show points servem a propósitos bastante
diferentes, portanto serão descritos separadamente, nas seções 4 e 5, respectivamente.
As variáveis disponíveis para o parâmetro variables nesta versão do Spec2Wave são:
Variável Unidade Descrição
t time [s] Tempo desde o início da série temporal. O último valor do tempo
será igual a duration.
h elevation [m] Elevação da superfície obtida transformando o espectro do banco
de dados em uma série temporal (𝜂).
u velocity_u [m/s] Componente horizontal do vetor de velocidade orbital da água.
Essa variável assume valores diferentes dependendo da pro-
fundidade. Para escolher os valores de profundidade use o
parâmetro depth profile.
w velocity_w [m/s] Componente vertical do vetor de velocidade orbital da água, aná-
loga de velocity_u na direção vertical.
Diferente do modo de operação “normal” do Spec2Wave, o modo overview deve ser
explicitamente ativado usando o parâmetro overview com as variáveis que o programa deve
coletar. E as variáveis disponíveis para o parâmetro overview são:
Variável Unidade Descrição
Hs wave_height [m] Altura significativa espectral.
Tm mean_period [s] Período espectral médio.
Dm mean_direction [°]† Direção espectral média.
Tp peak_period [s] Período do pico espectral.
Pw wave_power [kW/m] Potencial energético por metro de crista de onda.
†
A unidade da direção média pode ser alterada com o parâmetro direction convention.
As componentes de velocidade orbital são calculadas, em cada profundidade 𝑧 a partir da
elevação da superfície usando as equações:
2𝜋𝜂 cosh(𝑘(𝑑 + 𝑧))
𝑢(𝑧) =
𝑇 sinh(𝑘𝑑)
e
d 2𝜋𝜂 sinh(𝑘(𝑑 + 𝑧))
𝑤(𝑧) =
d𝑡 𝑇 sinh(𝑘𝑑)
onde 𝑇 é o período das ondas 𝑘 é o número de onda (𝑘 = 2𝜋/𝐿 com 𝐿 sendo o comprimento da
onda), 𝑑 é a profundidade média da água, e 𝑧 é a profundidade de cálculo dada no parâmetro
depth profile.
As variáveis espectrais são calculadas pela integração do espectro direcional utilizando o
mesmo procedimento que o Tomawac (Awk, 2019).
10
4 Modo Overview
Antes de utilizar o Spec2Wave para extrair dados de um ponto específico no espaço e no tempo,
pode ser de interesse do usuário fazer um reconhecimento prévio do banco de dados que está
utilizando. Essa é a função do modo overview.
Esse modo é ativado usando o parâmetro overview com uma das variáveis espectrais dispo-
níveis (Hs, Tm, Dm, Tp, e Pw—ver seção 3). Quando esse modo é ativado somente os parâmetros
necessários são utilizados, os demais são ignorados. O modo overview é desativado por padrão, e
para desativá-lo basta remover (ou comentar) o parâmetro overview.
No modo overview os únicos parâmetros necessários no arquivo de parâmetros do
Spec2Wave são: overview para ativar este modo, database para dizer ao programa de onde
buscar os dados, e mesh node para especificar o ponto no espaço de onde extrair a informação.
Alguns outros parâmetros também são utilizados mas não são obrigatórios; o escopo de cada
parâmetro é detalhado na seção 8.
No modo overview o Spec2Wave lê todo o arquivo de banco de dados no ponto solicitado
e, para cada passo de tempo do banco de dados, calcula as variáveis espectrais solicitadas. Para
calcular as variáveis espectrais o Spec2Wave utiliza uma adaptação do procedimento de cálculo
dessas variáveis obtido do código do Tomawac. Para maiores informações sobre o cálculo dessas
variáveis o leitor é direcionado ao manual de usuário do Tomawac (Awk, 2019).
Após calculadas as variáveis solicitadas o programa salva-as nos respectivos arquivos de
saída e termina a execução.
5 show points
Além do modo overview o Spec2Wave tem um terceiro modo de operação. Esse modo é ativado
com o parâmetro show points. Nesse modo de execução o Spec2Wave irá apenas ler o arquivo
de banco de dados e apresentar os pontos disponíveis para a extração de dados. Nenhuma outra
informação é extraída neste modo.
No modo show points, o Spec2Wave apresenta as informações disponíveis de cada ponto
no banco de dados. O modo show points pode apresentar as informações na janela de comando,
ou salvá-las em um arquivo kml (Keyhole Markup Language), se o nome do arquivo for dado
como argumento para o parâmetro. Por exemplo, se usado com show points = nodes.kml, o
Spec2Wave criará um arquivo chamado nodes.kml que conterá as informações sobre os pontos.
Esse arquivo pode ser carregado em Atlas virtuais, como o Google Earth, ou o kde Marble, entre
outros, para obter uma representação gráfica dos pontos disponíveis.
Se for usado sem um argumento (i.e.: apenas show points ), o show points mostrará na
janela de comando, para cada ponto selecionado (ou todos os pontos disponíveis no banco de da-
dos, se nenhum for selecionado), um bloco mostrando o número do nó (para ser posteriormente
utilizado no parâmetro mesh node), as coordenadas geográficas desse ponto, e a profundidade da
água naquele ponto, conforme o exemplo:
Node 2
Coordinates: -54° 36' 31.03", -34° 14' 38.82"
Water depth: 9.805011 m.
Bancos de dados mais recentes possuem metadados associados aos pontos disponíveis. Esses
metadados são informações auxiliares sobre cada ponto (pontos diferentes podem conjuntos
11
de metadados diferentes), além das informações básicas apresentadas acima. Por exemplo, um
ponto com informação de distância da linha de costa e um nome:
Node 28
Coordinates: -53° 23' 7.61", -33° 45' 14.69"
Water depth: 9.882934 m.
Coastline distance: 207.025 m.
Name: Barra do Chuí 1
O nome (metadado Name) pode ser utilizado, ao invés de mesh node, para selecionar o ponto de
onde extrair dados usando o parâmetro point name. Para o ponto do exemplo acima, a instrução
mesh node = 28 é completamente equivalente a point name = Barra do Chuí 1.
6 Fontes de dados
O Spec2Wave funciona primariamente com um banco de dados binário que contém dados
espectrais de diversos pontos no espaço, ao longo de um determinado intervalo de tempo. Esse
banco de dados é o arquivo que o Spec2Wave lê quando o parâmetro database é utilizado.
No entanto, criar um banco de dados nesse formato é um processo relativamente demorado,
pois envolve a realização de uma simulação de ondas na região onde se deseja obter os dados, com
planejamento prévio de quais pontos serão exportados para o banco de dados, e qual o período
de tempo que será simulado.
Para que possa ser utilizado com outras fontes de dados, o Spec2Wave aceita, em substi-
tuição do database, outros dois parâmetros para indicar uma fonte de dados: elevation file e
spectrum file. Esses parâmetros e database são mutuamente exclusivos.
Quando o usuário tiver uma série temporal de elevação da superfície, seja essa obtida de um
modelo computacional, físico, ou de monitoramento in situ, ela poderá ser usada como fonte de
dados para o Spec2Wave.
A série temporal deverá ser um arquivo de texto com tantas linhas quanto for o número de
instantes de tempo registrados da série temporal. Alternativamente, a série temporal pode ser
dada no formato de arquivo do Fluent. O formato do arquivo é detectado automaticamente.
Os registros devem ser igualmente espaçados no tempo, e o intervalo de tempo entre
cada registro deve ser informado, em segundos, no parâmetro input time step. Os valores
instantâneos de elevação da superfície devem estar em metros, medidos a partir do nível médio
da água (positivo para cima). Além disso, a profundidade da coluna d’água deve ser informada
com o parâmetro water depth. A tendêcia linear média da elevação é subtraída dos dados para
que o valor médio da elevação seja zero.
Quando utilizando o elevation file, os parâmetros initial time e duration referem-se
ao comprimento total da série temporal, e podem ser usados para cortar a série temporal conforme
necessário. Além disso, é possível alterar o passo de tempo de saída usando data interval.
Para casos mais específicos, em que uma série temporal de elevação não basta, o Spec2Wave
funciona também com um spectrum file. Os dados espectrais podem ser obtidos de qualquer
fonte, mas devem ser ajustados para o formato de arquivo que o Spec2Wave espera. Além disso,
12
assim como para o elevation file, a profundidade da coluna d’água deve ser informada para o
programa usando water depth.
O cabeçalho do arquivo contém duas linhas: na primeira constam o número de direções
𝑁𝑑 e o número de frequências 𝑁𝑓 do espectro discretizado, e na segunda, 𝑁𝑓 colunas contendo
cada uma das frequências discretizadas.
Depois do cabeçalho, inicia-se o corpo do arquivo, que contém os dados espectrais, de fato,
separados em blocos, cada um representando um passo de tempo. Cada bloco contém 1 + 𝑁𝑑
linhas; a primeira linha contém o valor do instante de tempo, em segundos, e as demais linhas
contém o espectro 𝒮𝑖,𝑗 [m2/Hz] para cada direção 𝑖 (linhas) e frequência 𝑗 (colunas) discretizada.
O esquema abaixo ilustra a estrutura básica do arquivo, e ao lado apresenta um arquivo exemplo
com espectro discretizado em 4 direções e 5 frequências, em 2 instantes de tempo.
𝑁𝑑 𝑁𝑓 4 5
cabeçalho
𝑓1 𝑓2 … 𝑓𝛮𝑓 0.03333 0.07801 0.18257 0.42728 1.00000
𝑡1 0.00000
𝒮1,1 𝒮1,2 … 𝒮1,𝛮𝑓 1.60e-9 8.65e-9 1.50e-8 1.76e-8 4.83e-7
𝒮2,1 𝒮2,2 … 𝒮2,𝛮𝑓 instante 𝑡1 4.39e-5 1.94e-3 1.51e-2 4.10e-2 8.42e-2
⋮ ⋮ ⋮ 0.12e+0 3.68e-2 2.08e-2 1.92e-2 1.86e-2
𝒮𝛮𝑑 ,1 𝒮𝛮𝑑 ,2 … 𝒮𝛮𝑑 ,𝛮𝑓 1.68e-2 1.23e-2 7.50e-3 3.97e-3 1.96e-3
𝑡2 900.000
𝒮1,1 𝒮1,2 … 𝒮1,𝛮𝑓 3.23e-9 3.67e-9 8.98e-7 1.22e-8 3.49e-7
𝒮2,1 𝒮2,2 … 𝒮2,𝛮𝑓 instante 𝑡2 4.80e-5 2.11e-3 1.61e-2 4.21e-2 8.54e-2
⋮ ⋮ ⋮ 0.13e+0 3.68e-2 2.05e-2 1.87e-2 1.81e-2
𝒮𝛮𝑑 ,1 𝒮𝛮𝑑 ,2 … 𝒮𝛮𝑑 ,𝛮𝑓 1.63e-2 1.19e-2 7.29e-3 3.87e-3 1.90e-3
7 O arquivo de parâmetros
O arquivo de parâmetros é a principal interface entre o usuário e o programa. Esse é um arquivo
de texto simples, sem formatação, que contém os parâmetros a passar para o programa. Esta
seção especifica a sintaxe do arquivos de parâmetros e algumas especificidades sobre a codificação
desse arquivo.
O programa aceita que o arquivo de parâmetros tenha qualquer caractere válido, no entanto
caracteres “especiais” têm o péssimo costume de causar problemas. Se o programa não estiver se
comportando como deveria com o arquivo de parâmetros (ou qualquer outro problema) sinta-se
à vontade para entrar em contato que tentarei resolver o problema o mais rápido possível.
7.1 A sintaxe
O programa lê o arquivo de parâmetros linha por linha, portanto a ordem em que os parâmetros
são colocados é importante. Para a maioria dos parâmetros a ordem não importa, exceto se um
parâmetro for utilizado mais de uma vez. Nesse caso o comportamento é indefinido, e qualquer
coisa pode acontecer. A duplicação de parâmetros deve ser evitada.
13
O interpretador do arquivo de parâmetros ignora linhas vazias, portanto essas podem ser
usadas à vontade. O interpretador também permite “comentar” partes do arquivo de parâmetros
utilizando o caractere ‘!’. Como consequência, o caractere ‘!’ não pode ser utilizado no arquivo
de parâmetros com seu significado normal. O programa trata como comentário qualquer texto
desde o primeiro ‘!’ até o final da linha, portanto:
! Esse é o arquivo do banco de dados:
database: banco_de_dados.dtb ! <<< Obrigatório
é uma instrução válida e idêntica a
database: banco_de_dados.dtb
Na maioria dos casos o interpretador não faz distinção de maiúsculas e minúsculas, à exceção
dos parâmetros que indicam nomes de arquivos e pastas, portanto:
DaTaBaSe: BaNcO_De_DaDoS.DtB
é válido desde que o arquivo “BaNcO_De_DaDoS.DtB” exista.
Espaços antes e depois de parâmetros e do valor passado aos parâmetros são removidos,
mas não no meio de um parâmetro, portanto das instruções abaixo, apenas a primeira é válida (
representa um espaço):
mesh node : 123456 ! Válido
mesh node : 123456 ! Inválido
mesh node : 123 456 ! Inválido
A terceira instrução é inválida pois há dois números (123 e 456) no parâmetro mesh node, que só
aceita um.
O separador decimal utilizado é o ‘.’ portanto 123.456 é um número e 123,456 são dois.
Para separar listas pode-se usar tab, espaço, vírgula, e ponto-e-vírgula (uma sequência de separa-
dores é tratada como um único separador), portanto as duas instruções abaixo são válidas e têm
o mesmo efeito:
random seed: 12, 34; 56 78
random seed: 12;;;34;;56; 78
Alguns parâmetros não levam um valor, como os mostrados acima, mas apenas modificam
o comportamento do programa de alguma forma. Esses parâmetros são colocados sozinhos em
uma linha, por exemplo:
no warnings
Alguns parâmetros têm modificadores. O modificador altera o comportamento normal do
parâmetro. O modificador é um * logo após o ‘:’ que separa o parâmetro do valor (espaços tam-
bém são ignorados antes e depois do *). Portanto as duas instruções abaixo têm comportamentos
diferentes:
output path : * resultados ! Cria a pasta se necessário
output path : resultados ! Exibe um erro se a pasta não existe
7.2 Codificação
Codificação de arquivos de texto sempre é um problema. O Spec2Wave tenta o possível para
entender o arquivo de parâmetros dado, mas ainda assim ele falha em várias situações.
O melhor a se fazer é salvar o arquivo de parâmetros sem codificação (ou codificação ascii
ou ascii estendido (incorretamente denominada ansi, quando se referindo ao subconjunto
Windows-1252) ou com uma codificação simples, como utf-8. O Spec2Wave consegue
entender outras codificações, mas a leitura do arquivo é mais propensa a erros.
14
O Spec2Wave geralmente consegue adivinhar a codificação do arquivo sem maiores
problemas. No entanto, quanto à codificação de arquivos o melhor que se pode fazer é adivinhar,
e isso nem sempre funciona. Se o Spec2Wave não conseguir adivinhar a codificação correta do
seu arquivo você pode dizer a codificação utilizando a opção de linha de comando --encoding
(ver seção 9). Se nada disso funcionar a melhor opção é salvar o arquivo com outra codificação.
8 Parâmetros do Spec2Wave
Essa seção lista os parâmetros disponíveis para configurar o Spec2Wave. Cada bloco apresenta
um parâmetro, a sua sintaxe, alguns atributos, e uma descrição da sua funcionalidade.
Na lista abaixo, na sintaxe dos parâmetros, os que estão marcados com * têm modificador,
conforme descrito na seção 7.1. Ainda na sintaxe, texto exibido entre ⟨…⟩ representa o tipo de
informação que deve ser inserida, por exemplo um ⟨número real⟩ deve ser substituído por um
número real (!).
Argumentos que são uma ⟨lista{…}⟩ devem ser substituídos por uma lista válida (conforme
definidas na seção 7.1) de ⟨…⟩.
Argumentos entre ( … ) são listas de valores predefinidos. Nesse contexto o separador ‘|’
indica que os itens da lista são mutuamente exclusivos—i.e.: apenas um pode ser utilizado—, e
o separador ‘;’ significa que o argumento pode ser uma lista com um ou mais dos valores entre
( … ) (por exemplo, em ( a | b | c ), apenas a, b, ou c podem ser utilizados, enquanto em ( a ; b ; c )
qualquer combinação de a, b, e c é válida).
Argumentos entre [ … ] são opcionais. Por exemplo, o parâmetro show points tem um
argumento opcional [ ⟨nome de arquivo⟩ ]: se o argumento for omitido, o Spec2Wave exibe
os pontos na janela de comando, mas se o ⟨nome de arquivo⟩ for dado, um arquivo kml é salvo,
contendo informações sobre os pontos.
• Um ⟨número real⟩ válido é qualquer número no intervalo [−1.8 × 10308 , −1.8 × 10308 ]
(aproximadamente), desde que seja um valor válido para o parâmetro em questão. O
número pode ser dado em notação decimal ou exponencial. Se não houver, a parte decimal
pode ser omitida e o número pode ser escrito como um inteiro.
• Um ⟨nome de arquivo⟩ válido é um nome que aponta para um arquivo que existe na
pasta atual ou o caminho completo para um arquivo existente. O ⟨nome de arquivo⟩ não
pode conter o caractere ‘!’, o caractere de fim de linha, ou qualquer outro caractere não
permitido pelo sistema operacional.
• Um ⟨identificador ⟩ válido é uma sequência de caracteres que apontam para uma unidade
válida do programa ou do banco de dados, dependendo do contexto.
15
8.1 Parâmetros disponíveis
16
direction convention direction convention : *( nautical | trigonometrical ) apenas modo overview
Convenção utilizada para resultados de direção. padrão: nautical
nautical trigonometrical
0° 90°
180° 270°
*: O resultado é calculado em radianos, ao invés do padrão, em graus.
Configura a profundidade (𝑑, ver seção 3) da água no ponto modo overview: ignorado
selecionado para análise. Por padrão, o Spec2Wave utiliza a unidade: [m]
profundidade obtida do banco de dados para os cálculos. Se este
parâmetro for utilizado, o valor obtido do banco de dados é sobrescrito.
Deve-se tomar cuidado ao utilizar este parâmetro, pois as variáveis do estado de mar são
simuladas levando em conta o valor de profundidade do banco de dados, e alterações muito signi-
ficativas no valor da profundidade podem levar à geração de informações incoerentes. Idealmente,
este parâmetro só deve ser utilizado para fazer pequenos ajustes na profundidade.
17
input time step input time step : ⟨número real⟩ modo overview: ignorado
Define o intervalo de tempo, em segundos, dos dados de unidade: [s]
entrada de elevação da superfície lidos usando elevation ver também: elevation file
file. Quando os dados são lidos usando elevation file, o
parâmetro input time step é obrigatório; caso contrário, é ignorado.
2. se usa elevation file com time step diferente de input time step;
least squares coef least squares coef : ⟨lista{número real}⟩ modo overview: ignorado
Coeficientes utilizados na soma de mínimos quadrados das va- padrão: 4, 2, 1
riáveis 𝜂, 𝜂′ , e 𝜂″ , respectivamente, na etapa de otimização das
uniões. O valor passado para esse parâmetro deve ser uma lista de três números inteiros estrita-
mente positivos. O valor do coeficiente representa o peso relativo de cada variável no cálculo da
soma de mínimos quadrados e pode influenciar qual variável é otimizada na etapa de união dos
segmentos (ver seção 2.4.1).
18
mesh node mesh node : *⟨número inteiro⟩ obrigatório†
Define o ponto no espaço de onde os dados serão extraídos do modo overview: obrigatório†
banco de dados. O ⟨número inteiro⟩ se refere ao número do ver também: point name
nó da malha utilizada para a simulação que originou o banco
de dados. Como não são salvos os dados de todos os pontos dessa malha, a numeração não é
consecutiva. O programa avisará se o ponto selecionado não possui dados disponíveis. Nesse
caso deve ser escolhido outro ponto ou outro banco de dados que contém o ponto solicitado.
†: A critério do usuário, point name pode ser utilizado para indicar o ponto de extração dos
dados em substituição de mesh node.
*: No modo show points é possível utilizar uma ⟨lista{número inteiro}⟩ para determinar
quais pontos serão listados. Neste modo, o parâmetro mesh node é opcional, e se não for
informado, o valor padrão é todos os pontos do banco de dados.
no errors no errors �
Não use esse parâmetro. Desabilita a impressão de erros na janela de comando. padrão: falso
Por razões óbvias o programa ainda abortará a execução ao encontrar um erro.
Esse parâmetro apenas faz com que a causa do erro não seja mostrada na janela de comando,
apenas dificultando a solução do problema.
no warnings no warnings �
Desabilita a impressão de avisos na janela de comando. Assim como com padrão: falso
o parâmetro no errors, o comportamento do programa não muda quando
esse parâmetro é utilizado, os avisos são apenas omitidos. A utilização desse parâmetro não é
recomendada, por os avisos são emitidos por um bom motivo.
19
output format output format : ( plain | fluent ) padrão: plain
Define o formato dos arquivos de saída do Spec2Wave. Os formatos dispo-
níveis nesta versão do programa são:
plain: sem formatação adicional: cada variável é salva em um arquivo, e as variáveis calculadas ao
longo da profundidade também são salvas em um arquivo por profundidade de cálculo.
O arquivo contém uma coluna e tantas linhas quanto o número de passos de tempo do
resultado.
fluent: formato de entrada de dados no ANSYS Fluent: cada arquivo contém um cabeçalho
com o nome da variável e o número de passos de tempo do arquivo, em seguida há o
vetor de tempo em uma coluna e tantas linhas quanto o número de passos de tempo e,
finalmente, outro vetor com os dados da variável em questão, também em uma coluna,
com o mesmo número de linhas do vetor de tempo. Cada variável é salva em um arquivo,
e as variáveis calculadas ao longo da profundidade também são salvas em um arquivo por
profundidade de cálculo.
Caso seja necessário outro formato de arquivo, entre em contanto e forneça a especificação
do formato.
20
precision precision : ⟨número inteiro⟩ padrão: ≈ 16
Define o número de dígitos decimais nos arquivos de resultado. O valor de
precision é por padrão ≈ 16 pois é o limite de precisão de um número real de 64 bits (double
precision). Dígitos decimais além desse limite não representam o dado, mas a sua representação
binária mais próxima, portanto um valor maior não é permitido.
O valor 16 é aproximado pois é o número de posições decimais representável para números
de ordem de grandeza 100 . A representação de números de ordens de grandeza superiores reduz
o número de posições decimais úteis quando utilizando notação decimal.
Quando a precisão não é especificada o Spec2Wave tenta comprimir o formato do número
para economizar espaço. Quando precision é dado esse comportamento é desativado e o
número de posições decimais é fixo.
Esse parâmetro só tem efeito no arquivo de resultados. Internamente todos os números
reais são representados com double precision.
21
show points show points : [ ⟨nome de arquivo⟩ ] padrão: falso
Faz com que o programa mostre na janela de comando os pontos disponíveis
no banco de dados que podem ser utilizados posteriormente no parâmetro mesh node ou point
name para a extração de dados. Utilizando esse parâmetro faz com que o programa mostre a lista
de pontos (conforme exemplo na seção 5) e termine a execução.
O único parâmetro obrigatório nesse modo de execução é database, mas se mesh node ou
point name forem dados, o show points mostra apenas os pontos selecionados, caso contrário
todos os pontos disponíveis no banco de dados são mostrados. Os demais parâmetros são
ignorados.
Se o ⟨nome de arquivo⟩ for dado, ao invés de mostrar as informações sobre os pontos na
janela de comando, o Spec2Wave salva-os no arquivo ⟨nome de arquivo⟩ no formato kml
(Keyhole Markup Language). Este arquivo pode ser aberto para visualização em Atlas virtuais,
como o Google Earth ou kde Marble.
spectrum tail factor spectrum tail factor : ⟨número real⟩ apenas modo overview
Define o grau da função para levar em conta as altas frequências (não padrão: 5.0
discretizadas) do espectro no cálculo das variáveis espectrais. As
altas frequências são levadas em conta se o spectrum tail factor for maior que 1. O spectrum
tail factor e o valor padrão 5.0 são os mesmos definidos no Tomawac. Para mais informações
consulte o manual (Awk, 2019).
22
spline length spline length : ⟨número inteiro⟩ modo overview: ignorado
Define o número máximo de pontos utilizados em cada lado da padrão: 5
união dos segmentos para a suavização utilizando a interpolação
com spline cúbica (ver seção 2.4.2). O valor de spline length deve ser um numero inteiro maior
ou igual a 2. O mínimo de 2 é um limite do método, conforme discutido na seção 2.4.2.
Um número maior de pontos resulta em uma suavização maior da união porém, também,
pode resultar em perda de informação caso o produto spline length × data interval se apro-
xime de um período de onda.
Não é recomendado aumentar muito o spline length para compensar um badness alto.
Ao invés disso se sugere modificar o comprimento dos segmentos (usualmente maior é melhor)
ou modificar a random seed.
water specific mass water specific mass : ⟨número real⟩ apenas modo overview
Massa específica da água utilizada no cálculo do potencial energético padrão: 1025.0
do estado de mar (variável Pw), conforme definido no manual do unidade: [kg/m3 ]
Tomawac (Awk, 2019).
23
9 Interface de linha de comando
Algumas configurações podem (e outras devem) ser passadas para o programa antes da sua
inicialização utilizando a interface da janela de comando. Para utilizar o Spec2Wave pela janela
de comando utilize o nome do executável seguido pela lista de opções. Adicionalmente, se um
nome de arquivo é dado ao final da lista de opções, este é assumido ser o arquivo de parâmetros
para o programa. A sintaxe para executar o Spec2Wave pela janela de comando é:
spec2wave.exe [⟨opções⟩] [⟨arquivo de parâmetros⟩]
onde os argumentos entre […] são opcionais. Se o ⟨arquivo de parâmetros⟩ não for dado na
linha de comando, o programa executa em modo interativo, e pede um em seguida.
-b --basedir = ⟨diretório⟩
--basedir
Define o diretório base de trabalho do Spec2Wave. Se definido, todas as operações de
leitura e escrita de arquivos do Spec2Wave serão relativas a esse diretório. Essa opção é
útil quando se precisa processar o Spec2Wave em lotes, sem precisar modificar o arquivo
de parâmetros.
-e --encoding = ⟨codificação⟩
--encoding
Define a codificação utilizada para ler o arquivo de parâmetros do Spec2Wave. Essa
configuração só pode ser feita antes do programa abrir o arquivo para leitura, dessa forma
não há uma opção para a codificação na seção 8, pois já é muito tarde.
Na versão atual do Spec2Wave as codificações implementadas são ascii (sem codificação),
utf-8, utf-16 (tanto little endian quanto big endian). Outras codificações devem ser solicitadas,
se necessário (ver seção 7.2 sobre a codificação do arquivo de entrada).
-h --help
--help
Exibe um sumário das opções da linha de comando e termina a execução.
-E --no-errors
--no-errors
Tem o mesmo efeito do parâmetro no errors. As mesmas observações se aplicam.
-I --no-info
--no-info
Tem o mesmo efeito do parâmetro no info, porém, por ser processado antes da inicialização
do programa, o seu efeito é imediato, e nenhuma informação é exibida (diferente de no info,
que permite que o cabeçalho do programa seja exibido). De restante o comportamento é o
mesmo e as mesmas observações se aplicam.
-W --no-warnings
--no-warnings
Tem o mesmo efeito do parâmetro no warnings. As mesmas observações se aplicam.
24
10 Exemplo de utilização
O Spec2Wave é configurável de forma que cada aplicação vai exigir uma parametrização dife-
rente do programa. No entanto, todos os casos vão seguir um passo-a-passo similar. Suponhamos
que Karl está estudando um local da costa que tem dados no banco de dados DB002.
Karl escolhe um ponto adequado ao seu estudo, por exemplo, o ponto “Navio Altair 3”. Ao
selecionar o respectivo marcador, os metadados daquele ponto são exibidos, conforme mostra a
figura da direita acima. Os metadados “Mesh node” e “Name” são identificadores unicos deste
ponto nesse banco de dados, e um ou outro pode ser usado nos parâmetro mesh node ou point
name, respectivamente, para identificar este ponto.
Karl comenta a linha show points : points.kml , e indica o ponto escolhido usando
point name : Navio Altair 3 .
25
database : /home/karl/spec2wave/DB002
! show points : points.kml
point name : Navio Altair 3
overview : Time, Pw
Após executar o arquivo de parâmetros acima, o Spec2Wave criará dois arquivos na pasta
onde foi executado: Time_T_17664.txt, e Wave_Power_Pw_17664.txt. O nome dos arquivos é
composto pelo nome da variável, e pelo “Mesh node” daquele ponto. Karl usa sua ferramenta de
criação de gráficos preferida3 para criar o gráfico de Pw pelo tempo:
Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez
25
20
Pw (kW/m)
15
10
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30×106
Time (s)
de onde observa que o evento com maior Pw ocorreu no instante de tempo de 16 218 900 s,
equivalente a um instante no dia 6 de Julho4 . Assim, Karl utilizará initial time : 16218900 no
seu arquivo de parâmetros, que definirá o instante inicial do banco de dados a ser utilizado para a
obtenção dos dados.
Ainda é necessário, para restringir o intervalo de extração de dados, definir a duração total, e
o intervalo entre os dados. Karl pretende, por enquanto, apenas fazer testes de independência de
malha e de passo de tempo, portanto julgou que uma duração de 900 s (15 min) será suficiente,
portanto escreveu duration : 900 .
Karl fará testes de passo de tempo de 0.1 s, 0.2 s, e 0.3 s, portanto utilizará time step : 0.1
em todos os casos, e mudará o valor de data interval de acordo. No caso de ser necessário
reproduzir a mesma “forma” da elevação da superfície com diferentes passos de tempo, o valor de
time step deve ser sempre o menor que se pretende utilizar.
Partindo do mesmo princípio, como Karl pretende extrair a mesma série temporal de
elevação da superfície, mas com resoluções temporais diferentes é necessário fazer com que o
espectro de fase utilzado seja sempre o mesmo. Para tal, é necessário afixar uma semente para o
gerador de números aleatórios (ver nota sobre o GNU Fortran na seção 2.3). Karl está com
preguiça e utiliza random seed : 1 2 3 4 5 6 no seu arquivo de parâmetros, mas o mais correto,
para garantir um resultado realmente aleatório, seria executar o programa uma vez com show
seed, e então utilizar a semente gerada nas rodadas subsequentes.
Karl então define as profundidades ao longo da coluna d’água onde as velocidades orbitais
das ondas serão calculadas. O canal de ondas utilizado teve sua fronteira de velocidades prescritas
dividida em 10 partes iguais, até a profundidade de 9.2 m. Como as velocidades são referentes
ao centro de cada seção, as profundidades utilizadas são:
3
Não é o Excel :)
4
Se estiver lendo este documento no Acrobat Reader, clique no gráfico para ver as coordenadas dos pontos.
26
depth profile : 0.46, 1.38, 2.3, 3.22, 4.14, 5.06, 5.98, 6.9, 7.82, 8.74
Uma fórmula prática para o cálculo dessas profundidades no caso específico de seções de
tamanho igual, com velocidades prescritas em seu centro é
𝑑
𝑑𝑖 = (0.5 + 𝑖), com 𝑖 = 0, … , 𝑛 − 1
𝑛
onde 𝑑 é a profundidade total, e 𝑛 é o número de divisões.
Finalmente, Karl adiciona o output format : fluent no seu arquivo, para ter os dados no for-
mato que o Fluent lê, e adiciona também output path : * dados_indep para que o Spec2Wave
salve os arquivos de saída em uma pasta própria. Com isso, Karl concluiu a parametrização do
Spec2Wave para o seu estudo, com um arquivo contendo:
database : /home/karl/spec2wave/DB002
! show points : points.kml
point name : Navio Altair 3
! overview : Time, Pw
initial time : 16218900
duration : 900
time step : 0.1
data interval : 0.3 ! também com 0.1, 0.2
random seed : 1 2 3 4 5 6
depth profile : 0.46, 1.38, 2.3, 3.22, 4.14, 5.06, 5.98, 6.9, 7.82, 8.74
output format : fluent
output path : * dados_indep
Executando então o Spec2Wave nesse arquivo, fará com que a pasta dados_indep seja criada, e
dentro dela serão salvos 21 arquivos: 10 arquivos para a componente 𝑢 da velocidade, um para
cada valor de profundidade em depth profile, outros 10 arquivos para a componente 𝑣, e mais
um arquivo com a elevação da superfície.
O nome dos arquivos terá a forma ⟨variável⟩_⟨ponto⟩_⟨profundidade⟩.txt. Por exemplo,
o arquivo Velocity_U_17664_0.46.txt é a variável de velocidade 𝑢, no ponto de número 17 664,
na profundidade de 0.46 m (medida a partir da superfície média). Essa composição do nome do
arquivo garante que cada arquivo tenha um nome único e identificável.
Com isso, finalmente, Karl conseguiu obter a primeira parte dos dados que precisava para
seu estudo. O próximo passo será mudar os valores de data interval para realizar o teste de
independência do passo de tempo, e depois escolher um evento mais adequado para simular
os dispositivos de conversão. Mas a partir daí, Karl desistiu de relatar seu passo-a-passo nesse
manual.
27
Oleinik, P. H. (2022). O programa Spec2Wave. Manual do usuário. Versão 1.2.1.
30 p. url: https://gist.github.com/PhelypeOleinik/6dc87900dbde73ad3
3575b9d333e1f35/raw/spec2wave.pdf.
11.1 DB001
Esse banco de dados contém informações referentes ao ano de 2014, em pontos distribuídos ao
longo da costa do Rio Grande do Sul, conforme ilustrado abaixo. Os dados iniciam às 00:00
do dia 1º de Janeiro de 2014, e terminam às 23:45 do dia 31 de Dezembro do mesmo ano, com
dados a cada 15 min. O banco de dados foi gerado pelo Tomawac conforme Oleinik et al.
(2019), utilizando como condições de contorno os dados de ondas do WaveWatch iii5 e dados
meteorológicos do projeto Reanalysis 16 da NOAA.
30.5° S
31° S
31.5° S
51° W 50.5° W 50° W
30° S
32° S
31° S
32.5° S
32° S
52.5° W 52° W 51.5° W
33° S 33° S
34° S
33.5° S
35° S
28
11.2 DB002
Esse banco de dados contém informações referentes ao ano de 2018, em pontos distribuídos ao
longo da costa do Rio Grande do Sul, conforme ilustrado abaixo. Os dados iniciam às 00:00
do dia 1º de Janeiro de 2018, e terminam às 23:45 do dia 31 de Dezembro do mesmo ano, com
dados a cada 15 min. O banco de dados foi gerado pelo Tomawac conforme Oleinik et al.
(2019), utilizando como condições de contorno os dados de ondas do WaveWatch iii e dados
meteorológicos do projeto Reanalysis 1 da NOAA.
28° S
29° S
30° S
31° S
32° S
33° S
34° S
35° S
36° S
54° W 52° W 50° W 48° W 46° W
Referências
Box, G. E. P. e M. E. Muller (1958). “A Note on the Generation of Random Normal Deviates”.
Em: The Annals of Mathematical Statistics 29.2, pp. 610–611. doi: 10 . 1214 / aoms /
1177706645. url: http://projecteuclid.org/euclid.aoms/1177706645.
Gentleman, W. M. e G. Sande (1966). “Fast Fourier Transforms”. Em: Proceedings of the fall
joint computer conference on XX - AFIPS ’66. New York: ACM Press, p. 563. doi:
10 . 1145 / 1464291 . 1464352. url: http : / / portal . acm . org / citation . cfm ? doid =
1464291.1464352.
Knop, R. E. (1969). “Remark on algorithm 334 [G5]: normal random deviates”. Em: Com-
munications of the ACM 12.5, p. 281. doi: 10 . 1145 / 362946 . 362996. url: http :
//portal.acm.org/citation.cfm?doid=362946.362996.
Marsaglia, G. (2003). “Xorshift RNGs”. Em: Journal of Statistical Software 8.14. doi: 10.18637/
jss.v008.i14. url: http://www.jstatsoft.org/v08/i14/.
29
Frigo, M. e S. G. Johnson (2005). “The Design and Implementation of FFTW3”. Em: Proceedings
of the IEEE 93.2. Special issue on “Program Generation, Optimization, and Platform
Adaptation”, pp. 216–231.
Awk, T. (2019). Tomawac User Manual version 8.0.0. The TELEMAC-Mascaret Consortium.
90 p. url: www.opentelemac.org.
Frigo, M. e S. G. Johnson (2019). FFTW User Manual version 3.3.8. Massachusetts Institute of
Technology. 110 p. url: www.fftw.org/fftw3.pdf.
Oleinik, P. H., E. d. P. Kirinus, F. Cristiano, W. C. Marques e J. Costi (2019). “Energetic
Potential Assessment of Wind-Driven Waves on the South-Southeastern Brazilian Shelf ”.
Em: Journal of Marine Science and Engineering 7.2. doi: 10.3390/jmse7020025. url:
https://www.mdpi.com/2077-1312/7/2/25.
Oleinik, P. H., G. P. Tavares, B. N. Machado e L. A. Isoldi (2021). “Transformation of Water
Wave Spectra into Time Series of Surface Elevation”. Em: Earth 2.4, pp. 997–1005. doi:
10.3390/earth2040059. url: https://www.mdpi.com/2673-4834/2/4/59.
Índice
Números sublinhados apontam para onde o item correspondente é definido, e números em
itálico para onde o item é mencionado.
D no warnings . . . . . . . . . . . . . . . . . . 16, 19
data interval . . . . . . . . . . 3, 4, 7, 14, 14, 18
database . . . . . . . . . . . . . . . . . 11, 14, 17 O
depth profile . . . . . . . . . . . . . . 10, 14, 14 output format . . . . . . . . . . . . . . . . . . . 17
direction convention . . . . . . . . . . . 10, 14 output path . . . . . . . . . . . . . . . . . . . . 17
duration . . . . . . . . 3, 4, 7, 10, 14, 14, 14, 15
P
F precision . . . . . . . . . . . . . . . . . . . . 17, 17
force depth . . . . . . . . . . . . . . . . . . . . 15
R
I random seed . . . . . . . . . . . 7, 16, 16, 18, 18
I know what I am doing . . . . . . . . 9, 15, 15
initial time . . . . . . . . . . . . 3, 4, 7, 15, 15 S
show points ........ . . . . . . . 2, 9, 11, 17
L
show seed . . . . . . . . . . . . . . . . . . 7, 16, 18
least squares coef . . . . . . . . . . . . . 6, 16
spectrum tail factor . . . . . . . . . . . 18, 18
M spline length . . . . . . . . . . . . . . . 8, 18, 18
maximum badness . . . . . . . . . . . 7, 15, 15, 16
mesh node . . . . . . . . . . . . . 3, 11, 12, 15, 17 V
variables . . . . . . . . . . . . . . . . . 11, 18, 18
N
no errors . . . . . . . . . . . . . . . 15, 16, 16, 19 W
no info . . . . . . . . . . . . . . . . . . . . . 16, 19 water specific mass . . . . . . . . . . . . . . 18
30