API Reference Documentation
GNPy package
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.
Signal propagation is implemented in core.
Path finding and spectrum assignment is in topology.
Various tools and auxiliary code, including the JSON I/O handling, is in
tools.
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_STEPReferenceCarrierSpectralInformationSpectralInformation.add_ase()SpectralInformation.add_nli()SpectralInformation.apply_attenuation_db()SpectralInformation.apply_attenuation_lin()SpectralInformation.apply_gain_db()SpectralInformation.apply_gain_lin()SpectralInformation.aseSpectralInformation.ase_dbmSpectralInformation.baud_rateSpectralInformation.carriersSpectralInformation.channel_numberSpectralInformation.chromatic_dispersionSpectralInformation.delta_pdb_per_channelSpectralInformation.dfSpectralInformation.frequencySpectralInformation.gsnrSpectralInformation.gsnr_dbSpectralInformation.labelSpectralInformation.latencySpectralInformation.nliSpectralInformation.nli_dbmSpectralInformation.number_of_channelsSpectralInformation.opt_gsnr_dbSpectralInformation.opt_snr_lin_dbSpectralInformation.opt_snr_nli_dbSpectralInformation.pchSpectralInformation.pch_dbmSpectralInformation.pdlSpectralInformation.pmdSpectralInformation.ptotSpectralInformation.ptot_dbmSpectralInformation.roll_offSpectralInformation.signalSpectralInformation.signal_dbmSpectralInformation.slot_widthSpectralInformation.snr_linSpectralInformation.snr_lin_dbSpectralInformation.snr_nliSpectralInformation.snr_nli_dbSpectralInformation.tx_osnrSpectralInformation.tx_power
carriers_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
EdfaOperationalEdfaParamsFiberParamsFiberParams.asdict()FiberParams.att_inFiberParams.con_inFiberParams.con_outFiberParams.dispersionFiberParams.dispersion_slopeFiberParams.effective_area_overlap()FiberParams.effective_area_scaling()FiberParams.f_dispersion_refFiberParams.f_loss_refFiberParams.gammaFiberParams.gamma_scaling()FiberParams.latencyFiberParams.lengthFiberParams.loss_coefFiberParams.lumped_lossesFiberParams.pmd_coefFiberParams.pmd_coef_definedFiberParams.raman_coefficientFiberParams.ref_frequencyFiberParams.ref_wavelength
FrequencyBandFusedParamsMultiBandParamsNLIParamsParametersPumpParamsRamanGainCoefficientRamanParamsRoadmImpairmentRoadmParamsRoadmPathSimParamsTransceiverParamsfind_band_name()- gnpy.core.science_utils
NliSolverNliSolver.SPM_WEIGHTNliSolver.XPM_WEIGHTNliSolver._approx_psi()NliSolver._fast_generalized_psi()NliSolver._frequency_offset_threshold()NliSolver._generalized_psi()NliSolver._generalized_rho_nli()NliSolver._ggn_approx()NliSolver._ggn_spectrally_separated()NliSolver._gn_analytic()NliSolver._psi()NliSolver.compute_nli()NliSolver.effective_length()
RamanSolverStimulatedRamanScatteringestimate_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()