- Изменениы параметры командной строки
- Изменен генератор случайных чисел
Usage of ./classifier-linear-eq:
--avg-percent float персентиль для усреднения данных (default 0.1)
--delta-dust float64Slice аэрозольная деполяризация для пылевого аэрозоля (default [0.200000,0.350000])
--delta-smoke float64Slice аэрозольная деполяризация для смога (default [0.020000,0.100000])
--delta-urban float64Slice аэрозольная деполяризация для городского аэрозоля (default [0.010000,0.100000])
--gf-dust float64Slice емкость флуоресценции для пылевого аэрозоля (default [0.000010,0.000050])
--gf-smoke float64Slice емкость флуоресценции для смога (default [0.000200,0.000600])
--gf-urban float64Slice емкость флуоресценции для городского аэрозоля (default [0.000010,0.000100])
--input-dir string путь к каталогу где хранятся входные данные (default "./")
--num-points int число начальных значений реперных параметров (default 100)
--sigma-h int полуширина окна сглаживания по высоте (отсчеты) (default 5)
--sigma-t int полуширина окна сглаживания по времени (отсчеты) (default 3)
--size int размер окна сглаживания (default 7)
--smooth применить сглаживание данныхТеперь, посколку оставлен один генератор случайных чисел - равномерный - для ограничения достаточно задать диапазон каждой переменной.
--delta-dust
--delta-smoke
--delta-urban
--gf-dust
--gf-smoke
--gf-urbanПринимают диапазон, который задается через запятую. Например, для delta-dust можно указать диапазон от 0.1 до 0.5 указав значение параметра delta-dust
classifier-linear-eq.exe --delta-dust=0.1,0.5с остальными параметрами также, важно - между минимальным и максимальным значением стоит только запятая, не должно быть пробелов.
Программа выполняет классификацию аэрозоля по трем типам:
- пылевой
- городской
- смоговый
разделение происходит на основании анализа двух параметров:
- Gf - емкость флуоресценции
-
$\delta_p$ - аэрозольная деполяризация
Основанием для классификации служит статья (https://doi.org/10.5194/amt-17-3367-2024)
для работы программы нужно указать реперные значения
Доля вклада каждого компонента в измеренные значения
При этом
Решение этой системы методом наименьших квадратов позволяет разложить влияние каждого из типов аэрозолей в смесь, а также уточнить значения параметров для каждого из классов.
Реперные значения классов аэрозолей мв задаем с некотрой погрешностью, при этом они напрямую отвечают за результирующее решение (
Помимо уже известных нам известных нам величин, F - соответствует L2 норме нашей невязки в решении систему уравнений Далее, мы ранжируем наши векторы решений, в порядке возрастания и берем p% полученных решений с наименьшим значением F и усредняем. В результате мы получим
вектор, состоящий из средних значений каждого из компонентов
Этот этап повторяется для каждого из измерений (
Полученные результаты оформляются в виде матрицы, которая сохраняется в csv и pdf
./classifier -h
Usage of temp:
-config string
path to config file (default "config.yml")
Usage of ./classifier:
-delta-dust float
реперное значение аэрозольной деполяризации, соответствующее пыли (центр кластера из статьи) (default 0.26)
-delta-smoke float
реперное значение аэрозольной деполяризации, соответствующее смогу (центр кластера из статьи) (default 0.06)
-delta-urban float
реперное значение аэрозольной деполяризации, соответствующее городскому аэрозолю (центр кластера из статьи) (default 0.05)
-gf-dust float
реперное значение флуоресцентной емкости пыли (центр кластера из статьи)
fluorescence capacity of dust aerosol (default 3e-05)
-gf-smoke float
реперное значение флуоресцентной емкости смогу (центр кластера из статьи)
fluorescence capacity of soot aerosol (default 0.0004)
-gf-urban float
реперное значение флуоресцентной емкости городского аэрозоля (центр кластера из статьи)
fluorescence capacity of urban aerosol (default 5.5e-05)
-input-dir string
путь к папке где лежат файлы (FL_cap.txt, dep.txt) (default "./")
-num-points int
размер моделируемого набора данных параметров кластеров (default 100)
-avg-percent float
доля профилей для усреднения (default 0.1 от числа, заданноко в num-points )
-sigma-h int
полуширина сглаживающего окна по высоте в отсчетах (default 5)
-sigma-t int
полуширина сглаживающего окна по времени в отсчетах (default 3)
-size int
размер сглаживающего окна в точках (default 7)
-smooth
флаг, указывающий необходимость сглаживания (default false)
-var-coef float
величина, указывающаа на скольно сильно нужно делать разброс значений при моделировании набора данных параметров кластеров (default 0.1)Все эти параметры можно задавать явно, либо указать в файле config.yml
gf_urban: 0.55e-4
gf_smoke: 4e-4
gf_dust: 0.3e-4
delta_urban: 0.05
delta_smoke: 0.06
delta_dust: 0.26
variation_coefficient: 0.1
input_dir: "./test"
num_points: 100
do_smooth: true
sigma_h: 5
sigma_t: 3
size: 7
avg_percent: 0.1При запуске программа сначала ищет файл config.yml, читает оттуда настройки, потом проверяет, есть ли какие другие параметры, указанные явно. Если есть - применяет их к уже считанным из файла. Если config.yml не найден, программа считывает настройки из флагов, если и их нет - использует значения по умолчанию
В результате мы получаем следующие файлы в той же директории, где лежат фходные файлы FL_cap.txt и dep.txt
- delta_d.csv, delta_u.csv, delta_s.csv - файлы с уточненными значениями delta
- Gf_d.csv, Gf_u.csv, Gf_s .csv- файлы с уточненными значениями емкости флуоресценции
- Eta_d.csv, Eta_u.csv, Eta_s.csv - файлы с рассчитанными вкладами в смесь dust, urban и smoke
- Eta_d.pdf, Eta_u.pdf, Eta_s.pdf - графическое представление данных Eta
- dep.pdf - графическое представление деполяризации
- rand.csv - смоделированные данные для реперных кластеров
- sigma-h
- sigma-t
- size
- smooth
- num-points
- var-coef
- avg-percent
- variation_coefficient_delta определяет вариацию всех параметров Gf
- variation_coefficient_gf определяет вариацию всех параметров delta
- variation_coefficient удален
- Изменил решатель на BGFS
- Добавил сохранение матрицы погрешностей
- Изменил способ расчета невязки
Подразумевает, что Gf и
Чтобы выразить
Выразим
Подставим эти выражения в числитель:
Теперь числитель и знаменатель имеют схожую структуру. Если ввести обозначения для весовых коэффициентов:
то формула примет вид:
Таким образом,
Что имеем по
Где
Чтобы выразить
Выразим
Подставим эти выражения в числитель:
Теперь числитель и знаменатель имеют схожую структуру. Если ввести весовые коэффициенты:
то формула примет вид:
Это означает, что
Но:
Исходя их этих соображений, моделировать тестовые данные как линейную комбинацию аэрозолей заданных типов вполне верно