径向 (r) 和切向 (t) 导数是极坐标中梯度的分量:
∇f = (df/dr, 1/r df/dt)
由于您的数据存储在笛卡尔数组中,因此您需要将其表示为笛卡尔导数:
博士 = df/博士
= (df/dx)*(dx/dr) + (df/dy)/(dy/dr)
= (df/dx)/(2x) + (df/dy)/(2y)
和,
dt = (1/r)*(df/dt)
= [(df/dx) (dx/dt) + (df/dy) (dy/dt)]/(x^2 + y^2)
= [(df/dx) (x^2 + y^2)/(-y) + (df/dx) (x^2 + y^2)/(x)]/(x^2 + y^2 )
= (df/dy)/x - (df/dx)/y
要在 python 中计算,
def nablaPolar(data, centerpoint, lag=10):
x, y = centerpoint
dfx = (data[x+lag][y] - data[x-lag][y])/float(lag)
dfy = (data[x][y+lag] - data[x][y-lag])/float(lag)
dr = dfx/(2*x) + dfy/(2*y)
dt = dfy/x - dfx/y
return dr, dt