diff --git a/gnpy/core/elements.py b/gnpy/core/elements.py index 98c7d4b3..2c3485c9 100644 --- a/gnpy/core/elements.py +++ b/gnpy/core/elements.py @@ -165,10 +165,10 @@ class Transceiver(_Node): return '\n'.join([f'{type(self).__name__} {self.uid}', + f' GSNR (0.1nm, dB): {snr_01nm:.2f}', + f' GSNR (signal bw, dB): {snr:.2f}', f' OSNR ASE (0.1nm, dB): {osnr_ase_01nm:.2f}', f' OSNR ASE (signal bw, dB): {osnr_ase:.2f}', - f' SNR total (signal bw, dB): {snr:.2f}', - f' SNR total (0.1nm, dB): {snr_01nm:.2f}', f' CD (ps/nm): {cd:.2f}', f' PMD (ps): {pmd:.2f}']) diff --git a/gnpy/tools/cli_examples.py b/gnpy/tools/cli_examples.py index 0f72b9cb..7c8d1578 100644 --- a/gnpy/tools/cli_examples.py +++ b/gnpy/tools/cli_examples.py @@ -112,7 +112,7 @@ def transmission_main_example(args=None): formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) _add_common_options(parser, network_default=_examples_dir / 'edfa_example_network.json') - parser.add_argument('--show-channels', action='store_true', help='Show final per-channel OSNR summary') + parser.add_argument('--show-channels', action='store_true', help='Show final per-channel OSNR and GSNR summary') parser.add_argument('-pl', '--plot', action='store_true') parser.add_argument('-l', '--list-nodes', action='store_true', help='list all transceiver nodes') parser.add_argument('-po', '--power', default=0, help='channel ref power in dBm') @@ -239,7 +239,7 @@ def transmission_main_example(args=None): print(f'\nTransmission result for input power = {lin2db(req.power*1e3):.2f} dBm:') else: print(f'\nTransmission results:') - print(f' Final SNR total (0.1 nm): {ansi_escapes.cyan}{mean(destination.snr_01nm):.02f} dB{ansi_escapes.reset}') + print(f' Final GSNR (0.1 nm): {ansi_escapes.cyan}{mean(destination.snr_01nm):.02f} dB{ansi_escapes.reset}') else: print(path[-1]) @@ -248,7 +248,7 @@ def transmission_main_example(args=None): print(f'{ansi_escapes.blue}Network (after autodesign) saved to {args.save_network}{ansi_escapes.reset}') if args.show_channels: - print('\nThe total SNR per channel at the end of the line is:') + print('\nThe GSNR per channel at the end of the line is:') print( '{:>5}{:>26}{:>26}{:>28}{:>28}{:>28}' .format( 'Ch. #', @@ -256,7 +256,7 @@ def transmission_main_example(args=None): 'Channel power (dBm)', 'OSNR ASE (signal bw, dB)', 'SNR NLI (signal bw, dB)', - 'SNR total (signal bw, dB)')) + 'GSNR (signal bw, dB)')) for final_carrier, ch_osnr, ch_snr_nl, ch_snr in zip( infos.carriers, path[-1].osnr_ase, path[-1].osnr_nli, path[-1].snr): ch_freq = final_carrier.frequency * 1e-12 @@ -383,7 +383,7 @@ def path_requests_run(args=None): pth_assign_spectrum(pths, rqs, oms_list, reversed_pths) print(f'{ansi_escapes.blue}Result summary{ansi_escapes.reset}') - header = ['req id', ' demand', ' snr@bandwidth A-Z (Z-A)', ' snr@0.1nm A-Z (Z-A)', + header = ['req id', ' demand', ' GSNR@bandwidth A-Z (Z-A)', ' GSNR@0.1nm A-Z (Z-A)', ' Receiver minOSNR', ' mode', ' Gbit/s', ' nb of tsp pairs', 'N,M or blocking reason'] data = [] @@ -422,7 +422,7 @@ def path_requests_run(args=None): secondcol = ''.join(row[1].ljust(secondcol_width)) remainingcols = ''.join(word.center(col_width, ' ') for word in row[2:]) print(f'{firstcol} {secondcol} {remainingcols}') - print(f'{ansi_escapes.yellow}Result summary shows mean SNR and OSNR (average over all channels){ansi_escapes.reset}') + print(f'{ansi_escapes.yellow}Result summary shows mean GSNR and OSNR (average over all channels){ansi_escapes.reset}') if args.output: result = [] diff --git a/tests/invocation/openroadm-Stockholm-Gothenburg b/tests/invocation/openroadm-Stockholm-Gothenburg index 3bcc4b15..90b08ee8 100644 --- a/tests/invocation/openroadm-Stockholm-Gothenburg +++ b/tests/invocation/openroadm-Stockholm-Gothenburg @@ -8,10 +8,10 @@ Now propagating between trx_Stockholm and trx_Gothenburg: Propagating with input power = 2.00 dBm: Transceiver trx_Stockholm + GSNR (0.1nm, dB): 35.00 + GSNR (signal bw, dB): 30.98 OSNR ASE (0.1nm, dB): 35.00 OSNR ASE (signal bw, dB): 30.98 - SNR total (signal bw, dB): 30.98 - SNR total (0.1nm, dB): 35.00 CD (ps/nm): 0.00 PMD (ps): 0.00 Roadm roadm_Stockholm @@ -224,15 +224,15 @@ Roadm roadm_Gothenburg effective loss (dB): 22.00 pch out (dBm): -20 Transceiver trx_Gothenburg + GSNR (0.1nm, dB): 18.90 + GSNR (signal bw, dB): 14.88 OSNR ASE (0.1nm, dB): 21.20 OSNR ASE (signal bw, dB): 17.18 - SNR total (signal bw, dB): 14.88 - SNR total (0.1nm, dB): 18.90 CD (ps/nm): 8350.42 PMD (ps): 0.89 Transmission result for input power = 2.00 dBm: - Final SNR total (0.1 nm): 18.90 dB + Final GSNR (0.1 nm): 18.90 dB (No source node specified: picked trx_Stockholm) diff --git a/tests/invocation/path_requests_run b/tests/invocation/path_requests_run index ae40bb58..b75a0c6a 100644 --- a/tests/invocation/path_requests_run +++ b/tests/invocation/path_requests_run @@ -143,7 +143,7 @@ with path constraint: ['trx Lannion_CAS', 'trx Lorient_KMA'] Computed path (roadms):['roadm Lannion_CAS', 'roadm Lorient_KMA'] Result summary -req id demand snr@bandwidth A-Z (Z-A) snr@0.1nm A-Z (Z-A) Receiver minOSNR mode Gbit/s nb of tsp pairs N,M or blocking reason +req id demand GSNR@bandwidth A-Z (Z-A) GSNR@0.1nm A-Z (Z-A) Receiver minOSNR mode Gbit/s nb of tsp pairs N,M or blocking reason 0 trx Lorient_KMA to trx Vannes_KBE : 24.83 28.92 14 mode 1 100.0 1 (-284,4) 1 trx Brest_KLA to trx Vannes_KBE : 17.75 21.83 14 mode 1 200.0 2 (-272,8) 3 trx Lannion_CAS to trx Rennes_STA : 22.21 26.29 13 mode 1 60.0 1 (-284,4) @@ -151,4 +151,4 @@ req id demand snr@bandwidth A-Z (Z-A) snr@0 5 trx Rennes_STA to trx Lannion_CAS : 20.31 27.54 17 mode 2 20.0 1 (-274,6) 7 | 6 trx Lannion_CAS to trx Lorient_KMA : 19.52 23.61 14 mode 1 700.0 7 (-224,28) 7b trx Lannion_CAS to trx Lorient_KMA : 19.61 23.69 14 mode 1 400.0 4 (-172,24) -Result summary shows mean SNR and OSNR (average over all channels) +Result summary shows mean GSNR and OSNR (average over all channels) diff --git a/tests/invocation/transmission_main_example b/tests/invocation/transmission_main_example index f67a0e7a..57b2b0d7 100644 --- a/tests/invocation/transmission_main_example +++ b/tests/invocation/transmission_main_example @@ -8,10 +8,10 @@ Now propagating between Site_A and Site_B: Propagating with input power = 0.00 dBm: Transceiver Site_A + GSNR (0.1nm, dB): 40.00 + GSNR (signal bw, dB): 35.92 OSNR ASE (0.1nm, dB): 40.00 OSNR ASE (signal bw, dB): 35.92 - SNR total (signal bw, dB): 35.92 - SNR total (0.1nm, dB): 40.00 CD (ps/nm): 0.00 PMD (ps): 0.00 Fiber Span1 @@ -36,15 +36,15 @@ Edfa Edfa1 effective pch (dBm): -2.0 output VOA (dB): 0.00 Transceiver Site_B + GSNR (0.1nm, dB): 31.17 + GSNR (signal bw, dB): 27.09 OSNR ASE (0.1nm, dB): 33.30 OSNR ASE (signal bw, dB): 29.21 - SNR total (signal bw, dB): 27.09 - SNR total (0.1nm, dB): 31.17 CD (ps/nm): 1336.00 PMD (ps): 0.36 Transmission result for input power = 0.00 dBm: - Final SNR total (0.1 nm): 31.17 dB + Final GSNR (0.1 nm): 31.17 dB (No source node specified: picked Site_A) diff --git a/tests/invocation/transmission_main_example__raman b/tests/invocation/transmission_main_example__raman index 597ee821..ce086777 100644 --- a/tests/invocation/transmission_main_example__raman +++ b/tests/invocation/transmission_main_example__raman @@ -8,10 +8,10 @@ Now propagating between Site_A and Site_B: Propagating with input power = 0.00 dBm: Transceiver Site_A + GSNR (0.1nm, dB): 40.00 + GSNR (signal bw, dB): 35.92 OSNR ASE (0.1nm, dB): 40.00 OSNR ASE (signal bw, dB): 35.92 - SNR total (signal bw, dB): 35.92 - SNR total (0.1nm, dB): 40.00 CD (ps/nm): 0.00 PMD (ps): 0.00 RamanFiber Span1 @@ -36,18 +36,18 @@ Edfa Edfa1 effective pch (dBm): -2.0 output VOA (dB): 0.00 Transceiver Site_B + GSNR (0.1nm, dB): 31.43 + GSNR (signal bw, dB): 27.35 OSNR ASE (0.1nm, dB): 34.18 OSNR ASE (signal bw, dB): 30.10 - SNR total (signal bw, dB): 27.35 - SNR total (0.1nm, dB): 31.43 CD (ps/nm): 1336.00 PMD (ps): 0.36 Transmission result for input power = 0.00 dBm: - Final SNR total (0.1 nm): 31.43 dB + Final GSNR (0.1 nm): 31.43 dB -The total SNR per channel at the end of the line is: -Ch. # Channel frequency (THz) Channel power (dBm) OSNR ASE (signal bw, dB) SNR NLI (signal bw, dB) SNR total (signal bw, dB) +The GSNR per channel at the end of the line is: +Ch. # Channel frequency (THz) Channel power (dBm) OSNR ASE (signal bw, dB) SNR NLI (signal bw, dB) GSNR (signal bw, dB) 1 191.35 0.21 31.56 31.47 28.50 2 191.40 0.17 31.54 31.38 28.45 3 191.45 0.14 31.52 31.30 28.40