跳转到主要内容

Python的Cutout库

项目描述

https://img.shields.io/pypi/v/cadccutout.svg

使用Astropy API编写的Python Cutout库

安装

可以使用Python 2.7或3.X中的pip install cadccutout进行安装。

API

执行单向cutout,这意味着库假定一个只能读取一次的输入流,而不是查找。如果请求了多个HDU,则将依次迭代每个HDU并进行比较。使用Astropy的astropy.io.fits.getdata()函数短路单个HDU请求。

Python 3.x在追加到输出流时可能存在潜在问题,因为Astropy错误地将模式设置为防止追加(参见Astropy GitHub 7856)。

示例1

使用cfitsio cutout字符串格式对文件执行cutout。

import tempfile
from cadccutout import OpenCADCCutout

test_subject = OpenCADCCutout()
output_file = tempfile.mkstemp(suffix='.fits')
input_file = '/path/to/file.fits'

# Cutouts are in cfitsio format.
cutout_region_string = '[300:800,810:1000]'  # HDU 0 along two axes.

# Needs to have 'append' flag set.  The cutout() method will write out the data.
with open(output_file, 'ab+') as output_writer, open(input_file, 'rb') as input_reader:
    test_subject.cutout(input_reader, output_writer, cutout_region_string, 'FITS')

示例2(CADC)

从HTTP请求的输入流中执行cutout。

import tempfile
from cadccutout import OpenCADCCutout
from cadcdata import CadcDataClient

test_subject = OpenCADCCutout()
anonSubject = net.Subject()
data_client = CadcDataClient(anonSubject)
output_file = tempfile.mkstemp(suffix='.fits')
archive = 'HST'
file_name = 'n8i311hiq_raw.fits'
input_stream = data_client.get_file(archive, file_name)

# Cutouts are in cfitsio format.
cutout_region_string = '[SCI,10][80:220,100:150]'  # SCI version 10, along two axes.

# Needs to have 'append' flag set.  The cutout() method will write out the data.
with open(output_file, 'ab+') as output_writer:
    test_subject.cutout(input_stream, output_writer, cutout_region_string, 'FITS')

命令行访问

默认安装了可执行文件cadccutout,或者可以使用python -m cadccutout运行模块。

运行

cadccutout -d --infile path/to/source.fits --outfile path/to/output.fits [100:400]

cadccutout -d --infile path/to/source.fits --outfile path/to/output.fits "CIRCLE=10 60 0.5"

在Docker中运行

提供的 Dockerfile 可以用来根据所需的 Python 版本构建镜像。

构建 Python 2.7 的镜像

docker build --build-arg PYTHON_VERSION=2.7 -t opencadc/cadccutout:2.7-alpine .

然后执行它(/usr/src/data 是源文件的存放位置)。这将输出到标准输出

docker run --rm -v $(pwd):/usr/src/data opencadc/cadccutout:2.7-alpine cadccutout --infile /usr/src/data/myfile.fits [100:400]

或者

docker run --rm --mount type=bind,source=$(pwd),target=/usr/src/data opencadc/cadccutout:2.7-alpine cadccutout --infile /usr/src/data/myfile.fits [100:400]

构建 Python 3.6 的镜像

docker build --build-arg PYTHON_VERSION=3.6 -t opencadc/cadccutout:3.6-alpine .

然后执行它(/usr/src/data 是源文件的存放位置)。这将输出到 FITS 文件

docker run --rm -v $(pwd):/usr/src/data opencadc/cadccutout:3.6-alpine cadccutout --infile /usr/src/data/myfile.fits --outfile /usr/src/data/mycutout_0_100_400.fits [100:400]

或者

docker run --rm --mount type=bind,source=$(pwd,target=/usr/src/data opencadc/cadccutout:3.6-alpine cadccutout --infile /usr/src/data/myfile.fits --outfile /usr/src/data/mycutout_0_100_400.fits [100:400]

测试

Docker

最简单的方法是使用 docker 运行它。OpenCADC 提供了 Python 2.7、3.5、3.6 和 3.7 可用的 AstroQuery docker 镜像

在 Docker 中运行测试

您可以将本地开发目录挂载到镜像中,并通过这种方式运行 Python 测试。从 dev(工作)目录内部

Python 3.7

docker run --rm -v $(pwd):/usr/src/app opencadc/astroquery:3.7-alpine python setup.py test

或者

docker run --rm --mount type=bind,source=$(pwd),target=/usr/src/app opencadc/astroquery:3.7-alpine python setup.py test

Python 2.7

docker run --rm -v $(pwd):/usr/src/app opencadc/astroquery:2.7-alpine python setup.py test

或者

docker run --rm --mount type=bind,source=$(pwd),target=/usr/src/app opencadc/astroquery:2.7-alpine python setup.py test

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

cadccutout-0.4.1.tar.gz (23.7 kB 查看哈希值)

上传时间 源代码

支持