From 426c88432df5af79d6568c4671eb58b7253fd994 Mon Sep 17 00:00:00 2001 From: EstherLerouzic Date: Fri, 15 Mar 2024 18:12:34 +0100 Subject: [PATCH] fix: update README script animation Signed-off-by: EstherLerouzic Change-Id: I31381ddf3e372f34836416162c080a5205ef969d --- README.md | 2 +- docs/images/gnpy-transmission-example.svg | 1 + docs/intro.rst | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 docs/images/gnpy-transmission-example.svg diff --git a/README.md b/README.md index c0955fbdc..802be7174 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Read our [documentation](https://gnpy.readthedocs.io/), learn from the demos, an This example demonstrates how GNPy can be used to check the expected SNR at the end of the line by varying the channel input power: -![Running a simple simulation example](https://telecominfraproject.github.io/oopt-gnpy/docs/images/transmission_main_example.svg) +![Running a simple simulation example](docs/images/gnpy-transmission-example.svg) GNPy can do much more, including acting as a Path Computation Engine, tracking bandwidth requests, or advising the SDN controller about a best possible path through a large DWDM network. Learn more about this [in the documentation](https://gnpy.readthedocs.io/), or give it a [try online at `gnpy.app`](https://gnpy.app/): diff --git a/docs/images/gnpy-transmission-example.svg b/docs/images/gnpy-transmission-example.svg new file mode 100644 index 000000000..e95df62fd --- /dev/null +++ b/docs/images/gnpy-transmission-example.svg @@ -0,0 +1 @@ +user@machine:~/workspace/TIP/test/oopt-gnpy$user@machine:~/workspace/TIP/test/oopt-gnpy$guser@machine:~/workspace/TIP/test/oopt-gnpy$gnuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpyuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-exampleThereare76channelspropagatingPowermodeissettoTrue=>itcanbemodifiedineqpt_config.json-SpanThereare1fiberspansover80kmbetweenSite_AandSite_BNowpropagatingbetweenSite_AandSite_B:Propagatingwithinputpower=00.00 dBm:TransceiverSite_AGSNR(0.1nm,dB):40.00GSNR(signalbw,dB):35.92OSNRASE(0.1nm,dB):40.00OSNRASE(signalbw,dB):35.92CD(ps/nm):0.00PMD(ps):0.00PDL(dB):0.00Latency(ms):0.00FiberSpan1type_variety:SSMFlength(km):80.00padatt_in(dB):0.00totalloss(dB):17.00(includesconnloss(dB)in:0.50out:0.50)(connlossoutincludesEOLmargindefinedineqpt_config.json)referencepchout(dBm):-17.00actualpchout(dBm):-17.00EdfaEdfa1type_variety:std_low_gaineffectivegain(dB):15.00(beforeatt_inandbeforeoutputVOA)noisefigure(dB):6.62(includingatt_in)padatt_in(dB):0.00PowerIn(dBm):1.81PowerOut(dBm):16.82Delta_P(dB):-2.00targetpch(dBm):-2.00actualpchout(dBm):-1.99outputVOA(dB):0.00TransceiverSite_BGSNR(0.1nm,dB):31.18GSNR(signalbw,dB):27.10OSNRASE(0.1nm,dB):33.30OSNRASE(signalbw,dB):29.21CD(ps/nm):1336.00PMD(ps):0.36Latency(ms):0.39Transmissionresultforinputpower=0.00dBm:FinalGSNR(0.1nm):031.18 dB(Nosourcenodespecified:pickedSite_A)(Nodestinationnodespecified:pickedSite_B)user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--poweruser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--power-0.5Propagatingwithinputpower=0-0.50 dBm:referencepchout(dBm):-17.50actualpchout(dBm):-17.50noisefigure(dB):7.62PowerIn(dBm):1.31PowerOut(dBm):16.32targetpch(dBm):-2.50actualpchout(dBm):-2.49GSNR(0.1nm,dB):31.27GSNR(signalbw,dB):27.18OSNRASE(0.1nm,dB):32.90OSNRASE(signalbw,dB):28.82Transmissionresultforinputpower=-0.50dBm:FinalGSNR(0.1nm):031.27 dBuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpyuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xlsuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-euser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnpy/example-data/eqpt_config.json--save-network_config.json--save-networktest_autodesign.jsonThereare3fiberspansover130kmbetweentrxLannion_CASandtrxLorient_KMANowpropagatingbetweentrxLannion_CASandtrxLorient_KMA:TransceivertrxLannion_CASRoadmroadmLannion_CASeffectiveloss(dB):20.00referencepchout(dBm):-20.00actualpchout(dBm):-20.00EdfaeastedfainLannion_CAStoCorlaytype_variety:std_medium_gaineffectivegain(dB):21.00noisefigure(dB):6.36PowerIn(dBm):-1.19PowerOut(dBm):19.82Delta_P(dB):1.00targetpch(dBm):1.00actualpchout(dBm):1.01Fiberfiber(Lannion_CASCorlay)-F061length(km):20.00totalloss(dB):4.00(includesconnloss(dB)in:0.00out:0.00)referencepchout(dBm):-3.00actualpchout(dBm):-2.99FusedwestfusedspansinCorlayloss(dB):1.00Fiberfiber(CorlayLoudeac)-F010length(km):50.00totalloss(dB):10.00referencepchout(dBm):-14.00actualpchout(dBm):-13.99FusedwestfusedspansinLoudeacFiberfiber(LoudeacLorient_KMA)-F054length(km):60.00totalloss(dB):12.00referencepchout(dBm):-27.00actualpchout(dBm):-26.99EdfawestedfainLorient_KMAtoLoudeactype_variety:std_high_gaineffectivegain(dB):28.00noisefigure(dB):5.92PowerIn(dBm):-8.18PowerOut(dBm):19.85actualpchout(dBm):1.05RoadmroadmLorient_KMAeffectiveloss(dB):21.00TransceivertrxLorient_KMAGSNR(0.1nm,dB):23.61GSNR(signalbw,dB):19.53OSNRASE(0.1nm,dB):23.89OSNRASE(signalbw,dB):19.81CD(ps/nm):2171.00PMD(ps):0.46Latency(ms):0.64FinalGSNR(0.1nm):023.61 dB0Network (after autodesign) saved to test_autodesign.json(Nosourcenodespecified:pickedtrxLannion_CAS)(Nodestinationnodespecified:pickedtrxLorient_KMA)user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-request0List of disjunctions[Disjunction3relaxable:falselink-diverse:Truenode-diverse:Truerequest-id-numbers:['3','1'],Disjunction4request-id-numbers:['4','5']]0Aggregating similar requests0The following services have been requested:[PathRequest0source:trxLorient_KMAdestination:trxVannes_KBEtrxtype:Voyagertrxmode:Nonebaud_rate:NoneGbaudbit_rate:NoneGb/sspacing:50.0GHzpower:1.0dBmnbchannels:80path_bandwidth:100.0Gbit/snodes-list:[]loose-list:[],PathRequest1source:trxBrest_KLAtrxmode:mode1baud_rate:32.0Gbaudbit_rate:100.0Gb/snbchannels:95path_bandwidth:200.0Gbit/snodes-list:['roadmBrest_KLA','roadmLannion_CAS','roadmLorient_KMA','roadmVannes_KBE']loose-list:['LOOSE','LOOSE','LOOSE','LOOSE'],PathRequest3source:trxLannion_CASdestination:trxRennes_STAtrxtype:vendorA_trx-type1power:0.0dBmpath_bandwidth:60.0Gbit/s,PathRequest4source:trxRennes_STAdestination:trxLannion_CASspacing:75.0GHzpower:3.0dBmnbchannels:63path_bandwidth:150.0Gbit/s,PathRequest5trxmode:mode2baud_rate:66.0Gbaudbit_rate:200.0Gb/spath_bandwidth:20.0Gbit/s,PathRequest7|6destination:trxLorient_KMAnbchannels:76path_bandwidth:700.0Gbit/s,PathRequest7bnbchannels:50path_bandwidth:400.0Gbit/s0Computing all paths with constraints0Propagating on selected path0Result summaryreqiddemandGSNR@bandwidthA-Z(Z-A)GSNR@0.1nmA-Z(Z-A)ReceiverminOSNRmodeGbit/snboftsppairsN,Morblockingreason0trxLorient_KMAtotrxVannes_KBE:24.8328.9214mode1100.01([-284],[4])1trxBrest_KLAtotrxVannes_KBE:17.7421.8214mode1200.02([-272],[8])3trxLannion_CAStotrxRennes_STA:22.1926.2813mode160.01([-284],[4])4trxRennes_STAtotrxLannion_CAS:16.0623.2917mode2150.01([-258],[6])5trxRennes_STAtotrxLannion_CAS:20.327.5317mode220.01([-274],[6])7|6trxLannion_CAStotrxLorient_KMA:19.5223.6114mode1700.07([-224],[28])7btrxLannion_CAStotrxLorient_KMA:19.6123.6914mode1400.04([-172],[24])0Result summary shows mean GSNR and OSNR (average over all channels)user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/example-data/meshTopologyExampleV2.xls-empleV2.xls-egnpy/example-data/eqpt_config.json-ompleV2.xls-egnpy/example-data/eqpt_config.json-oresults.json0Saved JSON to results.jsonuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-tuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-truser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-trauser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example-user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--puser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--pouser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--powuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--poweuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--power-user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--power-0user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-example--power-0.user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-exampleguser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/euser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/exuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/exauser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/examuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/muser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/mesuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-eguser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnpuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnpyuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnpy/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnpy/euser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnpy/example-data/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-transmission-examplegnpy/example-data/meshTopologyExampleV2.xls-egnpy/example-data/e_config.json_config.json-_config.json--_config.json--s_config.json--sa_config.json--sav_config.json--save_config.json--save-_config.json--save-n_config.json--save-ne_config.json--save-net_config.json--save-netw_config.json--save-netwo_config.json--save-networ_config.json--save-networkt_config.json--save-networkte_config.json--save-networktes_config.json--save-networktest_config.json--save-networktest__config.json--save-networktest_a_config.json--save-networktest_au_config.json--save-networktest_aut_config.json--save-networktest_auto_config.json--save-networktest_autod_config.json--save-networktest_autode_config.json--save-networktest_autodes_config.json--save-networktest_autodesi_config.json--save-networktest_autodesig_config.json--save-networktest_autodesign_config.json--save-networktest_autodesign._config.json--save-networktest_autodesign.j_config.json--save-networktest_autodesign.js_config.json--save-networktest_autodesign.jsouser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-puser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-padestination:nbchuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestguser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpyuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/euser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/exuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/exauser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/examuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/exampuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/muser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/mesuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsguser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpyuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/euser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/example-data/user@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/example-data/muser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/example-data/meuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/example-data/mesuser@machine:~/workspace/TIP/test/oopt-gnpy$gnpy-path-requestgnpy/example-data/meshTopologyExampleV2.xlsgnpy/example-data/meshmpleV2.xlsmpleV2.xls-mpleV2.xls-egmpleV2.xls-egnmpleV2.xls-egnpmpleV2.xls-egnpympleV2.xls-egnpy/mpleV2.xls-egnpy/empleV2.xls-egnpy/exmpleV2.xls-egnpy/example-data/mpleV2.xls-egnpy/example-data/empleV2.xls-egnpy/example-data/eqmpleV2.xls-egnpy/example-data/eqpt_config.jsonmpleV2.xls-egnpy/example-data/eqpt_config.json-mpleV2.xls-egnpy/example-data/eqpt_config.json-ormpleV2.xls-egnpy/example-data/eqpt_config.json-orempleV2.xls-egnpy/example-data/eqpt_config.json-oresmpleV2.xls-egnpy/example-data/eqpt_config.json-oresumpleV2.xls-egnpy/example-data/eqpt_config.json-oresulmpleV2.xls-egnpy/example-data/eqpt_config.json-oresultmpleV2.xls-egnpy/example-data/eqpt_config.json-oresultsmpleV2.xls-egnpy/example-data/eqpt_config.json-oresults.mpleV2.xls-egnpy/example-data/eqpt_config.json-oresults.jmpleV2.xls-egnpy/example-data/eqpt_config.json-oresults.jsmpleV2.xls-egnpy/example-data/eqpt_config.json-oresults.jsoloose-list:[bit_rate5trxRennes_STAtotrxLannion_CAS:20.327.5317mexit \ No newline at end of file diff --git a/docs/intro.rst b/docs/intro.rst index 0d9430b1d..64119dcc2 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -59,7 +59,7 @@ Further Instructions for Use Simulations are driven by a set of `JSON `__ or `XLS `__ files. The ``gnpy-transmission-example`` script propagates a spectrum of channels at 32 Gbaud, 50 GHz spacing and 0 dBm/channel. -Launch power can be overridden by using the ``--power`` argument. +Launch power in fiber spans can be overridden by using the ``--power`` argument. Spectrum information is not yet parametrized but can be modified directly in the ``eqpt_config.json`` (via the ``SpectralInformation`` -SI- structure) to accommodate any baud rate or spacing. The number of channel is computed based on ``spacing`` and ``f_min``, ``f_max`` values.