- С тех пор, как я опубликовал это, я работал над ним, и, наконец, я смог разработать код
- , любой может его использовать.- здесь есть профиль сечения
Y=c(-30,-2,0,8,20,31)
Z=c(30,10,2,9,30,39)
-Для создания сетки точек внутри сечения - выберите y и zинтервал сетки
ygrid= 50 #cm
zgrid= 20 #cm
Ym = seq(min(Y),max(Y),ygrid/100
#y координаты сетки вдоль сечения
создать функцию интерполяции
f_z=approxfun(Y,Z)
Zm = f_z(Ym) #interpolated z coordinates of the section perimeter
plot(Ym, Zm,type="b")
глубина, на которую мы наблюдаем прибой.скорость или Q-разряд
Depth_study = 6.05
создайте различные глубины от ложа сечения до глубины исследования
Depthm = seq(Z_bed,Depth_study,zgrid/100) # different water depths w/r to 0,0 point
теперь для другой глубины выньте индексы, которые Zm <= Depthm </h1>list_points_mesh<-vector(("list"),length =length(Depthm))
Y_mesh<-vector(("list"),length =length(Depthm))
Z_mesh<-vector(("list"),length =length(Depthm))
for (j in 1:length(Depthm)) {
list_points_mesh[[j]] = which(Zm<=Depthm[j]) #gives indice of all the points which are below Depthm elevation
Y_mesh[[j]] = Ym[list_points_mesh[[j]]] #now we create pair of points using the indices
Z_mesh[[j]]= rep(Depthm[j],length(list_points_mesh[[j]]))
}
, поскольку ответ приходит в виде списка, мы убираем его с помощью функции unlist func.
ym=unlist(Y_mesh) #y coord of the grid points
zm=unlist(Z_mesh) #z // // // //
mesh_coord <- data.frame(ym,zm) #list of points inside the section
points(ym,zm,pch=".")