Routines for reading PDS3 tables
Project description
Introduction
pdstable contains a class, PdsTable, that can read PDS3 or PDS4 labels and their associated
tables.
pdstable is a product of the PDS Ring-Moon Systems Node.
Installation
The pdstable module is available via the rms-pdstable package on PyPI and can be installed with:
pip install rms-pdstable
Getting Started
The pdstable module provides the PdsTable class, which can be used to read both
PDS3 (.lbl) and PDS4 (.lblx or .xml) labels and their associated tables. A PdsTable
object can be created easily:
from pdstable import PdsTable
p3 = PdsTable('label_filename.lbl') # PDS3 label and table
p4 = PdsTable('label_filename.xml') # PDS4 label and table
Once created, the PdsTable object has properties that can be used to access the
contents of the table. Columns of values are represented by NumPy arrays.
rows = p3.rows # The number of rows
columns = p3.columns # The number of columns
col_vals = p3.get_column("FILE_SPEC") # All values in the FILE_SPEC column
col_mask = p3.get_column_mask("FILE_SPEC") # The mask of invalid values
The entire table can be returned as a series of dictionaries, one per row. The dictionary keys are the names of the columns:
as_dicts = p3.dicts_by_row()
PDS3 labels can only point to a single table. However, PDS4 labels can point to multiple tables. If multiple tables are present in the label, you must specify which table you want to read. This can be done using an integer index or specifying a filename or regular expression:
p4 = PdsTable('multi_table_label.xml', table_file=3) # Load the 3rd table
p4 = PdsTable('multi_table_label.xml', table_file='.*summary_index.*')
A wide variety of other features are available, many of which are designed to increase performance. These include:
- Specifying a subset of columns to parse.
- Reading only a subset of rows.
- Using a faster but less rigorous label parser for PDS3 labels.
- Searching for rows with a specific volume or bundle name and/or file specification.
Full details can be found in the module documentation.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rms_pdstable-1.0.3.tar.gz.
File metadata
- Download URL: rms_pdstable-1.0.3.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cfc8275464fac986829bdd87b9904157d0d1a0b732b0bb923048113d91cdf9d
|
|
| MD5 |
adccdd503a1f18839751662a3fbfb7fb
|
|
| BLAKE2b-256 |
b46f2446dc9f416fa5e377970a58226072bfb3699aeb828347fcdd4c499cb982
|
File details
Details for the file rms_pdstable-1.0.3-py3-none-any.whl.
File metadata
- Download URL: rms_pdstable-1.0.3-py3-none-any.whl
- Upload date:
- Size: 29.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57180dfba8adeeebca8a28fab68056780cc290e77ff3b4ea7b8d13326420a05e
|
|
| MD5 |
66d4b3cd76802a2abe04b63beece8a12
|
|
| BLAKE2b-256 |
50c1d787e63fd7aa8286a4a79ab0579424cf7bcbba5c0bf07a6212fec3b3a0a0
|