Educational python package for basic astronomy
Project description
celestial_body_package
Objetivo:
Es un paquete educativo en Python de astronomía básica. Este paquete cuenta con un catálogo de las estrellas más representativas de cada tipo espectral, así como un catálogo de los planetas del sistema solar. Adicionalmente, con este paquete se podrá realizar operaciones básicas de mecánica celeste, tal como cálculo de las leyes de kepler entre el catálogo de estrellas incluidas y los planetas del sistema solar.
Problema que resulve:
Resolver problemas básicas de mecánica celeste de forma rápida. De igual manera, permite identificar cualquier tipo de estrella en el diagrama HR ( Hertzsprung-Russell), apartir de su temperatura en Kelvin, luminosidad en watts y radio en radios solares; permitiendo estudiar así su evolución y características.
Instalación paso a paso:
Hay dos formas sencillas de instalar el paquete:
1: Desde Pypi: haciendo únicamente
pip install celestial-body-package
2: Creando un entorno visual y descargando la carpeta zip.
Windows (PowerShell)
cd \Celestial_Body\cb-package
python -m venv venv
.\venv\Scripts\Activate.ps1
cd \Celestial_Body\cb-package\celestial_body_package (Asegurarse de estár en la carpeta que contiene el documento pyproject.toml)
pip install -e .
Ubuntu / Mac
cd \Celestial_Body\cb-package
python3 -m venv venv
source venv/bin/activate
cd \Celestial_Body\cb-package\celestial_body_package
pip install -e .
Estructura:
celestial_body_package/
├── pyproject.toml
├── README.md
├── src/
│ └── celestial_body_package/
│ ├── __init__.py
│ ├── cuerpoceleste.py
│ ├── planeta.py
│ ├── estrella.py
│ ├── rules.py
│ ├── factory.py
│ ├── catalog.py
│ ├── app.py
│ ├── cli.py
│ └── gui.py
├── examples/
│ └── demo.py
└── tests/
└── test_basis.py
Uso rápido - Application Programming Interface (API Python)
from celestial_body_package import Mercurio, sol, is_planeta, is_estrella
m = Mercurio()
print(m.name, m.planet_type)
s = sol
print(s.name, is_estrella(s))
Command Line Interface (CLI)
celestial body --help
- Listar estrellas disponibles:
celestial-body list-estrella sol
- Listar planetas disponibles:
celestial-body list-planeta jupiter
- Obtener información de un planeta:
celestial-body info-planeta mercurio
- Obtener información de una estrella:
celestial-body info-estrella sirio_a
- Clasificar una estrella/planeta:
celestial-body classify-estrella sirio_a
celestial-body classify-planeta tierra
Propiedades de los cuerpos celestes:
- Catálogo tabular desde Python:
from celestial-body_package import body_table, to_markdown
rows = body_table()
print(to_markdown(rows))
CLI
celestial-body catalog --format markdown
- Calcular la magnitud absoluta de una estrella del catalogo:
celestial-body magnitud-absoluta sirio_a
- Calcular la luminosidad en luminosidad solar de una estrella del catalogo:
celestial-body luminosidad-solar sirio_a
-Calcular la gravedad superficial de una estrella o planeta:
celestial-body luminosidad-solar marte
- Calcular la densidad de una estrella o planeta:
celestial-body densidad marte
- Calcular la velocidad de escape de una estrella o planeta:
celestial-body velocidad-escape tierra
Leyes de Kepler
from celestial-body_package import (
orbit_type, vis_viva_velocity, kepler_period
scatter_plot,
)
print(orbit_type("tierra"))
print(vis_viva_velocity(1.0, "marte", "sol"))
print(kepler_period("marte", "sol"))
scatter_plot([1000,2000,3000], [1000,4000,9000], [1000,4000,9000], title="D-HR", output="DHR.png")
CLI
- Lista de procesos:
celestial-body processes
- Leyes de Kepler:
celestial-body vel-orb 1.0 tierra sol
- Leyes de Kepler con formato:
celestial-body run-process vis_viva --planeta marte --estrella sol --distance-au 1.0 --output-format latex
-Generar un diagram HR con estrellas de interes:
celestial body d-hr --x Temperatura --y Luminosidad --r Radio --output OUTPUT.png --title "Diagrama HR"
Graphical User Interface (GUI)
Se añadió una GUI sencilla con tkinter (incluida en la librería estándar de Python)
celestial body-gui
La GUI permite:
- Mostrar info y clasificación de las estrellas y planetas
- Convertir de unidades astronómicas a m y viceversa
- Calcular las leyes de kepler para una estrella y planeta en interacción gravitacional
-
Cálculos E-P
- Ejecuta calculas de las leyes de kepler
- Muestra resultados numéricos junto con:
- nombre del proceso,
- partículas involucradas,
- resultado numérico,
- ecuación simbólica,
- parámetros,
- unidades,
- hipótesis.
-
Diagrama HR
- Permite introducir
T,LyRcomo listas CSV, - personalizar título/etiquetas,
- elegir ruta de salida (
.pngo.pdf), - generar y guardar el diagrama desde la interfaz.
- Permite introducir
Ejemplos
Revisar examples/demo.py.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file celestial_body_package-1.0.1.tar.gz.
File metadata
- Download URL: celestial_body_package-1.0.1.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaf52edd5b6c19f201b82018b2baf91397c72e020dbe7bc6e03387bab0618861
|
|
| MD5 |
b4479d1272f2cdb2f87a3d1e2aae3a5f
|
|
| BLAKE2b-256 |
dae57c9a66112f20154496475de9b32caaa2ea709c35dd76d906515897b6128c
|
File details
Details for the file celestial_body_package-1.0.1-py3-none-any.whl.
File metadata
- Download URL: celestial_body_package-1.0.1-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9e714ede88f707565f43ac71b7b6c6f21affbd10faa0886f75f61e02b7333a5
|
|
| MD5 |
bea98b2c987b08589412e748bc5d331e
|
|
| BLAKE2b-256 |
b5bba2dd956686fb0c6c67af245b1c91e522b5446554e9fdc680177d2a7a0615
|