deringeorge's picture
docs: add PR template, CI workflow, architecture docs, research log, and module docstrings
d901d8e
"""
Module 3: IMO Compliance Checker.
Receives the predicted URN spectrum from Module 2 and the vessel type string
from the ``VesselParameters`` object produced by Module 1. Checks each 1/3-octave
band level against the vessel-type-specific limit values defined in IMO
MEPC.1/Circ.906 Rev.1 (2024) and returns a structured compliance result. The
result includes a per-band pass/fail flag, the limit value applied at each band,
the measured (predicted) level, and the exceedance in dB where a band fails.
An overall compliance flag aggregates the per-band results. The module can also
generate a formatted compliance report suitable for inclusion in a vessel's
technical documentation package.
The limit tables are encoded directly in this module as Python dicts keyed by
vessel type and center frequency. When IMO updates its guidelines, these tables
are the only code that requires updating.
Libraries: Internal lookup tables only. ``fpdf2`` or ``reportlab`` for PDF
report generation (added in Phase 2).
Pipeline position: Third stage. Receives ``URNSpectrum`` from Module 2 and
vessel type from Module 1. Outputs a ``ComplianceResult`` object consumed by
Module 5 and optionally written to Module 6.
"""
from modules.imo_compliance.compliance_checker import check_compliance, ComplianceResult
__all__ = ["check_compliance", "ComplianceResult"]