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,
      • partículas 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.1.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.1-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

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

Hashes for celestial_body_package-1.0.1.tar.gz
Algorithm Hash digest
SHA256 eaf52edd5b6c19f201b82018b2baf91397c72e020dbe7bc6e03387bab0618861
MD5 b4479d1272f2cdb2f87a3d1e2aae3a5f
BLAKE2b-256 dae57c9a66112f20154496475de9b32caaa2ea709c35dd76d906515897b6128c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for celestial_body_package-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c9e714ede88f707565f43ac71b7b6c6f21affbd10faa0886f75f61e02b7333a5
MD5 bea98b2c987b08589412e748bc5d331e
BLAKE2b-256 b5bba2dd956686fb0c6c67af245b1c91e522b5446554e9fdc680177d2a7a0615

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