Commit Graph

49 Commits

Author SHA1 Message Date
ojnas
215295efb1 changed source and destination handling 2018-10-25 15:25:28 +02:00
James Powell
c54ddb644a fix headers 2018-10-14 20:55:12 -04:00
Jean-Luc Auge
310d32dcea Generic write_csv in utils to save simulation results
tranmsission_main simulation results are saved to simulation_result.csv

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-09-13 14:30:33 +02:00
Jean-Luc Auge
225fb1ec0c Save network to json after build (auto design)
-Promote incremental and iterative network design
-Automatic saving of a "network-name_auto_design.json" file
-Results of the autodesign (additional amplifiers, configuration) are
saved to this ..._auto_design.json file
-This file can then be used to run a new simulation just like a normal
json input file

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-09-04 09:34:57 +02:00
Jean-Luc Auge
da39f1489f power range fix for power sweep
align the behaviour of
	eqpt_config[SI].power_range_db
with
	eqpt_config[Spans].delta_power_range_db
so that the min and max excursions are taken into account (which was not the case
when using range or arange for the SI power excursion)

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

power range sweep fix

fix behaviour when power range length = 0
update eqpt_config json default values

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

restore verbose off for power sweep

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-10 11:36:29 +02:00
Jean-Luc Auge
1437b6010e Small fixes
code cleanning
	consistency wiht path request
	generator bug fix
	select_edfa readibility enhancement
	set roadm_loss before design in power mode

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-08 14:24:12 +02:00
Jean-Luc Auge
ff6d81b749 Power setting refactor
separate in the code:
	* add egress amplifier
	* vs setting the amplifier parameters
=> prepare improvments in select_edfa and target_power code
regroup all network optimization operations in network.py (remove from
transmission_main)

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-07 13:39:08 +02:00
Jean-Luc Auge
d1c7489768 Automatic design Delta power / span
* automatic design (when amplifiers are missing from network topology
input) finds the optimum power difference between spans
* The range of this optimum power difference is defined in
eqpt_config[Spans][delta_power_range_db] = [min, max, step]

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-02 12:30:05 +02:00
Jean-Luc Auge
63ade5fdef Fix bug when splitting fiber in calculated length
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 12:13:08 +02:00
Jean-Luc Auge
e3acf02bde Error message handling and code exit
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 11:18:21 +02:00
Jean-Luc Auge
10268e82d4 Power sweep parametrization
=>  read power range [lower, upper, step] in eqpt_config.json
            do not display intermediate NE info if range > 1
=>  update eqpt_config.json data

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 11:02:57 +02:00
Jean-Luc Auge
bc44bf726a Fix bug in setting the Roadm egress reference power
* apply to power_mode only
* bug caused by the previous merge

restore default connector loss in excel to json parser (convert.py) to
0dB

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 10:59:00 +02:00
EstherLerouzic
a6157f328d Work contnued on fixing dutc merge with power feature of jla
- adding relevant call in path_request_run
- unifying variable name: baudrat -> baud_rate
- correcting test with the new power features
- unifying naming of variables n_ch-> nb_channel, sink -> destination (this
  follows the usual naming in yang path computation models)
- bug fix in novel trx_mode_params function , use of the function in
  path_requests_un
- TODO : place roll-off in the tsp lib instead of SI

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-07-16 17:43:56 +01:00
Jean-Luc Auge
c6432e2c28 restore power management in transmission main
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-13 18:15:21 +02:00
Jean-Luc Auge
4a756bf2a9 Read trx parameters and find channel spacing&count
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-13 13:45:05 +02:00
James Powell
7aba40cd5b fixed merge conflicts; added default pref value for SI 2018-07-10 10:35:42 -04:00
EstherLerouzic
55393ca9eb implement the use of TSP f_min
- tsp fmin is used instead of default SI value

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-07-09 10:24:34 +01:00
EstherLerouzic
e9aa4d5601 Integration of Path_request_run functionalities into transmisson_main_example
creation of modular functions to be called
use of the same propagate function in both examples

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-07-06 17:32:56 +01:00
EstherLerouzic
6d49769df9 Refactor path_request_run and integration of functions to transmission
- use load_equipment instead of load_SI
- integrate the pathrequest class into transmission main

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-07-05 18:33:04 +01:00
Jean-Luc Auge
0333e9d094 update amplifier test
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-05 19:21:48 +02:00
Jean-Luc Auge
53bedca50a parametrize and format power mode
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-05 17:07:59 +02:00
Jean-Luc Auge
794e713d6d small fix source & node input in transmission main
enhance default value support
run global coronet network in the same US region

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-05 12:51:39 +02:00
Jean-Luc Auge
c86ea206d9 bug fix CORONET_GLOBAL_Topology example
bugs from the last refactor merge
- fix #1: update fiber length after split
- fix #2: add egress amp after fiber split

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-05 12:50:48 +02:00
Jean-Luc Auge
b810cf84c2 Power mode implementation
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-05 12:50:23 +02:00
EstherLerouzic
15bc5db2ed adding test on the propagation on a link example
test verifies that OSNR and SNR computed values are consistant
including connector loss and input power variation
onto 2 example links: 1 and 5 spans

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-07-04 16:45:28 +01:00
EstherLerouzic
8795c357ae Implementation of connector losses in the propagation function
- connector losses can be part of the json description or not
  in any case a connector loss in and out is now part of the fiber class.
  if not present the default value is 0.0 dB

- propagate function in Fiber class now has a first attenuation
  propagation step. output conn loos is integrated in the
  initial loop function.

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-07-02 17:23:58 +01:00
Jean-Luc Auge
4f5325acac small fixes
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-06-21 16:14:25 +02:00
EstherLerouzic
b93c6dbcbd Merge: merge completed
Path_requests_run and convert_service_sheet.py now use funtions from transmission main

ISSUE from develop refactor : the json generation of the topology is missing all amplifiers !
- ILA are not included
- some edfa appear in the json topo when Eqpt sheet is used, but not all of them (only for
the requested path when running transmission_main_example)

TODO : identify if this is a new behaviour or if this is a regression

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-06-13 16:42:10 +01:00
Jean-Luc Auge
ff6e379b6f Use load_json utility
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-06-07 11:56:20 +02:00
Jean-Luc Auge
627184ef2d restore transmission main power sweep and format
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-06-07 10:59:33 +02:00
Jean-Luc Auge
180e1178ef restore xls to json file parser-execute from json
xls topology is parsed automatically to json
transmission_main reads from the json generated topology
transmission_main should not read from convert.py data output
This way there is consistency between json and xls inputs

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-06-07 09:36:07 +02:00
James Powell
695c538ee5 merge of major refactor
cherry pick of the major refactor commit
many conflicts resolved and code re-written
2018-05-24 12:35:39 +02:00
James
4a9a7e31ba Merge pull request #71 from Orange-OpenSource/useability_improvement_3
Useability improvement 3
2018-05-03 11:33:48 -04:00
EstherLerouzic
f129f92cfd Enabling input files indirection for excel and json parser + pytest update
replacing bare string reading with Path object and split nam based on
Path structure in convert.py and in transmission_main_example.py

Update of pytest tests

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-05-02 14:28:49 +01:00
James
ff938d4ced Merge pull request #66 from Orange-OpenSource/fused_spans
Fused spans, source/sink nodes suggestion, eqpt sheet support in xls parser
2018-05-02 08:55:38 -04:00
Jean-Luc Auge
0b1c7bfa30 Merge branch 'fused_spans-fixes' of https://github.com/dutc/gnpy into dutc-fused_spans
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-27 12:17:41 +02:00
Jean-Luc Auge
80f8a345b5 Sanity checks and small code fix
xls convert:
	 sanity check Nodes vs Links sheets
	 column parsing limitation so user can add non code related
fields/information
code fix and eqpt_exists to check if an equipment is defined in the eqpt_config.json library

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-27 11:36:25 +02:00
James Powell
7d3ab357d0 command-line parameter for plotting 2018-04-26 12:05:22 -04:00
James Powell
14938ea7dd small fixes 2018-04-25 02:42:08 -04:00
Jean-Luc Auge
be0c052e5e source/destination nodes suggestion
fix bug in Fused span: adding ingress and egress directions
=> do not share the same NE between 2 directions

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-24 15:16:20 +02:00
Jean-Luc Auge
af90a6658e Fused spans class and edfa gain adaptation
*new Fused spans class to support the connection between 2 fibers
without amplification
*add_egress_amplifier adjust the edfa gain to compensate the loss
of n fused spans
*eqpt not found in eqpt library is caught and stop the code

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

code fix for the eqpt sheet reading in xls parser

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

amplifier design and eqpt parser code fix

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-24 15:15:59 +02:00
James Powell
dba7846d6c equipment json paths use relative directories 2018-04-22 19:06:35 -04:00
Jean-Luc Auge
1b808afd5d Advanced xls input support: Nodes & Links reading
Parse advanced fiber parameters from xls into json format:
accept a .xls or a .json input parameter
creates the corresponding .json file
read east/west directions for fiber parameters (fber type, distance...)
read node type (ILA or ROADM)
provide default values if fields are missing
    => full backward compatibility to read the original CORONET xls

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-22 19:06:35 -04:00
Jean-Luc Auge
8d6f69eb05 Equipment library implementation
-read eqpt_config.json with various EDFA and fiber type definitions
-std low gain and medium gain EDFA available
-clearer differentiation between the 2 edfa models:
	is the advanced_config_from_json field present or not?

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-22 19:06:35 -04:00
Jean-Luc Auge
c4562df955 Add source sink arguments, restore convert.py
demonstrate mesh routing capability with source & sink options
readd CORONET xls and convert.py parser from xls to json

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-22 19:06:35 -04:00
James Powell
398124e841 enable graphing of result 2018-03-12 14:43:58 -04:00
Jean-Luc Augé
a0aab0918a README.rst Instructions and tests path for CI (#41)
* clean transmission_main_example.py

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* Add Instructions in README.rst and pytest path for CI

Instructions to run transmission_main_example.py
change config files path in ampliier_test to enable
Travis CI build

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-03-12 14:43:58 -04:00
Jean-Luc Augé
2461385a94 add Roadm, coronet_conus support and amplifier pytests (#35)
* Add EDFA unitary pytests

check nf calculation, nf models comparison, ase noise profile
elements.py edfa _gain_profile: add div 0 checks when no ripple

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* support of coronet.conus network and add class __repr__

adaptation of convert.py to new code json formating
add_egress_amplifier, split_fiber and calculate_new_length
subs in network.py
elements.py:
code cleaning
adding new attributes in Edfa class (pin_db, pout_db...)
adding or augmenting class __repr__

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* augment amplifier unitary tests and code cleaning

add new tests in amplifier_test.py for pytest
Edfa class code cleaning in elements.py
recheck code coherence and results

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* ROADM support in network.py, convert.py, coronet json, ROADM class

creation of a ROADM class with 20dB loss
convert.py json parser modification to include roadms
network.py modification to automate amplifier placing after roadm
elements.py inclusion of Roadm class

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-03-12 14:43:58 -04:00
Jean-Luc Augé
0d3a86f1d8 code wrap up and edfa model augmentation v2 (#30)
* JSON file based on Orange operator typical input
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* update of the standalone edfa model

creation of a new amlifier2.py = v2
creation of a json parser build_oa_json.py
the parser takes OA.json as input and newOA.json as output
creation of a pytest verification module amplifier_pytest.py

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* put the code together and transmission example script

-basic dijkstra propagation
-ase noise propagation based on amplifier model
-fake nli noise propagation
-integration of the amplifier model
-interpolation function in the edfa class
-code cleaning and units harmonization

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* mv transmission_main_example and rm _main__

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* 2nd edfa model and build_oa_json file

add a dual coil stages edfa model in case the nf polynomial fit is not known
add a build_oa_json file that convert the input files in
edfa_config.json file and pre-calculate the nf_model nf1, nf2 and
delta_p parameters
adding power violation check and input padding (below minimum gain) in the edfa model
class

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-02-20 12:51:53 -05:00