|
|
@ -59,7 +59,7 @@ def fun_rmse(py1, py2):
|
||||||
filename = "west_test_2_5_No_54.csv"
|
filename = "west_test_2_5_No_54.csv"
|
||||||
|
|
||||||
# 최종 성토 단계의 데이터 사용 퍼센트 설정 : 사용자 입력값
|
# 최종 성토 단계의 데이터 사용 퍼센트 설정 : 사용자 입력값
|
||||||
final_step_predict_percent = 20
|
final_step_predict_percent = 80
|
||||||
|
|
||||||
# 추가 계측 구간 퍼센트 설정 : 사용자 입력값
|
# 추가 계측 구간 퍼센트 설정 : 사용자 입력값
|
||||||
additional_predict_percent = 100
|
additional_predict_percent = 100
|
||||||
|
|
@ -93,8 +93,8 @@ elif filename == "4_S-11.csv":
|
||||||
step_start_index = [0, 10, 46, 51, 120]
|
step_start_index = [0, 10, 46, 51, 120]
|
||||||
step_end_index = [10, 46, 51, 120, 157]
|
step_end_index = [10, 46, 51, 120, 157]
|
||||||
elif filename == "west_test_2_5_No_54.csv":
|
elif filename == "west_test_2_5_No_54.csv":
|
||||||
step_start_index = [111, 269]
|
step_start_index = [111, 195, 269, 287]
|
||||||
step_end_index = [269, 409]
|
step_end_index = [195, 269, 287, 409]
|
||||||
|
|
||||||
# 성토 단계 횟수 파악 및 저장
|
# 성토 단계 횟수 파악 및 저장
|
||||||
num_steps = len(step_start_index)
|
num_steps = len(step_start_index)
|
||||||
|
|
@ -126,6 +126,11 @@ final_index = time.size
|
||||||
# 꼭 이전 단계 마지막 인덱스와 현재 단계 처음 인덱스가 이어질 필요는 없음
|
# 꼭 이전 단계 마지막 인덱스와 현재 단계 처음 인덱스가 이어질 필요는 없음
|
||||||
# (각 단계별 시간, 침하를 초기화 한후 예측을 수행하므로...)
|
# (각 단계별 시간, 침하를 초기화 한후 예측을 수행하므로...)
|
||||||
|
|
||||||
|
#creteria_buffer
|
||||||
|
#creteria_num_data
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ===========================
|
# ===========================
|
||||||
|
|
@ -221,7 +226,9 @@ for i in range(0, num_steps):
|
||||||
|
|
||||||
# 회귀분석 시행
|
# 회귀분석 시행
|
||||||
res_lsq_hyper_nonlinear \
|
res_lsq_hyper_nonlinear \
|
||||||
= least_squares(fun_hyper_nonlinear, x0, args=(tm_this_step, sm_this_step))
|
= least_squares(fun_hyper_nonlinear, x0,
|
||||||
|
bounds=((0, 0),(np.inf, np.inf)),
|
||||||
|
args=(tm_this_step, sm_this_step))
|
||||||
|
|
||||||
# 쌍곡선 계수 저장 및 출력
|
# 쌍곡선 계수 저장 및 출력
|
||||||
x_step = res_lsq_hyper_nonlinear.x
|
x_step = res_lsq_hyper_nonlinear.x
|
||||||
|
|
@ -350,7 +357,7 @@ axes[0].tick_params(direction='in')
|
||||||
|
|
||||||
# 계측 및 예측 침하량 표시
|
# 계측 및 예측 침하량 표시
|
||||||
axes[1].scatter(time[0:settle.size], -settle, s=50, facecolors='white', edgecolors='black', label='measured data')
|
axes[1].scatter(time[0:settle.size], -settle, s=50, facecolors='white', edgecolors='black', label='measured data')
|
||||||
axes[1].plot(time, -sp_step, linestyle='-', color='blue', label='Nonlinear + Step Loading')
|
axes[1].plot(time[step_start_index[0]:], -sp_step[step_start_index[0]:], linestyle='-', color='blue', label='Nonlinear + Step Loading')
|
||||||
axes[1].plot(time_hyper, -sp_hyper_nonlinear,
|
axes[1].plot(time_hyper, -sp_hyper_nonlinear,
|
||||||
linestyle='--', color='green', label='Nonlinear Hyperbolic')
|
linestyle='--', color='green', label='Nonlinear Hyperbolic')
|
||||||
axes[1].plot(time_hyper, -sp_hyper_original,
|
axes[1].plot(time_hyper, -sp_hyper_original,
|
||||||
|
|
@ -369,7 +376,7 @@ axes[1].tick_params(direction='in')
|
||||||
axes[1].legend(loc=1, ncol=2, frameon=True, fontsize=12)
|
axes[1].legend(loc=1, ncol=2, frameon=True, fontsize=12)
|
||||||
|
|
||||||
# 예측 데이터 사용 범위 음영 처리 - 단계성토
|
# 예측 데이터 사용 범위 음영 처리 - 단계성토
|
||||||
plt.axvspan(0, final_step_predict_end_date,
|
plt.axvspan(time[step_start_index[0]], final_step_predict_end_date,
|
||||||
alpha=0.1, color='grey', hatch='//')
|
alpha=0.1, color='grey', hatch='//')
|
||||||
|
|
||||||
# 예측 데이터 사용 범위 음영 처리 - 기존 및 비선형 쌍곡선
|
# 예측 데이터 사용 범위 음영 처리 - 기존 및 비선형 쌍곡선
|
||||||
|
|
@ -385,10 +392,12 @@ arrow_head_width = 0.03 * max(settle)
|
||||||
arrow_head_length = 0.01 * max(time)
|
arrow_head_length = 0.01 * max(time)
|
||||||
|
|
||||||
# 예측 데이터 사용 범위 화살표 처리 - 단계성토
|
# 예측 데이터 사용 범위 화살표 처리 - 단계성토
|
||||||
axes[1].arrow(0, arrow1_y_loc, final_step_predict_end_date, 0,
|
axes[1].arrow(time[step_start_index[0]], arrow1_y_loc,
|
||||||
|
final_step_predict_end_date - time[step_start_index[0]], 0,
|
||||||
head_width=arrow_head_width, head_length=arrow_head_length,
|
head_width=arrow_head_width, head_length=arrow_head_length,
|
||||||
color='black', length_includes_head='True')
|
color='black', length_includes_head='True')
|
||||||
axes[1].arrow(final_step_predict_end_date, arrow1_y_loc, -final_step_predict_end_date, 0,
|
axes[1].arrow(final_step_predict_end_date, arrow1_y_loc,
|
||||||
|
time[step_start_index[0]] - final_step_predict_end_date, 0,
|
||||||
head_width=arrow_head_width, head_length=arrow_head_length,
|
head_width=arrow_head_width, head_length=arrow_head_length,
|
||||||
color='black', length_includes_head='True')
|
color='black', length_includes_head='True')
|
||||||
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 134 KiB |