<jupyter_start><jupyter_text>fazendo as integrais de linha¶<jupyter_code>df= pd.read_excel(r'/Users/thaismedeiros/Documentos/mesocosmos/espectros/Espectros_Ma_Mh_TF.xlsx', index_col=0, sheet_name="m_alcicornis"
                   ).T

df.head()
#Remoção do continuo

def get_interpolated_value(vetor):
        
    return np.trapz(vetor)

def get_continuum(vetor):
    x= vetor.index[[0, -1]]
    array= vetor.values
    y = [array[0], array[-1]]
    b, a= np.polyfit(x,y,1)
    continuum=a+b*vetor.index
   
    return continuum

def continuum_remove(v, lambda_min, lambda_max):
    vetor = v.loc[slice(lambda_min,lambda_max)]
    remover= get_continuum(vetor)
    vetor2 = vetor.values-remover
    r=get_interpolated_value(vetor2)
    
    plt.axes()
    plt.plot(np.arange(vetor.size),vetor.values, color='b', label='original_data')
    plt.plot(np.arange(remover.size),remover, color='r', label='continuo_removido')
    plt.legend()
    
    return r
    
def get_profundidade_from_continuum(v, lambda_min, lambda_max):
    vetor = v.loc[slice(lambda_min,lambda_max)]
    remover= get_continuum(vetor)
    vetor2 = vetor.values-remover
    
    xmax = vetor2.max()
    xmin = vetor2.min()
      
    return xmax - xmin

def get_value_depth(v, lambda_min, lambda_max):
    vetor = v.loc[slice(lambda_min,lambda_max)]
    
    xmax = vetor.max()
    xmin = vetor.min()
      
    return xmax - xmin
    

def get_grau_funilamento(v, lambda_min, lambda_max):
    altura= get_value_depth(v, lambda_min, lambda_max)
    delta_lambda= (lambda_max - lambda_min)//2
    v1= v.loc[slice(lambda_min,lambda_min+delta_lambda)]
    v2= v.loc[slice(lambda_min+delta_lambda,lambda_max)]
    esquerdo= v1.values[np.argmin(np.abs(altura-v1.values))]
    direito= v2.values[np.argmin(np.abs(altura-v2.values))]
    
    return np.abs(esquerdo-direito)
    
    
    

    
lista = []
lista_prof_continuum= []


lambdas = [(650, 750)]
nomes = []
for l in lambdas:
    variable = df.apply(continuum_remove, lambda_min=l[0], lambda_max=l[1], axis=1)
    nomes.append('Remocao_continuum_'+str(l[0])+'_'+str(l[1]))
    lista.append(variable)
    
    
    profundidade=df.apply(get_profundidade_from_continuum, lambda_min=l[0], lambda_max=l[1], axis=1)
    lista_prof_continuum.append(profundidade)
    
    
    
   
df_temp1 = pd.DataFrame(data=lista, index=nomes).T

df_temp2 = pd.DataFrame(data=lista_prof_continuum, index=nomes).T
df_temp2.columns = ['prof_cont']

result_df= pd.concat([df_temp1,df_temp2], axis=1)
result_df<jupyter_output><empty_output><jupyter_text>Largura a meia altura<jupyter_code>result_df['prof_vale_ref'] = df.apply(get_value_depth, lambda_min=l[0], lambda_max=l[1], axis=1)
result_df ['convectividade_funil'] = df.apply(get_grau_funilamento, lambda_min=l[0], lambda_max=l[1], axis=1)
result_df ['area'] = df.apply(lambda x:get_interpolated_value(x.loc[[l[0],l[1]]]), axis=1)

result_df<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1393918688076529, 'fraction_numerical': 0.016057396651861976, 'mean_word_length': 4.333333333333333, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '14369', 'license': 'MIT', 'n_tokens_mistral': 1211, 'n_tokens_neox': 1202, 'n_words': 158, 'path': 'scripts/IOP_AOPs/scripts/continuum_removal/Remocao_continum_integral_area.ipynb', 'repo_name': 'PhilipeRLeal/QAA', 'size': '2927'}