Skip to main content

Python utilities for Fullwave3D VTR model files

Project description

VTRTool
=======

[![PyPI Listing](https://img.shields.io/pypi/v/vtrtool.svg)](https://pypi.python.org/pypi/vtrtool)

Python utilities for Fullwave3D VTR model files.

The package contains a `vtrtool` executable, as well as a `vtrtool.py` python package

Installation
------------------------------------------

This tool can be obtained from PyPI. Simply do:

```
pip install vtrtool
```

`vtrtool` executable quick usage
------------------------------------------

- `vtrtool -h` to show usage information
- `vtrtool info my_model_file.vtr` shows metadata info for `my_model_file.vtr`
- `vtrtool to_binary --property=2 my_model_file.vtr my_model_file.bin` to dump the 2nd property from `my_model_file.vtr` to the float32 raw binary file `my_model_file.bin`
- `vtrtool to_stdout my_model_file.vtr` to pipe the 1st property (default) from `my_model_file.vtr` to `stdout` in raw float32 binary format

`vtrtool.py` Python module quick usage
------------------------------------------

The `vtrtool.VTRModel` class represents a vtr model that lives at a given filename. The file will be parsed on object initialization:

```
import vtrtool

vtr_model = vtrtool.VTRModel("my_model_file.vtr")

# print model properties to stdout
vtrtool.print_vtr_metadata(vtr_model)

# model property 1 will be available as numpy ndarray in
vtrtool.arrays[0]

# model property 2 (if it exists) will be available as numpy ndarray in
vtrtool.arrays[1]

# etc...
```

The following instance properties exist for VTRModel:

- `file`: (str) the vtr filename referenced by the VTRModel object
- `num_dimensions`: (int) number of dimensions in the model
- `num_attributes`: (int) number of properties in the model
- `shape`: (tuple of ints) shape (c-based) of numpy ndarray holding the models in the order `(nx3, nx2, nx1)`
- `shape_fortran`: (tuple of ints) shape (fortran-based) of the models in the order `(nx1, nx2, nx3)`
- `nx1`: (int) number of cells in the 1st (fastest, usually z) dimension
- `nx2`: (int) number of cells in the 2nd (usually y) dimension
- `nx3`: (int) number of cells in the 3rd (usually x) dimension
- `arrays`: (list of ndarrays) holds the model property ndarrays, the length of the list correspond to the number of model properties (i.e., property 1 is in model[0]), and the shape of the ndarray will correspond to `shape` and with the number of dimensions in `num_dimensions`

Some convenience functions:

- `vtrtool.vtrfile_to_ndarray(filename, prop_index=0)` quickly takes a vtr file and returns the property specified by `prop_index` as an ndarray
- `vtrtool.print_vtr_metadata(vtrmodel_object)` takes a VTRModel object and prints dimension information to stdout


**Maintained by**

Tim Lin <tim.lin@sub-salt.com>, 2017

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

vtrtool-0.1.1.tar.gz (5.3 kB view hashes)

Uploaded Source

Built Distribution

vtrtool-0.1.1-py2.py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

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