def prep_models(aryPrfTc, varSdSmthTmp=<NUM_LIT>, lgcPrint=True):
if lgcPrint:<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>def funcSmthTmp(aryPrfTc, varSdSmthTmp, lgcPrint=True):<EOL><INDENT>"""<STR_LIT>"""<EOL>tplInpShp = aryPrfTc.shape<EOL>aryPrfTc = aryPrfTc.reshape((-<NUM_LIT:1>, aryPrfTc.shape[-<NUM_LIT:1>]))<EOL>aryPrfTcMean = np.mean(aryPrfTc, axis=-<NUM_LIT:1>, keepdims=True).reshape(-<NUM_LIT:1>, <NUM_LIT:1>)<EOL>aryPrfTc = np.concatenate((aryPrfTcMean, aryPrfTc, aryPrfTcMean),<EOL>axis=-<NUM_LIT:1>)<EOL>aryPrfTc = gaussian_filter1d(aryPrfTc.astype('<STR_LIT>'), varSdSmthTmp,<EOL>axis=-<NUM_LIT:1>, order=<NUM_LIT:0>, mode='<STR_LIT>',<EOL>truncate=<NUM_LIT>)<EOL>aryPrfTc = aryPrfTc[..., <NUM_LIT:1>:-<NUM_LIT:1>]<EOL>return aryPrfTc.reshape(tplInpShp).astype('<STR_LIT>')<EOL><DEDENT>if <NUM_LIT:0.0> < varSdSmthTmp:<EOL><INDENT>if lgcPrint:<EOL><INDENT>print('<STR_LIT>')<EOL>print('<STR_LIT>' + str(varSdSmthTmp))<EOL><DEDENT>aryPrfTc = funcSmthTmp(aryPrfTc, varSdSmthTmp)<EOL><DEDENT>if lgcPrint:<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>aryPrfTc = np.subtract(aryPrfTc, np.mean(aryPrfTc, axis=-<NUM_LIT:1>)[..., None])<EOL>aryTmpStd = np.std(aryPrfTc, axis=-<NUM_LIT:1>)<EOL>aryTmpLgc = np.greater(aryTmpStd, np.array([<NUM_LIT:0.0>]))<EOL>aryPrfTc[aryTmpLgc, :] = np.divide(aryPrfTc[aryTmpLgc, :],<EOL>aryTmpStd[aryTmpLgc, None])<EOL>return aryPrfTc<EOL>
Prepare pRF model time courses.

Parameters
----------
aryPrfTc : np.array
    4D numpy array with pRF time course models, with following dimensions:
    `aryPrfTc[x-position, y-position, SD, volume]`.
varSdSmthTmp : float
    Extent of temporal smoothing that is applied to functional data and
    pRF time course models, [SD of Gaussian kernel, in seconds]. If `zero`,
    no temporal smoothing is applied.
lgcPrint : boolean
    Whether print statements should be executed.

Returns
-------
aryPrfTc : np.array
    4D numpy array with prepared pRF time course models, same
    dimensions as input (`aryPrfTc[x-position, y-position, SD, volume]`).