Releases: Telecominfraproject/oopt-gnpy
v2.14
Environment
The macos-13 environment is no more supported in GitHub Actions workflows.
Accuracy improvements
We changed power behavior in the Fiber to use total channel power (PCH = signal + ASE + NLI) instead of just signal. This slightly changes the propagation results as more power is considered to be injected in the fiber span. All differences in tests are below 0.1 dB, with a few exceptions slightly higher.
We also fixed a bug occurring with multiband computation: the computation now considers the input frequencies following an increasing order and not the order definition of the band (e.g. C+L or L+C). This removes order dependency in the initialization of spectral information class.
Features
Equipment Management
- Added support for multiple equipment names using "other_name" keyword to avoid duplicating entries in library for amplifiers and transceivers. This is useful when the same equipment exists with different names in topology instances.
- Added support for library metadata when loading equipment, ensuring libraries with metadata (library-information) are correctly loaded. This metadata can contain detailed information concerning date, contacts, suppliers references, etc.
Path Request Enhancements
Added explicit path or service specification for transmission-example:
- New --path argument to specify ROADM nodes as a list separated by |
- New --service argument to use service files with --route_id parameter
Source and/or destination are inferred from the provided path elements or from the related route
This feature enables deep insight into element behavior for specific service requests
Improved path request results display in CLI output
- Added spectrum assignment policy argument with last fit policy implementation
Data Export Improvements
- Added more diagnostic information to outputs:
- Added maximum SNR in exports
- Minimum required OSNR
- Minimum propagated GSNR
- PDL, PMD, CD penalties
Helps diagnose cases where GSNR is OK but path is failing
Added YANG model for API requests
Bug Fixes
- Restored save_json as generic function and created save_gnpy_json for specific gnpy formatted exports
- Fixed export of loss coefficient per frequency lists
- Fixed interpreter usage and privilege assumptions in tests
v2.13
Environment
The windows-2019 environment is no more supported.
Yang Conversion Utilities
This release introduces new conversion utilities to facilitate conversion between YANG and legacy formats,
ensuring full compatibility with GNPy. The "legacy" format also benefit from the YANG validation for
a stricter verification of input files.
Console Script for Yang Conversion: Added a new command-line script to perform Yang format conversions easily.
Design Enhancements
This release adds the ability to parametrize power target calculations, allowing customization of reference
span loss and deviation ratios. It implements the use of a reference channel per OMS (Optical Multiplex Section)
instead of total power for design calculations, improving accuracy and performance.
It also includes spacing information in design band data to assist in maximum power computation for EDFA
targets compution during autodesign.
Excel handling
XLSX files are now read with openpyxl library (while XLS files are still read with xlrd library). Latest release of
xlrd is supported, which solves compatibility issues with anaconda install.
v2.12.1
New Features
Integration in APIs:
- Define functions for results conversion and load eqpt/topology from dict, to be used by APIs
v2.12
New Features
-
Documentation Updates:
- Moved and updated documentation on equipment types and amplifiers for better organization and accessibility.
- Improved documentation for script options, providing clearer guidance for users.
- Added a list of collaborative PSE publications to the documentation.
-
Enhanced Configuration Management:
- The default values for EDFA configuration, including frequency range, gain ripple, noise figure ripple, or dynamic gain tilt are now hardcoded in parameters.py and are no longer read from the
default_edfa_config.jsonfile. - Introduced the ability to read a list of optional extra equipment files, allowing for more flexible configuration.
- Users can now input their own default configuration file with the new
default_config_from_jsonattribute for fixed and variable gain amplifiers.
- The default values for EDFA configuration, including frequency range, gain ripple, noise figure ripple, or dynamic gain tilt are now hardcoded in parameters.py and are no longer read from the
Refactoring:
- Refactored methods to avoid unnecessary returns when modifying equipment dictionaries, streamlining the code.
- Defined defaults in common parts to be utilized by both CLI and API, enhancing consistency across interfaces.
v2.11.1
Release Notes
New Features
- Enhanced Warning System for Amplifiers: Added more warnings when user settings do not match the library, improving user awareness of potential issues.
- ROADM Excel Sheet Input Documentation: Comprehensive documentation has been added for the ROADM Excel sheet input, aiding users in understanding the input requirements.
- Per Degree Impairment Reading from Excel inputs: The program now supports reading per degree impairment from the ROADM sheet, allowing for more detailed impairment management.
Bug Fixes
- Plot Functionality: Resolved an issue where the plot function would overwrite the path variable, causing errors in plotting.
- Tilt-Target Default Value: Adjusted the handling of the tilt-target to maintain a
Nonevalue when not specified by the user, rather than defaulting to 0 dB. - UID Information in Logs: Restored UID information in warning logs for better traceability.
- Multiple Multiband Amplifiers: Fixed a case where multiple multiband amplifiers matching the sub amplifier type could cause issues.
- Offset Handling: Corrected the offset handling for reversed paths to ensure accurate calculations.
- Autodesign File Saving: Ensured that the autodesign file is saved correctly after the autodesign process.
- Linter Issues: Addressed various linter issues across multiple files, improving code quality and maintainability.
These updates enhance the overall functionality and user experience of the program. Thank you for your continued support!
Full Changelog: v2.11...v2.11.1
v2.11
This release enables the definition of a multiband amplifier site composed of multiple amplifiers, each for a separated band (a typical application is C+L transmission).
The release also includes autodesign for links (Optical Multiplex Section, OMS) composed of multi_band amplifiers. Multi_band autodesign includes basic tilt and tilt_target calculation when the Raman flag is enabled with the --sim-params option.
The spectrum is demultiplexed before propagation in the amplifier and multiplexed at the amplifier output before the propagation in the output fiber.
A preturbative Raman solution and an approximated GGN model are introduced for a faster evaluation of the Raman and Kerr effects, respectively. These implementations are intended to reduce the computational effort required for multiband transmission simulations.
v2.10
This release introduces detailed impairments for ROADMs:
ROADM impairments can be defined per degree and roadm-path type (add, drop or express).
Minimum loss when crossing a ROADM is no more 0 dB. It can be set per ROADM degree with roadm-path-impairments.
The transceiver output power, which was previously set using the same parameter as the input span power (power_dbm),
can now be set using a different parameter.
GNPy v2.9
GNPy v2.9
This release introduces a major refactor that enables
a clear separation of design and propagation functions.
It also introduces some behaviour correction and bug fixes.
- fix frequency scaling for fibers
- fix documentation on readthedocs.io
- possible to freeze a design and propagate on it without automatic changes
- checking for power saturation during design for all cases
GNPy v2.8
This new release adds some improvements in existing features,
and some new features:
- Spectrum assignment now supports multiple slots assignments
in a single request. - Logs are now generalized in the library instead of bare
prints. Default verbose is "WARNING". - Chromatic dispersion, effective area, Raman Gain coefficient,
and nonlinear coefficient can now be defined with a scaling
along frequency. - Power equalization now enables defining a power offset
in transceiver library to represent the deviation from the
general equalisation strategy defined in ROADMs. - Propagation now includes a latency calculation
- The library now supports of python 3.12
GNPy 2.7 -- OFC 2023
Starting with this release, the users can define a mixed load of channels to be propagated in the input spectrum. To better support real-life workloads, ROADM equalization strategies are now configurable, and there is also the usual set of bugfixes and performance optimizations.