Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用astropy包修改python脚本_Python_Astropy - Fatal编程技术网

使用astropy包修改python脚本

使用astropy包修改python脚本,python,astropy,Python,Astropy,我有一个python脚本,它采用合适的图像并绘制通量与像素的关系。 它从选定的中心点绘制6条线,对应于0度、30度、60度、90度、120度和150度。 然后计算每条线的通量。 我想使用2个图像,覆盖它们,分别为两个图像绘制每一行,以比较它们。 i、 e在第二个图像的0度上绘制第一个图像的0度。 该脚本有一个astropy天文学软件包,可以在线下载,试试anaconda 脚本如下: #CODE CREATED BY A.AVISON 20-APR-2018# import numpy as n

我有一个python脚本,它采用合适的图像并绘制通量与像素的关系。 它从选定的中心点绘制6条线,对应于0度、30度、60度、90度、120度和150度。 然后计算每条线的通量。 我想使用2个图像,覆盖它们,分别为两个图像绘制每一行,以比较它们。 i、 e在第二个图像的0度上绘制第一个图像的0度。 该脚本有一个astropy天文学软件包,可以在线下载,试试anaconda

脚本如下:

#CODE CREATED BY A.AVISON 20-APR-2018#

import numpy as np
import scipy.ndimage
import matplotlib.pyplot as plt
from astropy.io import fits

#--- FITSNAME ---#
fitsName="fix_N7027.JVLA+eMer.eq.image.fits"

#---get fits image data---#
hdulist = fits.open(fitsName)

imData=hdulist[0].data
imData[np.isnan(imData)] = -0.0005 #== set NaNs to something which is a real number
roughSigma=np.median(imData[np.where(imData>0.0)])#=== takes the median non-zero values as a pseudoRMS
levs=np.arange(5.0,55.0,10.0)*roughSigma

#=== DEFINE CeNTRAL POSTION
y_peak=1043  #in pixels
x_peak=990   #in pixels
cutLen=500.0 #in pixels
#-- Plot...
fig, axes = plt.subplots(ncols=2, figsize=[12,6])
axes[0].imshow(imData,cmap='bone',origin='lower')#'gist_ncar'
axes[0].contour(imData,colors='w',linewidths=0.5,levels=levs)

#-- Extract data values along the line...
# Make a line with "num" points...
numCuts=6
angPerCuts=180.0/float(numCuts)

for ang in range(numCuts):
    x1=x_peak-float(np.floor(cutLen*np.cos(np.radians(float(ang)*angPerCuts))))
    y1=y_peak-float(np.floor(cutLen*np.sin(np.radians(float(ang)*angPerCuts))))

    x0=x_peak+float(np.floor(cutLen*np.cos(np.radians(float(ang)*angPerCuts))))
    y0=y_peak+float(np.floor(cutLen*np.sin(np.radians(float(ang)*angPerCuts))))

    num = int(cutLen)
    x, y = np.linspace(x0, x1, num), np.linspace(y0, y1, num)
    # Extract the values along the line, using cubic interpolation
    zi = 0
    zi = scipy.ndimage.map_coordinates(imData, np.vstack((x,y)))

    axes[0].plot(y,x, '-',linewidth=1.0,alpha=0.8,label=str(float(ang)*angPerCuts)+"degrees")
    axes[0].plot(y1,x1, 'g.',linewidth=1.0,alpha=0.05)
    axes[1].plot(zi,'-',alpha=0.8,linewidth=1.0,label=str(float(ang)*angPerCuts)+"degrees")

axes[1].set_xlim([0,cutLen])

#=== OVERLAY 1/r^x models ===#
axes[1].legend()
plt.show()
hdulist.close()
情节附呈


有人建议将代码加倍(再次重复)并修改轴!!!。我该怎么做?

不清楚你在问什么。如果你的代码已经运行,但是你正在寻找改进的评论/想法,那么这并不是一个合适的网站。但是,还有codereview.stackexchange.com,用于发布工作代码和获取代码审阅。如果你把你的问题贴在那里,我可以看一下。现在,如果有问题,请解释你试图做什么,以及到底什么失败了。没有附加任何情节:)我只是将我的问题发布在codereviewer.stackexchange.com上。谢谢iGuanaaut。请链接到它。@iGuanaaut最后一段读起来像一个功能请求,不像代码已经做了它应该做的。