Metadata-Version: 2.5
Name: sdypy
Version: 0.6.0
Summary: SDyPy - Structural Dynamics Python
Project-URL: homepage, https://github.com/sdypy/sdypy
Project-URL: documentation, https://sdypy.readthedocs.io/en/latest/
Project-URL: source, https://github.com/sdypy/sdypy
Author-email: "Janko Slavič et al." <janko.slavic@fs.uni-lj.si>
Maintainer-email: "Janko Slavič et al." <janko.slavic@fs.uni-lj.si>
License-Expression: MIT
License-File: LICENSE
Keywords: Python,Structural Dynamics
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.13
Requires-Dist: sdypy-ema
Requires-Dist: sdypy-excitation
Requires-Dist: sdypy-frf
Requires-Dist: sdypy-io
Requires-Dist: sdypy-model
Requires-Dist: sdypy-sep005
Requires-Dist: sdypy-view
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: pydata-sphinx-theme; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: sphinx; extra == 'dev'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Requires-Dist: wheel; extra == 'dev'
Provides-Extra: docs
Requires-Dist: pydata-sphinx-theme; extra == 'docs'
Requires-Dist: sphinx; extra == 'docs'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'docs'
Description-Content-Type: text/x-rst

|pytest| |documentation|

SDyPy - Structural Dynamics Python
----------------------------------

This package has the goal to defragment the open source effort in the scientific field 
of structural dynamics. Our goal is to speed-up the development and implementation of scientific
methods. This an open and free initiative, we stand up for:

- free MIT license,
- open development,
- open accepting of contributions,
- open decision making,
- multi-institutional engagement.

SDyPy depends on core SciPy stack packages, please use those packages where possible. If you 
would like an extension to be implemented, if it is general and not related to structural dynamics,
consider implementing it into the SciPy stack.


Installation and basic usage
----------------------------

Install this package by:

.. code-block:: console

    pip install sdypy

The `sdypy` offers a convenient way to access the functionality of the namespace packages.

First import the `sdypy` package:

.. code-block:: python

    import sdypy as sd

Access the `EMA` module:

.. code-block:: python

    model = sd.EMA.Model(FRF_matrix, freq_array)

or the `io` module:

.. code-block:: python

	uff_obj = sd.io.uff.UFF('file.uff')

or the `FRF` module:

.. code-block:: python

	frf_obj = sd.FRF.FRF(sampling_freq, excitation, response)

or the `excitation` module:

.. code-block:: python

    gausian_signal = sd.excitation.random_gaussian((N, PSD, fs))

or the `view` and `model` modules.

The umbrella also surfaces the SEP 5 unified-timeseries standard and its
compliance validator as `sd.sep005` (the standalone `sdypy-sep005` package):

.. code-block:: python

    sd.sep005.assert_sep005(timeseries)   # raises on non-compliance

Unlike the six namespace sub-packages, `sep005` is a cross-cutting data-format
standard (see `SEP 5 <https://github.com/sdypy/sdypy/blob/main/docs/seps/sep-0005.rst>`_),
not a `sdypy.*` namespace package; it is exposed here for discoverability.


Package integration in SDyPy
----------------------------

The existing efforts in the field of structural dynamics are included in SDyPy according to
the level of integration (see `SEP 1 <https://github.com/sdypy/sdypy/blob/main/docs/seps/sep-0001.rst>`_).

- **1st level** (part of SDyPy repository or organization):
   - `sdypy-EMA <https://github.com/sdypy/sdypy-EMA>`_ (Experimental Modal Analysis in Python)
   - `sdypy-io <https://github.com/sdypy/sdypy-io>`_ (Input/Output for Structural Dynamics)
   - `sdypy-FRF <https://github.com/sdypy/sdypy-FRF>`_ (Frequency Response Function estimation)
   - `sdypy-excitation <https://github.com/sdypy/sdypy-excitation>`_ (Excitation signals as used in structural dynamics and vibration fatigue)
   - `sdypy-view <https://github.com/sdypy/sdypy-view>`_ (Visualization of structural dynamics data)
   - `sdypy-model <https://github.com/sdypy/sdypy-model>`_ (Modeling of structural dynamics data)

- **2nd level** (namespace package in independent repository):
   
- **3rd level** (packages that correspond to the SDyPy template):
   - `pyExSi <https://github.com/ladisk/pyExSi>`_ (Excitation signal generator)
   - `FLife <https://github.com/ladisk/FLife>`_ (Vibration fatigue life in the spectral domain)
   - `pyIDI <https://github.com/ladisk/pyidi>`_ (Image-Based Displacement Identification)
   - `pyUFF <https://github.com/ladisk/pyuff>`_ (Universal File Format in Python)
   - `pyFRF <https://github.com/openmodal/pyFRF>`_ (Frequency Response Function estimation)
   
- **4th level** (these packages are developed completely independently but might be useful for 3rd, 2nd and 1st level packages):
   - `pyFBS <https://gitlab.com/pyFBS/pyFBS>`_ (Frequency Based Substructuring and Transfer Path Analysis)
   - `speckle_pattern <https://github.com/ladisk/speckle_pattern>`_ (Speckle pattern generation for DIC)
   - `pyNNST <https://github.com/LolloCappo/pyNNST>`_ (Obtaining non-stationary index for time-series)
   - `python-acoustics <https://github.com/python-acoustics/python-acoustics>`_ (Useful tools for acousticians)
   - `pyTrigger <https://github.com/ladisk/pyTrigger>`_ (Software trigger for data acquisition)
   - `AMfe <https://github.com/AppliedMechanics/AMfe>`_ (Finite Element Research Code)


Contributing and development
----------------------------

Contributions are welcome — see `CONTRIBUTING.rst <https://github.com/sdypy/sdypy/blob/main/CONTRIBUTING.rst>`_.

Development of the core umbrella is spec-driven (OpenSpec) and governed by the
`SEPs <https://github.com/sdypy/sdypy/tree/main/docs/seps>`_. Contributors and AI
coding agents should start from ``AGENTS.md`` in the repository root: it is the
canonical, tool-agnostic guide to the package layout, environment, commands, and
required workflow. (Claude Code loads it automatically via ``CLAUDE.md``.) The
measurable requirements and how each is verified are catalogued in
``REQUIREMENTS.md``.


..  |documentation| image:: https://readthedocs.org/projects/sdypy/badge/?version=latest
    :target: https://sdypy.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. |pytest| image:: https://github.com/sdypy/sdypy/actions/workflows/python-package.yml/badge.svg
    :target: https://github.com/sdypy/sdypy/actions
