2019-02-13 15:27:48 +01:00
|
|
|
import numpy as np
|
|
|
|
from matplotlib import pyplot as plt
|
|
|
|
|
2019-05-02 14:12:06 +02:00
|
|
|
from CustomScaler import CustomScaler
|
2019-05-02 11:30:33 +02:00
|
|
|
from interpolators.griddata import GriddataInterpolator
|
2019-05-13 18:38:53 +02:00
|
|
|
from interpolators.rbf import RbfInterpolator
|
2019-02-13 15:27:48 +01:00
|
|
|
from simulation_list import SimulationList
|
|
|
|
|
2019-05-02 15:30:17 +02:00
|
|
|
|
|
|
|
def main():
|
2019-08-06 14:42:15 +02:00
|
|
|
mcode, gamma, wt, wp = [10 ** 23, 0.6, 15 / 100, 15 / 100]
|
2019-05-02 15:30:17 +02:00
|
|
|
simlist = SimulationList.jsonlines_load()
|
2019-07-06 15:50:16 +02:00
|
|
|
# for s in simlist.simlist:
|
|
|
|
# if s.type!="original":
|
|
|
|
# continue
|
|
|
|
# print(s.wpcode,s.projectile_water_fraction)
|
|
|
|
# exit()
|
2019-05-02 15:30:17 +02:00
|
|
|
data = simlist.X
|
2019-07-06 15:50:16 +02:00
|
|
|
print("-----")
|
|
|
|
print(len(data))
|
|
|
|
# print(data[0])
|
|
|
|
# exit()
|
2019-05-02 15:30:17 +02:00
|
|
|
values = simlist.Y
|
|
|
|
|
|
|
|
scaler = CustomScaler()
|
|
|
|
scaler.fit(data)
|
|
|
|
scaled_data = scaler.transform_data(data)
|
2019-08-06 14:42:15 +02:00
|
|
|
interpolator = RbfInterpolator(scaled_data, values)
|
|
|
|
# interpolator = GriddataInterpolator(scaled_data, values)
|
2019-05-02 15:30:17 +02:00
|
|
|
|
2019-08-06 14:42:15 +02:00
|
|
|
alpharange = np.linspace(-0.5, 60.5, 300)
|
|
|
|
vrange = np.linspace(0.5, 5.5, 300)
|
2019-05-02 15:30:17 +02:00
|
|
|
grid_alpha, grid_v = np.meshgrid(alpharange, vrange)
|
|
|
|
|
|
|
|
parameters = [grid_alpha, grid_v, mcode, gamma, wt, wp]
|
|
|
|
scaled_parameters = list(scaler.transform_parameters(parameters))
|
|
|
|
|
|
|
|
grid_result = interpolator.interpolate(*scaled_parameters)
|
|
|
|
|
2019-07-06 15:50:16 +02:00
|
|
|
plt.title("m={:3.0e}, gamma={:3.1f}, wt={:2.0f}%, wp={:2.0f}%\n".format(mcode, gamma, wt*100, wp*100))
|
2019-05-02 15:30:17 +02:00
|
|
|
|
2019-08-06 14:42:15 +02:00
|
|
|
# plt.contourf(grid_alpha, grid_v, grid_result, 100, cmap="Blues", vmin=0, vmax=1)
|
2019-05-02 15:30:17 +02:00
|
|
|
plt.pcolormesh(grid_alpha, grid_v, grid_result, cmap="Blues", vmin=0, vmax=1)
|
|
|
|
plt.colorbar().set_label("water retention")
|
|
|
|
# plt.scatter(data[:, 0], data[:, 1], c=values, cmap="Blues")
|
|
|
|
plt.xlabel("impact angle $\\alpha$")
|
|
|
|
plt.ylabel("velocity $v$")
|
|
|
|
plt.tight_layout()
|
|
|
|
# plt.savefig("vis.png", transparent=True)
|
|
|
|
plt.show()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|