python中的cutout库

cadccutout的Python项目详细描述


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

使用astropyapi的python编写的cutout库。

安装

可以使用python 2.7或3.x中的pip install cadccutout安装。

API

断流是单向执行的,这意味着库假定 只能读取一次而不是查找的输入流。如果更多 超过一个hdu被请求,然后对每个hdu进行迭代和比较 从上到下。使用 astropyastropy.io.fits.getdata()函数

python 3.x在附加到输出流时有一个潜在的问题 astropy错误地设置了防止追加的模式(请参见Astropy GitHub 7856)。

例1

使用cfitsiocutout字符串格式执行文件的剪切。

importtempfilefromcadccutoutimportOpenCADCCutouttest_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.withopen(output_file,'ab+')asoutput_writer,open(input_file,'rb')asinput_reader:test_subject.cutout(input_reader,output_writer,cutout_region_string,'FITS')

例2(CADC)

从http请求的输入流执行剪切。

importtempfilefromcadccutoutimportOpenCADCCutoutfromcadcdataimportCadcDataClienttest_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.withopen(output_file,'ab+')asoutput_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版本。

为Python2.7构建映像:

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

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

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

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

为python 3.6构建一个映像:

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

然后执行它(/usr/src/data是源文件的位置)。这会将输出发送到fits文件:

docker run --rm-v$(pwd):/usr/src/dataopencadc/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--mounttype=bind,source=$(pwd,target=/usr/src/dataopencadc/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有一个 AstroQuery docker image可用于python中的运行时 2.7、3.5、3.6和3.7。

在Docker中运行测试

您可以将本地dev目录装载到映像并运行python 这样测试。在dev(工作)目录中:

Python3.7:

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

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

Python2.7:

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

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将中心面板添加到“我的内容”窗格时,java GUI对象消失   java无法更新oracle中的clob字段   php Linux+动态插入的Java小程序=在NPObject上调用方法时出错   java JVisualVM探查器代理jar已加载,但代理初始化失败   java Android在运算符和TextView值方面存在问题   用于OpenPGP智能卡小程序的rsa解密APDU   Java GUI按钮不会添加到面板中   java找不到移动图像(或其他可单击对象)的方法   java中Do/While循环的问题   多线程使java程序在没有线程的情况下休眠   java如何在Webflux功能端点的测试中禁用Spring安全性   如果存在后退历史记录,则java WebView仅显示后退按钮   通过USB将Arduino中显示的java错误数据传输到Android   java如何使用安卓 studio从4层父节点firebase获取子节点数据   jpanel中JLabel的java搜索栏   来自gallery/camera的java Android图像预览不同