powergrid_synth.distribution.distribution_analysis
Distribution analysis: fit Schweitzer parameters from reference feeders.
Provides routines to extract empirical distributions from a collection of real feeders and fit the parametric families used in the Schweitzer model (via MLE / method-of-moments / KL minimization).
Module Contents
- powergrid_synth.distribution.distribution_analysis._cable_lengths(feeders)[source]
Collect all cable lengths in km.
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
numpy.ndarray
- powergrid_synth.distribution.distribution_analysis._degrees(feeders)[source]
Collect all node degrees (excluding source/leaf fixed degrees).
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
numpy.ndarray
- powergrid_synth.distribution.distribution_analysis._hop_distances(feeders)[source]
Collect all hop distances (excluding source h=0 and root h=1).
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
numpy.ndarray
- powergrid_synth.distribution.distribution_analysis._injection_fractions(feeders)[source]
Fraction of nodes that are injection, per feeder.
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
numpy.ndarray
- powergrid_synth.distribution.distribution_analysis._intermediate_fractions(feeders)[source]
Fraction of nodes that are intermediate, per feeder.
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
numpy.ndarray
- powergrid_synth.distribution.distribution_analysis._load_deviations(feeders)[source]
Per-feeder deviations of load from uniform share.
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
numpy.ndarray
- powergrid_synth.distribution.distribution_analysis.fit_beta(data)[source]
Fit Beta distribution to fraction data in (0, 1).
- Parameters:
data (numpy.ndarray)
- Return type:
- powergrid_synth.distribution.distribution_analysis.fit_exponential_clip(feeders)[source]
Fit exponential clipping g_max(h) = a * exp(b*h) from max lengths per hop.
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
powergrid_synth.distribution.distribution_params.ExponentialClip
- powergrid_synth.distribution.distribution_analysis.fit_mixture_gamma(data)[source]
Fit a two-component Gamma mixture via EM (simplified).
Uses a basic EM iteration (50 steps) with Gamma MLE per component. Falls back to defaults if the data is insufficient.
- Parameters:
data (numpy.ndarray)
- Return type:
powergrid_synth.distribution.distribution_params.MixtureGammaParams
- powergrid_synth.distribution.distribution_analysis.fit_modified_cauchy(data)[source]
Fit positive-support Cauchy (x0, gamma) to cable-length data.
- Parameters:
data (numpy.ndarray)
- Return type:
powergrid_synth.distribution.distribution_params.ModifiedCauchyParams
- powergrid_synth.distribution.distribution_analysis.fit_neg_binomial(data)[source]
Fit Negative Binomial to hop-distance data (0-shifted).
- Parameters:
data (numpy.ndarray)
- Return type:
powergrid_synth.distribution.distribution_params.NegBinomParams
- powergrid_synth.distribution.distribution_analysis.fit_params_from_feeders(feeders)[source]
Fit all Schweitzer parameters from a collection of reference feeders.
- Parameters:
feeders (sequence of nx.Graph) – Reference distribution feeder graphs, each annotated with
h,P_mw,node_type,length_kmattributes.- Returns:
Fitted parameter set ready for
SchweetzerFeederGenerator.- Return type:
- powergrid_synth.distribution.distribution_analysis.fit_power_law_clip(feeders)[source]
Fit power-law clipping g_dmax(h) = a * h^b from max degrees per hop.
- Parameters:
feeders (Sequence[networkx.Graph])
- Return type:
powergrid_synth.distribution.distribution_params.PowerLawClip
- powergrid_synth.distribution.distribution_analysis.fit_t_location_scale(data)[source]
Fit t-Location-Scale distribution via MLE.
- Parameters:
data (numpy.ndarray)
- Return type:
powergrid_synth.distribution.distribution_params.TLocationScaleParams