geopulse.network.railway

Railway traction / track-circuit network — STUB (WP4).

Classes

RailwayNetwork()

Electrified railway traction network (WP4).

class geopulse.network.railway.RailwayNetwork[source]

Bases: ConductorNetwork

Electrified railway traction network (WP4).

get_nodes()[source]

Return all nodes in the network.

Return type:

Sequence[Node]

get_branches()[source]

Return all branches in the network.

Return type:

Sequence[Branch]

assemble_network_admittance()[source]

Assemble the network admittance matrix Y_n.

Return type:

ndarray

Returns:

numpy.ndarray – Symmetric, real-valued matrix. Shape (n_nodes, n_nodes). Units: Siemens.

Notes

Y_n[i, i] = sum of admittances of branches connected to node i. Y_n[i, j] = -admittance of the branch between i and j.

assemble_earthing_impedance()[source]

Assemble the diagonal earthing-impedance matrix Z_e.

Return type:

ndarray

Returns:

numpy.ndarray – Diagonal matrix. Shape (n_nodes, n_nodes). Units: Ohms.

compute_thevenin_voltages(ex_Vm, ey_Vm, lat_deg, lon_deg)[source]

Compute the Thévenin equivalent voltage for each branch.

V_th(ab) = ∫_a^b E(r) · dl. For a uniform E-field over the branch length this reduces to V_th = Ex · Δx + Ey · Δy.

Parameters:
  • ex_Vm (numpy.ndarray) – North-south and east-west E-field components in V/m.

  • ey_Vm (numpy.ndarray) – North-south and east-west E-field components in V/m.

  • lat_deg (numpy.ndarray) – Coordinates of the E-field evaluation points.

  • lon_deg (numpy.ndarray) – Coordinates of the E-field evaluation points.

Returns:

numpy.ndarray – Thévenin voltage per branch. Shape (n_branches,). Units: V.

classmethod from_file(path)[source]

Load a network from disk (JSON, GeoJSON, or YAML).

Parameters:

path (str) – Path to the network definition file.

Return type:

RailwayNetwork

Returns:

ConductorNetwork – The loaded network.