mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-11-02 11:07:57 +00:00
Remove Pref, and move ref_carrier definition
Finally, ref_carrier is not meant to change after design since it is the carrier used for design. So let's move its definition to networks function. Only ROADM need the ref_carrier baud rate so let's define a dedicated variable in ROADM to hold it. Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com> Change-Id: Ida7e42dd534a04c8df8792b44980f3fd2165ecb6
This commit is contained in:
@@ -17,8 +17,7 @@ from copy import deepcopy
|
||||
from gnpy.core.utils import lin2db, automatic_nch, dbm2watt, power_dbm_to_psd_mw_ghz, watt2dbm, psd2powerdbm
|
||||
from gnpy.core.network import build_network
|
||||
from gnpy.core.elements import Roadm
|
||||
from gnpy.core.info import create_input_spectral_information, Pref, create_arbitrary_spectral_information, \
|
||||
ReferenceCarrier
|
||||
from gnpy.core.info import create_input_spectral_information, create_arbitrary_spectral_information, ReferenceCarrier
|
||||
from gnpy.core.equipment import trx_mode_params
|
||||
from gnpy.core.exceptions import ConfigurationError
|
||||
from gnpy.tools.json_io import network_from_json, load_equipment, load_network, _spectrum_from_json, load_json, \
|
||||
@@ -74,16 +73,15 @@ def test_equalization_combination_degree(delta_pdb_per_channel, degree, equaliza
|
||||
}
|
||||
roadm = Roadm(**roadm_config)
|
||||
roadm.ref_pch_in_dbm['tata'] = 0
|
||||
roadm.ref_carrier = ReferenceCarrier(baud_rate=32e9, slot_width=50e9)
|
||||
frequency = 191e12 + array([0, 50e9, 150e9, 225e9, 275e9])
|
||||
slot_width = array([37.5e9, 50e9, 75e9, 50e9, 37.5e9])
|
||||
baud_rate = array([32e9, 42e9, 64e9, 42e9, 32e9])
|
||||
signal = dbm2watt(array([-20.0, -18.0, -22.0, -25.0, -16.0]))
|
||||
ref_carrier = ReferenceCarrier(baud_rate=32e9, slot_width=50e9)
|
||||
pref = Pref(ref_carrier=ref_carrier)
|
||||
si = create_arbitrary_spectral_information(frequency=frequency, slot_width=slot_width,
|
||||
signal=signal, baud_rate=baud_rate, roll_off=0.15,
|
||||
delta_pdb_per_channel=delta_pdb_per_channel,
|
||||
tx_osnr=None, ref_power=pref)
|
||||
tx_osnr=None)
|
||||
to_json_before_propagation = {
|
||||
'uid': 'roadm Lannion_CAS',
|
||||
'type': 'Roadm',
|
||||
@@ -216,12 +214,10 @@ def test_low_input_power(target_out, delta_pdb_per_channel, correction):
|
||||
baud_rate = array([32e9, 42e9, 64e9, 42e9, 32e9])
|
||||
signal = dbm2watt(array([-20.0, -18.0, -22.0, -25.0, -16.0]))
|
||||
target = target_out + array(delta_pdb_per_channel)
|
||||
ref_carrier = ReferenceCarrier(baud_rate=32e9, slot_width=50e9)
|
||||
pref = Pref(ref_carrier=ref_carrier)
|
||||
si = create_arbitrary_spectral_information(frequency=frequency, slot_width=slot_width,
|
||||
signal=signal, baud_rate=baud_rate, roll_off=0.15,
|
||||
delta_pdb_per_channel=delta_pdb_per_channel,
|
||||
tx_osnr=None, ref_power=pref)
|
||||
tx_osnr=None)
|
||||
roadm_config = {
|
||||
"uid": "roadm Brest_KLA",
|
||||
"params": {
|
||||
@@ -246,6 +242,7 @@ def test_low_input_power(target_out, delta_pdb_per_channel, correction):
|
||||
}
|
||||
roadm = Roadm(**roadm_config)
|
||||
roadm.ref_pch_in_dbm['tata'] = 0
|
||||
roadm.ref_carrier = ReferenceCarrier(baud_rate=32e9, slot_width=50e9)
|
||||
si = roadm(si, degree='toto', from_degree='tata')
|
||||
assert_allclose(watt2dbm(si.signal), target - correction, rtol=1e-5)
|
||||
# in other words check that if target is below input power, target is applied else power is unchanged
|
||||
@@ -269,12 +266,10 @@ def test_2low_input_power(target_out, delta_pdb_per_channel, correction):
|
||||
baud_rate = array([32e9, 42e9, 64e9, 42e9, 32e9])
|
||||
signal = dbm2watt(array([-20.0, -18.0, -22.0, -25.0, -16.0]))
|
||||
target = psd2powerdbm(target_out, baud_rate) + array(delta_pdb_per_channel)
|
||||
ref_carrier = ReferenceCarrier(baud_rate=32e9, slot_width=50e9)
|
||||
pref = Pref(ref_carrier=ref_carrier)
|
||||
si = create_arbitrary_spectral_information(frequency=frequency, slot_width=slot_width,
|
||||
signal=signal, baud_rate=baud_rate, roll_off=0.15,
|
||||
delta_pdb_per_channel=delta_pdb_per_channel,
|
||||
tx_osnr=None, ref_power=pref)
|
||||
tx_osnr=None)
|
||||
roadm_config = {
|
||||
"uid": "roadm Brest_KLA",
|
||||
"params": {
|
||||
@@ -299,6 +294,7 @@ def test_2low_input_power(target_out, delta_pdb_per_channel, correction):
|
||||
}
|
||||
roadm = Roadm(**roadm_config)
|
||||
roadm.ref_pch_in_dbm['tata'] = 0
|
||||
roadm.ref_carrier = ReferenceCarrier(baud_rate=32e9, slot_width=50e9)
|
||||
si = roadm(si, degree='toto', from_degree='tata')
|
||||
assert_allclose(watt2dbm(si.signal), target - correction, rtol=1e-5)
|
||||
|
||||
@@ -511,7 +507,6 @@ def test_equalization(case, deltap, target, mode, slot_width, equalization):
|
||||
# boosters = ['east edfa in Brest_KLA to Quimper', 'east edfa in Lorient_KMA to Loudeac',
|
||||
# 'east edfa in Lannion_CAS to Stbrieuc']
|
||||
target_psd = power_dbm_to_psd_mw_ghz(target, 32e9)
|
||||
ref = ReferenceCarrier(baud_rate=32e9, slot_width=50e9)
|
||||
if case == 'SI':
|
||||
delattr(equipment['Roadm']['default'], 'target_pch_out_db')
|
||||
setattr(equipment['Roadm']['default'], equalization, target_psd)
|
||||
@@ -537,7 +532,7 @@ def test_equalization(case, deltap, target, mode, slot_width, equalization):
|
||||
path = compute_constrained_path(network, req)
|
||||
si = create_input_spectral_information(
|
||||
f_min=req.f_min, f_max=req.f_max, roll_off=req.roll_off, baud_rate=req.baud_rate, power=req.power,
|
||||
spacing=req.spacing, tx_osnr=req.tx_osnr, ref_carrier=ref)
|
||||
spacing=req.spacing, tx_osnr=req.tx_osnr)
|
||||
for i, el in enumerate(path):
|
||||
if isinstance(el, Roadm):
|
||||
si = el(si, degree=path[i + 1].uid, from_degree=path[i - 1].uid)
|
||||
|
||||
Reference in New Issue
Block a user