# GURU — prop-along (guru-prop-along)

Интерполяция произвольного свойства Q(T, ρ) (например, электрическая проводимость sigma, вязкость) по EOS‑сетке и добавление его вдоль заданного пути T–ρ (например, изоэнтропы, полученной guru-isentrope).

## Назначение
- Вход 1 (grid): один или несколько TSV со столбцами T, rho и целевым свойством (`--prop`). Поддерживаются компактные и rich TSV от guru-thermo; имена колонок сопоставляются без учёта регистра с синонимами.
- Вход 2 (path): TSV со столбцами T и rho (например, вывод `guru-isentrope`).
- Выход: исходный файл пути с добавленным столбцом значения свойства вдоль пути.

## Работа с сеткой
- `--grid-mode auto|rect|quasi`
  - rect: RectBivariateSpline на прямоугольной сетке T×ρ (точная интерполяция).
  - quasi: SmoothBivariateSpline по «рассеянным» точкам (T, ρ) с фактором сглаживания `--smooth-s` (`s=0` ⇒ интерполяция).
  - auto (по умолчанию): выявляет прямоугольность (одинаковое число точек на каждую ρ). Иначе — quasi.
- Пропуски значений: если у части узлов нет свойства, режим quasi использует соседние точки; для rect требуется прямоугольная сетка; иначе auto переключится на quasi.
- Экстраполяция: разрешается выход за границы сетки до ±`--extrap-frac` (однократное предупреждение), вне окна — пустое значение.

## CLI
```
guru-prop-along \
  -g grid.tsv [grid2.tsv ...] --prop <имя> [<имя2> ...] \
  --path path.tsv -o out.tsv \
  [--grid-mode auto|rect|quasi] [--smooth-s 0.0] [--extrap-frac 0.10] \
  [--prop-out имя ...] [--plot] [--plot-prefix префикс]
```

- `-g/--grid`: TSV‑файлы со столбцами T, rho и целевым свойством.
- `--prop`: имя(имена) столбца свойства (без учёта регистра). Запасной путь — поиск как подстроки.
- `--path`: TSV со столбцами T и rho (и, опционально, P).
- `-o/--out`: выходной TSV с добавленными столбцами свойств (имена из `--prop-out`, если указаны, иначе — из `--prop`).
- `--grid-mode`: см. выше. `--smooth-s` — сглаживание для режима quasi.
- `--extrap-frac`: допустимая экстраполяция при выходе пути за границы сетки (по умолчанию ±10%).
- `--plot`: сохранить графики вдоль пути: Q–ρ и Q–T.
- `--plot-prefix`: префикс имён файлов графиков (по умолчанию по `--out`).
  Q–P сохраняется автоматически при `--plot`, если в пути есть столбец давления.

## Сопоставление имён колонок (без учёта регистра)
- T: `T`, `T_mean`, либо заголовки, начинающиеся на `t` (например, `T[K]`).
- rho: `density_g_cm3`, `rho`, `d`, либо начинающиеся на `rho` или `dens`.
- P (опционально в пути): `P`, `P_mean`, либо начинающиеся на `p` (например, `P[kbar]`).
- Q: строгое совпадение с `--prop`; запасной путь — первое вхождение подстроки в имени столбца.

## Примеры
- Проводимость вдоль изоэнтропы (rich TSV + графики):
```
guru-prop-along -g thermo_rich.tsv --prop sigma \
  --path iso.tsv -o iso_with_sigma.tsv \
  --plot --plot-prefix iso_sigma
```
- Несколько свойств (sigma и viscosity) из «квазисетки» со сглаживанием и графиками:
```
guru-prop-along -g eos_scattered.tsv --prop sigma viscosity \
  --grid-mode quasi --smooth-s 1.5 \
  --path iso.tsv -o iso_with_props.tsv \
  --plot --plot-prefix iso_props
```

## Выходные файлы
- `out.tsv`: путь с добавленными столбцами свойств.
- Графики при `--plot` (Q–P сохраняется автоматически, если в пути есть P):
  - `<prefix>_<Q>_rho.png` — Q от ρ
  - `<prefix>_<Q>_T.png` — Q от T
  - `<prefix>_<Q>_P.png` — Q от P (если в пути есть P)
