# CATGEN

Desde el menú: Ajustes → Catálogo, luego en el cuadro de diálogo elige la pestaña Catálogo, y click en el botón CatGen.
Puedes descargar miles de catálogos en forma de archivos de texto con datos de todo tipo de objeto celeste en el sitio del CDS o en el ADC, así como de otras fuentes. Cada uno contiene la información sobre algunas decenas y hasta millones de objetos.

El propósito de esta herramienta es la conversión de catálogos de texto en archivos que SkyChart pueda usar de manera más eficiente.

Debido a la gran cantidad de datos disponibles sería imposible una elección que satisfaga todas las necesidades. Si tienes un interés particular, puedes usar CatGen para construir tu propia colección de catálogos a partir de los datos originales provistos profesionalmente. Además, podrás usar cualquier catálogo nuevo apenas se lo publique, sin demoras. Para un desempeño adecuado de tu nuevo catálogo en SkyCharts, puedes usar CatGen para convertir el catálogo original en formato texto a un catálogo binario.

En general los catálogos están formateados como texto simple. Cada línea (llamada registro) contiene los datos de un objeto individual. Los datos de cada línea consisten de piezas de información (llamadas campos). Éstos contienen el identificador del objeto así como sus propiedades. El contenido de cada campo de datos para cada registro está definido por la columna donde comienza y su ancho. Por ejemplo, consideremos el siguiente

     1          BD+44 4550      3 36042          46           000001.1+444022000509.9+451345114.44
     2          BD-01 4525      6128569                       235956.2-010330000503.8-003011 98.33
     3 33    PscBD-06 6357     281285721002I         Var?     000013.0-061601000520.1-054227 93.75
     4 86    PegBD+12 5063     87 917012004                   000033.8+125023000542.0+132346106.19

En ciertas posiciones fijas encontramos cierto tipo de información. En general un archivo que acompaña al catálogo (Readme) describe el formato con todo detalle. La información correspondiente a este ejemplo está aquí .

    Byte-by-byte Description of file: catalog.dat
    --------------------------------------------------------------------------------
       Bytes Format  Units     Label      Explanations
    --------------------------------------------------------------------------------
       1-  4  I4     ---       HR         [1/9110]+ Harvard Revised Number = Bright Star Number
       5- 14  A10    ---       Name       Name, generally Bayer and/or Flamsteed name
      15- 25  A11    ---       DM         Durchmusterung Identification (zone in bytes 17-19)
      26- 31  I6     ---       HD         [1/225300]? Henry Draper Catalog Number

Es importante familiarizarse con el formato de texto del catálogo antes de convertirlo con CatGen. Hay todo tipo de detalles a los cuales prestar atención: unidades, rango de valores (entre corchetes), formatos numéricos, identificadores, formato de coordenadas y épocas. Un signo de interrogación en las Explanations indica que el dato no está siempre presente; revisa el catálogo para ver qué tan frecuente es ésto. Asegúrate de leer las notas, si las hubiere. Conviene utilizar un editor de textos capaz de manejar archivos muy grandes (por ejemplo Notepad++).

Si los datos sólo están disponibles en otro formato, en general es sencillo escribir un programa que pueda extraerlos y formatearlos adecuadamente. Puede hacerse con un lenguaje de scripts como Perl. Para trabajar con archivos CSV (en los cuales los campos están separados por comas) puedes usar CSVed, que es muy bueno, o el Calc que se incluye con OpenOffice.

Necesitas seleccionar qué datos incluir en el catálogo. Para cada tipo de catálogo existe un mínimo de información necesaria para representar el objeto en la carta. Puedes agregar información adicional, que será accesible al clickear en el objeto.

Recuerda que cuanta más información incluyas en el catálogo, más espacio ocupará en el disco de tu computadora. No siempre conviene incluir toda la información disponible en el catálogo original; tómate un tiempo para decidir la que realmente necesitas. También puedes preparar dos versiones del catálogo: una completa para tu computadora de escritorio, y una más compacta con la información mínima para tu computadora móvil.

## Estructura de CATGEN

CATGEN tiene cuatro pasos, cada uno en una página:

- Página 1 Selecciona el archivo de entrada, dale un nombre al catálogo, y establece el tipo de catálogo.
- Página 2 Establece los parámetros generales de acuerdo al tipo de catálogo.
- Página 3 Define los campos a ser leídos desde el archivo de entrada que serán incluidos en el catálogo.
- Página 4 Establece las opciones de salida y construye el catálogo.

En cada paso puedes salvar el proyecto como un archivo ”.prj”. Este archivo contiene todos los ajustes que hiciste en CatGen, y que determinan la conversión del catálogo. Así, puedes interrumpir la preparación del catálogo y continuarla más tarde, cargando el archivo .prj correspondiente. Los dos botones al pie de cada página de CatGen controlan esta facilidad:

- Guardar proy. Permite crear (si no existiera) el archivo “xxx.prj” (xxx = nombre del catálogo).
- Cargar proy. Restablece un archivo ”.prj” de tu elección.

## Página 1

En la primera página debes indicar el Tipo de catálogo. Ésto activa opciones específicas en las siguientes páginas.

El Nombre corto del catálogo se usa para identificar el catálogo. Será prefijado al nombre del objeto en las cartas. Debe tener uno a cuatro caracteres.

El Nombre completo del catálogo es su identificador completo.

Click en el botón Abrir para seleccionar el archivo de texto del catálogo. Los catálogos grandes en general están partidos en muchos archivos pequeños. En tal caso selecciónalos todos; el orden no interesa.

Elije Tipo de catálogo de salida. Con SkyChart V3 puedes elegir un formato de texto para catálogos pequeños. En este caso no se escribe más que un archivo de descripción que permite al programa acceder a los archivos de texto. Así, puedes editar directamente el catálogo paa hacer un cambio menor, sin necesidade de correr CatGen de nuevo.

Si seleccionas “Catálogo de archivo de texto” tienes también la opción de especificar una dirección web en “Update URL” que apunte a la última versión del archivo en la Internet. De esta manera accederás mediante un simple click a la versión más reciente en la configuración del catálogo.

Click el botón Sig. » para pasar a la segunda página.

## Página 2

Selecciona el formato de las coordenadas:

- Opciones AR Horas, minutos, segundos u Horas decimales o Grados, minutos, segundos o Grados decimales.
- Opciones DEC Grados, minutes, seconds or Grados decimales o Distancia decimal al Polo Sur.

Equinoccio de las coordenadas es la época de las coordenadas relativa a la precesión. Usa 2000 para ICRS.
Época de posición es la época por defecto para el movimiento propio. Esta fecha puede ser cambiada para cada objeto más adelante, en el archivo de datos.
Magnitud máxima es la magnitud del objeto más tenue del catálogo. Este ajuste es particularmente importante para un catálogo de estrellas, para representar correctamente las magnitudes en la carta.

La segunda parte depende del tipo de catálogo. Para estrellas está en blanco. La imagen a la derecha muestra Parámetros prefijados para contornos:

- Tipo de trazado (usado para conectar los puntos en la lista):
  - Línea: líneas rectas.
  - Spline: curvas suaves.
  - Superficie: llena la superficie con el color de la línea.
- Contorno cerrado fuerza el cierre de la línea entre el último punto y el primero.
- Ancho de línea (en pixels).
- Color de la línea o superficie (click para cambiarlo).
- Operación de edición de líneas (ver abajo) establece cadenas de caracteres que serán reconocidas para operaciones de trazado (valores separados por comas). Click “volver” cuando termines.
- Editar color (ver abajo) establece cadenas de caracteres que serán reconocidas como colores de línea (valores separados por comas). Click “volver” cuando termines.

Opciones para nebulosas

- Dimensión u unidades Dimensiones prefijadas (en caso de campos vacíos, sin datos) y sus unidades.
- Escala logarítmica Elije esta opción si el campo usado para el tamaño es un flujo (por ejemplo, para una catálogo de fuentes de radiofrecuencia).
- Editar los tipos de objeto Permite establecer cadenas de caracteres que serán reconocidas para establecer el tipo de objeto (valores separados por comas). Click “volver” cuando termines.
- Editar unidades Establece cadenas de caracteres que serán reconocidas para establecer las unidades (valores separados por comas). Click “volver” cuando termines.

Presiona Sig. » para pasar a la siguiente página.

## Página 3

Esta página permite mapear los datos del archivo de entrada al catálogo. La lista muestra diferentes campos, dependiendo del tipo de catálogo elegido en la primera página.

Elige un campo que quieras incluir en el catálogo y define su posición en el registro que semuestra como ejemplo. Los campos obligatorios aparecen entre corchetes ”[]”, y las unidades obligatorias entre paréntesis ”()”.

Indica en Etiqueta la etiqueta que elijas para mostrar correspondiente al campo. Primer caracter y Longitud describen la posición del campo para cada línea del archivo de entrada. Puedes tipear el valor (obtenido del archivo Readme del catálogo) o marcar los datos en el registro de muestra con el mouse. Si usas el mouse, asegúrate de que la longitud del campo que marques sea suficiente para contener la cadena más larga que pueda aparecer en el archivo del catálogo. De lo contrario, aparecerá cortada.

Lista de campos para cada tipo de catálogo:

Campos obligatorios:

Estrellas | Estrellas variable | Estrellas dobles | Nebulosas | Contornos de nebulosas
--- | --- | --- | --- | ---
RA | RA | RA | RA | RA
DEC | DEC | DEC | DEC | DEC
Magnitud (V) |  | Magn. comp. 1 |  | Operación de línea
|  | Separation |  |

Campos usados para trazar las cartas:

Estrellas | Estrellas variable | Estrellas dobls | Nebulosas | Contornos de nebulosas
--- | --- | --- | --- | ---
Catalog ID | Catalog ID | Catalog ID | Catalog ID | Catalog ID
B-V | Magnitude Max. | Position angle | Nebula type | Line width
Proper motion RA | Magnitude Min. |  | Magnitude | Line color
Proper motion DEC | Magnitude code |  | Surface brightness | Drawing type
Position Epoch |  |  | Largest dimension |
Magnitude B |  |  | Smallest dimension |
|  |  | Dimension unit |
|  |  | Position angle |

Campos de información solamente:

Estrellas | Estrellas variable | Estrellas dobls | Nebulosas | Contornos de nebulosas
--- | --- | --- | --- | ---
Magnitude R | Period | Magn. comp. 2 | Radial velocity | Comment
Spectral class | Variable type | Epoch | Morphological class | String..
Parallax | Maxima Epoch | Component name | Comment | Numeric..
Comment | Rise Time | Spectral class comp. 1 | String.. |
String.. | Spectral class | Spectral class comp. 2 | Numeric.. |
Numeric.. | Comment | Comment |  |
| String.. | String.. |  |
| Numeric.. | Numeric.. |  |

Al final de la lista encontrarás diez cadenas y valores numéricos que pueden usarse libremente para cualquier dato adicional.

Si seleccionas Usar este campo como nombre alternativo el valor correspondiente puede usarse como nombre alternativo para el objeto. Este nombre se usará en caso de que el nombre principal (Catalog Id) esté ausente, o puede agregarse al archivo de índice del catálogo.

El botón Advanzado permite computar una transformación lineal de datos del catálogo. Se activa solamente para datos numéricos.

Puede resultar útil para obtener las coordenadas del objeto cuando estos datos no están directamente disponibles en el catálogo. Por ejemplo, supongamos que el catálogo da la posición de un objeto en milímetros sobre la placa fotográfica desde el centro de una galaxia (sea ra: 0h42m42.00s dec:+41°16'00.0”), y sabemos que el borde superior de la placa está al Norte y que la escala de la placa es de 2 segundos por milímetro. El valor aproximado de las coordenadas (ignorando correcciones de la placa) en grados será:

    DEC = 41.26667 + Xmm * (2/3600)
    RA = 10.67500 - Ymm * (2/3600/cos(DEC))

Selecciona “Grados decimales” para RA y DEC, indica la posición en milímetros y establece en “Advanzado”:

    para RA : -0.00073837 y 10.67500
    para DEC : 0.00055555 y 41.26667

Si los datos requieren transformaciones más complejas debes hacerlas antes de ejecutar CatGen. Un script en Perl podrá resolver casi cualquier caso.

Presiona el botón “Sig. »” para pasar a la cuarta y última página.

## Página 4

En la última página establecerás las opciones para el catálogo generado.

Establece la cantidad de archivos como se recomienda dependiendo del número de objetos en el catálogo. Ésto es muy importante para obtener un buen desempeño.
Selecciona Crear un archivo de índice si quieres crear un índice que permita buscar los objetos del catálogo por sus nombres.
Selecciona Agregar nombres alternativos al índice si qieres que los campos que definiste como nombres alternativos sean incluidos en el índice.
Selecciona Prefijar los nombres alternativos con etiquetas si quieres usar las etiquetas del campo correspondiente como prefijos. Por ejemplo, si una columna del archivo de entrada da el número de catálogo UGC, puedes establecer el valor del índice como UGC7442 en lugar de 7442, que podría ser confuso.
Elije un Directorio de salida para guardar los archivos del catálogo. Es un buen hábito usar directorios separados para cada catálogo. Generalmente son subdirectorios de `[SkyCharts installation directory]/cat/`.
Selecciona Agregar a un catálogo existente si quieres agregar datos a un catálogo que tenga el mismo nombre en el mismo directorio. Ésto es útil para crear un único catálogo a partir de fuentes diversas. en este caso la estructura del catálogo debe ser exactamente la misma que la del catálogo existente, de otro modo los datos se perderán. Conviene hacer una copia de resguardo antes de usar esta opción.

Si llegaste hasta aquí, guarda tus especificaciones usando el botón Guardar Proy., así podrás reutilizarlo y hacer cambios fácilmente. Por último, presiona el botón Construir catálogo!

Una barra de progreso muestra el avance de la operación. Puedes interrumpirla. En tal caso el catálogo parcialmente creado será inutilizable. Al terminar la construcción se cerrará la barra de progreso. Puedes salir del programa mediante el botón Cerrar.

En caso de que un registro no contenga un valor numérico válido para un campo, el objeto no será incluido en el catálogo. Estos casos quedarán registrados en un archivo llamado reject.txt.

Es una buena idea hacer una prueba de las definiciones usando un número pequeño de registros, para evitar el procesamiento de millones de objetos que resulten rechazados. Puedes encontrar comandos para Windows equivalentes a los de Unix “head”, “tail” y “grep” en este paquete, que te ayudarán a extraer unas pocas líneas de un archivo grande.

Si todo funcionó bien, estás listo para usar el catálogo. Revisa la documentación para ver cómo activarlo.

## Notas para usuarios de Linux y Mac

Por favor, leer cuidadosamente si piensas hacer un catálogo grande con 9537 archivos.

A medida que lee líneas del catálogo de entrada Catgen necesita escribir datos aleatoriamente en los 9537 archivos de salida. De manera que los 9537 archivos necesitan estar abiertos a la vez.

Como Linux y Mac OS son sistemas operativos multiusuario existe una salvaguardia para evitar que un usuario acapare todos los recursos del sistema. Para una instalación estándar de Linux el número máximo de archivos que un usuario puede tener abiertos está limitado a 1024.

Para incrementar este límite necesitas primero cambiar el límite del sistema en el archivo limits.conf :

    sudo vi /etc/security/limits.conf

Agrega estas dos líneas al final:

    * soft nofile 1024
    * hard nofile 32768

Recomiendo que mantengas el valor predeterminado de 1024, ya que es una buena protección contra procesos fuera de control.

Guarda el archivo y sal de la sesión, ya que este archivo sólo se aplicará en el siguiente login.

Abre una consola y ejecuta:

    ulimit -S -n 20000

y desde la misma terminal:

    skychart

Esto es importante ya que el cambio del límite sólo se aplica a la instancia del shell en curso, no a todo el sistema.