问题标签 [astropy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
992 浏览

python - 从 numpy 数组中计算椭圆内的像素

背景 我正在编写一个程序来计算星系的表面亮度作为椭圆半径的函数。这首先涉及读取 .fits 文件,该文件存储在一个 numpy 数组中,这样 array[x][y] 将返回该 (x,y) 像素的表面亮度值。

为了计算表面亮度,我需要能够以某个最小尺寸将椭圆拟合到星系中,并找到该椭圆内的表面亮度中值,然后增加椭圆的大小并找到每个环的表面亮度。不同大小的环将循环通过,直到表面亮度下降到与背景噪声的某个比率以下。

问题 椭圆的给定参数包括位置角、x 和 y 像素的中心坐标以及 B/A 比。我很难找到任何可以让我将椭圆拟合到本质上的数组数组的方法。请帮忙??

0 投票
1 回答
359 浏览

python - astropy.io 适合大表的高效元素访问

我正在尝试使用 Python 和 astropy.io 从 FITS 文件中的二进制表中提取数据。该表包含一个包含超过 200 万个事件的事件数组。我想要做的是将某些事件的 TIME 值存储在一个数组中,这样我就可以对该数组进行分析。我遇到的问题是,在 fortran(使用 FITSIO)中,相同的操作在慢得多的处理器上可能需要几秒钟,而在 Python 中使用 astropy.io 的完全相同的操作需要几分钟。我想知道瓶颈到底在哪里,以及是否有更有效的方法来访问各个元素以确定是否将每个时间值存储在新数组中。这是我到目前为止的代码:

任何帮助,将不胜感激。我是其他语言的优秀程序员,但我以前不必担心 Python 的效率。我现在选择在 Python 中执行此操作的原因是,我将 fortran 与 FITSIO 和 PGPLOT 以及来自 Numerical Recipes 的一些例程一起使用,但是无法说服我在这台机器上使用的新的 fortran 编译器生成一个正常工作的程序(有一些 32 位与 64 位等问题)。Python 似乎具有我需要的所有功能(FITS I/O、绘图等),但如果访问列表中的各个元素需要很长时间,我将不得不寻找另一个解决方案。

非常感谢。

0 投票
2 回答
7315 浏览

python - 将带有第一行中给出的标题的 ascii 文件读入 pandas 数据帧

我有大量的目录,其中有不同的列和每列的不同标题名称,其中每个标题名称的描述在我的 ascii 文件的开头作为注释给出。将它们读入一段pandas.DataFrame时间的最佳方法是什么,它也可以设置列的名称,而无需从一开始就定义它。以下是我的目录示例:

0 投票
0 回答
1198 浏览

python - 使用 cx_freeze/py2exe 后缺少 astropy 的“六”模块

我试图使用 cx_freeze 和 py2exe 将用 python 3 编写的程序转换为 .exe。但是在转换并运行程序后,我收到以下错误:

Traceback (most recent call last): File "astroConverter.py", line 8, in <module> File "C:\Users\Konrad\PycharmProjects\astroConverter\mainwindow.py", line 2, in <module> from widgets.widgets import MainMenu, Toolbar, TextField File "C:\Users\Konrad\PycharmProjects\astroConverter\widgets\widgets.py", line 1, in <module> from widgets.menus import FileMenu, EditMenu, HelpMenu File "C:\Users\Konrad\PycharmProjects\astroConverter\widgets\menus.py", line 2, in <module> from common import Info File "C:\Users\Konrad\PycharmProjects\astroConverter\common.py", line 2, in <module> from astropy.io import fits File "C:\Python34\lib\site-packages\astropy\__init__.py", line 73, in <module> _check_numpy() File "C:\Python34\lib\site-packages\astropy\__init__.py", line 61, in _check_numpy from .utils import minversion File "C:\Python34\lib\site-packages\astropy\utils\__init__.py", line 15, in <module> from .codegen import * File "C:\Python34\lib\site-packages\astropy\utils\codegen.py", line 15, in <module> from .introspection import find_current_module File "C:\Python34\lib\site-packages\astropy\utils\introspection.py", line 14, in <module> from ..extern import six File "C:\Python34\lib\site-packages\astropy\extern\six.py", line 60, in <module> _import_six() File "C:\Python34\lib\site-packages\astropy\extern\six.py", line 57, in _import_six "distribution.".format(_SIX_MIN_VERSION)) ImportError: Astropy requires the 'six' module of minimum version 1.7.3; normally this is bundled wi th the astropy package so if you get this warning consult the packager of your Astropy distribution.

这是我的 cx_freeze setup.py 脚本:

和 py2exe 脚本:

这是输出pip freeze

如您所见,我的six模块的版本比 astropy 要求的要新。奇怪的是,我已经正确安装了所有软件包,并且在运行时python astroConverter.py一切正常。这是 GUI 应用程序(它使用 tkinter)。有谁知道我如何强制 cx_freeze 或 py2exe 正确包含“六”模块?

0 投票
0 回答
344 浏览

python - 查找给定 ra-dec 的像素坐标

我对 python 还很陌生,目前正在标记一些星系图像。我有一组 512x512 pix^2 图像,缩放到 0.2 arcsec/pix。每个图像都有两个要标记的对象-一个在中心(256pix,256pix),另一个在偏移处(我有对象之间的投影间隔以及两个对象的 ra-dec 值)。任务是围绕每个图像中的对象。对于中心对象来说很容易,但我坚持如何为另一个对象完成同样的事情。以下代码片段围绕中心对象进行了包围,我需要弄清楚如何为另一个对象执行此操作:

我有两个对象的 RA-DEC 值(以度为单位)。
我有对象之间的分隔(以 kpc 为单位)。

对于 .2 ''/px 处的 512x512 像素图像,这将遍历列表中的所有 objid。对于每个 objid,我在一个名为 Images_fin 的文件夹中都有一个带有 objid.png 的文件。这会加载正确的图像,并用 objid 标记它。

我正在粘贴一个示例,完成后标签的外观(这是手动完成的)

0 投票
1 回答
110 浏览

python - Python - 无法从 astropy.modeling 导入 ParametricModel

我正在尝试按如下方式导入 ParametricModel:

但它显示以下错误:

Traceback(最近一次调用最后一次):文件“”,第 1 行,在 ImportError 中:无法导入名称 ParametricModel

为什么我不能导入 ParametricModel?

0 投票
1 回答
3969 浏览

python - 使用 Astropy 将 3d Numpy 数组写入 FITS 文件

我有一个代表 256x256 图像的 3D NumPy 数组(即 (10, 256, 256))。我想使用 astropy.io.fits 将此数组写入 FITS 文件,以便我可以使用 ds9 -mecube 打开文件并在帧中移动。我的尝试如下所示

这会给我一个 FITS 文件,它实际上包含 3D 数组。但是,如果我用 ds9 -mecube 打开,我只能看到第一张图片。无论如何使用 astropy.io.fits 创建具有此功能的 FITS 文件?还是我缺少 ds9 的某些功能?

0 投票
0 回答
1585 浏览

python - 为 FITS 图像创建 WCS

更新(2016 年 3 月 10 日):我想我会把它放在这里,让以后的任何人都可以看到。我基本上已经解决了这个问题。拍摄图像后,我实际上是在尝试“制作”一个世界坐标系。我的想法是,如果我能从特定的夜间减少中获得数百张图像的 WCS 会容易得多。但是,如果没有图像中的参考点,或者在拍摄图像时仅在源处制作一个参考点,这样的事情就不会那么容易了。在撰写本文时,我大学的望远镜正在升级为具有自动引导系统,因此我们希望能够以这种方式在我们的图像标题中实现 WCS。

希望没有太多假设的知识。这纯粹是一个使用天体的天文学简化问题。

一些背景:现在我有一大堆适合的图像;数百个用于许多不同的目标。如果你只是坐在目标上,我使用的望远镜会有一些令人讨厌的漂移,所以现在我需要对齐我所有的图像。我可以使用像 PixInsight 这样的非自由软件,我听说它做得很好,但我是一个好奇的本科生,想以免费的方式/困难的方式尝试它。在广泛寻找一种将许多图像与 IRAF 中的漂移对齐的方法之后,似乎我最需要的是星坐标。所以我想出了一个想法,如果我获得参考星的世界坐标,然后将其用于我拥有的所有其他图像,我可以提取每个图像中参考星的像素坐标。这将允许我计算班次,从而对齐数据。

关于我的麻烦:

按照有关从带有 astropy 的 fit 标头获取 wcs 的文档,我遇到了以下错误:

警告:FITSFixedWarning:EPOCH = '2015.5' / RA 和 12 月的 Epoch(年)预期为浮点值。[astropy.wcs.wcs]

纪元很奇怪,因为望远镜无法使用 2000 年的纪元进行旋转,因此系统将其转换为当前年份以正确转换 RA 和 DEC,我相信这就是标题中列出的内容。如果我从这里按下并尝试将像素坐标转换为世界坐标,那么我最终会再次得到像素坐标,所以很明显这是行不通的。然后我的想法是为每个图像手动创建一个 WCS 对象,但我不能真正遵循 astropy 文档在这方面做得很好。当我似乎只知道 RA 和标头中的 Dec 时,wcs 对象的属性让我感到困惑。

有人可以帮我解决这个问题吗?

请不要告诉我使用 imstar,因为这需要我将 wfctools 安装到 IRAF 并且每个人都知道 IRAF 是一个挑剔的野兽,我可能会破坏它。

谢谢!

PS:希望有人仍然愿意在这里帮助我,但至于我的借口夏季季度结束了,这个问题就放在一边度假了。但是,我想恢复它并解决它以及改写它。

从本质上讲,我的大学有一台只有本科生真正使用的望远镜,因为它是当今标准的最低研究等级。因此,对于天文学本科生来说,驾驶 30 英寸望远镜是一个很好的练习。最终,图像上的拟合标题不包括世界坐标系 (WCS),我认为这是一个问题,因为我觉得如果所有图像都有 WCS,那么批量对齐图像会容易得多。所以我想要做的是正确地将 WCS 添加到图像标题中,我对如何做没有太多的想法。

我的第一次尝试是在 astropy 中测试制作 WCS,我将提供一些初步代码,但它们充满了失败,因为制作 WCS 的关键词让我感到困惑。我在这里找到了关于 WCS 的很好的描述和可能的教程:http: //astroweb.iag.usp.br/~moser/notes/GAi_FITSimgs.html

这是我尝试制作 WCS 的代码(有点可悲):

我相信我需要进一步填写 WCS 参数的详细信息,包括缺少的参数,所以有人可以帮我解决这个问题吗?

0 投票
2 回答
894 浏览

python - 使用导数确定二维数组中局部最大值的坐标

我有一个fits图像,我试图在我的图像中找到局部最大值的坐标,但到目前为止我还不能让它工作。我的图片可以在这里找到。到目前为止我所拥有的是

这就是我如何找到图像的全局最大值,但我想获得具有大于 3 意义的局部最大值的坐标。

我通过在网上查找发现以下答案在我的情况下无法正常工作。 更新:我用过这个功能

我想找到一种使用更好方法的方法,例如数组中的导数或分治法。我将寻求更好的推荐解决方案。

0 投票
1 回答
1976 浏览

python - 安装astropy的问题

我在为 python安装astropy时遇到问题。当我在终端中输入“pip install astropy”时,我收到以下消息:

任何人都知道为什么会这样?