# skrf.calibration.calibration.MultilineTRL.__init__¶

MultilineTRL.__init__(measured, ideals=None, estimate_line=False, n_reflects=1, solve_reflect=True, *args, **kwargs)

Initialize a TRL calibration.

Note that the order of measured and ideals is strict. It must be [Thru, Reflect, Line]. A multiline algorithms is used if more than one line is passed. A multi-reflect algorithm is used if multiple reflects are passed, see n_reflects argument.

All of the ideals can be individually set to None, or the entire list set to None (ideals=None). For each ideal set to None the following assumptions are made:

• thru : flush thru

• reflect : flush shorts

• line : and approximately 90deg matched line (can be lossy)

The reflect ideals can also be given as a +-1.

Note you can also use the estimate_line option to automatically estimate the initial guess for the line length from measurements . This is sensible if you have no idea what the line length is, but your error networks are well matched (E_ij >>E_ii).

Notes

This implementation inherits from `EightTerm`. dont forget to pass switch_terms.

Parameters
• measured (list of `Network`) – must be in order [Thru, Reflect[s], Line[s]]. if the number of reflects is >1 then use n_reflects argument.

• ideals (list of `Network`, [+1,-1] , None) – must be in order [Thru, Reflect, Line]. Each element in the list may be None, or equivalently, the list may be None. Also the reflects can be simply given as +1 or -1.

• estimate_line (bool) – should we estimates the length of the line standard from raw measurements, if not we assume its about 90 deg.

• solve_reflect (bool) – Solve for the reflect or not.

• n_reflects (1) – number of reflective standards

• *args (passed to EightTerm.__init__) – dont forget the switch_terms argument is important

• **kwargs (passed to EightTerm.__init__) – dont forget the switch_terms argument is important

Examples

```>>> thru = rf.Network('thru.s2p')
>>> reflect = rf.Network('reflect.s2p')
>>> line = rf.Network('line.s2p')
```

Ideals is None, so we assume it’s close to a flush short:

```>>> trl = TRL(measured=[thru,reflect,line], ideals=None)
```

Reflect is given as close to a flush short:

```>>> trl = TRL(measured=[thru,reflect,line], ideals=[None,-1,None])
```

Reflect is given as close to a flush open:

```>>> trl = TRL(measured=[thru,reflect,line], ideals=[None,+1,None])
```

`determine_line`, `determine_reflect`