def check_observing(survey, pick, program):
    """
    Based on programs that have selected a given target, this will figure out which
    observing method requires the most observing time and then scales other program's
    costs based on that.

    Parameters
    ----------
    survey : survey.Survey
        class object containing both the vetted sample (via survey.candidates) and the
        survey programs (via survey.sciences)
    pick : pandas.DataFrame
        a single row dataframe containing information on the selected program's current pick
    program: str
        the selected program
    
    Returns
    -------
    survey : survey.Survey
        class object with updated nobs_goal information, if applicable
    """
    method = survey.sciences.loc[program, "method"]
    nobs_goal = int(float((method.split('-')[1]).split('=')[-1]))
    idx = survey.candidates.loc[survey.candidates['tic'] == int(pick.tic)].index.values.tolist()
    if nobs_goal > survey.candidates.loc[idx[0], 'nobs_goal']:
        for index in idx:
            survey.candidates.loc[index, 'nobs_goal'] = nobs_goal
    return survey