BowshockPy#
BowshockPy is an open-source Python package for generating synthetic spectral cubes, position-velocity diagrams, and moment images of an analytical momentum-conserving bowshock model driven by a protostellar jet. The software computes the column densities of the bowshock shell and is capable of estimating the intensities of low-J rotational transitions of linear molecules (such as CO), providing mock observations of the emission that radio interferometers as ALMA are able to detect at millimeter wavelengths.
Getting started#
You can install it from PyPI using pip:
$ pip install bowshockpy
There are two different ways to use the software:
Run it from the terminal specifying an input file: Use an example of input file and modify the input parameters according your scientific goals. Then, run
BowshockPyin your terminal:$ bowshockpy -r inputfile.py
Import
BowshockPypackage in your Python code: We include an notebook tutorial that shows how to use the main classes. Although the notebook contains an explanation of their basic functioning, see the API Reference for a detailed documentation.
A description of the outputs of BowshockPy can be found in the output section.
If you are interested in the physics behind BowshockPy an its workflow, see the background section.
Contributing#
We welcome contributions and issue reports to this project. If you are interested, please follow our contributing guidelines.
License#
This project is licensed under the MIT License.
Citation#
If you use BowshockPy in your research work, please cite it as
@software{gblazquez2025,
author = {Blazquez-Calero, Guillermo AND et al.},
title = {{BowshockPy}: A Python package for the generation of synthetic spectral channel maps of a jet-driven
bowshock model},
year = {2025},
version = {1.0.0},
url = {https://github.com/gblazquez/bowshockpy}
}
Also, please cite its dependencies.
Table of contents#
Tutorials and Examples
- Notebook tutorial
- 1. Creation of the bowshocks through BowshockModel class
- 2. Projection of the bowshocks with ObsModel class
- 3. Computation of the masses in the spectral cube with MassCube
- 4. Obtaining intensity maps with CubeProcessing class
- Appendix A: Computing all CubeProcessing output at once
- Appendix B: Custom computation of intensities
- Appendix C: Custom model
- Examples of input file