Use neural networks to approximate polarized synchrotron radiative transfer coefficients

neural-networks radiative-transfer science, neural-networks, radiative-transfer, science, synchrotron-radiation
pip install neurosynchro==0.1.4



Neurosynchro is a small Python package for creating and using neural networks to quickly approximate the coefficients needed for fully-polarized synchrotron radiative transfer. It builds on the Keras deep learning library.

Say that you have a code — such as Rimphony or Symphony — that calculates synchrotron radiative transfer coefficients as a function of some input model parameters (electron temperature, particle energy index, etc.). These calculations are often accurate but slow. With neurosynchro, you can train a neural network that will quickly approximate these calculations with good accuracy. The achievable level of accuracy will depend on the particulars of your target distribution function, range of input parameters, and so on.

This code is specific to synchrotron radiation because it makes certain assumptions about how the coefficients scale with input parameters such as the observing frequency.

Neurosynchro is written by Peter K. G. Williams (


Neurosynchro’s documentation is on ReadTheDocs.


  • keras version 2.1 or greater.
  • numpy version 1.10 or greater.
  • pandas version 0.23.0 or greater.
  • pwkit version 0.8.19 or greater.
  • pytoml version 0.1.0 or greater.
  • six version 1.10 or greater.

Recent Changes

See the changelog.

Copyright and License

This code is copyright Peter K. G. Williams and collaborators. It is licensed under the MIT License.