def nrel_earthsun_distance(time, how='<STR_LIT>', delta_t=<NUM_LIT>, numthreads=<NUM_LIT:4>):
if not isinstance(time, pd.DatetimeIndex):<EOL><INDENT>try:<EOL><INDENT>time = pd.DatetimeIndex(time)<EOL><DEDENT>except (TypeError, ValueError):<EOL><INDENT>time = pd.DatetimeIndex([time, ])<EOL><DEDENT><DEDENT>unixtime = np.array(time.astype(np.int64)/<NUM_LIT:10>**<NUM_LIT:9>)<EOL>spa = _spa_python_import(how)<EOL>delta_t = delta_t or spa.calculate_deltat(time.year, time.month)<EOL>dist = spa.earthsun_distance(unixtime, delta_t, numthreads)<EOL>dist = pd.Series(dist, index=time)<EOL>return dist<EOL>
Calculates the distance from the earth to the sun using the
NREL SPA algorithm described in [1]_.

Parameters
----------
time : pd.DatetimeIndex

how : str, optional, default 'numpy'
    Options are 'numpy' or 'numba'. If numba >= 0.17.0
    is installed, how='numba' will compile the spa functions
    to machine code and run them multithreaded.

delta_t : float, optional, default 67.0
    If delta_t is None, uses spa.calculate_deltat
    using time.year and time.month from pandas.DatetimeIndex.
    For most simulations specifing delta_t is sufficient.
    Difference between terrestrial time and UT1.
    *Note: delta_t = None will break code using nrel_numba,
    this will be fixed in a future version.*
    By default, use USNO historical data and predictions

numthreads : int, optional, default 4
    Number of threads to use if how == 'numba'.

Returns
-------
dist : pd.Series
    Earth-sun distance in AU.

References
----------
.. [1] Reda, I., Andreas, A., 2003. Solar position algorithm for solar
   radiation applications. Technical report: NREL/TP-560- 34302. Golden,
   USA, http://www.nrel.gov.