Python 2.7 在3d中绘制2d曲面。在图形上绘制峰值指数(可能通过识别峰值?)。python

Python 2.7 在3d中绘制2d曲面。在图形上绘制峰值指数(可能通过识别峰值?)。python,python-2.7,matplotlib,max,axes,mplot3d,Python 2.7,Matplotlib,Max,Axes,Mplot3d,我正在尝试使用mplot3d模块在3d中绘制2D曲面图 我知道如何“手动”找到最大值及其位置(按行和列),这在我的工作中非常重要。有没有办法将这些信息绘制到峰值上?也就是说,在峰值旁边写入(maxval、row、col) 当我问这个问题时,请注意。也许有一种简单的方法可以识别第二个峰值(或者任何其他峰值?)。我目前正在使用一个遮罩,遮住第一个峰并找到第二个峰,但我在选择边时必须非常小心,因为如果遮罩太少,一些非峰物质将被识别为峰,而真正的第二个峰将不会被识别,从而破坏了一个称为“峰对峰”的测量信

我正在尝试使用mplot3d模块在3d中绘制2D曲面图

我知道如何“手动”找到最大值及其位置(按行和列),这在我的工作中非常重要。有没有办法将这些信息绘制到峰值上?也就是说,在峰值旁边写入(maxval、row、col)

当我问这个问题时,请注意。也许有一种简单的方法可以识别第二个峰值(或者任何其他峰值?)。我目前正在使用一个遮罩,遮住第一个峰并找到第二个峰,但我在选择边时必须非常小心,因为如果遮罩太少,一些非峰物质将被识别为峰,而真正的第二个峰将不会被识别,从而破坏了一个称为“峰对峰”的测量信噪比

我目前使用的代码是:

frame_a = gdal.Open( "frame_{0:05d}.tif".format(274) ).ReadAsArray()
# in case this helps, this is how the images are read, they are 16-bit GS tiffs.    
frame_b = gdal.Open( "frame_{0:05d}.tif".format(287) ).ReadAsArray()


#this does some clever stuff but basically it returns a 2-D 32x32 array.
corr = correlate_windows( windows_a[99], windows_b[99], corr_method = corr_method, nfftx=nfftx, nffty=nffty )

#this is how I find the position of max value.
column = np.argmax(np.max(corr, axis=0))
row = np.argmax(np.max(corr, axis=1))
maximum = corr.max()
print 'column = ' + str(column)
print 'row = ' +str(row)
print 'peak_1 = ' + str(maximum)



import matplotlib.cm as cmps
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import LinearLocator, FormatStrFormatter

fig = pl.figure()

ax = Axes3D(fig)

# window size is 32 in this case

nx, ny = window_size*2, window_size*2

xx = range(nx)

yy = range(ny)

X, Y = np.meshgrid(xx, yy)

ax.plot_surface(X , Y , corr , rstride = 1, cstride = 1 )

pl.show()

关于你的第二个问题,你可能会发现下面的帖子很有用


在我所做的一些工作中,我们使用了一个简单的导数近似值,当这个变化标志着你有一个峰值(在1D数据中),你可以添加一些参数来消除由于噪声引起的峰值。为了将其扩展到2D,我阅读了一些算法,这些算法遵循梯度(向上或向下),直到达到最大值。这些可能相当棘手,因为很容易陷入局部极小值/极大值。如果你发布了这篇文章的后续文章,请在这里链接,因为我想看看人们有什么想法

作为一个内务说明,在你有更高的声誉和足够的声誉之前,你不能包含图像,你可以编辑其他帖子。你所说的“松散对齐”是什么意思?你能把第二张照片放在什么地方吗?你应该把问题的第二部分和第三部分分成他们自己的问题。理想的SO线程只有一个问题,这使得回答它们更容易,并且对未来的读者更有用。感谢您的评论!我编辑了这个问题。我想我在问题的另一部分(现在已删除)中寻找的实际上是固定绘图上的“视角”(在上图中,你无法真正看到零的位置)。我认为这应该很容易找到。我没有时间写一个真正的答案,但我认为你可以用
注释
做你想做的事情。啊,当然-微积分是最好的方法!现在我明白为什么这个问题应该只有一个问题了。。。