2012-02-23 60 views
0

我已經安裝了ioapiTools,一個用於管理ioapi格式文件的python模塊。該模塊應該處理文件並對其執行操作,包括基本的算術運算。但有些事情是錯誤的,當我嘗試將一個數組乘以浮點數或整數時,結果是一個零值數組(數組和浮點數/整數都不爲零)。 有問題的模塊使用cdms2根據下面的語法創建一個臨時變量:Python ioapiTools模塊不能執行基本的數學運算

import cdms2 as cdms, cdtime, MV2 as MV, cdutil 
import numpy as N 

..........

def __mul__(self, other): 
    """ 
    Wrapper around cdms tvariable multiply 
    """ 

    tmpVar = cdms.tvariable.TransientVariable.__mul__(self,other) 

    iotmpVar = createVariable(tmpVar, self.ioM, id = self.id,\ 
           attributes=self.attributes, copyFlag = False) 


    return iotmpVar 

但可變的回報無非是零。 任何想法?

+0

小文體事情:你不需要使用'\'這裏 - 括號(或括號或括號)內換行基本上忽略。 – 2012-02-23 18:45:05

回答

0

我試過使用ioapiTools,而我發現的最新版本是從http://www2-pcmdi.llnl.gov/Members/azubrow/ioapiTools/download-source-file得到的0.3.2。 不幸的是,代碼似乎沒有跟上cdat的進化,現在推薦使用numpy代替Numeric。自動翻譯工具可能會解決一些問題,但不是全部。例如,類iovar(在ioapiTools.py:2103中定義)現在需要具有_____new_____方法,因爲它是numpy蒙面數組的子類(我不知道數值中是如何)。與此,我似乎有_____mul_____工作。雖然我無法重現您的問題,因爲如果沒有定義_____new_____方法,我甚至無法獲得iovar的實例。

我可以通過我得到了什麼給你,如果你仍然需要一個,但我相信有更多的問題隱藏...讓我知道,如果你需要它雖然。