#![cfg_attr(
feature = "doc-images",
cfg_attr(all(),
doc = ::embed_doc_image::embed_image!("label_matrix", "./assets/matrix.png")))
]
pub mod azimuth;
pub mod core;
pub mod spectrums;
pub mod waves;
pub mod wind;
#[cfg(feature = "python-extension")]
use pyo3::prelude::*;
pub mod prelude {
pub use crate::core::constants::{GRAVITY, KNOT, PI, RHO_AIR, RHO_SEA_WATER, TWO_PI};
pub use crate::core::ndarray_ext;
pub use crate::core::*;
pub use crate::spectrums::*;
pub use crate::waves::jonswap::{
convert_t1_to_tp, convert_tp_to_t1, convert_tp_to_tz, convert_tz_to_tp, lewis_allos, maxhs,
Jonswap,
};
pub use crate::waves::spreading::{spread_cos_2s, spread_cos_n, Spreading};
pub use crate::waves::{bretschneider, gaussian::gaussian_spectrum, jonswap, PiersonMoskowitz};
pub use crate::wind::*;
pub use ndarray::{Array1, Array2};
pub use ndarray_stats::QuantileExt;
pub use crate::azimuth;
}
#[doc(hidden)]
pub use crate::prelude::*;
#[cfg(feature = "python-extension")]
mod py_interface;
#[cfg(feature = "python-extension")]
#[pymodule]
#[pyo3(name = "_libndspec")]
fn ndspec(_py: Python, m: &PyModule) -> PyResult<()> {
m.add_function(wrap_pyfunction!(py_interface::version, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::interp1, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::interp2, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::convert_branch_180, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::convert_branch_360, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::rotation_matrix_2d, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::convert_branch_180_vec, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::maxhs, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::lewis_allos, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::bretschneider, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::jonswap, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::gaussian, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::convert_tp_to_tz, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::convert_tz_to_tp, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::convert_tp_to_t1, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::convert_t1_to_tp, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::spread_cos_n, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::spread_cos_2s, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::froya_10min, m)?)?;
m.add_function(wrap_pyfunction!(py_interface::froya_1hr, m)?)?;
m.add_class::<py_interface::Jonswap>()?;
m.add_class::<py_interface::Spreading>()?;
m.add_class::<py_interface::FrequencyResponse>()?;
m.add_class::<py_interface::Spectrum1D>()?;
m.add_class::<py_interface::Spectrum2D>()?;
Ok(())
}