Pysis
Toolkit for using USGS Isis in Python.
Free software: BSD license
Documentation: http://pysis.readthedocs.org.
How to install
At the command line:
$ easy_install pysis
Or, if you have virtualenvwrapper installed:
$ mkvirtualenv pysis $ pip install pysis
Dependencies
For working with ISIS commands, you must firts have USGS ISIS 3 installed on your machine. See the ISIS 3 installation guide for further instructions. Remember to set your environmental variables (see step 4 of USGS ISIS guide) so Pysis knows where your installation is.
Quickstart Guide
How to write ISIS 3 code in python using Pysis.
Using ISIS 3 at the command line you might want to run the following basic commands (examples for the MDIS camera on the MESSENGER mission):
mdis2isis from=filename.IMG to=filename.cub spiceinit from=filename.cub mdiscal from=filename.cub to=filename.cal.cub
using Pysis the syntax is:
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)
You will notice that we use the keyword from_ when we call a command because from is a reserved word in python.
Numerical and String Arguments
Here is an example of the maptemplate and cam2map commands in Pysis:
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')
Getting values from ISIS commands
Pysis commands will return the command’s STDOUT as a byte string. If the command returns a nonzero exit code, a ProcessError will be thrown. This example command uses getkey to receive values from the label of an ISIS cube:
from pysis.isis import getkey
value = getkey(from_='W1467351325_4.map.cal.cub',
keyword='minimumringradius', grp='mapping')
Catching ProcessingErrors
Pysis supports catching ISIS processing errors like so:
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)
Multiprocessing Isis Commands with IsisPool
Pysis has built-in support to make multiprocessing isis commands simple. To run the above MDIS calibration script for multiple images in multiple processes we could rewrite the function as so:
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)
When using IsisPool we can’t determine which order commands will be executed in so we much run each command for all the files as a group before moving to the next command and creating a new IsisPool.
History
0.6.0 (2016-05-22)
Support filenames in image constructor. (thanks @michaelaye)
Use pvl for label decoding.
0.5.2 (2015-05-30)
Relicense as BSD.
0.5.1 (2015-05-18)
Add support for line comments.
Fix packages in setup.py. (thanks @michaelaye)
0.5.0 (2015-04-18)
Add support for python 2.6/3.3/3.4
Simplified command api.
Labels package now shares the json module api.
Label parser now fully conforms to the PVL spec.
Add label encoder.
0.4.0 (2015-03-21)
First release on PyPI.
Metadata
Release files for pysis 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pysis-0.6.0.tar.gz | 78.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysis-0.6.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 97.1 kB
Release files / pysis-0.6.0.tar.gz
| Download URL | pysis-0.6.0.tar.gz |
|---|---|
| Size | 78.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebbfbf68f7bc5125395b3e9452a63696bce29d556ef958e8ff4343e80311ba8f
|
|
BLAKE2b-256 checksum How to use checksums |
9fb52ea3de1f69827039e5d3cc03b3338fba82885ad601f6a8ee03e29e4368fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / pysis-0.6.0-py2.py3-none-any.whl
| Download URL | pysis-0.6.0-py2.py3-none-any.whl |
|---|---|
| Size | 18.4 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
dd01ec46b488ccccd487bd9f7af8ce187b2fb7b83d66afa6f9ca77397275887f
|
|
BLAKE2b-256 checksum How to use checksums |
58bca09940aca56afb9c7d16a5fb086e4278042f572410322426affc509173f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for pysis 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.