我正在尝试启动和运行一个程序,该程序获取扩展名为.fits的天文数据文件,并获取文件夹中具有该扩展名的所有文件,并搜索特定的标题信息,然后将其放入与每个文件对应的文本文件夹中。我正在使用while循环,如果这段代码格式不好,请原谅,这是我第一次使用python!我的主要问题是,我只能让程序在它关闭之前读取一个文件。
#!/usr/bin/env python
#This code properly imports all '.fits' files in a specified directory and
#outputs them into a .txt format t
我有一个FITS文件,其主HDU数据数组为3000x3000。对于上下文,每个像素测量一个星的流量由一个CCD记录在ADU(模拟到数字单位),所以它可以有一个值高达2^16。
数组的平均值约为420,校准后为17。在之后,我更新文件的头,用校准的文件覆盖原始数据,并将其保存到木星中的一个目录中。当我重新加载文件并打印它的平均值时,它正好是17 + 2^15,而不是仅仅17。
from astropy.io import fits
import os
import numpy as np
with fits.open('example.fits') as hdu:
i
我正在处理从astropy中用fits.open()读取的fits文件。我得到一个hdu (报头数据单元),它是astropy.io.fits.hdu.image.PrimaryHDU的一个实例。
现在,对于一个特定的项目,我想通过编写特定的方法来处理这个hdu中的数据。我想,一个很好的方法就是编写我自己的类,它将是PrimaryHDU的一个子类。我的新对象将拥有PrimaryHDU实例的所有属性和方法,以及我将要编写的属性和方法。但我不能让它正常工作。我的新对象如何获得父对象的所有属性和方法?我遇到的最接近的代码是下面的代码(例如,使用一个新的方法称为“减法”):
from astropy.
我定义了一个函数来修复和打开列表中的fits文件。然后调用它两次,以覆盖fits图片。但是当我使用调用函数的参数进行绘图时,它显示了对关闭文件的I/O操作:"ValueError:对关闭文件的I/O操作“。我不知道为什么会这样。非常感谢。 以下是已定义函数的代码 import numpy as np
import matplotlib.pyplot as plt
import applpy
from astropy.io import fits
from astropy.wcs import WCS
from astropy.wcs import FITSFixedWarning
i
借用这个例子,从史考特:
import numpy as np
from matplotlib import pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS
from astropy.utils.data import download_file
fits_file = 'http://data.astropy.org/tutorials/FITS-images/HorseHead.fits'
image_file = download_file(fits_file, cache=Tr
我有一个目录结构,其中的目录和文件的名称是错误的,我需要修复名称。目录有子目录,而这些子目录只有文件。
在此树中,我需要文件和子目录重命名的每个下表。例如,应该将名为hdm的目录重命名为hdu。根据下面的转换表,名为hdm_e_01.png的文件应重命名为hdu_e_01.png。
但是,请注意,这将需要分两个阶段进行,因为那里已经有一个名为hdu的目录,需要根据表将其重命名为hds,而且新重命名的目录hdu将需要保留为hdu,而不是更改为hds。因此,第一阶段需要将它们全部重命名为不冲突的临时名称,而第二阶段需要将其重命名为最终名称。
From To
hda hdx
hde hdw
hdi
我有一组适合的图像:大约32000张分辨率的图像(256,256)。我必须构建的数据集类似于矩阵,因此输出形状是(32000,256*256)。
简单的解决方案是一个for循环,如下所示:
#file_names is a list of paths
samples=[]
for file_name in file_names:
hdu=pyfits.open(file_name)
samples.append(hdu[0].data.flatten())
hdu.close()
#then i can use numpy.concatenate to have a n
我有两个适合不同波长的图像。它们有不同的角度分辨率。
我想把高分辨率的图像转到低分辨率的。
我试过astropy.convolution.convolve和astropy.convolution.Gaussian2DKernel。1600 and分辨率为0.184“,606 and分辨率为0.124”。因此,我认为内核的分辨率应该是0.136“。
import os
from astropy.io import fits
from astropy.convolution import Gaussian2DKernel
from astropy.convolution import co
在file 1中,我需要查找列2中包含字符串hdu的行(或列5中的HX* ),然后在file 2中将列2中的值替换为来自file 1的第5列的值。
file1:
64 ha 1 LIG H64 64 0.000000 12.0100 c 0.637086 12.0100
65 du 1 LIG XX65 65 0.000000 16.0000 o -0.547014 16.0000
66 du 1 LIG XX66 66 0.000000 16.0000 oh -0.611114 16.0000
67 hdu 1 LIG HX67 67 0.000000 1.0080 hc 0.090186
我正在做一个通过时间跟踪温度数据的项目。40多年来,我每天都制作光栅地图。然后,我想取每周的平均值并生成一个.png,最终生成一个GIF来可视化每年的数据。我使用的代码在常规年份运行良好,但在闰年时会遇到麻烦。
以下是代码:
dseq <- seq(from = as.Date("01-01-1993", format = "%d-%m-%Y"), to = as.Date("31-12-1993",
format = "%d-%m-%Y"), by = 1)
hdu.fname <- pas
我正在尝试用Python折叠一个适合的数据立方体。我知道有特殊的套餐在做,但这是为了讲课。我首先在Z:hdu.data = hdu.data[3365:3405, :, :] subcube = hdu.data中提取一个子立方体--子立方体的维数为Z=40、Y=50和X=26。我想在X和Y中用双圈的方式折叠立方体,以便有一个简单的2D图像。
for i in range(1, xdim):
for j in range(1, ydim):
Sum[j,i] = subcube[:,j,i].sum()
我收到一条错误消息: IndexError:索引26对于大
我想使用.fits文件(天文图像)绘制一个图,我遇到了两个问题,我认为这两个问题是相关的:
使用astropy中的这个例子:
from matplotlib import pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS
from astropy.utils.data import download_file
fits_file = 'http://data.astropy.org/tutorials/FITS-images/HorseHead.fits'
image_file = do
我正在尝试获得如下输出:
169.764569892, 572870.0, 19.6976
然而,我有一个问题,因为我输入的文件的格式与我刚才显示的输出类似,但是数据中的一些行有一个变量'nan‘,我需要删除它。我正在尝试使用它来实现以下目的:
TData_Pre_Out = map(itemgetter(0, 7, 8), HDU_DATA)
TData_Pre_Filter = [Data for Data in TData_Pre_Out if Data != 'nan']
在这里,我试图使用列表理解来让'nan‘消失,但输出仍然显示它,任何关于正确
当使用astropy和matplotlib创建地图时,右升轴上的单位是deg/min/sec,而不是h/m/s。我在astropy中找不到一种简单的方法来选择单位h/m/s。
例如,如果我试图重现中的马头星云的地图,我会得到一个以度/分/秒为单位的R.A.轴。
代码很简单:
from matplotlib import pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS
from astropy.utils.data import get_pkg_data_filename
filename = get_
对于我试图使用的脚本,我似乎返回了一个有点令人困惑的错误,即试图从旧的文件扩展名创建一个新文件时,它是说它试图创建的文件不存在吗?有人能解释一下为什么会发生这种情况吗?也许是一个潜在的解决办法?
下面是我使用的脚本:
#Function to replace all NaNs in the exposure map by 0s and to replace the corresponding pixels in the sky and large scale sensitivity map by 0s.
def replace_nan(filename):
#Print that al
我在python3中编译这个程序有问题,代码是
import numpy as np
import matplotlib.pyplot as plt
import astropy.units as u
from astropy.wcs import WCS
from astropy.io import fits
from astropy.utils.data import get_pkg_data_filename
from astropy.coordinates import SkyCoord
from astropy.coordinates import ICRS, Galactic,