2013-03-26 3 views
0

Я пытаюсь интерполировать 2D-данные с помощью функции mlab griddata с установленным пакетом natgrid.Как поймать ошибки griddata natgrid

Однако мои данные вызывают два вида ошибок:

Natgrid - two input triples have the same x/y coordinates 
      but different data values: 

       First triple: 0.000000 45.000000 20.743004 
       Second triple: 0.000000 45.000000 20.572077 

и когда я удалить дубликаты точек (как это было предложено here) я получаю:

natgrid - error number 1 from ReadData: 
    Insufficient data in gridded region to triangulate 

Основная проблема с этим что нет возможности поймать ошибки. И когда они происходят, процесс python прерывается.

Как обрабатывать эти griddata конкретные ошибки и как их уловить и продолжить мой скрипт?

+0

являются теми целыми сообщениями об ошибках, которые вы получаете? –

+0

Да, это все, что я получаю как вывод из ошибки natgrid. Затем моя IDE сообщает, что «Процесс завершен с кодом завершения -1073741819' для второй ошибки и« Процесс завершен с кодом выхода 1 »для первого. – Pablo

+0

Можете ли вы запустить код с отладчиком и обновить свой вопрос с помощью обратной линии. Просто выполните это: 'python -m pdb my_script.py'. Когда ошибка возвращается, вы должны быть оставлены в консоли python. Если это так, просто введите 'tb' и нажмите' enter', и у вас будет список вызовов функций до того, как произошел сбой –

ответ

0

Если griddata вызовов sys.exit() после печати сообщений об ошибке вы можете поймать:

try: 
    griddata(....) 
except: 
    do what needs to be done 

Если Buildin exit() называется вместо этого, я думаю, что нет ничего, чтобы сделать, чтобы поймать ошибку и продолжить работу.

Если я позвоню sys.exit() в IPython, я получаю:

Исключение произошло, используйте% Тб, чтобы увидеть полный отслеживающий.

SystemExit

Для выхода: используйте 'выход', 'бросить', или Ctrl-D

и трассировку показывает, что sys.exit() нет ничего, кроме KeyboardInterrupt.

Вместо этого, я думаю, что здание exit() просто убить интерпретатор питона (по крайней мере, на python2.7 поставляется с убунтом)

+0

. Я нашел интерфейс [Python для библиотеки NCAR natgrid] (https://github.com/ matplotlib/natgrid) (не уверен, является ли он официальным). Но я не владею C/C++, и поэтому мне сложно определить, где и как он обрабатывает ошибки. Я свяжусь с названным разработчиком, чтобы узнать, может ли он помочь. – Pablo

+0

Он выглядит как официальный. Если NCAR находится в C/C++, я сомневаюсь, что с ошибками легко справиться. Если библиотека и интерфейс хорошо разработаны, вы можете получить код ошибки, возвращенный Natgrid или поймать исключение (если C++). –

Смежные вопросы