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_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
  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.2.tar.gz (21.6 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.2-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: celestial_body_package-1.0.2.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

Hashes for celestial_body_package-1.0.2.tar.gz
Algorithm Hash digest
SHA256 74aeeda59211aeb1b300fae8fdcac0db4241f8011e368db351b12c9fec40a661
MD5 4c2274a31594b7c85f74d4498b6bed07
BLAKE2b-256 5b2a68525f243962cfd6bc70b3761dcb5c2117fcf82a8e9191d06a94a7046223

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for celestial_body_package-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 720e6f16fe2bcb405fa8aa708213ebf6b5796a54df95052c0d4e1d41db5232cb
MD5 ebadd10d8c35c24b9843b4b4b6f1e18e
BLAKE2b-256 d5427343544c48c9353647db198d10773bbcf2aab045b942e74ca5d8124e1fbd

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