mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-10-30 09:42:22 +00:00
Merge pull request #252 from Orange-OpenSource/bug_fixes_create_eqpt_sheet
Refactoring and bug fixes in an auxiliary transformation tool.
This commit is contained in:
@@ -11,64 +11,72 @@ If not present in the "Nodes" sheet, the "Type" column will be implicitly
|
|||||||
determined based on the topology.
|
determined based on the topology.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from sys import exit
|
|
||||||
try:
|
try:
|
||||||
from xlrd import open_workbook
|
from xlrd import open_workbook
|
||||||
except ModuleNotFoundError:
|
except ModuleNotFoundError:
|
||||||
exit('Required: `pip install xlrd`')
|
exit('Required: `pip install xlrd`')
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from collections import namedtuple, defaultdict
|
|
||||||
|
|
||||||
|
PARSER = ArgumentParser()
|
||||||
Shortlink = namedtuple('Link', 'src dest')
|
PARSER.add_argument('workbook', nargs='?', default='meshTopologyExampleV2.xls',
|
||||||
|
|
||||||
Shortnode = namedtuple('Node', 'nodename eqt')
|
|
||||||
|
|
||||||
parser = ArgumentParser()
|
|
||||||
parser.add_argument('workbook', nargs='?', default='meshTopologyExampleV2.xls',
|
|
||||||
help='create the mandatory columns in Eqpt sheet')
|
help='create the mandatory columns in Eqpt sheet')
|
||||||
all_rows = lambda sh, start=0: (sh.row(x) for x in range(start, sh.nrows))
|
ALL_ROWS = lambda sh, start=0: (sh.row(x) for x in range(start, sh.nrows))
|
||||||
|
|
||||||
|
class Node:
|
||||||
|
""" Node element contains uid, list of connected nodes and eqpt type
|
||||||
|
"""
|
||||||
|
def __init__(self, uid, to_node):
|
||||||
|
self.uid = uid
|
||||||
|
self.to_node = to_node
|
||||||
|
self.eqpt = None
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f'uid {self.uid} \nto_node {[node for node in self.to_node]}\neqpt {self.eqpt}\n'
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f'uid {self.uid} \nto_node {[node for node in self.to_node]}\neqpt {self.eqpt}\n'
|
||||||
|
|
||||||
def read_excel(input_filename):
|
def read_excel(input_filename):
|
||||||
with open_workbook(input_filename) as wb:
|
""" read excel Nodes and Links sheets and create a dict of nodes with
|
||||||
|
their to_nodes and type of eqpt
|
||||||
|
"""
|
||||||
|
with open_workbook(input_filename) as wobo:
|
||||||
# reading Links sheet
|
# reading Links sheet
|
||||||
links_sheet = wb.sheet_by_name('Links')
|
links_sheet = wobo.sheet_by_name('Links')
|
||||||
links = []
|
nodes = {}
|
||||||
nodeoccuranceinlinks = []
|
for row in ALL_ROWS(links_sheet, start=5):
|
||||||
links_by_src = defaultdict(list)
|
try:
|
||||||
links_by_dest = defaultdict(list)
|
nodes[row[0].value].to_node.append(row[1].value)
|
||||||
for row in all_rows(links_sheet, start=5):
|
except KeyError:
|
||||||
links.append(Shortlink(row[0].value,row[1].value))
|
nodes[row[0].value] = Node(row[0].value, [row[1].value])
|
||||||
links_by_src[row[0].value].append(Shortnode(row[1].value,''))
|
try:
|
||||||
links_by_dest[row[1].value].append(Shortnode(row[0].value,''))
|
nodes[row[1].value].to_node.append(row[0].value)
|
||||||
#print(f'source {links[len(links)-1].src} dest {links[len(links)-1].dest}')
|
except KeyError:
|
||||||
nodeoccuranceinlinks.append(row[0].value)
|
nodes[row[1].value] = Node(row[1].value, [row[0].value])
|
||||||
nodeoccuranceinlinks.append(row[1].value)
|
|
||||||
|
|
||||||
# reading Nodes sheet
|
nodes_sheet = wobo.sheet_by_name('Nodes')
|
||||||
nodes_sheet = wb.sheet_by_name('Nodes')
|
for row in ALL_ROWS(nodes_sheet, start=5):
|
||||||
nodes = []
|
node = row[0].value
|
||||||
node_degree = []
|
eqpt = row[6].value
|
||||||
for row in all_rows(nodes_sheet, start=5) :
|
try:
|
||||||
|
if eqpt == 'ILA' and len(nodes[node].to_node) != 2:
|
||||||
|
print(f'Inconsistancy ILA node with degree > 2: {node} ')
|
||||||
|
exit()
|
||||||
|
if eqpt == '' and len(nodes[node].to_node) == 2:
|
||||||
|
nodes[node].eqpt = 'ILA'
|
||||||
|
elif eqpt == '' and len(nodes[node].to_node) != 2:
|
||||||
|
nodes[node].eqpt = 'ROADM'
|
||||||
|
else:
|
||||||
|
nodes[node].eqpt = eqpt
|
||||||
|
except KeyError:
|
||||||
|
print(f'inconsistancy between nodes and links sheet: {node} is not listed in links')
|
||||||
|
exit()
|
||||||
|
return nodes
|
||||||
|
|
||||||
temp_eqt = row[6].value
|
def create_eqt_template(nodes, input_filename):
|
||||||
# verify node degree to confirm eqt type
|
""" writes list of node A node Z corresponding to Nodes and Links sheets in order
|
||||||
node_degree.append(nodeoccuranceinlinks.count(row[0].value))
|
to help user populating Eqpt
|
||||||
if temp_eqt.lower() == 'ila' and nodeoccuranceinlinks.count(row[0].value) !=2 :
|
"""
|
||||||
print(f'Inconsistancy: node {nodes[len(nodes)-1]} has degree \
|
|
||||||
{node_degree[len(nodes)-1]} and can not be an ILA ... replaced by ROADM')
|
|
||||||
temp_eqt = 'ROADM'
|
|
||||||
if temp_eqt == '' and nodeoccuranceinlinks.count(row[0].value) == 2 :
|
|
||||||
temp_eqt = 'ILA'
|
|
||||||
if temp_eqt == '' and nodeoccuranceinlinks.count(row[0].value) != 2 :
|
|
||||||
temp_eqt = 'ROADM'
|
|
||||||
# print(f'node {nodes[len(nodes)-1]} eqt {temp_eqt}')
|
|
||||||
nodes.append(Shortnode(row[0].value,temp_eqt))
|
|
||||||
# print(len(nodes)-1)
|
|
||||||
print(f'reading: node {nodes[len(nodes)-1].nodename} eqpt {temp_eqt}')
|
|
||||||
return links,nodes, links_by_src , links_by_dest
|
|
||||||
|
|
||||||
def create_eqt_template(links,nodes, links_by_src , links_by_dest, input_filename):
|
|
||||||
output_filename = f'{input_filename[:-4]}_eqpt_sheet.txt'
|
output_filename = f'{input_filename[:-4]}_eqpt_sheet.txt'
|
||||||
with open(output_filename, 'w', encoding='utf-8') as my_file:
|
with open(output_filename, 'w', encoding='utf-8') as my_file:
|
||||||
# print header similar to excel
|
# print header similar to excel
|
||||||
@@ -77,27 +85,17 @@ def create_eqt_template(links,nodes, links_by_src , links_by_dest, input_filenam
|
|||||||
\nNode A \tNode Z \tamp type \tatt_in \tamp gain \ttilt \tatt_out\
|
\nNode A \tNode Z \tamp type \tatt_in \tamp gain \ttilt \tatt_out\
|
||||||
amp type \tatt_in \tamp gain \ttilt \tatt_out\n')
|
amp type \tatt_in \tamp gain \ttilt \tatt_out\n')
|
||||||
|
|
||||||
tab = []
|
|
||||||
temp = []
|
for node in nodes.values():
|
||||||
i = 0
|
if node.eqpt == 'ILA':
|
||||||
for lk in links:
|
my_file.write(f'{node.uid}\t{node.to_node[0]}\n')
|
||||||
if [e for n,e in nodes if n==lk.src][0] != 'FUSED' :
|
if node.eqpt == 'ROADM':
|
||||||
temp = [lk.src , lk.dest]
|
for to_node in node.to_node:
|
||||||
tab.append(temp)
|
my_file.write(f'{node.uid}\t{to_node}\n')
|
||||||
my_file.write(f'{temp[0]}\t{temp[1]}\n')
|
|
||||||
for n in nodes :
|
|
||||||
if n.eqt.lower() == 'roadm' :
|
|
||||||
for src in links_by_dest[n.nodename] :
|
|
||||||
temp = [n.nodename , src.nodename]
|
|
||||||
tab.append(temp)
|
|
||||||
# print(temp)
|
|
||||||
my_file.write(f'{temp[0]}\t{temp[1]}\n')
|
|
||||||
i = i + 1
|
|
||||||
print(f'File {output_filename} successfully created with Node A - Node Z ' +
|
print(f'File {output_filename} successfully created with Node A - Node Z ' +
|
||||||
' entries for Eqpt sheet in excel file.')
|
' entries for Eqpt sheet in excel file.')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
args = parser.parse_args()
|
ARGS = PARSER.parse_args()
|
||||||
input_filename = args.workbook
|
create_eqt_template(read_excel(ARGS.workbook), ARGS.workbook)
|
||||||
links,nodes,links_by_src, links_by_dest = read_excel(input_filename)
|
|
||||||
create_eqt_template(links,nodes, links_by_src , links_by_dest , input_filename)
|
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -42,7 +42,7 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "Rennes_STA",
|
"city": "Rennes_STA",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 0.0,
|
"latitude": 4.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "Brest_KLA",
|
"city": "Brest_KLA",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 4.0,
|
"latitude": 0.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "a",
|
"city": "a",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 6.0,
|
||||||
"longitude": 0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -78,8 +78,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "b",
|
"city": "b",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -90,8 +90,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "c",
|
"city": "c",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 6.0,
|
||||||
"longitude": 0
|
"longitude": 1.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -102,8 +102,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "d",
|
"city": "d",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 6.0,
|
||||||
"longitude": 0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -114,8 +114,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "e",
|
"city": "e",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -126,8 +126,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "f",
|
"city": "f",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 1.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -138,8 +138,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "g",
|
"city": "g",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 3.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -150,8 +150,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "h",
|
"city": "h",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 2.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Transceiver"
|
"type": "Transceiver"
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "Rennes_STA",
|
"city": "Rennes_STA",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 0.0,
|
"latitude": 4.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -210,7 +210,7 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "Brest_KLA",
|
"city": "Brest_KLA",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 4.0,
|
"latitude": 0.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -222,8 +222,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "a",
|
"city": "a",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 6.0,
|
||||||
"longitude": 0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -234,8 +234,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "b",
|
"city": "b",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -246,8 +246,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "c",
|
"city": "c",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 6.0,
|
||||||
"longitude": 0
|
"longitude": 1.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -258,8 +258,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "d",
|
"city": "d",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 6.0,
|
||||||
"longitude": 0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -270,8 +270,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "e",
|
"city": "e",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -282,8 +282,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "f",
|
"city": "f",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 1.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -294,8 +294,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "g",
|
"city": "g",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 3.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -306,8 +306,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "h",
|
"city": "h",
|
||||||
"region": "",
|
"region": "",
|
||||||
"latitude": 0,
|
"latitude": 5.0,
|
||||||
"longitude": 0
|
"longitude": 2.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Roadm"
|
"type": "Roadm"
|
||||||
@@ -342,7 +342,7 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "Morlaix",
|
"city": "Morlaix",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 3.0,
|
"latitude": 1.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -378,7 +378,7 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "Morlaix",
|
"city": "Morlaix",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 3.0,
|
"latitude": 1.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -460,7 +460,7 @@
|
|||||||
"uid": "fiber (Lannion_CAS → Stbrieuc)-F056",
|
"uid": "fiber (Lannion_CAS → Stbrieuc)-F056",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 1.5,
|
"latitude": 2.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -478,7 +478,7 @@
|
|||||||
"uid": "fiber (Stbrieuc → Rennes_STA)-F057",
|
"uid": "fiber (Stbrieuc → Rennes_STA)-F057",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.5,
|
"latitude": 3.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -496,7 +496,7 @@
|
|||||||
"uid": "fiber (Lannion_CAS → Morlaix)-F059",
|
"uid": "fiber (Lannion_CAS → Morlaix)-F059",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 2.5,
|
"latitude": 1.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -514,7 +514,7 @@
|
|||||||
"uid": "fiber (Morlaix → Brest_KLA)-F060",
|
"uid": "fiber (Morlaix → Brest_KLA)-F060",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 3.5,
|
"latitude": 0.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -532,8 +532,8 @@
|
|||||||
"uid": "fiber (Brest_KLA → Quimper)-",
|
"uid": "fiber (Brest_KLA → Quimper)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 2.5,
|
"latitude": 0.0,
|
||||||
"longitude": 0.5
|
"longitude": 1.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -550,8 +550,8 @@
|
|||||||
"uid": "fiber (Quimper → Lorient_KMA)-",
|
"uid": "fiber (Quimper → Lorient_KMA)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 1.5,
|
"latitude": 1.0,
|
||||||
"longitude": 2.0
|
"longitude": 3.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -568,8 +568,8 @@
|
|||||||
"uid": "fiber (Ploermel → Vannes_KBE)-",
|
"uid": "fiber (Ploermel → Vannes_KBE)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 1.5,
|
"latitude": 3.0,
|
||||||
"longitude": 3.0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -586,8 +586,8 @@
|
|||||||
"uid": "fiber (Ploermel → Rennes_STA)-",
|
"uid": "fiber (Ploermel → Rennes_STA)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.5,
|
"latitude": 4.0,
|
||||||
"longitude": 1.0
|
"longitude": 2.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -604,7 +604,7 @@
|
|||||||
"uid": "fiber (a → b)-",
|
"uid": "fiber (a → b)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -622,8 +622,8 @@
|
|||||||
"uid": "fiber (a → c)-",
|
"uid": "fiber (a → c)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 6.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -640,8 +640,8 @@
|
|||||||
"uid": "fiber (c → d)-",
|
"uid": "fiber (c → d)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 6.0,
|
||||||
"longitude": 0.0
|
"longitude": 2.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -658,8 +658,8 @@
|
|||||||
"uid": "fiber (c → f)-",
|
"uid": "fiber (c → f)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.5,
|
||||||
"longitude": 0.0
|
"longitude": 1.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -676,8 +676,8 @@
|
|||||||
"uid": "fiber (b → f)-",
|
"uid": "fiber (b → f)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -694,8 +694,8 @@
|
|||||||
"uid": "fiber (e → d)-",
|
"uid": "fiber (e → d)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.5,
|
||||||
"longitude": 0.0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -712,8 +712,8 @@
|
|||||||
"uid": "fiber (e → g)-",
|
"uid": "fiber (e → g)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 3.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -730,8 +730,8 @@
|
|||||||
"uid": "fiber (f → h)-",
|
"uid": "fiber (f → h)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 1.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -748,8 +748,8 @@
|
|||||||
"uid": "fiber (h → g)-",
|
"uid": "fiber (h → g)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 2.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -838,7 +838,7 @@
|
|||||||
"uid": "fiber (Stbrieuc → Lannion_CAS)-F056",
|
"uid": "fiber (Stbrieuc → Lannion_CAS)-F056",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 1.5,
|
"latitude": 2.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -856,7 +856,7 @@
|
|||||||
"uid": "fiber (Rennes_STA → Stbrieuc)-F057",
|
"uid": "fiber (Rennes_STA → Stbrieuc)-F057",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.5,
|
"latitude": 3.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -874,7 +874,7 @@
|
|||||||
"uid": "fiber (Morlaix → Lannion_CAS)-F059",
|
"uid": "fiber (Morlaix → Lannion_CAS)-F059",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 2.5,
|
"latitude": 1.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -892,7 +892,7 @@
|
|||||||
"uid": "fiber (Brest_KLA → Morlaix)-F060",
|
"uid": "fiber (Brest_KLA → Morlaix)-F060",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 3.5,
|
"latitude": 0.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -910,8 +910,8 @@
|
|||||||
"uid": "fiber (Quimper → Brest_KLA)-",
|
"uid": "fiber (Quimper → Brest_KLA)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 2.5,
|
"latitude": 0.0,
|
||||||
"longitude": 0.5
|
"longitude": 1.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -928,8 +928,8 @@
|
|||||||
"uid": "fiber (Lorient_KMA → Quimper)-",
|
"uid": "fiber (Lorient_KMA → Quimper)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 1.5,
|
"latitude": 1.0,
|
||||||
"longitude": 2.0
|
"longitude": 3.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -946,8 +946,8 @@
|
|||||||
"uid": "fiber (Vannes_KBE → Ploermel)-",
|
"uid": "fiber (Vannes_KBE → Ploermel)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 1.5,
|
"latitude": 3.0,
|
||||||
"longitude": 3.0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -964,8 +964,8 @@
|
|||||||
"uid": "fiber (Rennes_STA → Ploermel)-",
|
"uid": "fiber (Rennes_STA → Ploermel)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.5,
|
"latitude": 4.0,
|
||||||
"longitude": 1.0
|
"longitude": 2.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -982,7 +982,7 @@
|
|||||||
"uid": "fiber (b → a)-",
|
"uid": "fiber (b → a)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.5,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1000,8 +1000,8 @@
|
|||||||
"uid": "fiber (c → a)-",
|
"uid": "fiber (c → a)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 6.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1018,8 +1018,8 @@
|
|||||||
"uid": "fiber (d → c)-",
|
"uid": "fiber (d → c)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 6.0,
|
||||||
"longitude": 0.0
|
"longitude": 2.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1036,8 +1036,8 @@
|
|||||||
"uid": "fiber (f → c)-",
|
"uid": "fiber (f → c)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.5,
|
||||||
"longitude": 0.0
|
"longitude": 1.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1054,8 +1054,8 @@
|
|||||||
"uid": "fiber (f → b)-",
|
"uid": "fiber (f → b)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1072,8 +1072,8 @@
|
|||||||
"uid": "fiber (d → e)-",
|
"uid": "fiber (d → e)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.5,
|
||||||
"longitude": 0.0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1090,8 +1090,8 @@
|
|||||||
"uid": "fiber (g → e)-",
|
"uid": "fiber (g → e)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 3.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1108,8 +1108,8 @@
|
|||||||
"uid": "fiber (h → f)-",
|
"uid": "fiber (h → f)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 1.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1126,8 +1126,8 @@
|
|||||||
"uid": "fiber (g → h)-",
|
"uid": "fiber (g → h)-",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"latitude": 0.0,
|
"latitude": 5.0,
|
||||||
"longitude": 0.0
|
"longitude": 2.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Fiber",
|
"type": "Fiber",
|
||||||
@@ -1178,25 +1178,6 @@
|
|||||||
"out_voa": null
|
"out_voa": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"uid": "east edfa in Stbrieuc to Rennes_STA",
|
|
||||||
"metadata": {
|
|
||||||
"location": {
|
|
||||||
"city": "Stbrieuc",
|
|
||||||
"region": "RLD",
|
|
||||||
"latitude": 1.0,
|
|
||||||
"longitude": 0.0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"type": "Edfa",
|
|
||||||
"type_variety": "std_medium_gain",
|
|
||||||
"operational": {
|
|
||||||
"gain_target": 18.5,
|
|
||||||
"delta_p": null,
|
|
||||||
"tilt_target": 0,
|
|
||||||
"out_voa": null
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"uid": "east edfa in Lannion_CAS to Morlaix",
|
"uid": "east edfa in Lannion_CAS to Morlaix",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
@@ -1216,13 +1197,32 @@
|
|||||||
"out_voa": 0.5
|
"out_voa": 0.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"uid": "east edfa in Stbrieuc to Rennes_STA",
|
||||||
|
"metadata": {
|
||||||
|
"location": {
|
||||||
|
"city": "Stbrieuc",
|
||||||
|
"region": "RLD",
|
||||||
|
"latitude": 3.0,
|
||||||
|
"longitude": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "Edfa",
|
||||||
|
"type_variety": "std_medium_gain",
|
||||||
|
"operational": {
|
||||||
|
"gain_target": 18.5,
|
||||||
|
"delta_p": null,
|
||||||
|
"tilt_target": 0,
|
||||||
|
"out_voa": null
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"uid": "east edfa in Brest_KLA to Quimper",
|
"uid": "east edfa in Brest_KLA to Quimper",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"location": {
|
"location": {
|
||||||
"city": "Brest_KLA",
|
"city": "Brest_KLA",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 4.0,
|
"latitude": 0.0,
|
||||||
"longitude": 0.0
|
"longitude": 0.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1241,8 +1241,8 @@
|
|||||||
"location": {
|
"location": {
|
||||||
"city": "Ploermel",
|
"city": "Ploermel",
|
||||||
"region": "RLD",
|
"region": "RLD",
|
||||||
"latitude": 1.0,
|
"latitude": 4.0,
|
||||||
"longitude": 2.0
|
"longitude": 4.0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "Edfa",
|
"type": "Edfa",
|
||||||
@@ -1291,25 +1291,6 @@
|
|||||||
"tilt_target": 0,
|
"tilt_target": 0,
|
||||||
"out_voa": null
|
"out_voa": null
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"uid": "west edfa in Quimper to Lorient_KMA",
|
|
||||||
"metadata": {
|
|
||||||
"location": {
|
|
||||||
"city": "Quimper",
|
|
||||||
"region": "RLD",
|
|
||||||
"latitude": 1.0,
|
|
||||||
"longitude": 1.0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"type": "Edfa",
|
|
||||||
"type_variety": "std_low_gain",
|
|
||||||
"operational": {
|
|
||||||
"gain_target": 19.0,
|
|
||||||
"delta_p": null,
|
|
||||||
"tilt_target": 0,
|
|
||||||
"out_voa": null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"connections": [
|
"connections": [
|
||||||
@@ -1499,10 +1480,6 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from_node": "fiber (Lorient_KMA → Quimper)-",
|
"from_node": "fiber (Lorient_KMA → Quimper)-",
|
||||||
"to_node": "west edfa in Quimper to Lorient_KMA"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from_node": "west edfa in Quimper to Lorient_KMA",
|
|
||||||
"to_node": "fiber (Quimper → Brest_KLA)-"
|
"to_node": "fiber (Quimper → Brest_KLA)-"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user