Metadata-Version: 2.0
Name: vtrtool
Version: 0.1.1
Summary: Python utilities for Fullwave3D VTR model files
Home-page: http://not-yet
Author: Tim Lin (Sub Salt Solutions)
Author-email: tim.lin@sub-salt.com
License: 3-clause BSD
Keywords: fullwave3d vtr
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: BSD License
Requires-Dist: docopt
Requires-Dist: numpy

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

