103 lines
3.3 KiB
Markdown
103 lines
3.3 KiB
Markdown
# 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.
|