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调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型