GNPy: Optical Route Planning Library
GNPy is an open-source, community-developed library for building route planning and optimization tools in real-world mesh optical networks. It is based on the Gaussian Noise Model.
Contents
- Introduction
- Simulating networks with GNPy
- Installing GNPy
- gnpy-path-request and gnpy-transmission-example scripts
- Amplifier models and Configuration
- JSON Input Files
- JSON examples
- Excel (XLS, XLSX) input files
- Extending GNPy with vendor-specific data
- About the project
- Physical Model used in GNPy
- API Reference Documentation
- GNPy package
gnpy.core- gnpy.core.ansi_escapes
- gnpy.core.elements
EdfaFiberFusedLocationMultiband_amplifierRamanFiberRoadmTransceiver_Node- gnpy.core.equipment
find_type_varieties()find_type_variety()trx_mode_params()- gnpy.core.exceptions
ConfigurationErrorDisjunctionErrorEquipmentConfigErrorNetworkTopologyErrorParametersErrorServiceErrorSpectrumError- gnpy.core.info
CarrierChannelDEFAULT_SLOT_WIDTH_STEPReferenceCarrierSpectralInformationcarriers_to_spectral_information()create_arbitrary_spectral_information()create_input_spectral_information()demuxed_spectral_information()is_in_band()muxed_spectral_information()select_channels()- gnpy.core.network
add_connector_loss()add_fiber_padding()add_inline_amplifier()add_missing_elements_in_network()add_missing_fiber_attributes()add_roadm_booster()add_roadm_preamp()build_network()calculate_new_length()check_oms_single_type()check_per_degree_design_bands_keys()compute_band_power_deviation_and_tilt()compute_gain_power_and_tilt_target()compute_tilt_using_previous_and_next_spans()design_network()edfa_nf()estimate_raman_gain()estimate_srs_power_deviation()filter_edfa_list_based_on_targets()find_first_node()find_last_node()get_next_node()get_node_restrictions()get_oms_edge_list()get_oms_edge_list_from_egress()get_previous_node()next_node_generator()preselect_multiband_amps()prev_node_generator()select_edfa()set_amplifier_voa()set_egress_amplifier()set_fiber_input_power()set_one_amplifier()set_per_degree_design_band()set_roadm_input_powers()set_roadm_internal_paths()set_roadm_per_degree_targets()set_roadm_ref_carrier()span_loss()split_fiber()target_power()update_design_bands_spacing()- gnpy.core.parameters
EdfaOperationalEdfaParamsFiberParamsFrequencyBandFusedParamsMultiBandParamsNLIParamsParametersPumpParamsRamanGainCoefficientRamanParamsRoadmImpairmentRoadmParamsRoadmPathSimParamsTransceiverParamsfind_band_name()- gnpy.core.science_utils
NliSolverRamanSolverStimulatedRamanScatteringestimate_nf_model()raised_cosine()- gnpy.core.utils
arrange_frequencies()automatic_fmax()automatic_nch()calculate_absolute_min_or_zero()calculate_spacing()convert_empty_to_none()convert_length()convert_none_to_empty()convert_pmd_lineic()db2lin()dbm2watt()deltaf2deltawl()deltawl2deltaf()filter_valid_amp_bands()find_common_range()get_spacing_from_band()lin2db()merge_amplifier_restrictions()nice_column_str()order_slots()per_label_average()power_dbm_to_psd_mw_ghz()pretty_summary_print()psd2powerdbm()psd_mw_per_ghz()remove_duplicates()reorder_per_degree_design_bands()replace_none()restore_order()round2float()rrc()silent_remove()snr_sum()transform_data()unique_ordered()use_pmd_coef()watt2dbm()write_csv()
gnpy.topology- gnpy.topology.request
DisjunctionPathRequestResultElement_get_srce_dest_trx()_jsontoparams()_jsontopath_metric()_penalty_msg()compare_reqs()compute_constrained_path()compute_path_dsjctn()compute_path_with_disjunction()compute_spectrum_slot_vs_bandwidth()correct_json_route_list()deduplicate_disjunctions()explicit_path()filter_si()find_elements_common_range()find_reversed_path()get_penalty_from_receiver()is_adjacent()isdisjoint()ispart()jsontocsv()penalty_msg()propagate()propagate_and_optimize_mode()read_property()remove_candidate()requests_aggregation()- gnpy.topology.spectrum_assignment
BitmapBitmapValueOMSOMSParamsaggregate_oms_bitmap()align_grids()bitmap_sum()build_oms_list()build_path_oms_id_list()compute_n_m()create_oms_bitmap()determine_slot_numbers()find_network_freq_range()frequency_to_n()m_to_freq()mvalue_to_slots()nvalue_to_frequency()pth_assign_spectrum()reversed_oms()select_candidate()slots_to_m()spectrum_selection()
gnpy.tools- gnpy.tools.cli_examples
_add_common_options()_get_nodes_from_path()_get_params_from_path()_get_rq_from_service()_infer_trx()_path_result_json()_setup_logging()load_common_data()path_requests_run()show_example_data_dir()transmission_main_example()- gnpy.tools.convert
EqptLinkNodeRoadm_do_convert()_format_items()connect_eqpt()convert_file()corresp_names()corresp_next_node()create_east_eqpt_element()create_east_fiber_element()create_roadm_element()create_west_eqpt_element()create_west_fiber_element()eqpt_connection_by_city()eqpt_in_city_to_city()fiber_dest_from_source()fiber_link()midpoint()parse_excel()parse_headers()parse_row()parse_sheet()read_header()read_slice()sanity_check()xls_to_json_data()- gnpy.tools.json_io
AmpFiberModel_dual_stageModel_fgModel_hybridModel_openroadm_boosterModel_openroadm_ilaModel_openroadm_preampModel_vgRamanFiberRoadmSISpanTransceiver_JsonThing_check_fiber_vs_raman_fiber()_check_one_request()_cls_for()_equipment_from_json()_roadm_restrictions_sanity_check()_si_sanity_check()_spectrum_from_json()_update_band()_update_dual_stage()convert_service_sheet()disjunctions_from_json()find_equalisation()load_eqpt_topo_from_json()load_equipment()load_equipments_and_configs()load_gnpy_json()load_initial_spectrum()load_json()load_network()load_requests()merge_equalization()merge_equipment()network_from_json()network_to_json()requests_from_json()results_to_json()save_gnpy_json()save_json()save_network()- gnpy.tools.plots
_try_city()plot_baseline()plot_results()- gnpy.tools.service_sheet
ElementRequestRequest_elementcheck_end_points()correct_xls_route_list()find_node_sugestion()parse_excel()parse_service_sheet()read_service_sheet()- gnpy.tools.worker_utils
check_request_path_ids()designed_network()planning()transmission_simulation()
- GNPy package
- Release change log
- Publications
- Index
- Module Index