查找TypeError减去两个相同大小和类型的numpy.ndarrays

时间:2011-11-30 06:01:55

标签: python numpy scipy

我试图通过从罗盘标题中减去太阳方位角来找到我的传感器与太阳的相对位置。出于测试目的,我有两个numpy向量。一个具有52个不同样本的太阳方位角,另一个具有52个不同样本的指南针。

我一直在numpy向量上做这种操作数,所以我不知道它为什么会给我以下错误。

    TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray'

这是一些代码,我会尝试尽可能多地包含它,但它来自一个较大的代码库。

    ####STUFF above####

    # for debugging
    a = dalecData.get_solar_azimuth()
    b = dalecData.get_cmp_heading()

    print type(a)
    print type(b)

    print a.shape
    print b.shape

    print a.flags
    print b.flags

    print a.ndim
    print b.ndim

    a - b

    #work aroundS ????

    #sensorAzimuth = subract(dalecData.get_solar_azimuth(),dalecData.get_cmp_heading()) 
    #sensorAzimuth = asarray(dalecData.get_solar_azimuth()) -  asarray(dalecData.get_cmp_heading())## wtf?
    #for i in range(0,dalecData.get_solar_azimuth().shape[0]):
    #    sensorAzimuth[i] = dalecData.get_solar_azimuth()[i] - dalecData.get_cmp_heading()[i]

给我以下输出

    <type 'numpy.ndarray'>
    <type 'numpy.ndarray'>
    (52, 1)
    (52, 1)
    C_CONTIGUOUS : True
    F_CONTIGUOUS : False
    OWNDATA : True
    WRITEABLE : True
    ALIGNED : True
    UPDATEIFCOPY : False
    C_CONTIGUOUS : True
    F_CONTIGUOUS : False
    OWNDATA : True
    WRITEABLE : True
    ALIGNED : True
    UPDATEIFCOPY : False
    2
    2

所有'变通办法'都会出现同样的错误

使用

初始化向量
    # viewing geometry
    self.__solarZenith = zeros((1))
    self.__solarAzimuth = zeros((1))

访问者

    def get_solar_zenith(self):
        return self.__solarZenith


    def get_solar_azimuth(self):
        return self.__solarAzimuth

    def set_cmp_heading(self,value):
        self.__cmpHeading = value

并使用

填充
    row = self.findClosestDatetime(self.__edStartTime[i], self.__cmpDateTime)
    heading = vstack((heading, self.__cmpHeading[row-1]))
    heading = delete(heading,0,0) # get rid of initialised 0
    self.set_cmp_heading(heading)

这应该将数据重新采样到edStartTime采样时间。似乎工作。

太阳天顶和方位角是使用pysolar http://pysolar.org/

计算的

所有值似乎都是正确的,我无法相互减去这些值。它只发生在这些载体上。我可以在代码的其他地方以相同的方式添加和减去其他向量。

我希望我已经解释了我的情况。我很感激帮助理解错误。

由于

0 个答案:

没有答案