在python中使用usgs isis的工具包。
pysis的Python项目详细描述
在python中使用usgs isis的工具包。
- 免费软件:BSD许可证
- 文档:http://pysis.readthedocs.org。
如何安装
在命令行:
$ easy_install pysis
或者,如果安装了virtualenvwrapper:
$ mkvirtualenv pysis $ pip install pysis
依赖性
要使用isis命令,必须首先在 你的机器。请参阅ISIS 3installation guide以获取进一步的说明。 记住设置你的环境变量(参见USGS ISIS指南的第4步) Pysis知道你的安装在哪里。
快速入门指南
如何使用pysis在python中编写isis 3代码。
在命令行使用isis 3,您可能希望运行以下基本 命令(Messenger任务中MDIS相机的示例):
mdis2isis from=filename.IMG to=filename.cub spiceinit from=filename.cub mdiscal from=filename.cub to=filename.cal.cub
使用pysis的语法是:
from pysis.isis import mdis2isis, spiceinit, mdiscal from pysis.util import file_variations def calibrate_mids(img_name): (cub_name, cal_name) = file_variations(img_name, ['.cub', '.cal.cub']) mdis2isis(from_=img_name, to=cub_name) spiceinit(from_=cub_name) mdiscal(from_=cub_name, to=cal_name)
当我们调用命令时,您会注意到我们使用了 from是python中的保留字。
数值和字符串参数
下面是pysis中maptemplate和cam2map命令的示例:
from pysis import isis isis.maptemplate(map='MDIS_eqr.map', projection='equirectangular', clon=0.0, clat=0.0, resopt='mpp', resolution=1000, rngopt='user', minlat=-10.0, maxlat=10.0, minlon=-10.0, maxlon=10.0) isis.cam2map(from_=cal_name, to=proj_name, pixres='map', map='MDIS_eqr.map',defaultrange='map')
从isis命令获取值
pysis命令将以字节字符串的形式返回命令的stdout。如果命令
返回一个非零退出代码,将抛出一个
from pysis.isis import getkey value = getkey(from_='W1467351325_4.map.cal.cub', keyword='minimumringradius', grp='mapping')
捕获处理错误
pysis支持捕获isis,处理如下错误:
from pysis.exceptions import ProcessError from pysis.isis import hi2sis try: hi2isis(from_=filein, to=fileout) except ProcessError as e: print("STDOUT:", e.stdout) print("STDERR:", e.stderr)
使用isispool
的多处理isis命令pysis具有内置的支持,可以简化多处理isis命令。运行 以上MDIS校准脚本针对多个进程中的多个图像 可以这样重写函数:
from pysis import IsisPool from pysis.util import ImageName def calibrate_mdis(images): images = [ImageName(filename) for filename in images] with IsisPool() as isis_pool: for filename in images: isis_pool.mdis2isis(from_=filename.IMG, to=filename.cub) with IsisPool() as isis_pool: for filename in images: isis_pool.spiceinit(from_=filename.cub) with IsisPool() as isis_pool: for filename in images: isis_pool.mdiscal(from_=filename.cub, to=filename.cal.cub)
当使用isispool时,我们无法确定将在哪个顺序中执行命令 因此,在移动到 下一个命令并创建一个新的isispool。
历史记录
0.6.0(2016-05-22)
- 在映像构造函数中支持文件名。(谢谢@michaelaye)
- 使用pvl进行标签解码。
0.5.2(2015-05-30)
- 重新授权为BSD。
0.5.1(2015-05-18)
- 添加对行注释的支持。
- 在setup.py中修复包。(谢谢@michaelaye)
0.5.0(2015-04-18)
- 添加对Python2.6/3.3/3.4的支持
- 简化的命令api。
- labels包现在共享json模块api。
- 标签分析器现在完全符合pvl规范。
- 添加标签编码器。
0.4.0(2015-03-21)
- pypi上的第一个版本。