scipy.interpolate.griddata: вырезать z-значение и получить область внутри

Относительно этого: аналогия scipy.interpolate.griddata? У меня есть дополнительный вопрос: мой вывод выглядит следующим образом: введите описание изображения здесь

Это пирамида с шумом (и без земли). Есть ли возможность в scipy.interpolate.griddata ввести / выбрать определенное значение z, чтобы все точки, которые не равны этим значениям z, удаляются? В моем примере: например, я ввожу высокое значение z -> только точки с определенным красным значением (= z-значение) должны оставаться в живых и показывать мне незаполненный треугольный треугольник. Цель состоит в том, чтобы получить область внутри этого шумового треугольника.

edit: tldr: как я только что узнал, это изолиния, которую я ищу, и область внутри нее.

edit2: Итак, я узнал, что из этого примера http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html «grid_z1.T» возвращает мне массив со всеми значениями z , В цикле я мог бы исключить все значения, которые не равны определенному значению z -> я получил свою изолию. Проблема в том, что это не rellay iso line, а сетка с некоторыми значениями iso. Это нормально, но, может быть, есть лучшие решения? Существуют ли какие-то другие методы grid_z.T, которые могут соответствовать моим потребностям?

2 Solutions collect form web for “scipy.interpolate.griddata: вырезать z-значение и получить область внутри”

Это лучше всего сделать, прежде чем преобразовать данные в форму сетки:

>>> x = [0,4,17] >>> y = [-7,25,116] >>> z = [50,112,47] >> data = np.column_stack([x, y, z]) array([[ 0, -7, 50], [ 4, 25, 112], # <<---------------- Keep this [ 17, 116, 47]]) >>> data = data[data[:,2] == 112] # points with z==112 array([[ 4, 25, 112]]) 

то вы можете преобразовать данные для построения с использованием griddata или, например, функции, приведенной здесь :

 X, Y, Z = grid(data[0], data[1], data[2]) 

В этом специальном случае я мог бы решить его простым способом: вместо устранения всех значений, не равных определенному значению z, я просто исключил все значения, которые превышают определенное значение z:

 if grid_z1.T[i][j] > z0 or math.isnan(grid_z1.T[i][j]): grid_z1.T[i][j] = np.nan 

Поскольку я сам определил гридизацию, я легко могу вычислить область, умножая гриды на количество точек.

OT: Извините за ответ, что поздно – я был в неделю в больнице.

  • Scipy fftpack dct и idct
  • Ошибка кубической сплайновой памяти
  • Рекомендация импорта SciPy / NumPy
  • Структура входных данных для функции минимизации scipy
  • как интерпретировать значения numpy.correlate и numpy.corrcoef?
  • найти касательный вектор в точке для дискретных точек данных
  • как выбрать инверсию индексов массива numpy
  • Пиксельные соседи в массиве 2d (изображение) с использованием Python
  • Стратегия изоляции 3D-данных
  • Ошибка Scipy с использованием модуля оптимизации. Ошибка преобразования массива в fortran
  • Как рассчитать статистику «t-test» с numpy
  • Python - лучший язык программирования в мире.