Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/67: Рейтинг темы: голосов - 67, средняя оценка - 4.70
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481

Группировка точек

21.06.2021, 09:11. Показов 13217. Ответов 58
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Есть 3D карта допустим гор, я её обрезаю по высоте и получаю координаты вершин гор. И хочу решить такую задачу.

Вход - массив вида:
Python
1
2
3
list_coord = [[1, 1, 1], [2, 1, 1], [1, 1, 1], [12, 11, 11],
              [1, 2, 2], [7, 6, 6], [13, 12, 12],
              [11, 13, 13], [6, 6, 6], [6, 7, 7], [8, 8, 8]]
Выход - количество вершин гор
Python
1
2
3
dct = [{'Объект 1': [[1, 1, 1], [2, 1, 1], [1, 1, 1], [1, 2, 2]]}, 
       {'Объект 2': [[7, 6, 6], [6, 6, 6], [6, 7, 7], [7, 6, 7]]}, 
       {'Объект 3': [[12, 11, 11], [11, 13, 13], [13, 12, 12]]}]

Все вершины разделены между собой как минимум кругом пустоты радиусом 5-10 точек

Мои мысли
Запустить цикл по list_coord, и если точка не находится в диапазоне +- 3 то добавляем её в новый массив, в итоге на выходе должен был быть массив с тремя координатами, но что то не получается доделать логику

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
count_point =[list_coord[0]]
 
for i in list_coord:
 
    for j in count_point:
        x, y = j[0], j[1]
        x_min, x_max = i[0] - 3, i[0] + 3
        y_min, y_max = i[1] - 3, i[1] + 3
 
        if not (x_min < x < x_max and y_min < y < y_max) and i not in count_point:
            count_point.append(i)
            
 
print(count_point)
>> [[1, 1, 1], [12, 11, 11], [11, 13, 13], [13, 12, 12], [7, 6, 6], [6, 6, 6], [6, 7, 7], [8, 8, 8]]
Тут ошибка в том что первый раз он добавляет [1, 1, 1], дальше всё ок, похожие массивы он пропускает, потом добавляет [12, 11, 11] и начинает заново сравнивать list_coord с count_point[0] и соответственно записывает все остальные значения массива, как это можно исправить?

Не по теме:

p.s. формулировки мыслей конечно ужасные если что спрашивайте

0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.06.2021, 09:11
Ответы с готовыми решениями:

Даны действительные числа (xi, yi), i = 1,2, . n - координаты точек на плоскости. Определить количество точек, попада
Даны действительные числа (xi, yi), i = 1,2, ... n - координаты точек на плоскости. Определить количество точек, попадающих в...

Группировка + сложение
Доброго всем дня господа ) возможно как то сгруппировать одинаковые элементы по названию (индексу в подсписке) и сложить их значения по...

Группировка файлов
main.py: import Collections S = Collections.CStack() for i in range(0, 10): S.push(i) S.println() for i in range(0,...

58
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
23.06.2021, 13:17
Лучший ответ Сообщение было отмечено u235 как решение

Решение

Студворк — интернет-сервис помощи студентам
RSAX, нет, тут сетка нерегулярная. Нужна триангуляция.

Добавлено через 5 часов 44 минуты
RSAX, Вот код, который строит триангулированые сетки по вашим данным:
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import matplotlib.pyplot as plt
import matplotlib.tri as tri
 
 
t=[[0.0789702838086786, 0.026726748654913795, -0.33899998664855957],[0.07952999876630526, 0.026726748654913795, -0.33899998664855957],[0.07985346391344544, 0.02664790970030836, -0.33799999952316284],[0.08041152781569287, 0.02664790970030836, -0.33799999952316284],[0.0809695917179403, 0.02664790970030836, -0.33799999952316284],[0.0789702838086786, 0.026166138141604005, -0.33899998664855957],[0.07929540001119802, 0.026088952884101083, -0.33799999952316284],[0.07961721410295897, 0.02601176762659816, -0.3370000123977661],[0.08017362694982716, 0.02601176762659816, -0.3370000123977661],[0.08049048073615488, 0.025934580068765693, -0.335999995470047],[0.0810452424784379, 0.025934580068765693, -0.335999995470047],[0.08160000422072093, 0.025934580068765693, -0.335999995470047],[0.07929540001119802, 0.025529996067893804, -0.33799999952316284],[0.07961721410295897, 0.025454464507493394, -0.3370000123977661],[0.08017362694982716, 0.025454464507493394, -0.3370000123977661],[0.08049048073615488, 0.025378930696048088, -0.335999995470047],[0.0810452424784379, 0.025378930696048088, -0.335999995470047],[0.08160000422072093, 0.025378930696048088, -0.335999995470047],[0.025088755109876883, -0.10439716224391743, -0.3370000123977661],[0.02564516795674507, -0.10439716224391743, -0.3370000123977661],[0.02620158080361325, -0.10439716224391743, -0.3370000123977661],[0.026757993650481437, -0.10439716224391743, -0.3370000123977661],[0.02731440649734962, -0.10439716224391743, -0.3370000123977661],[0.027870819344217805, -0.10439716224391743, -0.3370000123977661],[0.02842723219108599, -0.10439716224391743, -0.3370000123977661],[0.028983645037954173, -0.10439716224391743, -0.3370000123977661],[0.02954005788482236, -0.10439716224391743, -0.3370000123977661],[0.030096470731690545, -0.10439716224391743, -0.3370000123977661],[0.030652883578558728, -0.10439716224391743, -0.3370000123977661],[0.031209296425426913, -0.10439716224391743, -0.3370000123977661],[0.0317657092722951, -0.10439716224391743, -0.3370000123977661],[0.032322122119163285, -0.10439716224391743, -0.3370000123977661],[0.032878534966031464, -0.10439716224391743, -0.3370000123977661],[0.03343494781289965, -0.10439716224391743, -0.3370000123977661],[0.033991360659767836, -0.10439716224391743, -0.3370000123977661],[0.03454777350663602, -0.10439716224391743, -0.3370000123977661],[0.03510418635350421, -0.10439716224391743, -0.3370000123977661],[0.035660599200372387, -0.10439716224391743, -0.3370000123977661],[0.03621701204724057, -0.10439716224391743, -0.3370000123977661],[0.03677342489410876, -0.10439716224391743, -0.3370000123977661],[0.037329837740976944, -0.10439716224391743, -0.3370000123977661],[0.03788625058784513, -0.10439716224391743, -0.3370000123977661],[0.02635707779177199, -0.10557733248619632, -0.33899998664855957],[0.026916792749398656, -0.10557733248619632, -0.33899998664855957],[0.027395457102187472, -0.10526589892460925, -0.33799999952316284],[0.0279535210044349, -0.10526589892460925, -0.33799999952316284],[0.028511584906682323, -0.10526589892460925, -0.33799999952316284],[0.028983645037954173, -0.10495446536302219, -0.3370000123977661],[0.02954005788482236, -0.10495446536302219, -0.3370000123977661],[0.0301857766134246, -0.10526589892460925, -0.33799999952316284],[0.030652883578558728, -0.10495446536302219, -0.3370000123977661],[0.031209296425426913, -0.10495446536302219, -0.3370000123977661],[0.0317657092722951, -0.10495446536302219, -0.3370000123977661],[0.032322122119163285, -0.10495446536302219, -0.3370000123977661],[0.032878534966031464, -0.10495446536302219, -0.3370000123977661],[0.03343494781289965, -0.10495446536302219, -0.3370000123977661],[0.033991360659767836, -0.10495446536302219, -0.3370000123977661],[0.03454777350663602, -0.10495446536302219, -0.3370000123977661],[0.03510418635350421, -0.10495446536302219, -0.3370000123977661],[0.035660599200372387, -0.10495446536302219, -0.3370000123977661],[0.03621701204724057, -0.10495446536302219, -0.3370000123977661],[0.03677342489410876, -0.10495446536302219, -0.3370000123977661],[0.02635707779177199, -0.1061379429995061, -0.33899998664855957],[0.026916792749398656, -0.1061379429995061, -0.33899998664855957],[0.027395457102187472, -0.10582485574081653, -0.33799999952316284],[0.0279535210044349, -0.10582485574081653, -0.33799999952316284],[0.028511584906682323, -0.10582485574081653, -0.33799999952316284],[0.028983645037954173, -0.10551176848212696, -0.3370000123977661],[0.02954005788482236, -0.10551176848212696, -0.3370000123977661],[0.0301857766134246, -0.10582485574081653, -0.33799999952316284],[0.030652883578558728, -0.10551176848212696, -0.3370000123977661],[0.031209296425426913, -0.10551176848212696, -0.3370000123977661],[0.0317657092722951, -0.10551176848212696, -0.3370000123977661],[0.032322122119163285, -0.10551176848212696, -0.3370000123977661],[0.032878534966031464, -0.10551176848212696, -0.3370000123977661],[0.03343494781289965, -0.10551176848212696, -0.3370000123977661],[0.033991360659767836, -0.10551176848212696, -0.3370000123977661],[0.03454777350663602, -0.10551176848212696, -0.3370000123977661],[0.03510418635350421, -0.10551176848212696, -0.3370000123977661],[0.035660599200372387, -0.10551176848212696, -0.3370000123977661],[0.03621701204724057, -0.10551176848212696, -0.3370000123977661],[0.03677342489410876, -0.10551176848212696, -0.3370000123977661],[0.030743840515672024, -0.10638381255702381, -0.33799999952316284],[0.03130190441791945, -0.10638381255702381, -0.33799999952316284],[0.031859968320166875, -0.10638381255702381, -0.33799999952316284],[0.0324180322224143, -0.10638381255702381, -0.33799999952316284],[0.03297609612466172, -0.10638381255702381, -0.33799999952316284],[0.03343494781289965, -0.10606907160123173, -0.3370000123977661],[0.033991360659767836, -0.10606907160123173, -0.3370000123977661],[0.03454777350663602, -0.10606907160123173, -0.3370000123977661],[0.03510418635350421, -0.10606907160123173, -0.3370000123977661]]
t=np.array(t)
points=t[:,:2]
x = points[:, 0]
y =points[:, 1]
triang = tri.Triangulation(x, y)
fig1, ax1 = plt.subplots()
ax1.set_aspect('equal')
 
max_radius = 0.02
triangles = triang.triangles
 
 
xtri = x[triangles] - np.roll(x[triangles], 1, axis=1)
ytri = y[triangles] - np.roll(y[triangles], 1, axis=1)
maxi = np.max(np.sqrt(xtri**2 + ytri**2), axis=1)
triang.set_mask(maxi > max_radius)
 
ax1.triplot(triang, color="red")
plt.show()



Дальше осталось прикрутить что-то типа:

scipy.sparse.csgraph.connected_component s()
для вычисления числа кластеров.

Не по теме:

p.s. Как снять отметку "решение"? случайно нажал..

1
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
23.06.2021, 13:30  [ТС]

Не по теме:

u235, ваш ответ близок к решению, пусть остаётся отметка)


Спасибо большое за код, уже час искал ответ!
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
23.06.2021, 13:34  [ТС]
u235, из скрина №1 3D получилось вот такое, я правильно понял что это некий перевод из 3D в 2D и связывание точек в треугольники с условием что связанная точка лежит в радиусе 0.02?
Миниатюры
Группировка точек   Группировка точек  
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
23.06.2021, 13:59  [ТС]
u235, а DBSCAN хорошая идея использовать? В scipy.sparse.csgraph.connected_component s() я что передаю, точки triang.x и .y или triang.triangles?

Тут просто массив NxN размера должен быть как я понимаю

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from scipy.sparse import csr_matrix
from scipy.sparse.csgraph import connected_components
 
graph = [[0, 1, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 0, 0, 0]]
graph = csr_matrix(graph)
print(graph)
 
  (0, 1)    1
  (0, 2)    1
  (1, 2)    1
  (3, 4)    1
 
n_components, labels = connected_components(csgraph=graph, directed=False, return_labels=True)
 
n_components >> 2
labels >> array([0, 0, 0, 1, 1], dtype=int32)
0
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
23.06.2021, 14:03
По первому посту - да, все верно.
По поводу DBSCAN - это не совсем то, мне кажется, это более ресурсоемкое решение.
может что-то еще есть в networkx.

Добавлено через 4 минуты
RSAX, для экономии памяти лучше использовать разреженные матрицы, а не полные NxN
0
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
24.06.2021, 08:24
RSAX, вот что получилось:
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.tri import Triangulation
import scipy as sp
 
 
coord=[[0.0789702838086786, 0.026726748654913795, -0.33899998664855957],[0.07952999876630526, 0.026726748654913795, -0.33899998664855957],[0.07985346391344544, 0.02664790970030836, -0.33799999952316284],[0.08041152781569287, 0.02664790970030836, -0.33799999952316284],[0.0809695917179403, 0.02664790970030836, -0.33799999952316284],[0.0789702838086786, 0.026166138141604005, -0.33899998664855957],[0.07929540001119802, 0.026088952884101083, -0.33799999952316284],[0.07961721410295897, 0.02601176762659816, -0.3370000123977661],[0.08017362694982716, 0.02601176762659816, -0.3370000123977661],[0.08049048073615488, 0.025934580068765693, -0.335999995470047],[0.0810452424784379, 0.025934580068765693, -0.335999995470047],[0.08160000422072093, 0.025934580068765693, -0.335999995470047],[0.07929540001119802, 0.025529996067893804, -0.33799999952316284],[0.07961721410295897, 0.025454464507493394, -0.3370000123977661],[0.08017362694982716, 0.025454464507493394, -0.3370000123977661],[0.08049048073615488, 0.025378930696048088, -0.335999995470047],[0.0810452424784379, 0.025378930696048088, -0.335999995470047],[0.08160000422072093, 0.025378930696048088, -0.335999995470047],[0.025088755109876883, -0.10439716224391743, -0.3370000123977661],[0.02564516795674507, -0.10439716224391743, -0.3370000123977661],[0.02620158080361325, -0.10439716224391743, -0.3370000123977661],[0.026757993650481437, -0.10439716224391743, -0.3370000123977661],[0.02731440649734962, -0.10439716224391743, -0.3370000123977661],[0.027870819344217805, -0.10439716224391743, -0.3370000123977661],[0.02842723219108599, -0.10439716224391743, -0.3370000123977661],[0.028983645037954173, -0.10439716224391743, -0.3370000123977661],[0.02954005788482236, -0.10439716224391743, -0.3370000123977661],[0.030096470731690545, -0.10439716224391743, -0.3370000123977661],[0.030652883578558728, -0.10439716224391743, -0.3370000123977661],[0.031209296425426913, -0.10439716224391743, -0.3370000123977661],[0.0317657092722951, -0.10439716224391743, -0.3370000123977661],[0.032322122119163285, -0.10439716224391743, -0.3370000123977661],[0.032878534966031464, -0.10439716224391743, -0.3370000123977661],[0.03343494781289965, -0.10439716224391743, -0.3370000123977661],[0.033991360659767836, -0.10439716224391743, -0.3370000123977661],[0.03454777350663602, -0.10439716224391743, -0.3370000123977661],[0.03510418635350421, -0.10439716224391743, -0.3370000123977661],[0.035660599200372387, -0.10439716224391743, -0.3370000123977661],[0.03621701204724057, -0.10439716224391743, -0.3370000123977661],[0.03677342489410876, -0.10439716224391743, -0.3370000123977661],[0.037329837740976944, -0.10439716224391743, -0.3370000123977661],[0.03788625058784513, -0.10439716224391743, -0.3370000123977661],[0.02635707779177199, -0.10557733248619632, -0.33899998664855957],[0.026916792749398656, -0.10557733248619632, -0.33899998664855957],[0.027395457102187472, -0.10526589892460925, -0.33799999952316284],[0.0279535210044349, -0.10526589892460925, -0.33799999952316284],[0.028511584906682323, -0.10526589892460925, -0.33799999952316284],[0.028983645037954173, -0.10495446536302219, -0.3370000123977661],[0.02954005788482236, -0.10495446536302219, -0.3370000123977661],[0.0301857766134246, -0.10526589892460925, -0.33799999952316284],[0.030652883578558728, -0.10495446536302219, -0.3370000123977661],[0.031209296425426913, -0.10495446536302219, -0.3370000123977661],[0.0317657092722951, -0.10495446536302219, -0.3370000123977661],[0.032322122119163285, -0.10495446536302219, -0.3370000123977661],[0.032878534966031464, -0.10495446536302219, -0.3370000123977661],[0.03343494781289965, -0.10495446536302219, -0.3370000123977661],[0.033991360659767836, -0.10495446536302219, -0.3370000123977661],[0.03454777350663602, -0.10495446536302219, -0.3370000123977661],[0.03510418635350421, -0.10495446536302219, -0.3370000123977661],[0.035660599200372387, -0.10495446536302219, -0.3370000123977661],[0.03621701204724057, -0.10495446536302219, -0.3370000123977661],[0.03677342489410876, -0.10495446536302219, -0.3370000123977661],[0.02635707779177199, -0.1061379429995061, -0.33899998664855957],[0.026916792749398656, -0.1061379429995061, -0.33899998664855957],[0.027395457102187472, -0.10582485574081653, -0.33799999952316284],[0.0279535210044349, -0.10582485574081653, -0.33799999952316284],[0.028511584906682323, -0.10582485574081653, -0.33799999952316284],[0.028983645037954173, -0.10551176848212696, -0.3370000123977661],[0.02954005788482236, -0.10551176848212696, -0.3370000123977661],[0.0301857766134246, -0.10582485574081653, -0.33799999952316284],[0.030652883578558728, -0.10551176848212696, -0.3370000123977661],[0.031209296425426913, -0.10551176848212696, -0.3370000123977661],[0.0317657092722951, -0.10551176848212696, -0.3370000123977661],[0.032322122119163285, -0.10551176848212696, -0.3370000123977661],[0.032878534966031464, -0.10551176848212696, -0.3370000123977661],[0.03343494781289965, -0.10551176848212696, -0.3370000123977661],[0.033991360659767836, -0.10551176848212696, -0.3370000123977661],[0.03454777350663602, -0.10551176848212696, -0.3370000123977661],[0.03510418635350421, -0.10551176848212696, -0.3370000123977661],[0.035660599200372387, -0.10551176848212696, -0.3370000123977661],[0.03621701204724057, -0.10551176848212696, -0.3370000123977661],[0.03677342489410876, -0.10551176848212696, -0.3370000123977661],[0.030743840515672024, -0.10638381255702381, -0.33799999952316284],[0.03130190441791945, -0.10638381255702381, -0.33799999952316284],[0.031859968320166875, -0.10638381255702381, -0.33799999952316284],[0.0324180322224143, -0.10638381255702381, -0.33799999952316284],[0.03297609612466172, -0.10638381255702381, -0.33799999952316284],[0.03343494781289965, -0.10606907160123173, -0.3370000123977661],[0.033991360659767836, -0.10606907160123173, -0.3370000123977661],[0.03454777350663602, -0.10606907160123173, -0.3370000123977661],[0.03510418635350421, -0.10606907160123173, -0.3370000123977661]]
coord=np.array(coord)
points=coord[:,:2]
x = points[:, 0]
y =points[:, 1]
triang = Triangulation(points[:, 0], points[:, 1]) #триангуляция набора точек
 
max_radius = 0.02 # максимальное расстояние, cut off
triangles = triang.triangles
xtri = x[triangles] - np.roll(x[triangles], 1, axis=1)
ytri = y[triangles] - np.roll(y[triangles], 1, axis=1)
maxi = np.max(np.sqrt(xtri**2 + ytri**2), axis=1) #максимальная длина стороны треугольника
triang.set_mask(maxi > max_radius) #фильтрация треугольников по длине стороны
num_nodes=np.max(triang.edges)+1 # число вершин
 
graph=sp.sparse.csr_matrix((np.ones(triang.edges.shape[0]),(triang.edges[:,0],triang.edges[:,1])), shape=(num_nodes,num_nodes))
n, labels=sp.sparse.csgraph.connected_components(graph.toarray(), directed=False)
 
fig1, ax1 = plt.subplots()
ax1.set_aspect('equal')
 
for i in range(n):
    ax1.scatter(triang.x[labels==i], triang.y[labels==i], s=0.5)
    print(f'Компонент {i}: \n x,y={triang.x[labels==i], triang.y[labels==i]}')
plt.show()
Миниатюры
Группировка точек  
1
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
25.06.2021, 10:44  [ТС]
u235, Такой ещё вопрос, просто алгоритм интересен, без кода, что я могу сделать с исходным массивом облака точек, чтобы хоть как то разграничить объекты и подготовить их к кластеризации?

На скринах площадь 70х50см, на ней лежат допустим яблоки, использовать визуализацию нельзя, поэтому opencv вряд ли поможет
Миниатюры
Группировка точек   Группировка точек   Группировка точек  

Группировка точек   Группировка точек   Группировка точек  

Группировка точек   Группировка точек   Группировка точек  

0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
25.06.2021, 10:48  [ТС]
По оси Z просто отрезать не получается так чтобы остались только верхушки объектов, потому что если камера наклонена хоть на 1 см отрезается слишком много у объектов по краям
0
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
25.06.2021, 11:12
RSAX, я бы перевел сначала все на регулярную сетку, т.е. получил картинку. Отфильтровал шумы и выполнил поиск локальных максимумов cv2.minMaxLoc() или что-то подобное. OpenCV прекрасно работает и без визуализации, например, у меня на телефоне из консоли Termux.
Если надо будет разделять уже бинаризированные объекты, то есть Watershed segmentation
см. https://scikit-image.org/docs/... tershed-py
Если надо выровнять "освещение", то см. функцию imclearborder из Matlab/Octave (использует морфологию, можно сделать аналог в OpenCV) , нужно просто поделить изображение на оценку фона (размытое изображение или после imclearborder)
2
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
25.06.2021, 14:18  [ТС]
u235, а я вот чего придумал, а если брать максимум массива, делать запись - кластер 1, далее удалять все точки вокруг него в радиусе который мне нужен и снова искать максимум?
0
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
25.06.2021, 17:05
RSAX, да, можно и так. Можно просто поиск локальных максимумов в numpy/scipy

Добавлено через 1 час 27 минут
См. функции scipy.signal.find_peaks и scipy.signal.argrelmax для поиска локальных максимумов.
1
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
02.07.2021, 11:16  [ТС]
u235, Можешь глянуть если есть время иерархическую кластеризацию, вот такой вот код, работает почти в 10 раз быстрее

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import numpy
import scipy.cluster.hierarchy as hcluster
 
data = [[i[0], i[1]] for i in arr]
 
# clustering
thresh = 0.05
clusters = hcluster.fclusterdata(data, thresh, criterion="distance")
 
# plotting
plt.scatter(*numpy.transpose(data), c=clusters)
plt.axis("equal")
title = "threshold: %f, number of clusters: %d" % (thresh, len(set(clusters)))
plt.title(title)
plt.show()
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
02.07.2021, 11:30  [ТС]
Осталась наверное последняя проблема разделить вот такой 1 объект на 3
Миниатюры
Группировка точек   Группировка точек  
0
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
02.07.2021, 15:06
RSAX, вот пример сегментации. https://scikit-image.org/docs/... tershed-py
Но если бы вы нашли локальные максимумы, подобная сегментация возможно и не потребовалась бы.
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
02.07.2021, 16:05  [ТС]
u235, утром смотрел данный пример(даже вкладка открыта XD), но так и не понял как туда 2D массив закинуть, вместо np.logical_or(mask_circle1, mask_circle2), что за тип ему нужен
0
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
02.07.2021, 17:08
RSAX, тип логический: np.bool там где области - true, где пусто - false
Ну и сетка регулярная (надеюсь вы это сделали?), по сути на входе черно-белая картинка.
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
05.07.2021, 08:45  [ТС]
u235, Ну вот, у меня такая сетка сейчас, я правильно понимаю что мне надо создать массив условно 1280х720, создать его со значениями [0, 0], далее создать переменную типа bool_arr = [i != 0 for i in frame], на выходе получу массив np.bool и дальше нужно его засунуть в image = np.logical_or(bool_arr)?
Миниатюры
Группировка точек  
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
05.07.2021, 14:30  [ТС]
создать его со значениями [0, 0], далее создать переменную типа
не правильно тут написал, создать его со значениями [0, 0], далее взять значения всех моих треугольников, и перебрать пустой массив и сравнить его с треугольниками

Добавлено через 27 минут
А по поводу локальных максимумов, предлагаете что нибудь такое использовать? На моих данные не особо корректно работает, параметры естественно менял

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import numpy as np
 
points = np.array([[0.08198248, 0.25999721, 0.07041999],
                   [0.19091977, 0.05404123, 0.25826508],
                   [0.8842875, 0.90132467, 0.50512316],
                   [0.33320528, 0.74069399, 0.36643752],
                   [0.27789568, 0.14381512, 0.13405309],
                   [0.73586202, 0.4406952, 0.52345838],
                   [0.76639731, 0.70796547, 0.70692905],
                   [0.09164532, 0.53234394, 0.88298593],
                   [0.96164975, 0.60700481, 0.22605181],
                   [0.53892635, 0.95173308, 0.22371167]])
 
local_maxima = []
 
# distance in x / y to define region of interest around current center coordinate
radius = 0.25
 
for i in range(points.shape[0]):
    # radial mask with radius radius, could be beautified via numpy.linalg
    mask = np.sqrt((points[:, 0] - points[i, 0]) ** 2 + (points[:, 1] - points[i, 1]) ** 2) <= radius
    # if current z value equals z_max in current region of interest, append to result list
    if points[i, 2] == np.max(points[mask], axis=0)[2]:
        local_maxima.append(tuple(points[i]))
 
print(len(local_maxima))
Добавлено через 3 часа 28 минут
Думаю локальный максимум не сможет подойти, т.к. объекты могут различаться почти в 2 раза, и два маленьких не смогут быть распознаны из за ограничения радиуса поиска максимума
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
05.07.2021, 15:43  [ТС]
u235, Ещё я использовал триангуляцию не на 2D а на 3D, и тут она получше работает, думаю есть шансы на поиск лок макс, надо только понять как отбросить лишнее

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import numpy as np
import scipy.spatial
import matplotlib.tri as mtri
import matplotlib.pyplot as plt
 
t = np.array(arr)
 
x = [i[0] for i in t]
y = [i[1] for i in t]
 
# Create the Delaunay tessalation using scipy.spatial
pts = np.vstack([x, y]).T
tess = scipy.spatial.Delaunay(pts)
 
# Create the matplotlib Triangulation object
x = tess.points[:, 0]
y = tess.points[:, 1]
tri = tess.vertices # or tess.simplices depending on scipy version
triang = mtri.Triangulation(x=pts[:, 0], y=pts[:, 1], triangles=tri)
 
# Plotting
z = [i[2] for i in t]
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(triang, z)
plt.show()
Python
1
2
arr = [[-0.2384903,   0.28638432, -0.52100003], [-0.23179091,  0.28418559, -0.51700002], [-0.22692253,  0.28418559, -0.51700002], [-0.22046956,  0.28528494, -0.51899999], [-0.21518661,  0.28638432, -0.52100003], [-0.24017692,  0.28570513, -0.52200001], [-0.23345869,  0.28351582, -0.51800001], [-0.22813963,  0.2829685 , -0.51700002], [-0.22370311,  0.28351582, -0.51800001], [-0.21967019,  0.28461046, -0.51999998], [-0.21518661,  0.28515781, -0.52100003], [-0.20773969,  0.28844177, -0.52700001], [-0.24017692,  0.28447627, -0.52200001], [-0.23345869,  0.28229637, -0.51800001], [-0.22813963,  0.2817514 , -0.51700002], [-0.22370311,  0.28229637, -0.51800001], [-0.21967019,  0.2833863 , -0.51999998], [-0.21518661,  0.2839313 , -0.52100003], [-0.21025782,  0.2855662 , -0.52399999], [-0.20728272,  0.28829107, -0.52899998], [-0.24017692,  0.2832474 , -0.52200001], [-0.23345869,  0.28107692, -0.51800001], [-0.22813963,  0.28053431, -0.51700002], [-0.22370311,  0.28107692, -0.51800001], [-0.21967019,  0.28216215, -0.51999998], [-0.21559964,  0.2832474 , -0.52200001], [-0.21149139,  0.28433263, -0.52399999], [-0.20813387,  0.28650311, -0.528     ], [-0.2384903 ,  0.28147828, -0.52100003], [-0.23223924,  0.27985747, -0.51800001], [-0.22736145,  0.27985747, -0.51800001], [-0.22248366,  0.27985747, -0.51800001], [-0.21886614,  0.28147828, -0.52100003], [-0.21437077,  0.28201854, -0.52200001], [-0.21065907,  0.28363932, -0.52499998], [-0.20806641,  0.28688093, -0.53100002], [-0.23513117,  0.27917593, -0.51899999], [-0.22980034,  0.27863803, -0.51800001], [-0.22492255,  0.27863803, -0.51800001], [-0.22089435,  0.27971384, -0.51999998], [-0.2168285 ,  0.28078968, -0.52200001], [-0.21272496,  0.28186548, -0.52399999], [-0.20937686,  0.28401713, -0.528     ], [-0.23726379,  0.27902526, -0.52100003], [-0.23101979,  0.27741858, -0.51800001], [-0.22657856,  0.27795413, -0.51899999], [-0.2221185 ,  0.27848968, -0.51999998], [-0.21805736,  0.27956081, -0.52200001], [-0.21395853,  0.28063191, -0.52399999], [-0.21061985,  0.28277415, -0.528     ], [-0.23986355,  0.27939834, -0.52399999], [-0.2331359 ,  0.27726552, -0.51999998], [-0.22780037,  0.27673233, -0.51899999], [-0.22334266,  0.27726552, -0.51999998], [-0.21928623,  0.27833195, -0.52200001], [-0.2151921 ,  0.27939834, -0.52399999], [-0.21186284,  0.28153116, -0.528     ], [-0.24821244,  0.28347325, -0.53399998], [-0.23649032,  0.27710308, -0.52200001], [-0.23068759,  0.27604137, -0.51999998], [-0.22579097,  0.27604137, -0.51999998], [-0.22131916,  0.27657224, -0.52100003], [-0.21765925,  0.27816477, -0.52399999], [-0.21394286,  0.27975733, -0.52700001], [-0.2113596 ,  0.28294241, -0.53299999], [-0.23908537,  0.27745968, -0.52499998], [-0.23235775,  0.27534573, -0.52100003], [-0.22701513,  0.27481721, -0.51999998], [-0.22254567,  0.27534573, -0.52100003], [-0.21889282,  0.2769312 , -0.52399999], [-0.21518349,  0.27851669, -0.52700001], [-0.21221546,  0.28115916, -0.53200001], [-0.24215232,  0.27832832, -0.52899998], [-0.23448093,  0.27517149, -0.523     ], [-0.22867822,  0.27411922, -0.52100003], [-0.22420168,  0.27464536, -0.52200001], [-0.22012639,  0.27569762, -0.52399999], [-0.2168348 ,  0.27780219, -0.528     ], [-0.21346787,  0.27990676, -0.53200001], [-0.24090698,  0.27708298, -0.52899998], [-0.23369569,  0.27446405, -0.52399999], [-0.22788828,  0.27341649, -0.52200001], [-0.22382711,  0.27446405, -0.52399999], [-0.2197283 ,  0.27551164, -0.52600002], [-0.21640843,  0.27760676, -0.52999997], [-0.24398335,  0.27792337, -0.53299999], [-0.23582595,  0.27427336, -0.52600002], [-0.22955606,  0.27270905, -0.523     ], [-0.22506068,  0.27323048, -0.52399999], [-0.22180675,  0.27531621, -0.528     ], [-0.21806682,  0.27688052, -0.53100002], [-0.24272859,  0.27666861, -0.53299999], [-0.23503365,  0.27355415, -0.52700001], [-0.2287614 ,  0.27199691, -0.52399999], [-0.22468143,  0.27303508, -0.52600002], [-0.22139922,  0.27511137, -0.52999997], [-0.21804171,  0.27718768, -0.53399998], [-0.23592561,  0.27334695, -0.52899998], [-0.22963455,  0.2717968 , -0.52600002], [-0.22553572,  0.27283023, -0.528     ], [-0.2222347 ,  0.27489713, -0.53200001], [-0.23681759,  0.27313037, -0.53100002], [-0.23050767,  0.27158725, -0.528     ], [-0.22639001,  0.27261597, -0.52999997], [-0.22307016,  0.27467346, -0.53399998], [-0.23181739,  0.27188031, -0.53100002], [-0.22767147,  0.27290433, -0.53299999], [-0.23143575,  0.27164957, -0.53299999], [-0.15836202,  0.20225762, -0.53200001], [-0.16369571,  0.19987172, -0.52899998], [-0.15781427,  0.19873824, -0.52600002], [-0.15286115,  0.19873824, -0.52600002], [-0.14987638,  0.20138304, -0.53299999], [-0.15937662,  0.19637353, -0.523     ], [-0.15415643,  0.19599806, -0.52200001], [-0.15038459,  0.19749996, -0.52600002], [-0.16307028,  0.19514231, -0.523     ], [-0.15784303,  0.19476919, -0.52200001], [-0.15292757,  0.19476919, -0.52200001], [-0.14914631,  0.19626168, -0.52600002], [-0.1461121 ,  0.19887352, -0.53299999], [-0.16152962,  0.19354033, -0.52200001], [-0.15661416,  0.19354033, -0.52200001], [-0.15169871,  0.19354033, -0.52200001], [-0.14790803,  0.1950234 , -0.52600002], [-0.14431379,  0.19687723, -0.53100002], [-0.17176128,  0.19415353, -0.52700001], [-0.16553271,  0.19267987, -0.523     ], [-0.16030075,  0.19231147, -0.52200001], [-0.1553853 ,  0.19231147, -0.52200001], [-0.15046984,  0.19231147, -0.52200001], [-0.14639089,  0.19341669, -0.52499998], [-0.14306374,  0.19562718, -0.53100002], [-0.17019708,  0.19254684, -0.52600002], [-0.16430149,  0.19144866, -0.523     ], [-0.15876716,  0.19071655, -0.52100003], [-0.15415643,  0.1910826 , -0.52200001], [-0.14924098,  0.1910826 , -0.52200001], [-0.14487849,  0.19181471, -0.52399999], [-0.14154661,  0.19401105, -0.52999997], [-0.1689588 ,  0.19130856, -0.52600002], [-0.16275848,  0.18985374, -0.52200001], [-0.15754065,  0.18949004, -0.52100003], [-0.15263461,  0.18949004, -0.52100003], [-0.14801211,  0.18985374, -0.52200001], [-0.14364491,  0.19058114, -0.52399999], [-0.14029891,  0.19276336, -0.52999997], [-0.1689588 ,  0.19007028, -0.52600002], [-0.16307028,  0.18898622, -0.523     ], [-0.15784303,  0.18862487, -0.52200001], [-0.15292757,  0.18862487, -0.52200001], [-0.14801211,  0.18862487, -0.52200001], [-0.14364491,  0.18934756, -0.52399999], [-0.13976949,  0.19079297, -0.528     ], [-0.17365846,  0.18990897, -0.52899998], [-0.16708279,  0.18811399, -0.52399999], [-0.16152962,  0.18739601, -0.52200001], [-0.15661416,  0.18739601, -0.52200001], [-0.15169871,  0.18739601, -0.52200001], [-0.14678325,  0.18739601, -0.52200001], [-0.14241134,  0.18811399, -0.52399999], [-0.1385265 ,  0.18954998, -0.528     ], [-0.17523443,  0.18902027, -0.52999997], [-0.1689588 ,  0.18759372, -0.52600002], [-0.16307028,  0.18652378, -0.523     ], [-0.15784303,  0.18616715, -0.52200001], [-0.15292757,  0.18616715, -0.52200001], [-0.14801211,  0.18616715, -0.52200001], [-0.14364491,  0.18688042, -0.52399999], [-0.13924006,  0.18759372, -0.52600002], [-0.13607402,  0.1900902 , -0.5329999 ],
[-0.1720872,  0.187064,  -0.528    ], [-0.16584921,  0.18564685, -0.52399999], [-0.16060784,  0.18529256, -0.523     ], [-0.15568297,  0.18529256, -0.523     ], [-0.15046984,  0.18493828, -0.52200001], [-0.14583322,  0.18529256, -0.523     ], [-0.14144719,  0.18600113, -0.52499998], [-0.13728351,  0.187064  , -0.528     ], [-0.17748109,  0.18758068, -0.53299999], [-0.17052064,  0.18546908, -0.52700001], [-0.16461564,  0.18441328, -0.52399999], [-0.15937662,  0.18406135, -0.523     ], [-0.15445175,  0.18406135, -0.523     ], [-0.14924098,  0.18370942, -0.52200001], [-0.144602  ,  0.18406135, -0.523     ], [-0.14047834,  0.18511715, -0.52600002], [-0.13629817,  0.18617294, -0.52899998], [-0.17748109,  0.18632592, -0.53299999], [-0.17052064,  0.18422845, -0.52700001], [-0.16461564,  0.1831797 , -0.52399999], [-0.15937662,  0.18283013, -0.523     ], [-0.15445175,  0.18283013, -0.523     ], [-0.14924098,  0.18248055, -0.52200001], [-0.14487849,  0.1831797 , -0.52399999], [-0.14047834,  0.18387887, -0.52600002], [-0.13604052,  0.18457802, -0.528     ], [-0.13255797,  0.1866755 , -0.53399998], [-0.1720872 ,  0.18333504, -0.528     ], [-0.16616572,  0.18229335, -0.52499998], [-0.16091492,  0.18194613, -0.52399999], [-0.15568297,  0.18159891, -0.523     ], [-0.15075809,  0.18159891, -0.523     ], [-0.14611206,  0.18194613, -0.52399999], [-0.14144719,  0.18229335, -0.52499998], [-0.1370235 ,  0.18298781, -0.52700001], [-0.13306333,  0.18437672, -0.53100002], [-0.26706914,  0.18416127, -0.53399998], [-0.26204069,  0.18416127, -0.53399998], [-0.17748109,  0.1838164 , -0.53299999], [-0.17084421,  0.18209205, -0.528     ], [-0.16492979,  0.18105743, -0.52499998], [-0.15968135,  0.18071256, -0.52399999], [-0.15474706,  0.18071256, -0.52399999], [-0.14981277,  0.18071256, -0.52399999], [-0.14487849,  0.18071256, -0.52399999], [-0.14047834,  0.18140231, -0.52600002], [-0.13604052,  0.18209205, -0.528     ], [-0.13206151,  0.18347153, -0.53200001], [-0.2673213 ,  0.18221913, -0.53200001], [-0.26231168,  0.18221913, -0.53200001], [-0.2577857 ,  0.18256164, -0.53299999], [-0.17781407,  0.18290415, -0.53399998], [-0.17116777,  0.18119157, -0.52899998], [-0.16492979,  0.1798215 , -0.52499998], [-0.15968135,  0.17947899, -0.52399999], [-0.15474706,  0.17947899, -0.52399999], [-0.14981277,  0.17947899, -0.52399999], [-0.14515497,  0.1798215 , -0.52499998], [-0.14047834,  0.18016403, -0.52600002], [-0.13604052,  0.18084906, -0.528     ], [-0.13206151,  0.18221913, -0.53200001], [-0.27233092,  0.18096672, -0.53200001], [-0.26431872,  0.18062657, -0.53100002], [-0.25980687,  0.18096672, -0.53200001], [-0.25527618,  0.18130688, -0.53299999], [-0.1746433 ,  0.18096672, -0.53200001], [-0.16835823,  0.17960607, -0.528     ], [-0.16245794,  0.17858557, -0.52499998], [-0.15751423,  0.17858557, -0.52499998], [-0.15257053,  0.17858557, -0.52499998], [-0.14734563,  0.17824541, -0.52399999], [-0.1429549 ,  0.17892575, -0.52600002], [-0.13826414,  0.17926591, -0.52700001], [-0.13380748,  0.17994623, -0.52899998], [-0.27712605,  0.18038993, -0.53399998], [-0.27056898,  0.17937651, -0.53100002], [-0.26556877,  0.17937651, -0.53100002], [-0.26056857,  0.17937651, -0.53100002], [-0.25653094,  0.18005212, -0.53299999], [-0.25198378,  0.18038993, -0.53399998], [-0.16867709,  0.17870088, -0.52899998], [-0.16245794,  0.17734965, -0.52499998], [-0.15751423,  0.17734965, -0.52499998], [-0.15257053,  0.17734965, -0.52499998], [-0.14762682,  0.17734965, -0.52499998], [-0.1429549 ,  0.17768747, -0.52600002], [-0.13826414,  0.17802528, -0.52700001], [-0.13406042,  0.17903869, -0.52999997], [-0.27838316,  0.17913281, -0.53399998], [-0.27181903,  0.17812646, -0.53100002], [-0.26631632,  0.17779099, -0.52999997], [-0.26181862,  0.17812646, -0.53100002], [-0.25730206,  0.17846191, -0.53200001], [-0.25324089,  0.17913281, -0.53399998], [-0.16774825,  0.17779099, -0.52999997], [-0.16152911,  0.17644919, -0.52600002], [-0.1562783 ,  0.17611372, -0.52499998], [-0.15162287,  0.17644919, -0.52600002], [-0.14666975,  0.17644919, -0.52600002], [-0.14171662,  0.17644919, -0.52600002], [-0.13728351,  0.17712009, -0.528     ], [-0.13306333,  0.17812646, -0.53100002], [-0.27608814,  0.17720951, -0.53200001], [-0.27005941,  0.17654329, -0.52999997], [-0.26506862,  0.17654329, -0.52999997], [-0.26056857,  0.17687641, -0.53100002], [-0.25604965,  0.17720951, -0.53200001], [-0.16995253,  0.1775426 , -0.53299999], [-0.16307683,  0.17554401, -0.52700001], [-0.15781427,  0.17521091, -0.52600002], [-0.15286115,  0.17521091, -0.52600002], [-0.14790803,  0.17521091, -0.52600002], [-0.14322668,  0.17554401, -0.5270000 ]]
Миниатюры
Группировка точек  
0
5526 / 2879 / 572
Регистрация: 07.11.2019
Сообщений: 4,774
06.07.2021, 07:28
RSAX, не нужна вам триангуляция 3d.
вот смотрите код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import numpy as np
from scipy import interpolate
from scipy.ndimage import maximum_filter
 
#  симуляция сканированных данных
def generate_points():
    x_min,x_max=0.0,0.3
    y_min,y_max=-0.05,0.2
    x=np.linspace(x_min, x_max, 1000)
    y=np.linspace(y_min, y_max, 1000)
    X,Y=np.meshgrid(x, y)
    num_points=5
    peaks_pos=((0.17,0.1), (0.19, 0.15), (0.1, 0.1), (0.24, 0.15), (0.25, 0.09))
    peaks_param=((0.3, 0.018), (0.25, 0.02), (0.32, 0.01), (0.28, 0.02),(0.33, 0.01))
    Z=0.1*X-0.15*Y
    for i in range(num_points):
        Z=Z+peaks_param[i][0]*np.exp(-((X-peaks_pos[i][0])**2+(Y-peaks_pos[i][1])**2)/(2*peaks_param[i][1]**2))
    # ax.plot_surface( X, Y, Z, cmap=cm.coolwarm)
    x_rnd=(x_max-x_min)*np.random.random(size=(100000,))+x_min
    y_rnd=(y_max-y_min)*np.random.random(size=(100000,))+y_min
    point = np.vstack((y_rnd, x_rnd))
    z_rnd=interpolate.interpn((y, x), Z, point.T)
    # ax.scatter(x_rnd,y_rnd,z_rnd)
    return((x_rnd, y_rnd, z_rnd))
    
 
# нерегулярный набор точек (исходные данные)
x,y,z=generate_points()
x_min=np.min(x)
x_max=np.max(x)
y_min=np.min(y)
y_max=np.max(y)
 
# преобразование в регулярные сетки (интерполяция):
x_grid, y_grid=np.meshgrid(np.linspace(x_min, x_max, 1000), np.linspace(y_min, y_max, 1000))
z_grid = interpolate.griddata((x, y), z, (x_grid, y_grid), method='cubic') #, fill_value=0.0
# тут можно сделать фильтрацию  z_grid для удаления ВЧ шумов
 
z_max=maximum_filter(z_grid, size=5)
pos=np.argwhere(z_grid == z_max)
print('положения максимумов:')
print(x_grid[0, pos[:,1]], y_grid[ pos[:,0],0])
Большая часть кода-генерация данных (раз вы своими данными не делитесь).
Далее нерегулярные наборы точек интерполируются в регулярные сетки.
z_grid - по сути картинка (осторожно! есть nanы по краям)
Ищем максимумы и все. (добавляется один ложный максимум с края связанный с наклоном "стола", который можно отфильтровать)
Все просто, главное перейти из наборов точек к регулярной картинке-матрице.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2021, 07:28

Группировка списка
Подскажите, пожалуйста, как мне сгруппировать такой список? ,,,,,] Что бы получилось Москва Значение1 Значение2 ...

Группировка в Pandas
Добрый день! Подскажите как выполнить группировку данных фрейма import pandas as pd, numpy as np np.random.seed(10) df =...

Группировка словаря
Помогите сгруппировать словарь с агрегированием в список from itertools import groupby works = # требуется #}, # ...

Группировка данных в массиве
Всем доброго дня Имеется вот такой массив: a = Надо объединить данные(для примера тут one,two,three) по именам, то есть в итоге...

Группировка логических операций в питоне
здравствуйте стал гуглить по сабжу как-то игнорирует первое слово, можете дать пример именно группировки логических операций в питоне ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru