Skip to main content

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, kepler_period, scatter_plot,
)

print(orbit_type("tierra"))
print(vis_viva( "sol", "marte",1.0))
print(kepler_period("sol","marte"))
scatter_plot([1000,2000,3000], [1000,4000,9000], [10,40,90], 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
  1. Cálculos E-P

    • Ejecuta calculas de las leyes de kepler
    • Muestra resultados numéricos junto con:
      • nombre del proceso,
      • Planeta y estrella involucradas,
      • resultado numérico,
      • ecuación simbólica,
      • parámetros,
      • unidades,
      • hipótesis.
  2. Diagrama HR

    • Permite introducir T, L y R como listas CSV,
    • personalizar título/etiquetas,
    • elegir ruta de salida (.png o .pdf),
    • generar y guardar el diagrama desde la interfaz.

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

celestial_body_package-1.0.3.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

celestial_body_package-1.0.3-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file celestial_body_package-1.0.3.tar.gz.

File metadata

  • Download URL: celestial_body_package-1.0.3.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for celestial_body_package-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b447c3092527e029f3f67b060c7e90e8af8ac99db0476f0ff3acec63879362c6
MD5 8b293b971eecc01bf53222de579f67bc
BLAKE2b-256 82bc89e294655cbebfded3f8575ea7776293fce83a86e64dddadc5c9d83fcb30

See more details on using hashes here.

File details

Details for the file celestial_body_package-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for celestial_body_package-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bc9f9f87dcecb337a3788ad20de4d19be3ac606eb9898419e0eea83d7e1ae7ea
MD5 6c22bf0121cd9f0d00af4ec5d0c753c4
BLAKE2b-256 9fda98623289f6653c7e7b77a0b4b68092b0f8d661e50796c8f6fa92b895c155

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page