2013-03-26 125 views
0

我試圖插入二維數據,使用安裝了natgrid軟件包的mlab的griddata函數。如何捕捉natgrid的griddata錯誤

然而,我的數據是造成兩種類型的錯誤:

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

是那些你得到整個錯誤信息? – 2013-03-26 16:08:52

+0

是的,這就是我所得到的natgrid錯誤輸出。然後,我的IDE報告,第二個錯誤是「處理完成,退出代碼爲-1073741819」,第一個爲「處理完成,退出代碼爲1」。 – Pablo 2013-03-26 16:13:18

+0

你可以用調試器運行你的代碼,並用回溯更新你的問題。只要這樣做:'python -m pdb my_script.py'。當錯誤返回時,您應該留在Python控制檯中。如果是這種情況,只需鍵入'tb'並敲入'enter',並在崩潰發生之前就有函數調用列表 – 2013-04-03 09:33:29

回答

0

如果griddata電話sys.exit()打印錯誤信息後,你可以捕捉它:

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

如果的buildin exit()被稱爲相反,我認爲沒有什麼工作要做,以捕獲錯誤並繼續工作。

如果我在IPython中調用sys.exit(),我得到:

發生異常,使用%TB看到完整的回溯。

SystemExit

退出:使用 '退出', '退出',或者按Ctrl-d

和回溯表明sys.exit()不過是KeyboardInterrupt

相反,我認爲,這棟樓exit()殺了Python解釋器(至少在附帶的Ubuntu的python2.7)

+0

我發現[NCAR natgrid庫的Python接口](https://github.com/ matplotlib/natgrid)(不知道它是否是官方的)。但是我不熟練使用C/C++,因此我很難弄清楚它在哪裏以及如何處理錯誤。我會聯繫指定的開發人員,看他能否提供幫助。 – Pablo 2013-04-03 09:15:54

+0

它看起來像官方的。如果NCAR在C/C++中,我懷疑處理錯誤很容易。如果庫和接口設計得很好,你可能會得到由Natgrid返回的錯誤代碼或捕獲異常(如果C++)。 – 2013-04-03 09:30:40