grapa.datatypes.curveJV.CurveJV

class grapa.datatypes.curveJV.CurveJV(dataJV, attributes, units=['V', 'mAcm-2'], illumPower=1000, ifCalc=True, silent=False)

Bases: Curve

CurveJV offer basic treatment of J-V curves of solar cells. Input units are [V] and [mA] (or [mA cm-2]).

__init__(dataJV, attributes, units=['V', 'mAcm-2'], illumPower=1000, ifCalc=True, silent=False)

Methods

CurveJVFromFit([fitRange, diodeFitWeight, ...])

Returns a CurveJV object, a fit to the self object on the same Voltage points.

CurveJVFromFit_print([fitRange, fitDiodeWeight])

fits the J-V curve with the diode equation with 1 diode and 2 resistors model.

J([idx])

JlSuchAsJ0VJsc(Jsc, n, J0, Rs, Rp)

V([idx])

__init__(dataJV, attributes[, units, ...])

alterListGUI()

Determines the possible curve visualisations.

area()

calcJsc([V, J])

calcResiduals([diodeFit, ifPlot])

calcRp([V, J])

calcVocJscFFEffMPP()

Computes the values of basic PV parameters Voc, Jsc, FF, MPP

calcVocJscFFEffMPP_print()

Computes and print the values of basic PV parameters Voc, Jsc, FF, MPP

cell([forceCalc])

cleanDataVJ([V, J])

Return data stripped of saturated datapoints.

darkOrIllum([ifText, forceCalc, ifJscBelow])

diodeFit([fitRange, ifPlot, silent])

V has to be should be sorted, increasing

diodeFitCheckQuality(sqResiduals[, threshold])

diodeFit_BestGuess([V, J, alsoVShift])

Returns the initial guess for fit of the J-V curve.

extractJscVoc(graph)

Extract Jsc-Voc: extracts Jsc, Voc and T datapoints of selected JV curve, and appends the results to new/existing Curves identified with keywords "_extractJscVoc_Jsc" and "_extractJscVoc_T".

fit_func_diodeResistors_AbsLog(V, logJ, n, ...)

fit_resampleX(Vspacing)

Specifies new basis for datapoints for the x data, and recomputes the fitted values on the new basis of points

funcListGUI(**kwargs)

Fills in the Curve actions specific to the Curve type. Retuns a list, which elements are instances of FuncGUI, or (old style): ::.

func_diodeIdeal(V, n, Jl, J0)

func_diodeIdealAbsLog(V, n, Jl, J0)

func_diodeIdealAbsLog10(V, n, Jl, J0)

func_diodeResistors(V, n, Jl, J0, Rs, Rp)

func_diodeResistorsAbsLog(V, n, Jl, J0, Rs, Rp)

func_diodeResistorsAbsLog10(V, n, Jl, J0, Rs, Rp)

func_diodeResistorsAbsLog10_modParam(V, n, ...)

func_diodeResistorsAbsLog10_modParam_red(V, ...)

func_diodeResistors_Jsc(V, n, Jl, J0, Rs, Rp)

fwd_bwd([forceCalc])

idxFitHighSensitivityNJ0(V, dJLogAbsdV[, ...])

threshold: criterion to select datapoint is that derivative is > threshold*max(deriv) also winimal voltage width for example [-0.05, 0.1]

idxRange(V[, fitRange])

illumspectrum([forceCalc])

interpJ(V)

measId([forceCalc])

parse_filename([to_attr, force])

Parse the filename to extract information contained in it.

printShort([header])

sample([forceCalc])

selectJVdataForFit([V, J, fitRange])

Returns dataseet suitable for fitting, taking into account a fit range given by user.

setArea(area[, ifCalc])

Normalize the cell area, and modifies the data accordingly.

simpleLabel([forceCalc])

update(attributes)

Override default update method, to handle the case where a new area or temperature would be set.

xinversejminusjsc([index, xyValue])

To be used for Sites method, dV/dJ vs 1/(J-Jsc) Returns value in [A-1 cm2]

yDifferentialR([index, xyValue])

Returns differential resistance of the J-V curve R = dV/dI

y_idealitydifferential([index, xyValue])

Attributes

AXISLABELS_X

AXISLABELS_Y

CURVE

DARK

DARK_ILLUM

DARK_ILLUM_VALUESLIST

FILENAMEPARSE_EXPR

FILENAMEPARSE_KEYS

FORMAT_AUTOLABEL

ILLUM

defaultIllumPower

CurveJVFromFit(fitRange=None, diodeFitWeight=None, V=None, silent=False)

Returns a CurveJV object, a fit to the self object on the same Voltage points.

Parameters:
  • fitRange – if None, auto-detect.

  • diodeFitWeight – 0 for no change, otherwise divide the fit sigma in the diode behavior region. Values such as 10 significantly improve the fittin in this region.

  • V – alternative V datapoints on which evaluate function after the fit. Default is full set of V datapoints.

  • silent – if False, prints more information

CurveJVFromFit_print(fitRange=None, fitDiodeWeight=None)

fits the J-V curve with the diode equation with 1 diode and 2 resistors model. The fit is performed using the log(J) values instead of J. The fit quality should be assessed visually on linear and logarithmic plots.

  • J0: good values are typically < 1e-4.

  • n: is ideality factor. Good values are < 1.7.

  • Jl: grapa implements the difference of the Jl to Jsc. Jl is not a fit parameter, but is adjusted so that J(V=0) = Jsc.

Parameters:
  • fitRange – [V_min, V_max]

  • fitDiodeWeight – increased fit weight for the datapoints in the diode region of the J-V curve. Can improve the accuracy of the fit near MPP.

Returns:

a CurveJV fitted curve.

alterListGUI()

Determines the possible curve visualisations. One element has the form: AlterListItem(‘Label GUI’, [‘alter_x’, ‘alter_y’], ‘semilogx’, “print help doc”) By default only neutral (i.e. raw data) is provided

calcVocJscFFEffMPP()

Computes the values of basic PV parameters Voc, Jsc, FF, MPP

calcVocJscFFEffMPP_print()

Computes and print the values of basic PV parameters Voc, Jsc, FF, MPP

cleanDataVJ(V=None, J=None)

Return data stripped of saturated datapoints.

diodeFit(fitRange=None, ifPlot=False, silent=True)

V has to be should be sorted, increasing

diodeFit_BestGuess(V=None, J=None, alsoVShift=True)

Returns the initial guess for fit of the J-V curve.

extractJscVoc(graph)

Extract Jsc-Voc: extracts Jsc, Voc and T datapoints of selected JV curve, and appends the results to new/existing Curves identified with keywords “_extractJscVoc_Jsc” and “_extractJscVoc_T”.

fit_resampleX(Vspacing)

Specifies new basis for datapoints for the x data, and recomputes the fitted values on the new basis of points

funcListGUI(**kwargs)

Fills in the Curve actions specific to the Curve type. Retuns a list, which elements are instances of FuncGUI, or (old style):

[func,
 'Button text',
 ['label 1', 'label 2', ...],
 ['value 1', 'value 2', ...],
 {'hiddenvar1': 'value1', ...}, (optional)
 [dictFieldAttributes, {}, ...]] (optional)

By default, returns quick modifs for offset and muloffset (if already set), and a help for some plot types (errorbar, scatter).

Parameters:

kwargs – this function should be called specifying kwargs[‘graph’] the graph self is embedded in, and kwargs[‘graph_i’] as position of self in graph.

idxFitHighSensitivityNJ0(V, dJLogAbsdV, threshold=0.7, minWidth=None)

threshold: criterion to select datapoint is that derivative is > threshold*max(deriv) also winimal voltage width for example [-0.05, 0.1]

parse_filename(to_attr=False, force=False)

Parse the filename to extract information contained in it. Parsing regexp: see CurveJV.FILENAMEPARSE_EXPR and CurveJV.FILENAMEPARSE_KEYS.

Parameters:

to_attr – if True, update the Curve attributes: ‘sample’, ‘cell’, ‘direction’, ‘illumspectrum’, ‘measid’, ‘additional’.

selectJVdataForFit(V=None, J=None, fitRange=None)

Returns dataseet suitable for fitting, taking into account a fit range given by user. Saturated datapoints are striped. Caution: the value of Jsc return in only computed on the fitRange.

setArea(area, ifCalc=True)

Normalize the cell area, and modifies the data accordingly.

update(attributes)

Override default update method, to handle the case where a new area or temperature would be set.

xinversejminusjsc(index=nan, xyValue=None, **_kwargs)

To be used for Sites method, dV/dJ vs 1/(J-Jsc) Returns value in [A-1 cm2]

yDifferentialR(index=None, xyValue=None, **_kwargs)

Returns differential resistance of the J-V curve R = dV/dI