我正在使用pyplot.imshow()来绘制星系的颜色图,数据是数据立方体的50x50数组(2500个光谱像素),但是星系本身只跨越了一小部分帧。角度,我想在框架上应用一个椭圆形光圈(在(25,25)处)并仅选择椭圆内的数据,因为星系外的数据非常嘈杂,到目前为止我只能应用一个正方形光圈,下面就是我所做的。
def distribution(infile):
hdulist = pf.open(infile)
HaS=hdulist['HALPHA'].data[0, l, :][:, l]
#l is the width of the square aperture, l=50 means full frame
py.figure().suptitle('%s'%(infile))
py.imshow(HaS,interpolation='gaussian')
py.xlabel('Continuum')
py.colorbar()
这是我有的情节,我希望应用ELLIPTICAL光圈,是否有任何python功能?
答案 0 :(得分:0)
可能不完全符合您的需求,但这里需要考虑的事情:
我创建了一个样本2d分布(galaxy)
x=linspace(-100,100, 1000)
y=linspace(-100,100, 1000)
x,y=meshgrid(x,y)
f=exp(-(x**2+y**2)/70**2)
imshow(f)
然后您可以应用过滤器:
f[(x**2+y**2)<10**2]=0
之后,半径为10的圆圈内的所有内容都将变为0(我猜你也可以在某处复制数据):
希望这有帮助