## 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,
## 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,
## 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()
## 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,