Skip to main content

Routines for converting to and from VICAR image files

Project description

GitHub release; latest by date GitHub Release Date Test Status Documentation Status Code coverage
PyPI - Version PyPI - Format PyPI - Downloads PyPI - Python Version
GitHub commits since latest release GitHub commit activity GitHub last commit
Number of GitHub open issues Number of GitHub closed issues Number of GitHub open pull requests Number of GitHub closed pull requests
GitHub License Number of GitHub stars GitHub forks

Introduction

vicar is a Python module that supports reading and writing of JPL's VICAR file format. It supports the definition of the VICAR file format as found here: https://pds-rings.seti.org/help/VICAR_file_fmt.pdf

Installation

The vicar module is available via the rms-vicar package on PyPI and can be installed with:

pip install rms-vicar

Getting Started

The vicar module provides these classes:

  • VicarLabel: Class for reading, writing, and parsing of VICAR labels.
  • VicarImage: Class for handling VICAR image (and other) data files.
  • VicarError: Extension of class ValueError to contain exceptions.

Details of each class are available in the module documentation.

To read a VICAR image file:

import vicar
vic = vicar.VicarImage("path/to/file")

(The file path can be any URL accepted by FCPath.)

The resulting object contains:

  • vic.array: The 3-D data array converted to native format.
  • vic.array2d: Same as above, but with leading dimension (typically, bands) stripped.
  • vic.prefix: The array prefix bytes as a 3-D array of unsigned bytes.
  • vic.prefix2d: Same as above, but with the leading dimension stripped.
  • vic.binheader: The binary header as a bytes object; use vic.binheader_array() to extract information.
  • vic.label: The internal VicarLabel object that manages the VICAR label information, if direct access is needed.

VICAR parameter values can be extracted from the label using dictionary-like syntax:

  • len(vic): The number of parameters in the VICAR label.
  • vic['LBLSIZE']: The value of the LBLSIZE parameter (an integer).
  • vic[0]: The value of the first parameter.
  • vic[-1]: The value of the last parameter.
  • vic['LBLSIZE',-1]: The value of the last occurrence of the LBLSIZE parameter.
  • vic.get(('LBLSIZE',2), 99): The value of the third occurrence of the LBLSIZE parameter, or 99 if there are fewer than 3 occurrences.
  • vic.arg('LBLSIZE'): The numeric index of "LBLSIZE" among the VICAR parameters.

You can also use dictionary-like syntax to modify and insert header values:

  • vic['SOLDIST'] = 1.e9: Set SOLDICT to this value.
  • del vic['SOLDIST',0]: Remove the first occurrence of SOLDIST from the label.
  • vic['LBLSIZE+'] = 2000: Insert a new LBLSIZE parameter instead of modifying an existing one.

Note that certain required VICAR parameters contain structural information about the file; these cannot generally be modified directly.

Numerous methods are available to iterate over the VICAR label parameters:

for (name,value) in vic.items(): ...
for key in vic.keys(): ...
for name in vic.names(): ...
for value in vic.values(): ...

Iterators can take a regular expression as input to restrict the items returned:

for value in vic.values(r'LAB\d\d'): ...

Use str(vic) to get the VICAR label content represented as a string.

Here are the steps to create and write a VICAR image file:

import vicar
vic = vicar.VicarImage()
vic.array = array
vic.prefix = prefix
vic.binheader = binheader
vic['NOTES'] = ['add as many more VICAR parameters', 'as you wish']
vic.write_file("path/to/file")

Contributing

Information on contributing to this package can be found in the Contributing Guide.

Links

Licensing

This code is licensed under the Apache License v2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rms_vicar-1.2.0.tar.gz (5.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rms_vicar-1.2.0-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

Details for the file rms_vicar-1.2.0.tar.gz.

File metadata

  • Download URL: rms_vicar-1.2.0.tar.gz
  • Upload date:
  • Size: 5.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rms_vicar-1.2.0.tar.gz
Algorithm Hash digest
SHA256 bd3893827879fa7b96070863516a03808a850b429b8f822704de372c260823db
MD5 73c567186a01ac71b20d08945ed6c3be
BLAKE2b-256 a7eb22c3636bef03f867d8f7f54a9d772d5f9b47497eb59d49c6caf4d1fa5d3c

See more details on using hashes here.

File details

Details for the file rms_vicar-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: rms_vicar-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 41.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rms_vicar-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5937af61160ec69c9d9c698fa99e72889e206a78beca98ac3ef78da67a3a8bd1
MD5 11b4c5bfc1307c3d401637c10e69b61c
BLAKE2b-256 c8f0756faca77425f1bb2996ae90afb605fcc35ed664739b979efb9f232526cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page