Esempio n. 1
0
##  Curva de melhor ajuste para plotagem
ref_443 = fun_reg(x_fit, fit_443[0], fit_443[1])
ref_443 = ref_443.rename(x_fit, axis='rows')

##  Texto para plotagem com dados dos resultados estatísticos e da regressão
eq_443 = 'y = 0,8440x + 0,1830'
stat_443 = 'R² = 0,4313, MAPE = 12,26%; RMSE = 0,1213 m^-1; n = 20'

##  Plotando dispesão dos dados e os resultados da regressão
plot_ajuste(kd_ref_443,
            kd_pred_443,
            ref_443,
            eq_443,
            stat_443, [0, 2.5], [0, 2.5],
            'Kd ZEU (443 nm)',
            'Kd QAA MSI (443 nm)',
            'Kd ZEU vs. Kd QAA MSI - lb0 = 560 nm',
            'Ajuste',
            'Estações',
            leg_loc=0,
            x1=True)

###############################################################################
##  Regressão, plots e estatísticas para 492 nm.
kd_ref_492 = kd_ref.loc[492]
kd_pred_492 = kd_pred['Kd_QAAv6_10m_492']

##  Ajuste da curva de regressão linear para 492 nm.
fit_492 = curve_fit(fun_reg,
                    kd_ref_492,
                    kd_pred_492,
Esempio n. 2
0
##  Curva de melhor ajuste para plotagem
ref_443 = fun_reg(x_fit, fit_443[0], fit_443[1])
ref_443 = ref_443.rename(x_fit, axis='rows')

##  Texto para plotagem com dados dos resultados estatísticos e da regressão
eq_443 = 'y = 0,7067x + 0,4500'
stat_443 = 'R² = 0,1796, MAPE = 0,0%; RMSE = 0,3560; n = 22'

##  Plotando dispesão dos dados e os resultados da regressão
plot_ajuste(kd_ref_443,
            kd_pred_443,
            ref_443,
            eq_443,
            stat_443, [0, 1.6], [0, 1.6],
            'Kd ZEU (443 nm)',
            'Kd QAA (443 nm)',
            'Kd ref vs. Kd QAA - lb0 = 560 nm',
            'Ajuste',
            'Estações',
            leg_loc=0,
            x1=True)

###############################################################################
##  Regressão, plots e estatísticas para 492 nm.
kd_ref_492 = qaa_v6_fit13_560['Kd_ZEU'].loc[492]
kd_pred_492 = qaa_v6_fit13_560['kd_qaa_560_acs_492'].loc[492]

fit_492 = curve_fit(fun_reg,
                    kd_ref_492,
                    kd_pred_492,
                    pred_ab,
Esempio n. 3
0
##  Parâmetros para cálculo de R²
a_res = at_lb0 - fun_a(Rrs_ratio, a_fit[0], a_fit[1])
a_ss_res = np.sum(a_res ** 2)
a_ss_tot = np.sum((at_lb0 - np.mean(at_lb0)) ** 2)
a_r2 = 1 - (a_ss_res / a_ss_tot)                    ##  Resultado R² para a(lb0)

##  Curva de ajuste continua para plotagem
a_x = pd.Series(np.arange(0, 11, 0.01))
a_ref = fun_a(a_x, a_fit[0], a_fit[1])
a_ref = a_ref.rename(a_x, axis = 'rows')

# a_eq = 'y = 0,0159 + 0,4639 * x^-1,3466'        ##  equação lb0 = 492
# a_r = 'R² = 0,9672 ; n = 22'                    ##  R² e n lb0 = 492
a_eq = 'y = 0,0619 + 0,4310 * x^-1,4408'      ##  equação lb0 = 560
a_r = 'R² = 0,9261 ; n = 22'                  ##  R² e n lb0 = 560

##  Plot da disperção de pontos e curva de ajuste
plot_ajuste(Rrs_ratio,
            at_lb0,
            a_ref,
            a_eq,
            a_r,
            [0, 3], [0, 1],
            'Rrs(' + str(lb0) + ') / Rrs(665) + Rrs(704) [-]',
            'a(' + str(lb0) + ') [m-1]',
            'Ajuste QAA v6 - Passo 2',
            'Ajuste',
            'Estações',
            1)
a_res = at_lb0 - fun_a(Rrs_ratio, a_fit[0], a_fit[1])
a_ss_res = np.sum(a_res**2)
a_ss_tot = np.sum((at_lb0 - np.mean(at_lb0))**2)
a_r2 = 1 - (a_ss_res / a_ss_tot)  ##  Resultado R² para a(lb0)

##  Curva de ajuste continua para plotagem
a_x = pd.Series(np.arange(0, 11, 0.01))
a_ref = fun_a(a_x, a_fit[0], a_fit[1])
a_ref = a_ref.rename(a_x, axis='rows')

a_eq = 'y = 0,0619 + 0,4215 * x^-1,5236'  ##  equação lb0 = 560
a_r = 'R² = 0,8872 ; n = 42'  ##  R² e n lb0 = 560

##  Plot da disperção de pontos e curva de ajuste
plot_ajuste(Rrs_ratio, at_lb0, a_ref, a_eq, a_r, [0, 3], [0, 1],
            'Rrs(' + str(lb0) + ') / Rrs(665) + Rrs(704) [-]',
            'a(' + str(lb0) + ') [m-1]', 'Ajuste QAA v6 - Passo 2', 'Ajuste',
            'Estações', 1)

##  Cálculos de logarítmos naturais e razão de comprimentos de onda para
bbp = calc_bbp_ref(u, bbw, wl, at)
bbp_ln = calc_bbp_lin(wl, bbp, 492)
bbp_ln['ln_bbp'] = bbp_ln['ln_bbp'].dropna()

##  Padronizando faixa de comprimentos de onda para inserção dos dados de bbp
##  nos cálculos
dif = set(bbp_ln['ln_ratio'].index).difference(bbp_ln['ln_bbp'].index)
bbp_ln['ln_ratio'] = bbp_ln['ln_ratio'].drop(dif, axis=0)

##  Criando DataFrames vazios para alocar os dados de slope do bbp e R² do ajuste
##  por estação amostral
n_data = pd.DataFrame()
Esempio n. 5
0
##  Curva de melhor ajuste para plotagem
ref_443 = fun_reg(x_fit, fit_443[0], fit_443[1])
ref_443 = ref_443.rename(x_fit, axis = 'rows')

##  Texto para plotagem com dados dos resultados estatísticos e da regressão
eq_443 = '443 nm = 0.97x - 0.04'
stat_443 = 'R² = 0.44; MAPE = 13.49%; RMSE = 0.14 [${m}^{-1}$]; n = 20'

##  Plotando dispesão dos dados e os resultados da regressão
plot_ajuste(kd_ref_443,
            kd_pred_443,
            ref_443,
            eq_443,
            stat_443,
            [0, 2.5], [0, 2.5],
            'Kd-measured (443 nm)',
            'Kd-SA MSI (443 nm)',
            'Kd-measured vs. Kd-SA MSI',
            'Fit',
            'Stations',
            leg_loc = 0,
            x1 = True)

###############################################################################
##  Regressão, plots e estatísticas para 492 nm.
kd_ref_492 = kd_ref.loc[492]
kd_pred_492 = kd_pred['Kd_QAAv6_10m_s-glint_492']

##  Ajuste da curva de regressão linear para 492 nm.
fit_492 = curve_fit(fun_reg, kd_ref_492, kd_pred_492, pred_ab, method = 'lm', maxfev = 100000)[0]
##  Curva de melhor ajuste para plotagem
ref_443_original = fun_reg(x_fit, fit_443_original[0], fit_443_original[1])
ref_443_original = ref_443_original.rename(x_fit, axis='rows')

##  Texto para plotagem com dados dos resultados estatísticos e da regressão
eq_443_original = 'y = 0.6396x + 0.1799'
stat_443_original = 'R² = 0.7104; MAPE = 17.65%; RMSE = 0.2042 m^-1; n = 40'

##  Plotando dispesão dos dados e os resultados da regressão
plot_ajuste(kd_ref_443_original,
            kd_pred_443_original,
            ref_443_original,
            eq_443_original,
            stat_443_original, [0, 2.5], [0, 2.5],
            'Kd ZEU (443 nm)',
            'Kd QAA (443 nm)',
            'Kd ZEU vs. Kd QAA - lb0 = 560 nm',
            'Ajuste',
            'Estações',
            leg_loc=0,
            x1=True)

###############################################################################
##  Regressão, plots e estatísticas para 492 nm.
kd_ref_492_original = kd_ref.loc[492].drop(['P25', 'P26'])
kd_pred_492_original = kd_pred.loc[492].drop(['P25', 'P26'])

##  Ajuste da curva de regressão linear para 492 nm.
fit_492_original = curve_fit(fun_reg,
                             kd_ref_492_original,
                             kd_pred_492_original,
##  Curva de melhor ajuste para plotagem
ref_443_original = fun_reg(x_fit, fit_443_original[0], fit_443_original[1])
ref_443_original = ref_443_original.rename(x_fit, axis='rows')

##  Texto para plotagem com dados dos resultados estatísticos e da regressão
eq_443_original = '443 nm = 0.16x - 0.04'
stat_443_original = 'R² = 0.57; MAPE = 88.18%; RMSE = 0.76 [${m}^{-1}$]; n = 20'

##  Plotando dispesão dos dados e os resultados da regressão
plot_ajuste(kd_ref_443_original,
            kd_pred_443_original,
            ref_443_original,
            eq_443_original,
            stat_443_original, [0, 2.5], [0, 2.5],
            'Kd-measured (443 nm)',
            'Kd-SA MSI (443 nm)',
            'Kd-measured vs. Kd-SA MSI',
            'Fit',
            'Stations',
            leg_loc=0,
            x1=True)

###############################################################################
##  Regressão, plots e estatísticas para 492 nm.
kd_ref_492_original = kd_ref.loc[492]
kd_pred_492_original = kd_pred['Kd_QAAv6_original_10m_s-glint_492']

##  Ajuste da curva de regressão linear para 492 nm.
fit_492_original = curve_fit(fun_reg,
                             kd_ref_492_original,
                             kd_pred_492_original,