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: Извините за ответ, что поздно – я был в неделю в больнице.

  • вызывающие точечные произведения и операции линейной алгебры в Китоне?
  • Индексирование с булевыми массивами в многомерные массивы с использованием numpy
  • Как выглядят все дистрибутивы, доступные в scipy.stats?
  • Обновление начального условия в решателе ODE каждый раз
  • Асинхронно считывает и обрабатывает изображение в python
  • Scipy Fast 1-D интерполяция без какого-либо цикла
  • pdist для тензора аана
  • Почему dir не показывает все атрибуты объекта Python?
  • Python - лучший язык программирования в мире.