# ZarrViewer Un explorador rápido y ligero para archivos `.zarr` desde la terminal. Permite visualizar la estructura, los tiempos y generar gráficos inteligentes (mapas, series de tiempo o **snapshots estáticos**) con un solo comando. ## Instalación 1. Asegúrate de tener Python 3.6 o superior. 2. Instala las dependencias necesarias: ```bash pip install xarray pandas zarr matplotlib ``` 3. Convierte el script en un comando nativo del sistema: ```bash # Quítale la extensión .py mv zarrviewer.py zarrviewer # Dale permisos de ejecución chmod +x zarrviewer # Muévelo a un directorio en tu PATH (ej. ~/.local/bin o /usr/local/bin) mv zarrviewer ~/.local/bin/ ``` ## Modo de Uso ### 1. Exploración Básica (Listar variables y estructura) Si pasas solo la ruta del archivo (o usas la bandera `-h`), el programa imprimirá la estructura completa del archivo (similar a `ncdump -h`) y listará todas las variables disponibles para graficar. ```bash zarrviewer ruta/al/archivo.zarr # o zarrviewer ruta/al/archivo.zarr -h ``` ### 2. Ver Tiempos Disponibles Muestra el inicio y el final de la serie de tiempo disponible. ```bash zarrviewer ruta/al/archivo.zarr ``` Opciones adicionales: * `-f 10`: Muestra los primeros 10 tiempos (por defecto son 3). * `-l 10`: Muestra los últimos 10 tiempos. * `-a`: Imprime todos los tiempos disponibles en el archivo. ### 3. Generar un Mapa Geográfico (2D) Si la variable tiene 2 dimensiones o más (ej. Lat/Lon, o X/Y en WRF y WindNinja), generará automáticamente un mapa georreferenciado con la escala corregida (1:1). Por defecto, grafica el **último frame temporal disponible** (o el único, si es un snapshot estático). ```bash zarrviewer archivo.zarr -v T2 ``` **Seleccionar un frame específico:** Puedes usar la opción `--frame` para elegir qué índice de tiempo graficar (0 es el primero, 1 el segundo, -1 el último). ```bash # Graficar el primer frame (índice 0) zarrviewer archivo.zarr -v T2 --frame 0 # Graficar el décimo frame (índice 9) zarrviewer archivo.zarr -v T2 --frame 9 ``` **Fijar los límites de la barra de colores:** Para comparar mapas visualmente y evitar que la escala de colores cambie automáticamente, puedes forzar un valor mínimo y máximo (equivalente a `caxis([min, max])` de MATLAB). ```bash # Fijar solo el mínimo zarrviewer archivo.zarr -v T2 --vmin 270 # Fijar mínimo y máximo zarrviewer archivo.zarr -v T2 --vmin 270 --vmax 300 ``` ### 4. Generar una Serie de Tiempo (1D o Estaciones) Si la variable está asociada a una dimensión unidimensional (como estaciones meteorológicas), debes especificar el valor/estación deseada separada por dos puntos `:` o un punto `.`. ```bash # Ejemplo: Graficar la variable 'wind_speed_5m_prom' en la estación 'LSC' zarrviewer archivo.zarr -v wind_speed_5m_prom:LSC ``` **Sugerencia Interactiva:** Si olvidas especificar la estación, el programa te listará todos los valores posibles y te dará ejemplos listos para copiar y pegar: ```bash zarrviewer archivo.zarr -v wind_speed_5m_prom ``` Opciones de graficado para series temporales: * `-n 100`: Número de últimos registros a incluir en la serie de tiempo (por defecto extrae 50 puntos). * `--vmin` y `--vmax`: Fija los límites del eje Y para la gráfica de línea.