У меня есть файл данных, который выводится в результате моделирования. Данные имеют форму, аналогичную приведенной на изображении ниже.
Я хочу найти длину / диаметр «отверстия» в функции (часть функции с отрицательной кривизной). Однако реальный результат имеет шум, небольшие, но заметные вариации, и он может содержать несколько «дыр» (мне нужны только самые большие.
Я знаю, как найти самую большую дыру, так что здесь нет проблем.
Я попытался начать с минимума отверстия, затем go влево и найти точку, в которой значение функции меньше предыдущего. Затем go вправо, чтобы найти точка, где функция равна или больше значения слева. Затем просто измените их координату x и Воля. Это работает для исходной функции, потому что она аналитическая без шума и вариаций, однако не работает для последних раз.
Я работаю со сценарием Fortran90, но вы можете просто объяснить алгоритм или написать объяснение на python (я могу перевести его на Fortran сам).
Спасибо заранее.