yt 3.4 release notes
The yt community is proud to announce the release of yt 3.4.0. This is a major release and includes a number of new features, minor improvements, and bugfixes.
yt (http://yt-project.org) is an open source, community developed toolkit for the analysis and visualization of volumetric data.
Since our last major release we have moved code hosting to GitHub. If you are interested in contributing to yt, please see our new home at http://github.com/yt-project/yt.
In addition, we have merged 450 pull requests from 44 contributors, including 19 new contributors:
- Alexander Lindsay
- Andrew Myers
- Austin Gilbert
- Avik Laha
- Ben Keller
- Benjamin Thompson
- Bili Dong
- Britton Smith
- Cameron Hummels
- Chang-Goo Kim
- Corentin Cadiou
- David Hannasch
- Enrico Garaldi
- Fabian Koller
- Hilary Egan
- Hsi-Yu Schive
- Hugo Pfister
- Jared Coughlin
- Jill Naiman
- John McCann
- John Regan
- John Wise
- John ZuHone
- Jonah Miller
- Joseph Smidt
- Kacper Kowalik
- Kausik Venkat
- Marianne Corvellec
- Mark Richardson
- Matthew Krafczyk
- Matthew Turk
- Michael Zingale
- Nathan Goldbaum
- Nicholas Earl
- Rafael Ruggiero
- Rasmi Elasmar
- Robert Thompson
- Sam Skillman
- Salvatore Cielo
- Suoqing Ji
- Ting-Wai To
- Weiguang Cui
- Yi-Hao Chen
- Yinghe Lu
The bolded names indicate first-time contributors. We extend our sincere gratitude to everyone who has contributed!
See the changelog below for a summary of new features, changes, and bugfixes.
For more information, including installation instructions, links to community resources, and information on contributing to yt’s development, please see the yt homepage at http://yt-project.org and the documentation for yt 3.4.0 at http://yt-project.org/docs/3.4.0.
Binaries for yt 3.4.0 are available via
conda. If you installed via the install script or use
conda to manage your python installation, you can update yt via:
$ conda update -c conda-forge yt
pip if you manage your python installation with
$ pip install -U yt
As always, if you have any questions, concerns, or run into any trouble updating please don’t hesitate to send a message to the mailing list or stop by our Slack or IRC channel.
yt is the product of a large community of developers and users and we are extraordinarily grateful for and proud of their contributions. Please forward this announcement on to any interested parties.
The yt development team
Major Changes and New Features
- yt now supports displaying plots using the interactive matplotlib backends. To enable this functionality call
yt.toggle_interactivity(). This is currently supported at an experimental level, please let us know if you come across issues using it. See Bitbucket PR 2294.
- The yt configuration file should now be located in a location following the XDG_CONFIG convention (usually
~/.config/yt/ytrc) rather than the old default location (usually
~/.yt/config). You can use
yt config migrate at the bash command line to migrate your configuration file to the new location. See Bitbucket PR 2343.
yt.LinePlot, a new plotting class for creating 1D plots along lines through a dataset. See Github PR 1509 and Github PR 1440.
yt.define_unit to easily define new units in yt’s unit system. See Bitbucket PR 2485.
yt.plot_2d, a wrapper around SlicePlot for plotting 2D datasets. See Github PR 1476.
- We have restored support for boolean data objects. Boolean objects are data objects that are defined in terms of boolean operations on other data objects. See Bitbucket PR 2257.
- Datasets now have a
fields attribute that allows access to fields via a python object. For example, instead of using a tuple field name like
('gas', 'density'), one can now use
ds.fields.gas.density. See Bitbucket PR 2459.
- It is now possible to create a wider variety of data objects via
ds.r, including rays, fixed resolution rays, points, and images. See Github PR 1518 and Github PR 1393.
ds.add_field must now be called with a
sampling_type keyword argument. Possible values are currently
particle. We have also deprecated the
particle_type keyword argument in favor of
sampling_type='cell'. For now a
sampling_type is assumed if
sampling_type is not specified but in the future
sampling_type will always need to be specified.
- Added support for the
Athena++ code. See Bitbucket PR 2149.
- Added support for the
Enzo-p code. See Github PR 1447, Github PR 1443 and Github PR 1439.
- Added support for the
AMReX code. See Bitbucket PR 2530.
- Added support for the
openPMD output format. See Bitbucket PR 2376.
- Added support for reading face-centered and vertex-centered fields for block AMR codes. See Bitbucket PR 2575.
- Added support for loading outputs from the Amiga Halo Finder. See Github PR 1477.
- Added support for particle fields for Boxlib data. See Bitbucket PR 2510 and Bitbucket PR 2497.
- Added support for custom RAMSES particle fields. See Github PR 1470.
- Added support for RAMSES-RT data. See Github PR 1456 and Github PR 1449.
- Added support for Enzo MHDCT fields. See Github PR 1438.
- Added support for units and particle fields to the GAMER frontend. See Bitbucket PR 2366 and Bitbucket PR 2408.
- Added support for type 2 Gadget binary outputs. See Bitbucket PR 2355.
- Added the ability to detect and read double precision Gadget data. See Bitbucket PR 2537.
- Added the ability to detect and read in big endian Gadget data. See Github PR 1353.
- Added support for Nyx datasets that do not contain particles. See Bitbucket PR 2571
- A number of untested and unmaintained modules have been deprecated and moved to the yt attic repository. This includes the functionality for calculating two point functions, the Sunrise exporter, the star analysis module, and the functionality for calculating halo mass functions. If you are interested in working on restoring the functionality in these modules, we welcome contributions. Please contact us on the mailing list or by opening an issue on GitHub if you have questions.
- The particle trajectories functionality has been removed from the analysis modules API and added as a method of the
DatasetSeries object. You can now create a
ParticleTrajectories object using
ts is a time series of datasets.
spectral_integrator analysis module is now available via
yt.fields.xray_emission_fields. See Bitbucket PR 2465.
photon_simulator analysis module has been deprecated in favor of the
pyXSIMpackage, available separately from
yt. See Bitbucket PR 2441.
yt.utilities.fits_image is now available as
yt.visualization.fits_image. In addition classes that were in the
yt.utilities.fits_image namespace are now available in the main
profile.variance attribute has been deprecated in favor of
number_of_particles key no longer needs to be defined when loading data via the stream frontend. See Github PR 1428.
- The install script now only supports installing via miniconda. We have removed support for compiling python and yt’s dependencies from source. See Github PR 1459.
PhasePlot plots. This lets users specify a color to fill in the background of a plot instead of the default color, white. See Bitbucket PR 2513.
PlotWindow plots can now optionally use a right-handed coordinate system. See Bitbucket PR 2318.
- The isocontour API has been overhauled to make use of units. See Bitbucket PR 2453.
Dataset instances now have a
checksum property, which can be accessed via
ds.checksum. This provides a unique identifier that is guaranteed to be the same from session to session. See Bitbucket PR 2503.
- Added a
data_source keyword argument to
OffAxisProjectionPlot. See Bitbucket PR 2490.
- Added a
yt download command-line helper to download test data from http://yt-project.org/data. For more information see
yt download --help at the bash command line. See Bitbucket PR 2495 and Bitbucket PR 2471.
- Added a
yt upload command-line helper to upload files to the yt curldrop at the bash command line. See Github PR 1471.
- If it’s installed, colormaps from the cmocean package will be made available as yt colormaps. See Bitbucket PR 2439.
- It is now possible to visualize unstructured mesh fields defined on multiple mesh blocks. See Bitbucket PR 2487.
- Add support for second-order interpolation when slicing tetrahedral unstructured meshes. See Bitbucket PR 2550.
- Add support for volume rendering second-order tetrahedral meshes. See Bitbucket PR 2401.
- Add support for QUAD9 mesh elements. See Bitbucket PR 2549.
- Add support for second-order triangle mesh elements. See Bitbucket PR 2378.
- Added support for dynamical dark energy parameterizations to the
Cosmology object. See Bitbucket PR 2572.
ParticleProfile can now handle log-scaled bins and data with negative values. See Bitbucket PR 2564 and Github PR 1510.
- Cut region data objects can now be saved as reloadable datasets using
save_as_dataset. See Bitbucket PR 2541.
- Clump objects can now be saved as reloadable datasets using
save_as_dataset. See Bitbucket PR 2326.
- It is now possible to specify the field to use for the size of the circles in the
annotate_halos plot modifying function. See Bitbucket PR 2493.
ds.max_level attribute is now a property that is computed on demand. The more verbose
ds.index.max_level will continue to work. See Bitbucket PR 2461.
PointSource volume rendering source now optionally accepts a
radius keyword argument to draw spatially extended points. See Bitbucket PR 2404.
- It is now possible to save volume rendering images in eps, ps, and pdf format. See Github PR 1504.
Minor Enhancements and Bugfixes
- Fixed issue selecting and visualizing data at very high AMR levels. See Github PR 1521and Github PR 1433.
- Print a more descriptive error message when defining a particle filter fails with missing fields See Github PR 1517.
- Removed grid edge rounding from the FLASH frontend. This fixes a number of pernicious visualization artifacts for FLASH data. See Github PR 1493.
- Parallel projections no longer error if there are less io chunks than MPI tasks. See Github PR 1488.
- A memory leak in the volume renderer has been fixed. See Github PR 1485 and Github PR 1435.
force_override keyword argument now raises an error when used with on-disk fields. See Github PR 1516.
- Restore support for making plots from reloaded plots. See Github PR 1514
- Don’t ever try to read inputs or probin files for Castro and Maestro. See Github PR 1445.
- Fixed issue that caused visualization artifacts when creating an off-axis projection for particle or octree AMR data. See Github PR 1434.
- Fix i/o for the Enzo
'Dark_Matter_Density' field. See Github PR 1360.
- Create the
'particle_ones' field even if we don’t have a particle mass field. See Github PR 1424.
- Fixed issues with minor colorbar ticks with symlog colorbar scaling. See Github PR 1423.
- Using the rockstar halo finder is now supported under Python3. See Github PR 1414.
- Fixed issues with orientations of volume renderings when compositing multiple sources. See Github PR 1411.
- Added a check for valid AMR structure in
load_amr_grids. See Github PR 1408.
- Fix bug in handling of periodic boundary conditions in the
annotate_halos plot modifying function. See Github PR 1351.
- Add support for plots with non-unit aspect ratios to the
annotate_scale plot modifying function. See Bitbucket PR 2551.
- Fixed issue with saving light ray datasets. See Bitbucket PR 2589.
- Added support for 2D WarpX data. ee Bitbucket PR 2583.
- Ensure the
particle_radius field is always accessed with the correct field type. See Bitbucket PR 2562.
- It is now possible to use a covering grid to access particle filter fields. See Bitbucket PR 2569.
- The x limits of a
ProfilePlot will now snap exactly to the limits specified in calls to
ProfilePlot.set_xlim. See Bitbucket PR 2546.
- Added a cookbook example showing how to make movies using matplotlib’s animation framework. See Bitbucket PR 2544.
- Use a parallel-safe wrapper around mkdir when creating new directories. See Bitbucket PR 2570.
yt.utilities.spatial. This was a forked version of
scipy.spatial with support for a periodic KD-tree. Scipy now has a periodic KD-tree, so we have removed the forked version from yt. Please use
scipy.spatial if you were relying on
yt.utilities.spatial. See Bitbucket PR 2576.
- Improvements for the
HaloCatalog. See Bitbucket PR 2536 and Bitbucket PR 2535.
'log' in colorbar label in annotated volume rendering. See Bitbucket PR 2548
- Fixed a crash triggered by depositing particle data onto a covering grid. See Bitbucket PR 2545.
- Ensure field type guessing is deterministic on Python3. See Bitbucket PR 2559.
- Removed unused yt.utilities.exodusII_reader module. See Bitbucket PR 2533.
cell_volume field in curvilinear coordinates now uses an exact rather than an approximate definition. See Bitbucket PR 2466.