estás leyendo...
Experiencia academica

Empezar a programar

Hoy en día, gran parte del trabajo del día a día de un astrofísico consiste en escribir o utilizar programas de computadora. Desde herramientas necesarias para producir gráficos o preparar manuscritos para su publicación, hasta lenguajes de programación versátiles que nos permiten resolver ecuaciones, procesar datos recolectados con algún telescopio, o realizar inferencias o cálculos estadísticos aplicados a esos datos. El astrofísico se enfrenta con el desafío de manejar muchas de estas herramientas. Por más teórico, incluso analítico, que sea tu trabajo, tendrás que incorporar algunas de ellas a lo largo de tu carrera. Pero, ¿por dónde empezar? Hoy te acercamos algunos hipervínculos y consejos útiles para acercarte a la programación.

Resolviendo ecuaciones

Supongamos que has desarrollado un nuevo modelo de un fenómeno astrofísico y quieres resolver tus nuevas ecuaciones para generar predicciones que puedas comparar con las observaciones. ¿Cómo proceder? En general, los programas de grado en física o astronomía incluirán una introducción a las herramientas adecuadas. Es posible que ya hayas oído hablar de algunas de ellas. Por ejemplo, una de las comúnmente usadas es Mathematica. Pero también tienes la opción de Matlab o Maple. Si buscas una opción gratuita, puedes probar Octave o python. Vale la pena leer un poco acerca de ellos antes de sumergirse de lleno en la instalación y aprendizaje. ¿Cuál de ellos tiene las capacidades necesarias para ayudarte en tu proyecto? Si quieres velocidad y estás dispuesto a resignar algunas capacidades pre-programadas, puedes aprender C, C++ o fortran. Estos son más versátiles y frecuentemente más rápidos, pero poseen menos comandos o librerías ya listas para usar. Si tus códigos tardan mucho en correr, quizás quieras explorar la opción de paralelizarlos para aprovechas múltiples procesadores. En tal caso, herramientas usuales son openMP o MPI.

En astrofísica existen también librerías y software desarrollados por la comunidad para aplicaciones específicas, como las de simular la evolución del Universo o de las estrellas y muchas más. Si tienes un software favorito, háznoslo saber en los comentarios abajo.

Procesado de datos astronómicos

Figura 1. Esta es una imagen del telescopio espacial Hubble de una supernova que explotó have 10 millones de años. En los paneles de abajo puedes ver cómo la resta de dos imágenes (con y sin supernova) permite encontrar y caracterizar la supernova. Imagen: NASA, ESA, A. Riess (STScI y JHU), D. Jones y S. Rodney (JHU)

Si te dedicas a la astrofísica observacional, recibirás datos de telescopios ocasionalmente y tendrás que procesarlos para extraer la información que es de tu interés. Por ejemplo, si recibes imágenes “crudas” de un telescopio, querrás asegurarte que has tenido en cuenta las correcciones necesarias. Quizás quieres superponer imágenes de distintos colores. O por ahí estás interesado en ver diferencias entre dos imágenes (¿estás buscando una supernova como la de la Figura 1 o un asteroide?). Muchas colaboraciones o telescopios desarrollan o recomiendan sus propias herramientas. Dos herramientas populares para procesar imágenes son IRAFIRIS.

Otra manera de recabar datos astronómicos es a través de espectros, en los cuales la luz de una fuente se descompone en sus longitudes de onda como si fuera un arcoiris. Para esto, se necesitan también herramientas específicas.

Cuando los datos provienen de radiotelescopios, se debe afrontar el análisis de manera completamente distinta. Este sitio lista algunas de las herramientas disponibles.

Control de versiones

Imagina que has estado trabajando en tu proyecto durante un tiempo y has alcanzado algún resultado parcial con el cual estás satisfecho. Luego de hablar con tus colaboradores, te sugieren probar hacer unos cambios en tu análisis. ¿Cómo puedes hacer esto de una manera controlada, manteniendo a la vez una versión estable de tu código? Podrías crear una copia en otra carpeta, claramente. Esto funcionaría si sólo quieres hacer un cambio, pero ocupa lugar y puede llevar a confusión más adelante. Existen hoy en día sistemas de “control de versiones” como git o svn. Estos paquetes se instalan en tu computadora y te permiten etiquetar versiones del código cada vez que haces un cambio, permitiendo fácilmente identificar dichos cambios y revertirlos de ser necesario. Algunos de estos sistemas también están integrados a repositorios de software online (como github o bitbucket), donde puedes compartir todo el historial de desarrollo de tu código. Aunque su principal aplicación es a desarrollo de software, los puedes usar realmente para seguir el historial de cualquier proyecto, por ejemplo, el desarrollo de un manuscrito o una presentación. También suelen ayudar en la coordinación de trabajo con colaboradores, permitiendo unificar cambios simultáneos de manera automática.

Haciendo gráficos

Los gráficos son una de las maneras que tenemos de comunicar nuestra investigación a nuestros colegas. Encontramos gráficos en artículos científicos, en presentaciones, pósters, libros de texto e incluso notas periodísticas (¡y también en este sitio!). Los lectores de tu artículo frecuentemente se dirigirán a las figuras que uses para ilustrarlo para tratar de obtener un pantallazo general de tus resultados. Es entonces muy importante poder preparar un buen gráfico. Algunas de las herramientas usuales para hacerlo son lenguajes como IDL, python y R.

Preparación de manuscritos y presentaciones

¿Has terminado tu trabajo y estás listo para dárselo a conocer a la comunidad? Pues bien, la mejor manera de difundir tus resultados es preparar un manuscrito al respecto para su consideración en alguna revista científica. Otro día te contaremos más sobre este proceso. Hoy queremos contarte sobre una de las herramientas disponibles. La mayoría de los investigadores en el campo usa un lenguaje llamado “LaTeX” para compilar sus manuscrito. Sí, has leído correctamente, el manuscrito no sólo se escribe ¡sino que se compila! LaTeX permite escribir un archivo .tex en formato de texto en el cual el contenido de tu artículo se intercala con comandos para comenzar nuevas secciones, incluir figuras, tablas, bibliografía, etc. Al compilar es archivo de texto, tu conjunto de instrucciones resultará en un archivo (usualmente) en formato .pdf ¡listo para enviar! Algunas revistas proveen archivos complementarios de instrucciones que hacen que tu .pdf tome el formato adecuado para esa revista (el ArXiv tiene una lista aquí). Si quieres saber más sobre cómo usar LaTex, puedes ver este tutorial, or referirte a este astrobite en inglés.

Con tu trabajo listo, quizás querrás presentarlo como una charla a tu grupo de trabajo o en una conferencia. Las herramientas más comunes son PowerPoint (en Windows), KeyNote (en Mac) y opciones gratuitas como GoogleDocs o LibreOffice. Si te gusta la idea de “compilar” tu presentación usando LaTeX, puedes atreverte a usar beamer.

¿Tienes otra herramienta favorita que no describimos en este artículo? ¡Déjanos un comentario abajo!

Imagen de portada: Photo by Mitchel Lensink on Unsplash

Comentarios

Trackbacks/Pingbacks

  1. Pingback: ¡El azufre entra al juego! En busca de la abundancia de helio primordial | Astrobites en español - 02/06/2018

Deja un comentario

Tu dirección de correo electrónico no será publicada.