Tool to manipulate and aggregate data
Project description
Tomate
Tool to Manipulate and Aggregate data
Tomate is a Python package that provides ways to manipulate data under the form of multi-dimensional arrays. It manages multiples variables, as well as the coordinates along which those variables vary. It also provides multiple convenience functions to retrieve subparts of the data, do simple computations, or plot the data.
The data can be retrieved from disk, where it can be arranged in multiple ways and formats. Information on the data, such as variable attributes, or coordinates values can be retrieved automatically.
Features
For data in memory:
- Keep information about the data, the variables, the coordinates. All this information is in sync with the data.
- Select subparts of data easily, by index or by value.
- Support for date & time dimensions.
- Use and create convenience function for analysis, plotting,...
For data on disk:
- Load data that spans multiple files and comes from different sources easily. Different file format ? different structure: rows or columns first ? indexing origin lower or upper ? a varying number of time steps for each file ? This is now all a breeze !
- Scan the files automatically to find values of coordinates, variables attributes, data indexing,...
- Load only subparts of data.
- Logs will ensure you are loading what you want to load.
And in general:
- Highly modulable, can be tailored to your needs.
- Fully documented.
Get started up with a couple of lines and a NetCDF file:
from tomate.scan_library.nc import scan_file
db = scan_file("/your_file.nc")
print(db)
db.load()
For a simple showcase of some of Tomate capabilities, take a look at the get_started notebook.
Documentation
Documentation is available online at ReadTheDocs
Warning
As of now, this only supports NetCDF files out of the box. But the package can be easily extended for other file formats. See the section 'Expanding Tomate' of the documentation.
Only tested for linux.
The code has not been extensively tested for all the possible use cases it supports, and is evolving quickly. I recommend you check thorougly in the logs that the correct files are opened, and that the correct slices of data are taken from thoses files. See the documentation on logging for more information.
Features supplied in 'data_write', that allow to save a database information in a json file to avoid re-scanning it each time, is to be considered very experimental, (and is currently heavily out-of-date).
Requirements
Tomate requires python >=3.7. Tomate requires the following python packages:
- numpy
Optional dependencies:
- [time] cftime>=1.1.3 - To manage dates in time coordinates
- [netcdf] netcdf4-python - To open netCDF4 files
- [plot] matplotlib - To create plots easily
- [compute] scipy - To do various computation on the data
Install
The package is distributed through PyPI. To install, run:
pip install tomate-data
To add optional dependencies:
pip install tomate-data [feature name]
Feature name can be Time, NetCDF, Plot, Compute.
The code is evolving quickly, it is recommended to upgrade it regurlarly:
pip install --upgrade tomate-data
Or to even install it directly from the development branch.
This will place the package files in ./src
, from where you just have to do a git pull
to update from the latest commit:
pip install -e git+https://github.com/Descanonge/tomate.git@develop#egg=tomate-data
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
File details
Details for the file tomate-data-2.2.2.tar.gz
.
File metadata
- Download URL: tomate-data-2.2.2.tar.gz
- Upload date:
- Size: 85.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2d17c668a343f03335b8dac60f703d733ab5d1b3f4e9703ec21f4cdd2b90a24 |
|
MD5 | 16a306e7186e1a74a697153ddfb9b844 |
|
BLAKE2b-256 | e3eb4ce22335772e4e23a25a3e2d0679d539c8309105fc7ada6e0f0ddcc4881d |
File details
Details for the file tomate_data-2.2.2-py3-none-any.whl
.
File metadata
- Download URL: tomate_data-2.2.2-py3-none-any.whl
- Upload date:
- Size: 105.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1996408bc77e0d503a25f7cd6ed89d18cc969b2fdcd15b708b8ad704742c274f |
|
MD5 | e46a68c5ff0b73da293926e650667ec6 |
|
BLAKE2b-256 | b91923767e96d5ff731b1fb7edd72e4ea0d61e887f828d0b5d37bb5d1fc0206f |