grapa.datatypes.curveJV.CurveJV
- class grapa.datatypes.curveJV.CurveJV(dataJV, attributes, units=['V', 'mAcm-2'], illumPower=1000, ifCalc=True, silent=False)
Bases:
CurveCurveJV 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, ...])Determines the possible curve visualisations.
area()calcJsc([V, J])calcResiduals([diodeFit, ifPlot])calcRp([V, J])Computes the values of basic PV parameters Voc, Jsc, FF, MPP
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_XAXISLABELS_YCURVEDARKDARK_ILLUMDARK_ILLUM_VALUESLISTFILENAMEPARSE_EXPRFILENAMEPARSE_KEYSFORMAT_AUTOLABELILLUMdefaultIllumPower- 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