KStars es un software de astronomía multiplataforma, gratuito y de código abierto.
Proporciona una simulación gráfica precisa del cielo nocturno, desde cualquier lugar de la Tierra, en cualquier fecha y hora. La pantalla incluye hasta 100 millones de estrellas, 13.000 objetos del cielo profundo, los 8 planetas, el Sol y la Luna, y miles de cometas, asteroides, supernovas y satélites.
Para estudiantes y profesores, admite velocidades de simulación ajustables para ver fenómenos que ocurren en escalas de tiempo largas, la Astrocalculadora KStars para predecir conjunciones y muchos cálculos astronómicos comunes. Para el astrónomo aficionado, proporciona un planificador de observaciones, una herramienta de calendario celeste y un editor FOV para calcular el campo de visión de los equipos y mostrarlos. Descubra objetos interesantes en la herramienta "¿Qué pasa esta noche?", trace gráficos de altitud versus tiempo para cualquier objeto, imprima mapas celestes de alta calidad y obtenga acceso a mucha información y recursos que le ayudarán a explorar el universo.
Con KStars se incluye la suite de astrofotografía Ekos, una solución completa de astrofotografía que puede controlar todos los dispositivos INDI, incluidos numerosos telescopios, CCD, DSLR, enfocadores, filtros y mucho más. Ekos admite un seguimiento de alta precisión mediante un solucionador de astrometría en línea y fuera de línea, capacidades de enfoque automático y guía automática, y captura de imágenes únicas o múltiples utilizando el potente administrador de secuencias integrado.
Copyright (c) 2001 - 2024 del equipo KStars:
KStars es software libre, publicado bajo la licencia pública GNU. Consulte COPIAR para obtener información sobre la licencia GPL.
KStars está disponible para Windows, MacOS y Linux. Puede descargar la última versión desde el sitio web oficial de KStars.
En Linux, está disponible para la mayoría de las distribuciones de Linux.
La última versión estable es v3.6.8
La página de inicio de KStars
Repositorio Git de KStars
Chat web de KStars
Foro donde a menudo se habla de KStars
El manual de KStars se puede encontrar en su directorio $(KDEDIR)/share/doc/HTML//kstars/. También puede acceder fácilmente desde el menú Ayuda, presionando la tecla [F1] o visitando https://docs.kde.org/?application=kstars Desafortunadamente, está un poco desactualizado. Damos la bienvenida a voluntarios para ayudar a actualizarlo.
Además, existen los siguientes archivos README:
LÉAME: Este archivo; información general README.planetmath: Explicación de los algoritmos utilizados para calcular las posiciones de los planetas README.customize: Opciones de personalización avanzadas README.images: Información de derechos de autor para las imágenes utilizadas en KStars. README.i18n: Instrucciones para traductores
El código se puede clonar, ver y realizar solicitudes de fusión a través del repositorio de KStars. Si es nuevo en los repositorios remotos de Git, consulte la sección Consejos de Git a continuación. Nota: Anteriormente, KStars usaba Phabricator para sus solicitudes de fusión. Ese sistema ya no se utiliza.
Si planea desarrollar KStars, se recomienda encarecidamente utilizar un IDE. Puede utilizar cualquier IDE de su elección, pero se recomiendan QtCreator(https://www.qt.io/product) o KDevelop(https://www.kdevelop.org) ya que son más adecuados para el desarrollo de Qt/KDE.
Para abrir KStars en QtCreator, seleccione el archivo CMakeLists.txt en la carpeta de origen de KStars y luego configure la ubicación y el tipo de compilación.
Paquetes de requisitos previos
Para crear y desarrollar KStars, es posible que se requieran varios paquetes de su distribución. Aquí hay una lista.
Dependencias requeridas
GNU Make, GCC: herramientas esenciales para la construcción
cmake - sistema de compilación utilizado por KDE
Biblioteca Qt > 5.12.0
Varios frameworks de KDE: KConfig, KDocTools, KGuiAddons, KWidgetsAddons, KNewStuff, KI18n, KInit, KIO, KXmlGui, KPlotting, KIconThemes
eigen - biblioteca de álgebra lineal
zlib - biblioteca de compresión
StellarSolver: consulte https://github.com/rlancaste/stellarsolver
Dependencias opcionales
libcfitsio -- biblioteca FITS
libindi - Interfaz distribuida neutral de instrumentos, para controlar equipos.
xplaneta
astrometria.net
libra
wcslib
libgsl
qtllavero
Instalación de requisitos previos
Debian/Ubuntu
El comando apt-add-respository es necesario para libstellarsolver-dev de apt-get. Alternativamente, puede omitir el repositorio apt-add, eliminar libstellarsolver-dev de apt-get y compilar e instalar stellarsolver desde https://github.com/rlancaste/stellarsolver.
sudo apt-add-repository ppa:mutlaqja/ppa sudo apt-get -y install build-essential cmake git libstellarsolver-dev libxisf-dev libeigen3-dev libcfitsio-dev zlib1g-dev libindi-dev extra-cmake-modules libkf5plotting-dev libqt5svg5-dev libkf5xmlgui-dev libkf5kio-dev kinit-dev libkf5newstuff-dev libkf5doctools-dev libkf5notifications-dev qtdeclarative5-dev libkf5crash-dev gettext libnova-dev libgsl-dev libraw-dev libkf5notifyconfig-dev wcslib-dev libqt5websockets5-dev xplanet xplanet-images qt5keychain-dev libsecret-1-dev breeze-icon-theme libqt5datavisualization5-dev
sombrero
yum install cfitsio-devel eigen3-devel stellarsolver-devel cmake extra-cmake-modules.noarch xisf-devel kf5-kconfig-devel kf5-kdbusaddons-devel kf5-kdoctools-devel kf5-kguiaddons-devel kf5-ki18n-devel kf5-kiconthemes-devel kf5-kinit-devel kf5-kio-devel kf5-kjobwidgets-devel kf5-knewstuff-devel kf5-kplotting-devel kf5-ktexteditor-devel kf5-kwidgetsaddons-devel kf5-kwindowsystem-devel kf5-kxmlgui-devel libindi-devel libindi-static qt5-qtdeclarative-devel qt5-qtmultimedia-devel qt5-qtdatavis3d-devel qt5-qtsvg-devel wcslib-devel xplanet zlib-devel
Compilando
Abra una consola y ejecute los siguientes comandos:
mkdir -p ~/Projects/build/kstars cd ~/Projects git clone https://invent.kde.org/education/kstars.git cd build/kstars cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo ~/Projects/kstars make -j16 sudo make install
Para ejecutar KStars, simplemente escriba kstars en la terminal.
KStars utiliza estilo artístico para formatear todos los archivos fuente de C++. Asegúrese de aplicar las siguientes reglas de estilo a cualquier código que se envíe a INDI. En Linux, puede crear un archivo ~/.astylerc que contenga las siguientes reglas:
--style=allman --align-reference=name --indent-switches --indent-modifiers --indent-classes --pad-oper --indent-col1-comments --lineend=linux --max-code-length=124
Algunos IDE (por ejemplo, QtCreator) admiten el formato automático del código cada vez que guarda el archivo en el disco.
En Linux ejecute lo siguiente para instalar los programas necesarios:
sudo apt-get install docbook docbook-utils
La fuente del manual está en kstars/doc. Puede editar esos archivos, incluirlos en confirmaciones y MR como lo haría con los archivos C++ (ver más abajo). Puede descubrir el marcado con un ejemplo o aprender de un documento en línea para un libro de documentos. En general, es mejor copiar primero todo el directorio kstars/doc a un directorio temporal, y editar y generar el manual allí, porque si ejecutara meinproc en el directorio fuente principal, generaría muchos archivos .html allí y No quiero enviar los archivos generados a su repositorio git.
cp -pr kstars/doc ~/DOCBOOK cd ~/DOCBOOK meinproc5 index.docbook
Lo anterior debería generar archivos html. Luego, en un navegador, simplemente puede abrir DOCBOOK/index.html y navegar hasta la parte que desee, por ejemplo, simplemente escriba algo similar a esto en la barra de URL de Chrome: file:///home/YOUR_USER_NAME/DOCBOOK/ doc/tool-ekos.html Realice cambios en algunos de los archivos .docbook en ~/DOCBOOK/*.docbook. Regenere los archivos html y vea los cambios en el navegador, como antes. Iterar.
Para comprobar la sintaxis, es posible que desee ejecutar:
checkXML5 index.docbook
Una vez que esté satisfecho, copie sus archivos modificados nuevamente a kstars/doc y trate los archivos editados/nuevos como de costumbre con git, incluidos sus archivos modificados en una nueva confirmación y, finalmente, en una nueva solicitud de fusión.
Consulte la sección siguiente, Consejos de Git, sobre detalles técnicos sobre cómo generar una solicitud de fusión. En el proceso de realizar la solicitud, deberá describir la solicitud. Utilice un formato similar a este que tenga secciones para un resumen de lo que se hizo, lo que se modificó en cada archivo, otras notas relevantes y cómo probar sus cambios.
Debes estar familiarizado con git para realizar cambios en KStars y este no es el lugar para un tutorial de este tipo. Hay muchos recursos excelentes para eso en la web. Sin embargo, el párrafo siguiente brindará una descripción general de una forma de realizar una solicitud de fusión, dado que ya tiene suficiente experiencia en git para clonar KStars, crear una sucursal local, modificar el código como desee, confirmar sus cambios en su sucursal local. y pruebe su código a fondo.
Aquí hay un buen recurso para que un flujo de trabajo fork-branch-git-workflow realice cambios en KStars. Los pasos a continuación están inspirados en esa página.
Configuración única del entorno git de KStars.
Crea tu identidad KDE
Acceso. Vaya a la página de gitlab de KStars e inicie sesión en la esquina superior derecha.
Bifurca el proyecto. Luego, aún en la página de gitlab de KStars, haga clic en FORK en la esquina superior derecha para crear su propia bifurcación del proyecto.
Copia tu URL. Tenga en cuenta la URL de su bifurcación. Debería ser https://invent.kde.org/YOUR_KDE_NAME/kstars
Clonar KStars. De vuelta en tu computadora ejecuta estos comandos
mkdir -p ~/Proyectos
cd ~/Proyectos
clon de git https://invent.kde.org/YOUR_KDE_NAME/kstars
cd kstars
Añade tu upstream. Agregue el repositorio principal de KStars a su repositorio bifurcado.
git remoto agregar ascendente https://invent.kde.org/education/kstars
Ya estás configurado.
Pasos utilizados para cada cambio. Después de la configuración única (arriba), se pueden seguir los pasos a continuación para cada envío de nuevas funciones. En resumen, creará una rama de funciones en su repositorio local, realizará allí los cambios deseados y los probará, los enviará a su bifurcación, creará una solicitud para fusionar su bifurcación con el repositorio principal de KStars, esperará comentarios y posiblemente iterará en su repositorio local. cambios esperando la aprobación de una autoridad.
Crea tu rama de funciones.
git checkout -b TU_BRANCH_NAME
Haz tus cambios
Confirma tus cambios
git confirmar -a
Inserte cambios en su repositorio bifurcado.
git push origen TU_BRANCH_NAME
Crear una solicitud de fusión
Utilice su navegador para visitar su repositorio bifurcado en https://invent.kde.org/YOUR_KDE_NAME/kstars
Debería ver una opción para crear una solicitud de fusión para YOUR_BRANCH_NAME. Complete los detalles (consulte la sección anterior).
Debería poder ver una nueva URL dedicada a esa solicitud de fusión.
Haga algunos cambios. Es posible que reciba solicitudes para modificar parte de su código.
Si es así, simplemente regrese a su sucursal local, realice y pruebe los cambios.
Confirme sus cambios como se indica arriba, dentro de su rama, con: git commit -a
Envía los cambios de tu rama a tu repositorio bifurcado como se indica arriba con: git push origin YOUR_BRANCH_NAME
Sus cambios deberían agregarse automáticamente a su Solicitud de fusión. Consulte la página de Solicitud de fusión para estar seguro.
Es posible que necesites cambiar la base de tu código; consulta los detalles a continuación.
Rebasando sus cambios. Es posible que otras personas estén realizando cambios en KStars al mismo tiempo que usted trabaja en su función. Rebasar es actualizar su versión de KStars y sus cambios particulares para que parezca como si hubiera cambiado la última versión de KStars, por ejemplo, reflejar los cambios en el código base realizados después de clonar o actualizar su propia copia de KStars. Este es un tema importante que puedes buscar en Google, pero las siguientes instrucciones funcionan la mayor parte del tiempo.
Tenga en cuenta que esto se hace antes de crear su solicitud de combinación, cuando usted es el único que ve los cambios en su código. Una vez que haya iniciado su solicitud de fusión, su código es "público" y en lugar de cambiar la base, debe seguir el procedimiento de fusión a continuación.
cd ~/Projects/kstars git checkout master git pull upstream master # Get the master from the main KStars repo onto your local clone git push origin master # Then push your updated local clone into your forked repo git checkout YOUR_BRANCH_NAME git rebase master git push origin YOUR_BRANCH_NAME -f
Si hay complicaciones con la rebase, git hará sugerencias sobre cómo corregir los problemas.
Fusionar los cambios de otros. Una vez que envíe una solicitud de fusión, otras personas podrán ver (y editar) su código. En este punto, aunque es posible que aún necesites actualizar a la última versión de KStars, el cambio de base destruye la información de cambios y puede sobrescribir lo que otros están haciendo. En su lugar, es mejor 'fusionar' la versión actual de KStars en su código.
cd ~/Projects/kstars git checkout master git pull upstream master # Get the master from the main KStars repo onto your local clone git push origin master # Then push your updated local clone into your forked repo git checkout YOUR_BRANCH_NAME git merge master git push origin YOUR_BRANCH_NAME
Las diferencias con la sección rebase son los últimos 2 comandos: se usa 'git merge master' en lugar de 'git rebase master'. Además, 'git push' no usa la opción -f. La primera vez que ejecute 'git push', es posible que git le solicite que agregue 'set-upstream origin' al comando. En ese caso, siga esas instrucciones.
Si sigue este procedimiento, encontrará una nueva 'compromiso de fusión' agregada al registro de git de su sucursal.
Tu próximo cambio . Una vez que su solicitud de fusión esté completa (y posiblemente integrada en KStars), es posible que desee continuar y desarrollarse nuevamente. El próximo cambio utilizará otra rama de funciones (nueva) y la primera rama de funciones podría eliminarse. Es posible que desees ejecutar lo siguiente con regularidad para mantener tu rama maestra actualizada con KStars.
cd ~/Projects/kstars git checkout master git pull upstream master # Get the master from the main KStars repo onto your local clone git push origin master # Then push your updated local clone into your forked repo
Las pruebas se almacenan en la carpeta Tests
y utilizan QTest como marco de soporte:
Las pruebas unitarias se pueden encontrar en auxiliary
, capture
, fitsviewer
, etc. Intentan verificar el comportamiento de un conjunto mínimo de clases y son soporte para el desarrollo de funciones.
Las pruebas de UI se pueden encontrar en kstars_lite_ui
y kstars_ui
. Ejecutan casos de uso como lo haría el usuario final desde la interfaz de usuario y se centran en la disponibilidad de retroalimentación visual y la estabilidad de los procedimientos.
Decida dónde residirá su nueva prueba unitaria en Tests
. Las clases de KStars deben residir en una carpeta que coincida con su origen: por ejemplo, las pruebas de clases auxiliares se encuentran en auxiliary
. Encuentre un lugar adecuado para su prueba, según la parte del sistema que se está probando. Como ejemplo, una carpeta llamada thatkstarscategory
.
Cree una nueva clase de prueba unitaria o copie y pegue una prueba unitaria existente en una nueva. Consulte Tests/kstars_ui_tests/kstars_ui_tests.h
como ejemplo. Nombra los archivos .h
y .cpp
como "prueba[clase kstars en minúscula]" (por ejemplo, "testthatkstarsclass") y actualízalos para que coincidan con lo siguiente:
/* [Author+Licence header] */ #ifndef TESTTHATKSTARSCLASS_H #define TESTTHATKSTARSCLASS_H #include <QtTest> #include <QObject> class TestThatKStarsClass: public QObject { Q_OBJECT public: explicit TestThatKStarsClass(QObject *parent = null); private slots: void initTestCase(); // Will trigger once at beginning void cleanupTestCase(); // Will trigger once at end void init(); // Will trigger before each test void cleanup(); // Will trigger after each test void testThisParticularFunction_data(); // Data fixtures for the test function (Qt 5.9+) void testThisParticularFunction(); // Test function } #endif // TESTTHATKSTARSCLASS_H
/* [Author+Licence header] */ #include "testthatkstarsclass.h" TestThatKStarsClass::TestThatKStarsClass(QObject* parent): QObject(parent) {} TestThatKStarsClass::initTestCase() {} TestThatKStarsClass::cleanupTestCase() {} TestThatKStarsClass::init() {} TestThatKStarsClass::cleanup() {} TestThatKStarsClass::testThisParticularFunction_data() { // If needed, add data fixtures with QTest::AddColumn/QTest::AddRow, each will trigger testThisParticularFunction } TestThatKStarsClass::testThisParticularFunction() { // Write your tests here, eventually using QFETCH to retrieve the current data fixture } QTEST_GUILESS_MAIN(TestThatKStarsClass);
Puede usar un solo archivo para contener tanto la declaración como la definición, pero deberá #include "testthatkstarsclass.moc"
entre la declaración y la definición.
Actualice la configuración de CMake para agregar su prueba. Si creó una nueva carpeta, cree un nuevo CMakeLists.txt
para agregar su prueba:
ADD_EXECUTABLE( testthatkstarsclass testthatkstarsclass.cpp ) TARGET_LINK_LIBRARIES( testthatkstarsclass ${TEST_LIBRARIES}) ADD_TEST( NAME ThatKStarsClassTest COMMAND testthatkstarsclass )
Haga que CMakeLists.txt
que reside en una carpeta superior en el sistema de archivos incluya ese CMakeLists.txt
agregando:
include_directories( ... ${kstars_SOURCE_DIR}/kstars/path/to/the/folder/of/the/kstars/class/you/are/testing ) ... add_subdirectory(thatkstarscategory)
Asegúrese de agregar su add_subdirectory
en el grupo de dependencia correcto. Las pruebas de Ekos requieren INDI_FOUND
, por ejemplo.
Escriba sus pruebas Asegúrese de documentar el comportamiento con sus pruebas. Si encuentra un error, no lo solucione, márquelo con una macro QEXPECT_FAIL
. La prueba documentará el comportamiento incorrecto mientras el error esté activo y fallará cuando se solucione el error. Sólo entonces se podrá actualizar la prueba. También preste atención a la compatibilidad con la versión de la biblioteca Qt. Por ejemplo, los dispositivos de datos requieren Qt 5.9+.
Siga los mismos pasos que para las pruebas unitarias, pero ubique sus clases de prueba en kstars_ui_tests
.
Una cosa importante acerca de las pruebas de UI es que todas deben usar QStandardPaths::setTestModeEnabled(true)
, para que se ejecuten con una configuración de usuario separada que inicialmente está en blanco. Por lo tanto, las pruebas de interfaz de usuario requieren una configuración preliminar para funcionar correctamente, como usar el nuevo asistente de configuración o configurar la ubicación geográfica. Por esta razón, necesita agregar la ejecución de su prueba en Tests/kstars_ui_tests/kstars_ui_tests.cpp
, en main()
, después de la ejecución de TestKStarsStartup
.
Una segunda cosa importante acerca de QTest en general es que las funciones de prueba no tienen código de retorno. Por lo tanto, es necesario escribir macros para factorizar el código duplicado. Encontrará muchas macros existentes en los archivos de encabezado de las clases de prueba kstars_ui_tests
, para recuperar gadgets, hacer clic en botones o llenar widgets QComboBox
...
Una tercera cosa importante acerca de la interfaz de KStars es que combina elementos de KDE y Qt UI. Por lo tanto, a veces las pruebas requieren que el código de verificación se mueva a una llamada QTimer::singleShot
y, a veces, incluso hacer clic en un botón debe ser asincrónico para que la prueba permanezca en control (diálogos modales). Afortunadamente, estos trucos no alteran la ejecución del código probado.
Al realizar pruebas, debe asegurarse de utilizar siempre elementos que el usuario final pueda utilizar. Por supuesto, si una prueba requiere una configuración que en realidad no forma parte de las llamadas interesantes, puedes piratear una llamada directa. Por ejemplo, algunas pruebas de Ekos que requieren que el Simulador de Telescopio apunte a una ubicación específica usan QVERIFY(Ekos::Manager::Instance()->mountModule()->sync(ra,dec))
. Recuerde que a veces es necesario dejar tiempo para que se emitan y capturen señales asíncronas.
Jason Harris [email protected]
Jasem Mutlaq [email protected]
Akarsh Simha [email protected]
Alexey Khudyakov [email protected]
Artem Fedoskin [email protected]
Carsten Niehaus [email protected]
Chris Rowland [email protected]
Csaba Kertész [email protected]
Eric Dejouhanet [email protected]
Harry de Valence [email protected]
Heiko Evermann [email protected]
Hola Murveit [email protected]
James Bowlin [email protected]
Jérôme Sonrier [email protected]
John Evans [email protected]
Joseph McGee [email protected]
Mark Hollomon [email protected]
Martín Piskernig [email protected]
Médéric Boquien [email protected]
Pablo de Vicente [email protected]
Prakash Mohan [email protected]
Rafał Kułaga [email protected]
Rishab Arora [email protected]
Robert Lancaster [email protected]
Samikshan Bairagya [email protected]
Thomas Kabelmann [email protected]
Valentin Boettcher [email protected]
Victor Carbune [email protected]
Vicente Jagot [email protected]
Wolfgang Reissenberger [email protected]
Yuri Chornoivan [email protected]
La mayoría de los datos del catálogo provinieron del Centro de Datos Astronómicos, dirigido por la NASA. El sitio web es: http://adc.gsfc.nasa.gov/
Los datos de NGC/IC son compilados por Christian Dersch a partir de la base de datos OpenNGC. https://github.com/mattiaverga/OpenNGC (licencia CC-BY-SA-4.0)
Los datos de supernovas provienen del proyecto Open Supernova Catalog en https://sne.space. Consulte el artículo publicado aquí: http://adsabs.harvard.edu/abs/2016arXiv160501054G
Enlaces de KStars a excelentes colecciones de imágenes y páginas HTML creadas por Estudiantes para la Exploración y el Desarrollo del Espacio, en: http://www.seds.org
Enlaces de KStars a las imágenes en línea de Digitized Sky Survey, que puede consultar en: http://archive.stsci.edu/cgi-bin/dss_form
Enlaces de KStars a imágenes del proyecto HST Heritage y de comunicados de prensa de HST: http://heritage.stsci.edu http://oposite.stsci.edu/pubinfo/pr.html
KStars enlaza con imágenes del Programa de Observadores Avanzados del Observatorio Nacional Kitt Peak. Si está interesado en la astrofotografía, podría considerar consultar su programa: http://www.noao.edu/outreach/aop/
Los créditos de cada imagen utilizada en el programa se enumeran en README.images
KStars es un trabajo de amor. Comenzó como un pasatiempo personal, pero muy poco después de publicar el código por primera vez en Sourceforge, comenzó a atraer a otros desarrolladores. Estoy completamente impresionado y satisfecho con mis co-desarrolladores. No podría pedir un equipo más talentoso y amigable. No hace falta decir que KStars no estaría ni cerca de lo que es hoy sin sus esfuerzos. Juntos, hemos creado algo de lo que todos podemos estar orgullosos.
Usamos (principalmente) dos libros como guía para escribir los algoritmos utilizados en KStars:
"Astronomía práctica con su calculadora" por Peter Duffett-Smith
"Algoritmos astronómicos" de Jean Meeus
Gracias a los desarrolladores de Qt y KDE cuya API incomparable hizo posible KStars. Gracias también a los incansables esfuerzos de los equipos de traducción de KDE, que llevan KStars a una audiencia global.
Gracias a todos en los foros de mensajes de KDevelop y en irc.kde.org, por responder mis preguntas frecuentes.
Gracias también a los muchos usuarios que enviaron informes de errores u otros comentarios.
¿Sigues leyendo esto? :) Bueno, eso es todo. ¡Espero que disfrutes de KStars!
Jason Harris [email protected]
Lista de correo de desarrollo de KStars [email protected]
¡Envíanos ideas y comentarios!