- 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>
network design when no amplifiers are input in the json file
select_edfa chose the best amplifier in equipment list _from
eqpt_config.json_ wiht the following criteria in order:
1-amplifier wih sufficient gain
2-amplifier wiht sufficient power TODO
3-best NF amplifier staisfying 1 & 2
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
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>
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>
*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>
*eqpt sheet is optional: no error message if missing
*All nodes description is not needed
=> only read the node eqpt config when amp_type is input
=> if amp_type = '', the node ingress or egress eqpt is ignored
=> the network.py add_egress_amplifier will fill in missing edfa
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
improve code reading and clarity of topology parser:
*modify the connections binding
=>def fiber_dest_from_source to find all dest_city connected to a source_city
=>def fiber_link to return the fiber link from source_city to dest_city
*makes the parser algorithm more understandable
*prepare for the equipment parser
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
*namedtuple default values are only applied if the cell is not read
*if the cell is read but is empty '', there is a need to provide default
values: which is what this fix does
*sanity checks are reinforced :
-node_type is replaced by ROADM if degree <> 2: notify user
(print)
-check that node type is in ('ILA','ROADM','FUSED')
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
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>
-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>
* 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>
* Add Travis-CI configuration for continous integration
* Add GN-Model Documentation and auto-doc integration
* Add GN model to Fiber
* Unit of measure conversion adapted to SI
* 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>