Metadata-Version: 2.4
Name: jax_radio_tools
Version: 0.1.0
Summary: Tools used for radio emission of air showers in the JAX framework
Author-email: Keito Watanabe <keito.watanabe@kit.edu>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20
Requires-Dist: jax
Requires-Dist: jaxlib
Requires-Dist: typing_extensions
Dynamic: license-file

# jax_radio_tools : A JAXified version of radiotools (in progress!)

Utility functions for radio emission of cosmic rays in the JAX framework. Based on [radiotools](https://github.com/nu-radio/radiotools/tree/master).

## Installation

The tool can easily be installed via `pip`:

```
pip install -U jax_radio_tools
```

which will also install the necessary packages for installation.

## Dependencies
- `jax`
- `jaxlib`
- `numpy >=1.20`
- `typing_extensions`
- `python>=3.11` (May be possible with older python versions, but not yet tested)

## Current implementations

Currently, the following tools are implemented:

### Trace Utilities

These can be accessed via `jax_radio_tools.trace_utils`.

- zero padding
- bandpass filter
- hilbert envelope
- resampler
- trace centering
- relative trace centering 
- signal window truncation

### Shower Utilities

These can be accessed via `jax_radio_tools.shower_utils`.

- calculating arrival times
- calculating gaisser hillas functions (coreas formalism, LR formalism)
- calculating fluences

### Atmosphere model
Following radiotools, an importable module to define the atmosphere. 

These can be accessed via `jax_radio_tools.atmosphere.Atmosphere`.

Current features implemented are:
- calculation of distance from grammages
- calculation of cherenkov angle
- calculation of vertical heights
- calculation of density
- calculation of refractive index
- all atmospheric models from radiotools are supported
- additionally, GDAS atmospheric files are also now supported

### Coordinate system
Following radiotools, we define a cstrafo object that takes care of coordinate systems. This is defined
by a zenith angle, azimuthal angle, and magnetic field vector.

These can be accessed via `jax_radio_tools.cstrafo`.

More implementations to come!

## TODOS

- [ ] include documentation
- [ ] include CI/CD pipeline
- [ ] implement other useful radiotools functions

## LICENSE

This code is under the BSD-3 License. See [LICENSE](LICENSE) for more details.


