Я запускаю вычислительное гидродинамическое моделирование и хочу уточнить сетку в областях, для которых величина превышает пороговое значение. Мне удается извлечь местоположения точек, поэтому я получаю список точек, описывающих области, которые соответствуют моим критериям для уточнения.
Чтобы уточнить мою сетку, мне нужно предоставить программе внешние границы поверхности (или кривой, если мы работаем в 2D), которая описывается облаком точек. В частности, мне нужно удалить все точки, которые находятся в центре области, чтобы получить координаты тех, которые находятся на границе. Затем я хотел бы окружить точки кривой.
Я нашел похожий пост на форуме, но вопрос заключался в интерполяции облака точек, так что это не совсем то, что я хочу: Подгонка кривой-сплайна к 3D-облаку точек
Можете ли вы помочь мне сделать это?
Вот 2D-пример облака точек, для которого я хотел бы сохранить только граничные точки и построить окружающую кривую:
0.20215,0.29703,0
0.22857,0.29703,0
0.25526,0.29703,0
0.28221,0.29703,0
0.30943,0.29703,0
0.33692,0.29703,0
0.36469,0.29703,0
0.39273,0.29703,0
0.42106,0.29703,0
0.44966,0.29703,0
0.47856,0.29703,0
0.50774,0.29703,0
0.53722,0.29703,0
0.56699,0.29703,0
0.59706,0.29703,0
0.62742,0.29703,0
0.6581,0.29703,0
0.68907,0.29703,0
0.72036,0.29703,0
0.75196,0.29703,0
0.78388,0.29703,0
0.81612,0.29703,0
0.84868,0.29703,0
0.88156,0.29703,0
0.91478,0.29703,0
0.94832,0.29703,0
0.9822,0.29703,0
1.0164,0.29703,0
1.051,0.29703,0
1.0859,0.29703,0
1.1211,0.29703,0
1.1568,0.29703,0
1.1927,0.29703,0
1.229,0.29703,0
1.2657,0.29703,0
1.3028,0.29703,0
1.3402,0.29703,0
1.378,0.29703,0
1.4162,0.29703,0
1.4548,0.29703,0
1.4937,0.29703,0
1.533,0.29703,0
1.5728,0.29703,0
1.6129,0.29703,0
1.6534,0.29703,0
1.6944,0.29703,0
1.7357,0.29703,0
1.7774,0.29703,0
1.8196,0.29703,0
1.8622,0.29703,0
1.9052,0.29703,0
1.9487,0.29703,0
1.9926,0.29703,0
2.0369,0.29703,0
2.0817,0.29703,0
2.1269,0.29703,0
2.1725,0.29703,0
2.2187,0.29703,0
2.2652,0.29703,0
2.3123,0.29703,0
2.3598,0.29703,0
2.4078,0.29703,0
2.4563,0.29703,0
2.5053,0.29703,0
2.5547,0.29703,0
2.6046,0.29703,0
2.6551,0.29703,0
2.706,0.29703,0
2.7575,0.29703,0
2.8095,0.29703,0
2.862,0.29703,0
2.915,0.29703,0
2.9685,0.29703,0
3.0226,0.29703,0
3.0772,0.29703,0
3.1324,0.29703,0
3.1881,0.29703,0
3.2444,0.29703,0
3.3013,0.29703,0
3.3587,0.29703,0
3.4166,0.29703,0
3.4752,0.29703,0
3.5344,0.29703,0
3.5941,0.29703,0
3.6544,0.29703,0
3.7154,0.29703,0
3.7769,0.29703,0
3.8391,0.29703,0
3.9019,0.29703,0
3.9653,0.29703,0
4.0294,0.29703,0
4.094,0.29703,0
4.1594,0.29703,0
4.2254,0.29703,0
4.292,0.29703,0
4.3593,0.29703,0
4.4273,0.29703,0
4.496,0.29703,0
4.5654,0.29703,0
4.6354,0.29703,0
4.7062,0.29703,0
4.7776,0.29703,0
4.8498,0.29703,0
4.9227,0.29703,0
0.28221,0.28425,0
0.30943,0.28425,0
0.33692,0.28425,0
0.36469,0.28425,0
0.39273,0.28425,0
0.42106,0.28425,0
0.44966,0.28425,0
0.47856,0.28425,0
0.50774,0.28425,0
0.53722,0.28425,0
0.56699,0.28425,0
0.59706,0.28425,0
0.62742,0.28425,0
0.6581,0.28425,0
0.68907,0.28425,0
0.72036,0.28425,0
0.75196,0.28425,0
0.78388,0.28425,0
0.81612,0.28425,0
0.84868,0.28425,0
0.88156,0.28425,0
0.91478,0.28425,0
0.94832,0.28425,0
0.9822,0.28425,0
1.0164,0.28425,0
1.051,0.28425,0
1.0859,0.28425,0
1.1211,0.28425,0
1.1568,0.28425,0
1.1927,0.28425,0
1.229,0.28425,0
1.2657,0.28425,0
1.3028,0.28425,0
1.3402,0.28425,0
1.378,0.28425,0
1.4162,0.28425,0
1.4548,0.28425,0
1.4937,0.28425,0
1.533,0.28425,0
1.5728,0.28425,0
1.6129,0.28425,0
1.6534,0.28425,0
1.6944,0.28425,0
1.7357,0.28425,0
1.7774,0.28425,0
1.8196,0.28425,0
1.8622,0.28425,0
1.9052,0.28425,0
1.9487,0.28425,0
1.9926,0.28425,0
2.0369,0.28425,0
2.0817,0.28425,0
2.1269,0.28425,0
2.1725,0.28425,0
2.2187,0.28425,0
2.2652,0.28425,0
2.3123,0.28425,0
2.3598,0.28425,0
2.4078,0.28425,0
2.4563,0.28425,0
2.5053,0.28425,0
2.5547,0.28425,0
2.6046,0.28425,0
2.6551,0.28425,0
2.706,0.28425,0
2.7575,0.28425,0
2.8095,0.28425,0
2.862,0.28425,0
2.915,0.28425,0
2.9685,0.28425,0
3.0226,0.28425,0
3.0772,0.28425,0
3.1324,0.28425,0
3.1881,0.28425,0
3.2444,0.28425,0
3.3013,0.28425,0
3.3587,0.28425,0
3.4166,0.28425,0
3.4752,0.28425,0
3.5344,0.28425,0
3.5941,0.28425,0
3.6544,0.28425,0
3.7154,0.28425,0
3.7769,0.28425,0
3.8391,0.28425,0
3.9019,0.28425,0
3.9653,0.28425,0
4.0294,0.28425,0
4.094,0.28425,0
4.1594,0.28425,0
4.2254,0.28425,0
4.292,0.28425,0
4.3593,0.28425,0
4.4273,0.28425,0
4.496,0.28425,0
4.5654,0.28425,0
0.39273,0.27117,0
0.42106,0.27117,0
0.44966,0.27117,0
0.47856,0.27117,0
0.50774,0.27117,0
0.53722,0.27117,0
0.56699,0.27117,0
0.59706,0.27117,0
0.62742,0.27117,0
0.6581,0.27117,0
0.68907,0.27117,0
0.72036,0.27117,0
0.75196,0.27117,0
0.78388,0.27117,0
0.81612,0.27117,0
0.84868,0.27117,0
0.88156,0.27117,0
0.91478,0.27117,0
0.94832,0.27117,0
0.9822,0.27117,0
1.0164,0.27117,0
1.051,0.27117,0
1.0859,0.27117,0
1.1211,0.27117,0
1.1568,0.27117,0
1.1927,0.27117,0
1.229,0.27117,0
1.2657,0.27117,0
1.3028,0.27117,0
1.3402,0.27117,0
1.378,0.27117,0
1.4162,0.27117,0
1.4548,0.27117,0
1.4937,0.27117,0
1.533,0.27117,0
1.5728,0.27117,0
1.6129,0.27117,0
1.6534,0.27117,0
1.6944,0.27117,0
1.7357,0.27117,0
1.7774,0.27117,0
1.8196,0.27117,0
1.8622,0.27117,0
1.9052,0.27117,0
1.9487,0.27117,0
1.9926,0.27117,0
2.0369,0.27117,0
2.0817,0.27117,0
2.1269,0.27117,0
2.1725,0.27117,0
2.2187,0.27117,0
2.2652,0.27117,0
2.3123,0.27117,0
2.3598,0.27117,0
2.4078,0.27117,0
2.4563,0.27117,0
2.5053,0.27117,0
2.5547,0.27117,0
2.6046,0.27117,0
2.6551,0.27117,0
2.706,0.27117,0
2.7575,0.27117,0
2.8095,0.27117,0
2.862,0.27117,0
2.915,0.27117,0
2.9685,0.27117,0
3.0226,0.27117,0
3.0772,0.27117,0
3.1324,0.27117,0
3.1881,0.27117,0
3.2444,0.27117,0
3.3013,0.27117,0
3.3587,0.27117,0
3.4166,0.27117,0
3.4752,0.27117,0
3.5344,0.27117,0
3.5941,0.27117,0
3.6544,0.27117,0
3.7154,0.27117,0
3.7769,0.27117,0
3.8391,0.27117,0
3.9019,0.27117,0
3.9653,0.27117,0
4.0294,0.27117,0
4.094,0.27117,0
4.1594,0.27117,0
0.47856,0.25781,0
0.50774,0.25781,0
0.53722,0.25781,0
0.56699,0.25781,0
0.59706,0.25781,0
0.62742,0.25781,0
0.6581,0.25781,0
0.68907,0.25781,0
0.72036,0.25781,0
0.75196,0.25781,0
0.78388,0.25781,0
0.81612,0.25781,0
0.84868,0.25781,0
0.88156,0.25781,0
0.91478,0.25781,0
0.94832,0.25781,0
0.9822,0.25781,0
1.0164,0.25781,0
1.051,0.25781,0
1.0859,0.25781,0
1.1211,0.25781,0
1.1568,0.25781,0
1.1927,0.25781,0
1.229,0.25781,0
1.2657,0.25781,0
1.3028,0.25781,0
1.3402,0.25781,0
1.378,0.25781,0
1.4162,0.25781,0
1.4548,0.25781,0
1.4937,0.25781,0
1.533,0.25781,0
1.5728,0.25781,0
1.6129,0.25781,0
1.6534,0.25781,0
1.6944,0.25781,0
1.7357,0.25781,0
1.7774,0.25781,0
1.8196,0.25781,0
1.8622,0.25781,0
1.9052,0.25781,0
1.9487,0.25781,0
1.9926,0.25781,0
2.0369,0.25781,0
2.0817,0.25781,0
2.1269,0.25781,0
2.1725,0.25781,0
2.2187,0.25781,0
2.2652,0.25781,0
2.3123,0.25781,0
2.3598,0.25781,0
2.4078,0.25781,0
2.4563,0.25781,0
2.5053,0.25781,0
2.5547,0.25781,0
2.6046,0.25781,0
2.6551,0.25781,0
2.706,0.25781,0
2.7575,0.25781,0
2.8095,0.25781,0
2.862,0.25781,0
2.915,0.25781,0
2.9685,0.25781,0
3.0226,0.25781,0
3.0772,0.25781,0
3.1324,0.25781,0
3.1881,0.25781,0
3.2444,0.25781,0
3.3013,0.25781,0
3.3587,0.25781,0
3.4166,0.25781,0
3.4752,0.25781,0
3.5344,0.25781,0
3.5941,0.25781,0
3.6544,0.25781,0
3.7154,0.25781,0
3.7769,0.25781,0
3.8391,0.25781,0
0.53722,0.24422,0
0.56699,0.24422,0
0.59706,0.24422,0
0.62742,0.24422,0
0.6581,0.24422,0
0.68907,0.24422,0
0.72036,0.24422,0
0.75196,0.24422,0
0.78388,0.24422,0
0.81612,0.24422,0
0.84868,0.24422,0
0.88156,0.24422,0
0.91478,0.24422,0
0.94832,0.24422,0
0.9822,0.24422,0
1.0164,0.24422,0
1.051,0.24422,0
1.0859,0.24422,0
1.1211,0.24422,0
1.1568,0.24422,0
1.1927,0.24422,0
1.229,0.24422,0
1.2657,0.24422,0
1.3028,0.24422,0
1.3402,0.24422,0
1.378,0.24422,0
1.4162,0.24422,0
1.4548,0.24422,0
1.4937,0.24422,0
1.533,0.24422,0
1.5728,0.24422,0
1.6129,0.24422,0
1.6534,0.24422,0
1.6944,0.24422,0
1.7357,0.24422,0
1.7774,0.24422,0
1.8196,0.24422,0
1.8622,0.24422,0
1.9052,0.24422,0
1.9487,0.24422,0
1.9926,0.24422,0
2.0369,0.24422,0
2.0817,0.24422,0
2.1269,0.24422,0
2.1725,0.24422,0
2.2187,0.24422,0
2.2652,0.24422,0
2.3123,0.24422,0
2.3598,0.24422,0
2.4078,0.24422,0
2.4563,0.24422,0
2.5053,0.24422,0
2.5547,0.24422,0
2.6046,0.24422,0
2.6551,0.24422,0
2.706,0.24422,0
2.7575,0.24422,0
2.8095,0.24422,0
2.862,0.24422,0
2.915,0.24422,0
2.9685,0.24422,0
3.0226,0.24422,0
3.0772,0.24422,0
3.1324,0.24422,0
3.1881,0.24422,0
3.2444,0.24422,0
3.3013,0.24422,0
3.3587,0.24422,0
3.4166,0.24422,0
3.4752,0.24422,0
0.62742,0.23041,0
0.6581,0.23041,0
0.68907,0.23041,0
0.72036,0.23041,0
0.75196,0.23041,0
0.78388,0.23041,0
0.81612,0.23041,0
0.84868,0.23041,0
0.88156,0.23041,0
0.91478,0.23041,0
0.94832,0.23041,0
0.9822,0.23041,0
1.0164,0.23041,0
1.051,0.23041,0
1.0859,0.23041,0
1.1211,0.23041,0
1.1568,0.23041,0
1.1927,0.23041,0
1.229,0.23041,0
1.2657,0.23041,0
1.3028,0.23041,0
1.3402,0.23041,0
1.378,0.23041,0
1.4162,0.23041,0
1.4548,0.23041,0
1.4937,0.23041,0
1.533,0.23041,0
1.5728,0.23041,0
1.6129,0.23041,0
1.6534,0.23041,0
1.6944,0.23041,0
1.7357,0.23041,0
1.7774,0.23041,0
1.8196,0.23041,0
1.8622,0.23041,0
1.9052,0.23041,0
1.9487,0.23041,0
1.9926,0.23041,0
2.0369,0.23041,0
2.0817,0.23041,0
2.1269,0.23041,0
2.1725,0.23041,0
2.2187,0.23041,0
2.2652,0.23041,0
2.3123,0.23041,0
2.3598,0.23041,0
2.4078,0.23041,0
2.4563,0.23041,0
2.5053,0.23041,0
2.5547,0.23041,0
2.6046,0.23041,0
2.6551,0.23041,0
2.706,0.23041,0
2.7575,0.23041,0
2.8095,0.23041,0
2.862,0.23041,0
2.915,0.23041,0
2.9685,0.23041,0
3.0226,0.23041,0
3.0772,0.23041,0
3.1324,0.23041,0
3.1881,0.23041,0
0.68907,0.21643,0
0.72036,0.21643,0
0.75196,0.21643,0
0.78388,0.21643,0
0.81612,0.21643,0
0.84868,0.21643,0
0.88156,0.21643,0
0.91478,0.21643,0
0.94832,0.21643,0
0.9822,0.21643,0
1.0164,0.21643,0
1.051,0.21643,0
1.0859,0.21643,0
1.1211,0.21643,0
1.1568,0.21643,0
1.1927,0.21643,0
1.229,0.21643,0
1.2657,0.21643,0
1.3028,0.21643,0
1.3402,0.21643,0
1.378,0.21643,0
1.4162,0.21643,0
1.4548,0.21643,0
1.4937,0.21643,0
1.533,0.21643,0
1.5728,0.21643,0
1.6129,0.21643,0
1.6534,0.21643,0
1.6944,0.21643,0
1.7357,0.21643,0
1.7774,0.21643,0
1.8196,0.21643,0
1.8622,0.21643,0
1.9052,0.21643,0
1.9487,0.21643,0
1.9926,0.21643,0
2.0369,0.21643,0
2.0817,0.21643,0
2.1269,0.21643,0
2.1725,0.21643,0
2.2187,0.21643,0
2.2652,0.21643,0
2.3123,0.21643,0
2.3598,0.21643,0
2.4078,0.21643,0
2.4563,0.21643,0
2.5053,0.21643,0
2.5547,0.21643,0
2.6046,0.21643,0
2.6551,0.21643,0
2.706,0.21643,0
2.7575,0.21643,0
2.8095,0.21643,0
0.78388,0.20231,0
0.81612,0.20231,0
0.84868,0.20231,0
0.88156,0.20231,0
0.91478,0.20231,0
0.94832,0.20231,0
0.9822,0.20231,0
1.0164,0.20231,0
1.051,0.20231,0
1.0859,0.20231,0
1.1211,0.20231,0
1.1568,0.20231,0
1.1927,0.20231,0
1.229,0.20231,0
1.2657,0.20231,0
1.3028,0.20231,0
1.3402,0.20231,0
1.378,0.20231,0
1.4162,0.20231,0
1.4548,0.20231,0
1.4937,0.20231,0
1.533,0.20231,0
1.5728,0.20231,0
1.6129,0.20231,0
1.6534,0.20231,0
1.6944,0.20231,0
1.7357,0.20231,0
1.7774,0.20231,0
1.8196,0.20231,0
1.8622,0.20231,0
1.9052,0.20231,0
1.9487,0.20231,0
1.9926,0.20231,0
2.0369,0.20231,0
2.0817,0.20231,0
2.1269,0.20231,0
2.1725,0.20231,0
2.2187,0.20231,0
2.2652,0.20231,0
2.3123,0.20231,0
2.3598,0.20231,0
2.4078,0.20231,0
2.4563,0.20231,0
1.051,0.1881,0
1.0859,0.1881,0
1.1211,0.1881,0
1.1568,0.1881,0
1.1927,0.1881,0
1.229,0.1881,0
1.2657,0.1881,0
1.3028,0.1881,0
1.3402,0.1881,0
1.378,0.1881,0
1.4162,0.1881,0
1.4548,0.1881,0
1.4937,0.1881,0
1.533,0.1881,0
1.5728,0.1881,0
1.6129,0.1881,0
1.6534,0.1881,0
1.6944,0.1881,0
1.7357,0.1881,0
1.7774,0.1881,0
1.8196,0.1881,0
1.8622,0.1881,0
1.9052,0.1881,0
1.9487,0.1881,0
1.9926,0.1881,0
2.0369,0.1881,0
Спасибо за вашу помощь,
Искренне
Это можно сделать с помощью ConvexHull
из SciPy, и эта функция вместе с convex_hull_plot_2d
дает этот результат для предоставленного набора данных. Ниже приведен код для воспроизведения изображений. hull.points
в конце кода содержать результирующий набор точек, который вы ищете.
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from scipy.spatial import ConvexHull, convex_hull_plot_2d
df = pd.DataFrame([{'x': 0.20215, 'y': 0.29703, 'z': 0},
{'x': 0.22857, 'y': 0.29703, 'z': 0},
{'x': 0.25526, 'y': 0.29703, 'z': 0},
{'x': 0.28221, 'y': 0.29703, 'z': 0},
{'x': 0.30943, 'y': 0.29703, 'z': 0},
{'x': 0.33692, 'y': 0.29703, 'z': 0},
{'x': 0.36469, 'y': 0.29703, 'z': 0},
{'x': 0.39273, 'y': 0.29703, 'z': 0},
{'x': 0.42106, 'y': 0.29703, 'z': 0},
{'x': 0.44966, 'y': 0.29703, 'z': 0},
{'x': 0.47856, 'y': 0.29703, 'z': 0},
{'x': 0.50774, 'y': 0.29703, 'z': 0},
{'x': 0.53722, 'y': 0.29703, 'z': 0},
{'x': 0.56699, 'y': 0.29703, 'z': 0},
{'x': 0.59706, 'y': 0.29703, 'z': 0},
{'x': 0.62742, 'y': 0.29703, 'z': 0},
{'x': 0.6581, 'y': 0.29703, 'z': 0},
{'x': 0.68907, 'y': 0.29703, 'z': 0},
{'x': 0.72036, 'y': 0.29703, 'z': 0},
{'x': 0.75196, 'y': 0.29703, 'z': 0},
{'x': 0.78388, 'y': 0.29703, 'z': 0},
{'x': 0.81612, 'y': 0.29703, 'z': 0},
{'x': 0.84868, 'y': 0.29703, 'z': 0},
{'x': 0.88156, 'y': 0.29703, 'z': 0},
{'x': 0.91478, 'y': 0.29703, 'z': 0},
{'x': 0.94832, 'y': 0.29703, 'z': 0},
{'x': 0.9822, 'y': 0.29703, 'z': 0},
{'x': 1.0164, 'y': 0.29703, 'z': 0},
{'x': 1.051, 'y': 0.29703, 'z': 0},
{'x': 1.0859, 'y': 0.29703, 'z': 0},
{'x': 1.1211, 'y': 0.29703, 'z': 0},
{'x': 1.1568, 'y': 0.29703, 'z': 0},
{'x': 1.1927, 'y': 0.29703, 'z': 0},
{'x': 1.229, 'y': 0.29703, 'z': 0},
{'x': 1.2657, 'y': 0.29703, 'z': 0},
{'x': 1.3028, 'y': 0.29703, 'z': 0},
{'x': 1.3402, 'y': 0.29703, 'z': 0},
{'x': 1.378, 'y': 0.29703, 'z': 0},
{'x': 1.4162, 'y': 0.29703, 'z': 0},
{'x': 1.4548, 'y': 0.29703, 'z': 0},
{'x': 1.4937, 'y': 0.29703, 'z': 0},
{'x': 1.533, 'y': 0.29703, 'z': 0},
{'x': 1.5728, 'y': 0.29703, 'z': 0},
{'x': 1.6129, 'y': 0.29703, 'z': 0},
{'x': 1.6534, 'y': 0.29703, 'z': 0},
{'x': 1.6944, 'y': 0.29703, 'z': 0},
{'x': 1.7357, 'y': 0.29703, 'z': 0},
{'x': 1.7774, 'y': 0.29703, 'z': 0},
{'x': 1.8196, 'y': 0.29703, 'z': 0},
{'x': 1.8622, 'y': 0.29703, 'z': 0},
{'x': 1.9052, 'y': 0.29703, 'z': 0},
{'x': 1.9487, 'y': 0.29703, 'z': 0},
{'x': 1.9926, 'y': 0.29703, 'z': 0},
{'x': 2.0369, 'y': 0.29703, 'z': 0},
{'x': 2.0817, 'y': 0.29703, 'z': 0},
{'x': 2.1269, 'y': 0.29703, 'z': 0},
{'x': 2.1725, 'y': 0.29703, 'z': 0},
{'x': 2.2187, 'y': 0.29703, 'z': 0},
{'x': 2.2652, 'y': 0.29703, 'z': 0},
{'x': 2.3123, 'y': 0.29703, 'z': 0},
{'x': 2.3598, 'y': 0.29703, 'z': 0},
{'x': 2.4078, 'y': 0.29703, 'z': 0},
{'x': 2.4563, 'y': 0.29703, 'z': 0},
{'x': 2.5053, 'y': 0.29703, 'z': 0},
{'x': 2.5547, 'y': 0.29703, 'z': 0},
{'x': 2.6046, 'y': 0.29703, 'z': 0},
{'x': 2.6551, 'y': 0.29703, 'z': 0},
{'x': 2.706, 'y': 0.29703, 'z': 0},
{'x': 2.7575, 'y': 0.29703, 'z': 0},
{'x': 2.8095, 'y': 0.29703, 'z': 0},
{'x': 2.862, 'y': 0.29703, 'z': 0},
{'x': 2.915, 'y': 0.29703, 'z': 0},
{'x': 2.9685, 'y': 0.29703, 'z': 0},
{'x': 3.0226, 'y': 0.29703, 'z': 0},
{'x': 3.0772, 'y': 0.29703, 'z': 0},
{'x': 3.1324, 'y': 0.29703, 'z': 0},
{'x': 3.1881, 'y': 0.29703, 'z': 0},
{'x': 3.2444, 'y': 0.29703, 'z': 0},
{'x': 3.3013, 'y': 0.29703, 'z': 0},
{'x': 3.3587, 'y': 0.29703, 'z': 0},
{'x': 3.4166, 'y': 0.29703, 'z': 0},
{'x': 3.4752, 'y': 0.29703, 'z': 0},
{'x': 3.5344, 'y': 0.29703, 'z': 0},
{'x': 3.5941, 'y': 0.29703, 'z': 0},
{'x': 3.6544, 'y': 0.29703, 'z': 0},
{'x': 3.7154, 'y': 0.29703, 'z': 0},
{'x': 3.7769, 'y': 0.29703, 'z': 0},
{'x': 3.8391, 'y': 0.29703, 'z': 0},
{'x': 3.9019, 'y': 0.29703, 'z': 0},
{'x': 3.9653, 'y': 0.29703, 'z': 0},
{'x': 4.0294, 'y': 0.29703, 'z': 0},
{'x': 4.094, 'y': 0.29703, 'z': 0},
{'x': 4.1594, 'y': 0.29703, 'z': 0},
{'x': 4.2254, 'y': 0.29703, 'z': 0},
{'x': 4.292, 'y': 0.29703, 'z': 0},
{'x': 4.3593, 'y': 0.29703, 'z': 0},
{'x': 4.4273, 'y': 0.29703, 'z': 0},
{'x': 4.496, 'y': 0.29703, 'z': 0},
{'x': 4.5654, 'y': 0.29703, 'z': 0},
{'x': 4.6354, 'y': 0.29703, 'z': 0},
{'x': 4.7062, 'y': 0.29703, 'z': 0},
{'x': 4.7776, 'y': 0.29703, 'z': 0},
{'x': 4.8498, 'y': 0.29703, 'z': 0},
{'x': 4.9227, 'y': 0.29703, 'z': 0},
{'x': 0.28221, 'y': 0.28425, 'z': 0},
{'x': 0.30943, 'y': 0.28425, 'z': 0},
{'x': 0.33692, 'y': 0.28425, 'z': 0},
{'x': 0.36469, 'y': 0.28425, 'z': 0},
{'x': 0.39273, 'y': 0.28425, 'z': 0},
{'x': 0.42106, 'y': 0.28425, 'z': 0},
{'x': 0.44966, 'y': 0.28425, 'z': 0},
{'x': 0.47856, 'y': 0.28425, 'z': 0},
{'x': 0.50774, 'y': 0.28425, 'z': 0},
{'x': 0.53722, 'y': 0.28425, 'z': 0},
{'x': 0.56699, 'y': 0.28425, 'z': 0},
{'x': 0.59706, 'y': 0.28425, 'z': 0},
{'x': 0.62742, 'y': 0.28425, 'z': 0},
{'x': 0.6581, 'y': 0.28425, 'z': 0},
{'x': 0.68907, 'y': 0.28425, 'z': 0},
{'x': 0.72036, 'y': 0.28425, 'z': 0},
{'x': 0.75196, 'y': 0.28425, 'z': 0},
{'x': 0.78388, 'y': 0.28425, 'z': 0},
{'x': 0.81612, 'y': 0.28425, 'z': 0},
{'x': 0.84868, 'y': 0.28425, 'z': 0},
{'x': 0.88156, 'y': 0.28425, 'z': 0},
{'x': 0.91478, 'y': 0.28425, 'z': 0},
{'x': 0.94832, 'y': 0.28425, 'z': 0},
{'x': 0.9822, 'y': 0.28425, 'z': 0},
{'x': 1.0164, 'y': 0.28425, 'z': 0},
{'x': 1.051, 'y': 0.28425, 'z': 0},
{'x': 1.0859, 'y': 0.28425, 'z': 0},
{'x': 1.1211, 'y': 0.28425, 'z': 0},
{'x': 1.1568, 'y': 0.28425, 'z': 0},
{'x': 1.1927, 'y': 0.28425, 'z': 0},
{'x': 1.229, 'y': 0.28425, 'z': 0},
{'x': 1.2657, 'y': 0.28425, 'z': 0},
{'x': 1.3028, 'y': 0.28425, 'z': 0},
{'x': 1.3402, 'y': 0.28425, 'z': 0},
{'x': 1.378, 'y': 0.28425, 'z': 0},
{'x': 1.4162, 'y': 0.28425, 'z': 0},
{'x': 1.4548, 'y': 0.28425, 'z': 0},
{'x': 1.4937, 'y': 0.28425, 'z': 0},
{'x': 1.533, 'y': 0.28425, 'z': 0},
{'x': 1.5728, 'y': 0.28425, 'z': 0},
{'x': 1.6129, 'y': 0.28425, 'z': 0},
{'x': 1.6534, 'y': 0.28425, 'z': 0},
{'x': 1.6944, 'y': 0.28425, 'z': 0},
{'x': 1.7357, 'y': 0.28425, 'z': 0},
{'x': 1.7774, 'y': 0.28425, 'z': 0},
{'x': 1.8196, 'y': 0.28425, 'z': 0},
{'x': 1.8622, 'y': 0.28425, 'z': 0},
{'x': 1.9052, 'y': 0.28425, 'z': 0},
{'x': 1.9487, 'y': 0.28425, 'z': 0},
{'x': 1.9926, 'y': 0.28425, 'z': 0},
{'x': 2.0369, 'y': 0.28425, 'z': 0},
{'x': 2.0817, 'y': 0.28425, 'z': 0},
{'x': 2.1269, 'y': 0.28425, 'z': 0},
{'x': 2.1725, 'y': 0.28425, 'z': 0},
{'x': 2.2187, 'y': 0.28425, 'z': 0},
{'x': 2.2652, 'y': 0.28425, 'z': 0},
{'x': 2.3123, 'y': 0.28425, 'z': 0},
{'x': 2.3598, 'y': 0.28425, 'z': 0},
{'x': 2.4078, 'y': 0.28425, 'z': 0},
{'x': 2.4563, 'y': 0.28425, 'z': 0},
{'x': 2.5053, 'y': 0.28425, 'z': 0},
{'x': 2.5547, 'y': 0.28425, 'z': 0},
{'x': 2.6046, 'y': 0.28425, 'z': 0},
{'x': 2.6551, 'y': 0.28425, 'z': 0},
{'x': 2.706, 'y': 0.28425, 'z': 0},
{'x': 2.7575, 'y': 0.28425, 'z': 0},
{'x': 2.8095, 'y': 0.28425, 'z': 0},
{'x': 2.862, 'y': 0.28425, 'z': 0},
{'x': 2.915, 'y': 0.28425, 'z': 0},
{'x': 2.9685, 'y': 0.28425, 'z': 0},
{'x': 3.0226, 'y': 0.28425, 'z': 0},
{'x': 3.0772, 'y': 0.28425, 'z': 0},
{'x': 3.1324, 'y': 0.28425, 'z': 0},
{'x': 3.1881, 'y': 0.28425, 'z': 0},
{'x': 3.2444, 'y': 0.28425, 'z': 0},
{'x': 3.3013, 'y': 0.28425, 'z': 0},
{'x': 3.3587, 'y': 0.28425, 'z': 0},
{'x': 3.4166, 'y': 0.28425, 'z': 0},
{'x': 3.4752, 'y': 0.28425, 'z': 0},
{'x': 3.5344, 'y': 0.28425, 'z': 0},
{'x': 3.5941, 'y': 0.28425, 'z': 0},
{'x': 3.6544, 'y': 0.28425, 'z': 0},
{'x': 3.7154, 'y': 0.28425, 'z': 0},
{'x': 3.7769, 'y': 0.28425, 'z': 0},
{'x': 3.8391, 'y': 0.28425, 'z': 0},
{'x': 3.9019, 'y': 0.28425, 'z': 0},
{'x': 3.9653, 'y': 0.28425, 'z': 0},
{'x': 4.0294, 'y': 0.28425, 'z': 0},
{'x': 4.094, 'y': 0.28425, 'z': 0},
{'x': 4.1594, 'y': 0.28425, 'z': 0},
{'x': 4.2254, 'y': 0.28425, 'z': 0},
{'x': 4.292, 'y': 0.28425, 'z': 0},
{'x': 4.3593, 'y': 0.28425, 'z': 0},
{'x': 4.4273, 'y': 0.28425, 'z': 0},
{'x': 4.496, 'y': 0.28425, 'z': 0},
{'x': 4.5654, 'y': 0.28425, 'z': 0},
{'x': 0.39273, 'y': 0.27117, 'z': 0},
{'x': 0.42106, 'y': 0.27117, 'z': 0},
{'x': 0.44966, 'y': 0.27117, 'z': 0},
{'x': 0.47856, 'y': 0.27117, 'z': 0},
{'x': 0.50774, 'y': 0.27117, 'z': 0},
{'x': 0.53722, 'y': 0.27117, 'z': 0},
{'x': 0.56699, 'y': 0.27117, 'z': 0},
{'x': 0.59706, 'y': 0.27117, 'z': 0},
{'x': 0.62742, 'y': 0.27117, 'z': 0},
{'x': 0.6581, 'y': 0.27117, 'z': 0},
{'x': 0.68907, 'y': 0.27117, 'z': 0},
{'x': 0.72036, 'y': 0.27117, 'z': 0},
{'x': 0.75196, 'y': 0.27117, 'z': 0},
{'x': 0.78388, 'y': 0.27117, 'z': 0},
{'x': 0.81612, 'y': 0.27117, 'z': 0},
{'x': 0.84868, 'y': 0.27117, 'z': 0},
{'x': 0.88156, 'y': 0.27117, 'z': 0},
{'x': 0.91478, 'y': 0.27117, 'z': 0},
{'x': 0.94832, 'y': 0.27117, 'z': 0},
{'x': 0.9822, 'y': 0.27117, 'z': 0},
{'x': 1.0164, 'y': 0.27117, 'z': 0},
{'x': 1.051, 'y': 0.27117, 'z': 0},
{'x': 1.0859, 'y': 0.27117, 'z': 0},
{'x': 1.1211, 'y': 0.27117, 'z': 0},
{'x': 1.1568, 'y': 0.27117, 'z': 0},
{'x': 1.1927, 'y': 0.27117, 'z': 0},
{'x': 1.229, 'y': 0.27117, 'z': 0},
{'x': 1.2657, 'y': 0.27117, 'z': 0},
{'x': 1.3028, 'y': 0.27117, 'z': 0},
{'x': 1.3402, 'y': 0.27117, 'z': 0},
{'x': 1.378, 'y': 0.27117, 'z': 0},
{'x': 1.4162, 'y': 0.27117, 'z': 0},
{'x': 1.4548, 'y': 0.27117, 'z': 0},
{'x': 1.4937, 'y': 0.27117, 'z': 0},
{'x': 1.533, 'y': 0.27117, 'z': 0},
{'x': 1.5728, 'y': 0.27117, 'z': 0},
{'x': 1.6129, 'y': 0.27117, 'z': 0},
{'x': 1.6534, 'y': 0.27117, 'z': 0},
{'x': 1.6944, 'y': 0.27117, 'z': 0},
{'x': 1.7357, 'y': 0.27117, 'z': 0},
{'x': 1.7774, 'y': 0.27117, 'z': 0},
{'x': 1.8196, 'y': 0.27117, 'z': 0},
{'x': 1.8622, 'y': 0.27117, 'z': 0},
{'x': 1.9052, 'y': 0.27117, 'z': 0},
{'x': 1.9487, 'y': 0.27117, 'z': 0},
{'x': 1.9926, 'y': 0.27117, 'z': 0},
{'x': 2.0369, 'y': 0.27117, 'z': 0},
{'x': 2.0817, 'y': 0.27117, 'z': 0},
{'x': 2.1269, 'y': 0.27117, 'z': 0},
{'x': 2.1725, 'y': 0.27117, 'z': 0},
{'x': 2.2187, 'y': 0.27117, 'z': 0},
{'x': 2.2652, 'y': 0.27117, 'z': 0},
{'x': 2.3123, 'y': 0.27117, 'z': 0},
{'x': 2.3598, 'y': 0.27117, 'z': 0},
{'x': 2.4078, 'y': 0.27117, 'z': 0},
{'x': 2.4563, 'y': 0.27117, 'z': 0},
{'x': 2.5053, 'y': 0.27117, 'z': 0},
{'x': 2.5547, 'y': 0.27117, 'z': 0},
{'x': 2.6046, 'y': 0.27117, 'z': 0},
{'x': 2.6551, 'y': 0.27117, 'z': 0},
{'x': 2.706, 'y': 0.27117, 'z': 0},
{'x': 2.7575, 'y': 0.27117, 'z': 0},
{'x': 2.8095, 'y': 0.27117, 'z': 0},
{'x': 2.862, 'y': 0.27117, 'z': 0},
{'x': 2.915, 'y': 0.27117, 'z': 0},
{'x': 2.9685, 'y': 0.27117, 'z': 0},
{'x': 3.0226, 'y': 0.27117, 'z': 0},
{'x': 3.0772, 'y': 0.27117, 'z': 0},
{'x': 3.1324, 'y': 0.27117, 'z': 0},
{'x': 3.1881, 'y': 0.27117, 'z': 0},
{'x': 3.2444, 'y': 0.27117, 'z': 0},
{'x': 3.3013, 'y': 0.27117, 'z': 0},
{'x': 3.3587, 'y': 0.27117, 'z': 0},
{'x': 3.4166, 'y': 0.27117, 'z': 0},
{'x': 3.4752, 'y': 0.27117, 'z': 0},
{'x': 3.5344, 'y': 0.27117, 'z': 0},
{'x': 3.5941, 'y': 0.27117, 'z': 0},
{'x': 3.6544, 'y': 0.27117, 'z': 0},
{'x': 3.7154, 'y': 0.27117, 'z': 0},
{'x': 3.7769, 'y': 0.27117, 'z': 0},
{'x': 3.8391, 'y': 0.27117, 'z': 0},
{'x': 3.9019, 'y': 0.27117, 'z': 0},
{'x': 3.9653, 'y': 0.27117, 'z': 0},
{'x': 4.0294, 'y': 0.27117, 'z': 0},
{'x': 4.094, 'y': 0.27117, 'z': 0},
{'x': 4.1594, 'y': 0.27117, 'z': 0},
{'x': 0.47856, 'y': 0.25781, 'z': 0},
{'x': 0.50774, 'y': 0.25781, 'z': 0},
{'x': 0.53722, 'y': 0.25781, 'z': 0},
{'x': 0.56699, 'y': 0.25781, 'z': 0},
{'x': 0.59706, 'y': 0.25781, 'z': 0},
{'x': 0.62742, 'y': 0.25781, 'z': 0},
{'x': 0.6581, 'y': 0.25781, 'z': 0},
{'x': 0.68907, 'y': 0.25781, 'z': 0},
{'x': 0.72036, 'y': 0.25781, 'z': 0},
{'x': 0.75196, 'y': 0.25781, 'z': 0},
{'x': 0.78388, 'y': 0.25781, 'z': 0},
{'x': 0.81612, 'y': 0.25781, 'z': 0},
{'x': 0.84868, 'y': 0.25781, 'z': 0},
{'x': 0.88156, 'y': 0.25781, 'z': 0},
{'x': 0.91478, 'y': 0.25781, 'z': 0},
{'x': 0.94832, 'y': 0.25781, 'z': 0},
{'x': 0.9822, 'y': 0.25781, 'z': 0},
{'x': 1.0164, 'y': 0.25781, 'z': 0},
{'x': 1.051, 'y': 0.25781, 'z': 0},
{'x': 1.0859, 'y': 0.25781, 'z': 0},
{'x': 1.1211, 'y': 0.25781, 'z': 0},
{'x': 1.1568, 'y': 0.25781, 'z': 0},
{'x': 1.1927, 'y': 0.25781, 'z': 0},
{'x': 1.229, 'y': 0.25781, 'z': 0},
{'x': 1.2657, 'y': 0.25781, 'z': 0},
{'x': 1.3028, 'y': 0.25781, 'z': 0},
{'x': 1.3402, 'y': 0.25781, 'z': 0},
{'x': 1.378, 'y': 0.25781, 'z': 0},
{'x': 1.4162, 'y': 0.25781, 'z': 0},
{'x': 1.4548, 'y': 0.25781, 'z': 0},
{'x': 1.4937, 'y': 0.25781, 'z': 0},
{'x': 1.533, 'y': 0.25781, 'z': 0},
{'x': 1.5728, 'y': 0.25781, 'z': 0},
{'x': 1.6129, 'y': 0.25781, 'z': 0},
{'x': 1.6534, 'y': 0.25781, 'z': 0},
{'x': 1.6944, 'y': 0.25781, 'z': 0},
{'x': 1.7357, 'y': 0.25781, 'z': 0},
{'x': 1.7774, 'y': 0.25781, 'z': 0},
{'x': 1.8196, 'y': 0.25781, 'z': 0},
{'x': 1.8622, 'y': 0.25781, 'z': 0},
{'x': 1.9052, 'y': 0.25781, 'z': 0},
{'x': 1.9487, 'y': 0.25781, 'z': 0},
{'x': 1.9926, 'y': 0.25781, 'z': 0},
{'x': 2.0369, 'y': 0.25781, 'z': 0},
{'x': 2.0817, 'y': 0.25781, 'z': 0},
{'x': 2.1269, 'y': 0.25781, 'z': 0},
{'x': 2.1725, 'y': 0.25781, 'z': 0},
{'x': 2.2187, 'y': 0.25781, 'z': 0},
{'x': 2.2652, 'y': 0.25781, 'z': 0},
{'x': 2.3123, 'y': 0.25781, 'z': 0},
{'x': 2.3598, 'y': 0.25781, 'z': 0},
{'x': 2.4078, 'y': 0.25781, 'z': 0},
{'x': 2.4563, 'y': 0.25781, 'z': 0},
{'x': 2.5053, 'y': 0.25781, 'z': 0},
{'x': 2.5547, 'y': 0.25781, 'z': 0},
{'x': 2.6046, 'y': 0.25781, 'z': 0},
{'x': 2.6551, 'y': 0.25781, 'z': 0},
{'x': 2.706, 'y': 0.25781, 'z': 0},
{'x': 2.7575, 'y': 0.25781, 'z': 0},
{'x': 2.8095, 'y': 0.25781, 'z': 0},
{'x': 2.862, 'y': 0.25781, 'z': 0},
{'x': 2.915, 'y': 0.25781, 'z': 0},
{'x': 2.9685, 'y': 0.25781, 'z': 0},
{'x': 3.0226, 'y': 0.25781, 'z': 0},
{'x': 3.0772, 'y': 0.25781, 'z': 0},
{'x': 3.1324, 'y': 0.25781, 'z': 0},
{'x': 3.1881, 'y': 0.25781, 'z': 0},
{'x': 3.2444, 'y': 0.25781, 'z': 0},
{'x': 3.3013, 'y': 0.25781, 'z': 0},
{'x': 3.3587, 'y': 0.25781, 'z': 0},
{'x': 3.4166, 'y': 0.25781, 'z': 0},
{'x': 3.4752, 'y': 0.25781, 'z': 0},
{'x': 3.5344, 'y': 0.25781, 'z': 0},
{'x': 3.5941, 'y': 0.25781, 'z': 0},
{'x': 3.6544, 'y': 0.25781, 'z': 0},
{'x': 3.7154, 'y': 0.25781, 'z': 0},
{'x': 3.7769, 'y': 0.25781, 'z': 0},
{'x': 3.8391, 'y': 0.25781, 'z': 0},
{'x': 0.53722, 'y': 0.24422, 'z': 0},
{'x': 0.56699, 'y': 0.24422, 'z': 0},
{'x': 0.59706, 'y': 0.24422, 'z': 0},
{'x': 0.62742, 'y': 0.24422, 'z': 0},
{'x': 0.6581, 'y': 0.24422, 'z': 0},
{'x': 0.68907, 'y': 0.24422, 'z': 0},
{'x': 0.72036, 'y': 0.24422, 'z': 0},
{'x': 0.75196, 'y': 0.24422, 'z': 0},
{'x': 0.78388, 'y': 0.24422, 'z': 0},
{'x': 0.81612, 'y': 0.24422, 'z': 0},
{'x': 0.84868, 'y': 0.24422, 'z': 0},
{'x': 0.88156, 'y': 0.24422, 'z': 0},
{'x': 0.91478, 'y': 0.24422, 'z': 0},
{'x': 0.94832, 'y': 0.24422, 'z': 0},
{'x': 0.9822, 'y': 0.24422, 'z': 0},
{'x': 1.0164, 'y': 0.24422, 'z': 0},
{'x': 1.051, 'y': 0.24422, 'z': 0},
{'x': 1.0859, 'y': 0.24422, 'z': 0},
{'x': 1.1211, 'y': 0.24422, 'z': 0},
{'x': 1.1568, 'y': 0.24422, 'z': 0},
{'x': 1.1927, 'y': 0.24422, 'z': 0},
{'x': 1.229, 'y': 0.24422, 'z': 0},
{'x': 1.2657, 'y': 0.24422, 'z': 0},
{'x': 1.3028, 'y': 0.24422, 'z': 0},
{'x': 1.3402, 'y': 0.24422, 'z': 0},
{'x': 1.378, 'y': 0.24422, 'z': 0},
{'x': 1.4162, 'y': 0.24422, 'z': 0},
{'x': 1.4548, 'y': 0.24422, 'z': 0},
{'x': 1.4937, 'y': 0.24422, 'z': 0},
{'x': 1.533, 'y': 0.24422, 'z': 0},
{'x': 1.5728, 'y': 0.24422, 'z': 0},
{'x': 1.6129, 'y': 0.24422, 'z': 0},
{'x': 1.6534, 'y': 0.24422, 'z': 0},
{'x': 1.6944, 'y': 0.24422, 'z': 0},
{'x': 1.7357, 'y': 0.24422, 'z': 0},
{'x': 1.7774, 'y': 0.24422, 'z': 0},
{'x': 1.8196, 'y': 0.24422, 'z': 0},
{'x': 1.8622, 'y': 0.24422, 'z': 0},
{'x': 1.9052, 'y': 0.24422, 'z': 0},
{'x': 1.9487, 'y': 0.24422, 'z': 0},
{'x': 1.9926, 'y': 0.24422, 'z': 0},
{'x': 2.0369, 'y': 0.24422, 'z': 0},
{'x': 2.0817, 'y': 0.24422, 'z': 0},
{'x': 2.1269, 'y': 0.24422, 'z': 0},
{'x': 2.1725, 'y': 0.24422, 'z': 0},
{'x': 2.2187, 'y': 0.24422, 'z': 0},
{'x': 2.2652, 'y': 0.24422, 'z': 0},
{'x': 2.3123, 'y': 0.24422, 'z': 0},
{'x': 2.3598, 'y': 0.24422, 'z': 0},
{'x': 2.4078, 'y': 0.24422, 'z': 0},
{'x': 2.4563, 'y': 0.24422, 'z': 0},
{'x': 2.5053, 'y': 0.24422, 'z': 0},
{'x': 2.5547, 'y': 0.24422, 'z': 0},
{'x': 2.6046, 'y': 0.24422, 'z': 0},
{'x': 2.6551, 'y': 0.24422, 'z': 0},
{'x': 2.706, 'y': 0.24422, 'z': 0},
{'x': 2.7575, 'y': 0.24422, 'z': 0},
{'x': 2.8095, 'y': 0.24422, 'z': 0},
{'x': 2.862, 'y': 0.24422, 'z': 0},
{'x': 2.915, 'y': 0.24422, 'z': 0},
{'x': 2.9685, 'y': 0.24422, 'z': 0},
{'x': 3.0226, 'y': 0.24422, 'z': 0},
{'x': 3.0772, 'y': 0.24422, 'z': 0},
{'x': 3.1324, 'y': 0.24422, 'z': 0},
{'x': 3.1881, 'y': 0.24422, 'z': 0},
{'x': 3.2444, 'y': 0.24422, 'z': 0},
{'x': 3.3013, 'y': 0.24422, 'z': 0},
{'x': 3.3587, 'y': 0.24422, 'z': 0},
{'x': 3.4166, 'y': 0.24422, 'z': 0},
{'x': 3.4752, 'y': 0.24422, 'z': 0},
{'x': 0.62742, 'y': 0.23041, 'z': 0},
{'x': 0.6581, 'y': 0.23041, 'z': 0},
{'x': 0.68907, 'y': 0.23041, 'z': 0},
{'x': 0.72036, 'y': 0.23041, 'z': 0},
{'x': 0.75196, 'y': 0.23041, 'z': 0},
{'x': 0.78388, 'y': 0.23041, 'z': 0},
{'x': 0.81612, 'y': 0.23041, 'z': 0},
{'x': 0.84868, 'y': 0.23041, 'z': 0},
{'x': 0.88156, 'y': 0.23041, 'z': 0},
{'x': 0.91478, 'y': 0.23041, 'z': 0},
{'x': 0.94832, 'y': 0.23041, 'z': 0},
{'x': 0.9822, 'y': 0.23041, 'z': 0},
{'x': 1.0164, 'y': 0.23041, 'z': 0},
{'x': 1.051, 'y': 0.23041, 'z': 0},
{'x': 1.0859, 'y': 0.23041, 'z': 0},
{'x': 1.1211, 'y': 0.23041, 'z': 0},
{'x': 1.1568, 'y': 0.23041, 'z': 0},
{'x': 1.1927, 'y': 0.23041, 'z': 0},
{'x': 1.229, 'y': 0.23041, 'z': 0},
{'x': 1.2657, 'y': 0.23041, 'z': 0},
{'x': 1.3028, 'y': 0.23041, 'z': 0},
{'x': 1.3402, 'y': 0.23041, 'z': 0},
{'x': 1.378, 'y': 0.23041, 'z': 0},
{'x': 1.4162, 'y': 0.23041, 'z': 0},
{'x': 1.4548, 'y': 0.23041, 'z': 0},
{'x': 1.4937, 'y': 0.23041, 'z': 0},
{'x': 1.533, 'y': 0.23041, 'z': 0},
{'x': 1.5728, 'y': 0.23041, 'z': 0},
{'x': 1.6129, 'y': 0.23041, 'z': 0},
{'x': 1.6534, 'y': 0.23041, 'z': 0},
{'x': 1.6944, 'y': 0.23041, 'z': 0},
{'x': 1.7357, 'y': 0.23041, 'z': 0},
{'x': 1.7774, 'y': 0.23041, 'z': 0},
{'x': 1.8196, 'y': 0.23041, 'z': 0},
{'x': 1.8622, 'y': 0.23041, 'z': 0},
{'x': 1.9052, 'y': 0.23041, 'z': 0},
{'x': 1.9487, 'y': 0.23041, 'z': 0},
{'x': 1.9926, 'y': 0.23041, 'z': 0},
{'x': 2.0369, 'y': 0.23041, 'z': 0},
{'x': 2.0817, 'y': 0.23041, 'z': 0},
{'x': 2.1269, 'y': 0.23041, 'z': 0},
{'x': 2.1725, 'y': 0.23041, 'z': 0},
{'x': 2.2187, 'y': 0.23041, 'z': 0},
{'x': 2.2652, 'y': 0.23041, 'z': 0},
{'x': 2.3123, 'y': 0.23041, 'z': 0},
{'x': 2.3598, 'y': 0.23041, 'z': 0},
{'x': 2.4078, 'y': 0.23041, 'z': 0},
{'x': 2.4563, 'y': 0.23041, 'z': 0},
{'x': 2.5053, 'y': 0.23041, 'z': 0},
{'x': 2.5547, 'y': 0.23041, 'z': 0},
{'x': 2.6046, 'y': 0.23041, 'z': 0},
{'x': 2.6551, 'y': 0.23041, 'z': 0},
{'x': 2.706, 'y': 0.23041, 'z': 0},
{'x': 2.7575, 'y': 0.23041, 'z': 0},
{'x': 2.8095, 'y': 0.23041, 'z': 0},
{'x': 2.862, 'y': 0.23041, 'z': 0},
{'x': 2.915, 'y': 0.23041, 'z': 0},
{'x': 2.9685, 'y': 0.23041, 'z': 0},
{'x': 3.0226, 'y': 0.23041, 'z': 0},
{'x': 3.0772, 'y': 0.23041, 'z': 0},
{'x': 3.1324, 'y': 0.23041, 'z': 0},
{'x': 3.1881, 'y': 0.23041, 'z': 0},
{'x': 0.68907, 'y': 0.21643, 'z': 0},
{'x': 0.72036, 'y': 0.21643, 'z': 0},
{'x': 0.75196, 'y': 0.21643, 'z': 0},
{'x': 0.78388, 'y': 0.21643, 'z': 0},
{'x': 0.81612, 'y': 0.21643, 'z': 0},
{'x': 0.84868, 'y': 0.21643, 'z': 0},
{'x': 0.88156, 'y': 0.21643, 'z': 0},
{'x': 0.91478, 'y': 0.21643, 'z': 0},
{'x': 0.94832, 'y': 0.21643, 'z': 0},
{'x': 0.9822, 'y': 0.21643, 'z': 0},
{'x': 1.0164, 'y': 0.21643, 'z': 0},
{'x': 1.051, 'y': 0.21643, 'z': 0},
{'x': 1.0859, 'y': 0.21643, 'z': 0},
{'x': 1.1211, 'y': 0.21643, 'z': 0},
{'x': 1.1568, 'y': 0.21643, 'z': 0},
{'x': 1.1927, 'y': 0.21643, 'z': 0},
{'x': 1.229, 'y': 0.21643, 'z': 0},
{'x': 1.2657, 'y': 0.21643, 'z': 0},
{'x': 1.3028, 'y': 0.21643, 'z': 0},
{'x': 1.3402, 'y': 0.21643, 'z': 0},
{'x': 1.378, 'y': 0.21643, 'z': 0},
{'x': 1.4162, 'y': 0.21643, 'z': 0},
{'x': 1.4548, 'y': 0.21643, 'z': 0},
{'x': 1.4937, 'y': 0.21643, 'z': 0},
{'x': 1.533, 'y': 0.21643, 'z': 0},
{'x': 1.5728, 'y': 0.21643, 'z': 0},
{'x': 1.6129, 'y': 0.21643, 'z': 0},
{'x': 1.6534, 'y': 0.21643, 'z': 0},
{'x': 1.6944, 'y': 0.21643, 'z': 0},
{'x': 1.7357, 'y': 0.21643, 'z': 0},
{'x': 1.7774, 'y': 0.21643, 'z': 0},
{'x': 1.8196, 'y': 0.21643, 'z': 0},
{'x': 1.8622, 'y': 0.21643, 'z': 0},
{'x': 1.9052, 'y': 0.21643, 'z': 0},
{'x': 1.9487, 'y': 0.21643, 'z': 0},
{'x': 1.9926, 'y': 0.21643, 'z': 0},
{'x': 2.0369, 'y': 0.21643, 'z': 0},
{'x': 2.0817, 'y': 0.21643, 'z': 0},
{'x': 2.1269, 'y': 0.21643, 'z': 0},
{'x': 2.1725, 'y': 0.21643, 'z': 0},
{'x': 2.2187, 'y': 0.21643, 'z': 0},
{'x': 2.2652, 'y': 0.21643, 'z': 0},
{'x': 2.3123, 'y': 0.21643, 'z': 0},
{'x': 2.3598, 'y': 0.21643, 'z': 0},
{'x': 2.4078, 'y': 0.21643, 'z': 0},
{'x': 2.4563, 'y': 0.21643, 'z': 0},
{'x': 2.5053, 'y': 0.21643, 'z': 0},
{'x': 2.5547, 'y': 0.21643, 'z': 0},
{'x': 2.6046, 'y': 0.21643, 'z': 0},
{'x': 2.6551, 'y': 0.21643, 'z': 0},
{'x': 2.706, 'y': 0.21643, 'z': 0},
{'x': 2.7575, 'y': 0.21643, 'z': 0},
{'x': 2.8095, 'y': 0.21643, 'z': 0},
{'x': 0.78388, 'y': 0.20231, 'z': 0},
{'x': 0.81612, 'y': 0.20231, 'z': 0},
{'x': 0.84868, 'y': 0.20231, 'z': 0},
{'x': 0.88156, 'y': 0.20231, 'z': 0},
{'x': 0.91478, 'y': 0.20231, 'z': 0},
{'x': 0.94832, 'y': 0.20231, 'z': 0},
{'x': 0.9822, 'y': 0.20231, 'z': 0},
{'x': 1.0164, 'y': 0.20231, 'z': 0},
{'x': 1.051, 'y': 0.20231, 'z': 0},
{'x': 1.0859, 'y': 0.20231, 'z': 0},
{'x': 1.1211, 'y': 0.20231, 'z': 0},
{'x': 1.1568, 'y': 0.20231, 'z': 0},
{'x': 1.1927, 'y': 0.20231, 'z': 0},
{'x': 1.229, 'y': 0.20231, 'z': 0},
{'x': 1.2657, 'y': 0.20231, 'z': 0},
{'x': 1.3028, 'y': 0.20231, 'z': 0},
{'x': 1.3402, 'y': 0.20231, 'z': 0},
{'x': 1.378, 'y': 0.20231, 'z': 0},
{'x': 1.4162, 'y': 0.20231, 'z': 0},
{'x': 1.4548, 'y': 0.20231, 'z': 0},
{'x': 1.4937, 'y': 0.20231, 'z': 0},
{'x': 1.533, 'y': 0.20231, 'z': 0},
{'x': 1.5728, 'y': 0.20231, 'z': 0},
{'x': 1.6129, 'y': 0.20231, 'z': 0},
{'x': 1.6534, 'y': 0.20231, 'z': 0},
{'x': 1.6944, 'y': 0.20231, 'z': 0},
{'x': 1.7357, 'y': 0.20231, 'z': 0},
{'x': 1.7774, 'y': 0.20231, 'z': 0},
{'x': 1.8196, 'y': 0.20231, 'z': 0},
{'x': 1.8622, 'y': 0.20231, 'z': 0},
{'x': 1.9052, 'y': 0.20231, 'z': 0},
{'x': 1.9487, 'y': 0.20231, 'z': 0},
{'x': 1.9926, 'y': 0.20231, 'z': 0},
{'x': 2.0369, 'y': 0.20231, 'z': 0},
{'x': 2.0817, 'y': 0.20231, 'z': 0},
{'x': 2.1269, 'y': 0.20231, 'z': 0},
{'x': 2.1725, 'y': 0.20231, 'z': 0},
{'x': 2.2187, 'y': 0.20231, 'z': 0},
{'x': 2.2652, 'y': 0.20231, 'z': 0},
{'x': 2.3123, 'y': 0.20231, 'z': 0},
{'x': 2.3598, 'y': 0.20231, 'z': 0},
{'x': 2.4078, 'y': 0.20231, 'z': 0},
{'x': 2.4563, 'y': 0.20231, 'z': 0},
{'x': 1.051, 'y': 0.1881, 'z': 0},
{'x': 1.0859, 'y': 0.1881, 'z': 0},
{'x': 1.1211, 'y': 0.1881, 'z': 0},
{'x': 1.1568, 'y': 0.1881, 'z': 0},
{'x': 1.1927, 'y': 0.1881, 'z': 0},
{'x': 1.229, 'y': 0.1881, 'z': 0},
{'x': 1.2657, 'y': 0.1881, 'z': 0},
{'x': 1.3028, 'y': 0.1881, 'z': 0},
{'x': 1.3402, 'y': 0.1881, 'z': 0},
{'x': 1.378, 'y': 0.1881, 'z': 0},
{'x': 1.4162, 'y': 0.1881, 'z': 0},
{'x': 1.4548, 'y': 0.1881, 'z': 0},
{'x': 1.4937, 'y': 0.1881, 'z': 0},
{'x': 1.533, 'y': 0.1881, 'z': 0},
{'x': 1.5728, 'y': 0.1881, 'z': 0},
{'x': 1.6129, 'y': 0.1881, 'z': 0},
{'x': 1.6534, 'y': 0.1881, 'z': 0},
{'x': 1.6944, 'y': 0.1881, 'z': 0},
{'x': 1.7357, 'y': 0.1881, 'z': 0},
{'x': 1.7774, 'y': 0.1881, 'z': 0},
{'x': 1.8196, 'y': 0.1881, 'z': 0},
{'x': 1.8622, 'y': 0.1881, 'z': 0},
{'x': 1.9052, 'y': 0.1881, 'z': 0},
{'x': 1.9487, 'y': 0.1881, 'z': 0},
{'x': 1.9926, 'y': 0.1881, 'z': 0},
{'x': 2.0369, 'y': 0.1881, 'z': 0}])
plt.scatter(data=df, x='x', y='y', label='original_data')
plt.legend()
plt.title('original data')
plt.show()
hull = ConvexHull(df[['x', 'y']])
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
convex_hull_plot_2d(hull, ax=ax)
fig.tight_layout()
plt.title('convex hull with points')
plt.show()
hull.points
array([[0.20215, 0.29703],
[0.22857, 0.29703],
[0.25526, 0.29703],
...,
[1.9487 , 0.1881 ],
[1.9926 , 0.1881 ],
[2.0369 , 0.1881 ]])
Выпуклая оболочка - хороший подход, хотя он не решит случай, который вы показываете (форма пончика с внутренней границей).
Я думаю, что алгоритм, который вам нужен, называется "Марширующие кубы" (или Марширующие квадраты, в 2D). Это широко используемый метод, поэтому вы сможете легко найти некоторые библиотеки в python, которые его реализуют.
https://en.wikipedia.org/wiki/Marching_squares
В основном, рассматривая 2D-случай, алгоритм работает следующим образом:
В 3D идея та же, но с кубами вместо квадратов и с большим количеством предопределенных случаев.
Подходы к выпуклой оболочке, упомянутые другими, не работают, когда в форме есть отверстия (как в случае с вашим примером тора 🍩).
Проблема, которую вы пытаетесь решить, называется реконструкцией поверхности. Окончательный меш не будет иметь внутренних точек, как вы хотели.
В Open3D для этого реализованы некоторые алгоритмы, и вы можете применить их к своим данным в Python.
Чтобы преобразовать ваше облако точек numpy в использование Open3D
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(xyz)
Используйте
ConvexHull
из SciPy.