Создание 2D сетки или сетки внутри профиля поперечного сечения - PullRequest
0 голосов
/ 25 марта 2019

2D сетка в R?У меня есть поперечное сечение реки с его профилем по Y и Z. Я хотел бы создать сетку между руслом русла и глубиной воды.Любая из треугольных и прямоугольных ячеек в порядке.Сетка может быть на расстоянии 0,01 х 0,01 м или любой другой.Моя цель - получить координаты Y и Z каждой сетки.Заранее благодарим за сотрудничество

Данные профиля

Y=c(-30,-2,0,8,20,31) 
Z=c(30,10,2,9,30,39)

1 Ответ

0 голосов
/ 01 апреля 2019
  • С тех пор, как я опубликовал это, я работал над ним, и, наконец, я смог разработать код
  • , любой может его использовать.- здесь есть профиль сечения

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=".")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...