yt is an open-source, permissively-licensed python package for analyzing and visualizing volumetric data.
yt supports structured, variable-resolution meshes, unstructured meshes, and discrete or sampled data such as particles. Focused on driving physically-meaningful inquiry, yt has been applied in domains such as astrophysics, seismology, nuclear engineering, molecular dynamics, and oceanography. Composed of a friendly community of users and developers, we want to make it easy to use and develop - we'd love it if you got involved!
We've written a method paper you may be interested in; if you use yt in the preparation of a publication, please consider citing it.
yt abides by a code of conduct partially modified from the PSF code of conduct, and is found in our contributing guide.
You can install the most recent stable version of yt either with conda from conda-forge:
conda install -c conda-forge yt
or with pip:
pip install yt
To get set up with a development version, you want to clone this repository:
git clone https://github.com/yt-project/yt yt-git
cd yt-git
and work within a conda environment:
# Create a conda environment named yt-git
$ conda create -n yt-git python=3.6
# Activate it
$ source activate yt-git
# Make sure you run the latest version of conda
$ conda update conda
# Install yt's runtime dependencies
$ conda install -c conda-forge yt --only-deps
# Install yt's build dependencies
$ conda install -c conda-forge cython
# Make sure you run the latest version of pip
$ pip install --upgrade pip
$ pip install -v -e .
# Output installed packages
$ conda env export
Alternatively, you can install yt in a virtualenv:
# It is conventional to create virtualenvs at ~/.virtualenv/
$ mkdir -p ~/.virtualenv
# Assuming your version of Python 3 is 3.4 or higher,
# create a virtualenv named yt-git
$ python3 -m venv ~/.virtualenv/yt-git
# Activate it
$ source ~/.virtualenv/yt-git/bin/activate
# Make sure you run the latest version of pip
$ pip install --upgrade pip
# Assuming you have cd'd into yt-git
$ pip install -e .
# Output installed packages
$ pip freeze
yt is designed to provide meaningful analysis of data. We have some Quickstart example notebooks in the repository:
- Introduction
- Data Inspection
- Simple Visualization
- Data Objects and Time Series
- Derived Fields and Profiles
- Volume Rendering
If you'd like to try these online, you can visit our yt Hub and run a notebook next to some of our example data.
We love contributions! yt is open source, built on open source, and we'd love to have you hang out in our community.
We have developed some guidelines for contributing to yt.
Imposter syndrome disclaimer: We want your help. No, really.
There may be a little voice inside your head that is telling you that you're not ready to be an open source contributor; that your skills aren't nearly good enough to contribute. What could you possibly offer a project like this one?
We assure you - the little voice in your head is wrong. If you can write code at all, you can contribute code to open source. Contributing to open source projects is a fantastic way to advance one's coding skills. Writing perfect code isn't the measure of a good developer (that would disqualify all of us!); it's trying to create something, making mistakes, and learning from those mistakes. That's how we all improve, and we are happy to help others learn.
Being an open source contributor doesn't just mean writing code, either. You can help out by writing documentation, tests, or even giving feedback about the project (and yes - that includes giving feedback about the contribution process). Some of these contributions may be the most valuable to the project as a whole, because you're coming to the project with fresh eyes, so you can see the errors and assumptions that seasoned contributors have glossed over.
(This disclaimer was originally written by Adrienne Lowe for a PyCon talk, and was adapted by yt based on its use in the README file for the MetPy project)
We have some community and documentation resources available.
- Our latest documentation is always at http://yt-project.org/docs/dev/ and it includes recipes, tutorials, and API documentation
- The discussion mailing list should be your first stop for general questions
- The development mailing list is better suited for more development issues
- You can also join us on Slack at yt-project.slack.com (request an invite)
yt is a fiscally sponsored project of NumFOCUS. If you're interested in supporting the active maintenance and development of this project, consider donating to the project.