Прежде всего, мы будем использовать термокамеру смартфона Ulefone 19t, а именно модуль FLIR Lepton 3.5. Данный модуль является радиометрической LWIR (длинноволновое инфракрасное излучение) камерой. Разрешение камеры пикселей. Чувствительность сенсора , динамический диапазон (максимальная температура — минимальная температура) . Объекты с температурой выше абсолютного ноля испускают длинноволновое инфракрасное излучение. Интенсивность излучения при прочих равных пропорциональна температуре объекта. Используемая камера позволяет получать изображения, сформированные таким излучением. В дальнейшем, по яркости объектов на изображении можно судить об их излучательной способности в тепловом диапазоне, что можно приближенно интерпретировать, как температуру объектов.
Обозначим разные участки заглавными буквами. Пусть первый участок будет обозначаться как , второй , третий и т. д.
Обозначим среднюю температуру участка с помощью подстрочного индекса. Например, средняя температура участка в день 1 будет обозначаться как , а температура участка в день 8 — как .
Из-за отличающихся условий в разные дни (температура воздуха, ветер, влажность почвы), мы ожидаем, что температура одного и того же участка будет отличаться:
Конечной целью проекта является выявление тенденций нагрева участков с разной поверхностью. То есть, мы должны сравнивать разные участки. Это можно выразить так: нас интересует отношение температур разных участков:
При этом мы помним, что в разные дни собственные температуры участков отличаются. Поэтому очевидно, что мы не можем сравнивать разные участки, измеренные в разные дни. То есть, выражение вида -- отношение температуры участка в день 1 к температуре участка в день 2, лишено смысла. Можно сказать, что измерения, сделанные в разные дни, имеют разную систему отсчета, поэтому в исходном виде не сравнимы.
Поэтому, для работы с измерениями, сделанными в разные дни, нам нужна некоторая общая для всех участков шкала отсчета. В качестве такой шкалы предложено использовать температуру шаблонных белого и черного объектов (тепловая мишень). Ожидаемо черная часть мишени должна быть теплее, чем белая.
Обозначим среднюю температуру черного объекта как , а температуру белого — как . Для них действует такая же маркировка по дням. Температура черного объекта в день 1 будет обозначаться как , а, например, температура белого объекта в день 3 — как .
Теперь мы можем выразить температуру участков не в исходных градусах Цельсия, а относительно температур тепловых целей. Так, масштабированная температура участка в день 2 может быть выражена как:
Масштабированная температура участка в день 3 может быть выражена как:
Иными словами, мы можем выразить температуру участка относительно температуры нагрева очень белого и очень черного объектов в этот день. Теоретически, температура участков будет оставаться где-то между этими крайними значениями. Поэтому масштабированные температуры участков будут принимать значения от 0 до 1. Значение 1 — если их температура была равна температуре черной мишени. 0 — если их температура была равна температуре белого объекта.
Цель всего этого масштабирования — возможность сравнения измерений, сделанных в разные дни. Поэтому в нашем проекте присутствует еще одна задача — фотографирование тепловых мишеней.
Наша основная цель — оценка того, как особенности травостоя влияют на нагрев поверхности. При этом, разные сообщества растений, в разные периоды времени имеют разное альбедо — способность отражать солнечный свет. Участки, которые сильнее отражают свет, при прочих равных нагреваются слабее, чем темные участки, поглощающие много радиации. Теоретически, при очень большом наборе участков и большом количестве наблюдений, мы могли бы игнорировать фактор альбедо, воспринимая его, как неучтенный, рандомизированный параметр. В нашем же случае, количество участков невелико, количество наблюдений также ограничено. В таких условиях фактор альбедо может принять вид запутывающей переменной, которая исказит выводы статистического моделирования. Поэтому мы должны, то что называется в практике статистического моделирования, проконтролировать этот фактор. То есть, измерять его и сделать частью статистической модели.
Кроме того, в задаче оценки нагрева антропогенных поверхностей без растений альбедо выступает одним из главных факторов, контролирующих нагрев. В этой задаче измерение альбедо является необходимым действием.
В нашем случае измерение альбедо основывается на сравнении цветности участка с яркостью цветовой мишени. Как и в случае с тепловой мишенью, цветовая мишень представляет собой два квадрата черного и белого цвета. Хотя наши объекты не являются идеальными черным и белым телами, всё же мы будем условно считать их таковыми. Примем, что черный квадрат поглощает всю падающую на него солнечную радиацию, а белый, наоборот, отражает весь свет. То есть, альбедо черного квадрата равно 0, а белого равно 1. Альбедо же участка должно принимать какие-то значения в пределе от 0 до 1.
То есть, нам нужно сфотографировать участок на обычную (не термальную) камеру, предварительно расположив на нём цветовую мишень. А после выразить значения всех пикселей на фотографии так, чтобы черный квадрат принял значение 0, а белый — 1. Потом, исключив участок с мишенью, мы сможем оценить среднее значение пикселей участка — это и будет показателем альбедо участка.
Обычная цифровая камера имеет очень низкий динамический диапазон яркостей.
Для примера, рассмотрим следующий рисунок:

Верхний ряд кругов имитирует реальную яркость 15 объектов, от черного до белого. Второй сверху ряд, отображает то, как этот исходный ряд будет выглядеть на фотографии с короткой экспозицией (коротким временем засветки матрицы). Как видите, белый круг остаётся белым. Далее мы видим плавный переход к черному, но полностью черным выглядит не первый круг, как в реальности, а первые 7 кругов. Фотография оказывается ненасыщенной. Красной рамкой обозначен диапазон, в котором камера способна различать яркости объектов при текущей экспозиции.
Третий ряд сверху представляет собой имитацию того, как будет отображена яркость объектов на фотографии со средней экспозицией. Как видите полностью черными выглядят не только первый круг (как в реальности), а первые 4 круга. Аналогично полностью белыми выглядят не только последний круг, а последние 4 круга.
Нижний ряд, четвертый сверху, имитирует то, как будут отображаться яркости объектов на фотографии с долгой экспозицией (длительное время засветки матрицы фотоаппарат). В таком режиме фотография получается перенасыщенной, засвеченной — белыми выглядят не только последний круг, как в реальности, а последние 7 кругов.
Таким образом, ни в одном режиме экспозиции, обычная камера не способно передать весь диапазон яркостей объектов. Если мы попробуем провести расчет альбедо по обычной фотографии, то значения получатся или завышенными или заниженными, но вряд ли близкими к реальности.
Чтобы обойти эту проблему, мы можем использовать сразу три фотографии с разной экспозицией (короткой, средней и долгой). Далее мы можем применить специально разработанный скрипт на языке Python, который совместит все три фотографии и рассчитает диапазон яркости, близкий к реальному.
Для этого мы используем приложение OpenCamera, которое уже установлено на наши смартфоны. В данном приложении уже настроена функция фотографирования в режиме HDR. В этом режиме камера автоматически делает 3 снимка с разной экспозицией. Далее, внутренними алгоритмами, она собирает из трех изображений так называемое HDR изображение — искусственное изображение, на котором минимизируется количество засветок и затемнений. В нашем случае нам не нужно HDR изображение, но мы воспользуемся тем, что OpenCamera позволяет сохранять три исходных изображения с разной экспозицией. Их то мы и должны сохранить и дальше обработать нашим скриптом.
Файлы следует переименовывать и сохранять в логически обоснованную структуру папок.
гггг_мм_дд, например, 2025_08_20.termo (в ней будут храниться термальные фотографии), albedo (фотографии HDR для измерения альбедо), ref (термальные фотографии температурных мишеней).termo и папке albedo создаётся 18 папок, по одной на каждую точку. Папки подписываются номерами участков 01, 02, 03 …termo/01/ сохраняются три файла, полученные для 3 участков на точке 1. Файлы подписываются номерами участка: 1, 2 или 3. Таким образом путь к файлу с термальным снимком должен выглядеть например как: temp/01/1.jpgalbedo в каждой папке точки, сохраняются тройки HDR фотографий для каждого из 3-х участков. Всего 9 фотографий на точку. Фотографии подписываются по схеме: [номер участка]_[номер изображения HDR]. Например, 1_2.jpg — вторая фотография HDR для первого участка. Всего будет 9 файлов: 1_1.jpg, 1_2.jpg, 1_3.jpg, 2_1.jpg … 3_2.jpg, 3_3.jpg.ProjectRoot/
├── 2025_08_20/
│ ├── termo/
│ │ ├── 01/
│ │ │ ├── 1.jpg
│ │ │ ├── 2.jpg
│ │ │ └── 3.jpg
│ │ ├── 02/
│ │ │ ├── 1.jpg
│ │ │ ├── 2.jpg
│ │ │ └── 3.jpg
│ │ └── ... (03–18)
│ │
│ ├── albedo/
│ │ ├── 01/
│ │ │ ├── 1_1.jpg
│ │ │ ├── 1_2.jpg
│ │ │ ├── 1_3.jpg
│ │ │ ├── 2_1.jpg
│ │ │ ├── 2_2.jpg
│ │ │ ├── 2_3.jpg
│ │ │ ├── 3_1.jpg
│ │ │ ├── 3_2.jpg
│ │ │ └── 3_3.jpg
│ │ ├── 02/
│ │ │ └── ... (аналогично 01)
│ │ └── ... (03–18)
│ │
│ └── ref/
│ ├── ref_start_thermal.jpg
│ └── ref_end_thermal.jpg
│
└── 2025_08_21/
├── termo/ ... (аналогично предыдущей дате)
├── albedo/ ...
└── ref/ ...
Подписывать фотографии во время съемки будет очень долго и не практично. Поэтому задача переноса файлов на компьютер, переименовывания и сохранения в облаке требует особой внимательности и ответственности.
Я бы предложил, чтобы не запутаться удалять все фотографии со смартфона перед каждым выходом.
Далее, один из участников команды должен дополнительно фиксировать в журнале порядок обхода, порядок и количество сделанных снимков. Часто бывает, что снимок не получился или случайно повторно нажали на снимок в результате фотография продублировалас. Все эти момент должны быть зафиксированы в журнале, чтобы потом можно было разобраться каким участкам соответствует каждая фотография. Когда Вы скачаете файлы — это будет просто куча файлов с системными именами. Их нужно будет отсортировать по времени фотографии (скорее всего названия будут сортироваться в правильном порядке, но это нужно будет уточнить). Дальше Вам нужно будет последовательно переименовывать эти файлы и переносить в нужные папки. Поэтому, сначала создайте структуру папок у себя на компьютере, скачайте фотографии с телефона. Распределите их по папкам. И только когда всё сойдётся, когда Вы разберетесь правильно ли всё сделали, только потом копируйте файлы в облако. При этом сохраняйте у себя на компьютере исходные файлы. С фотографиями альбедо должно быть проще, так как на цветовой мишени есть ярлык с номером точки и участка. Но его тоже может быть невидно из-за засветок и т.д.
С учетом того, как часто наши сотрудники совершают ошибки при таких работах, я настаиваю, чтобы процедура распределения и подписывания файлов дублировалась. Т.е. скачать файлы с телефона, рассортировать и переименовать их должны 2 человека, независимо друг от друга. Дальше Вы должны одновременно закидывать файлы в облако. Сначала один человек, потом второй. Первый человек сохраняет свой файл в нужную папку, потом второй пытается заменить его своим. Система отобразит сообщение, где будет указан точный размер исходно файла и того на который Вы пытаетесь заменить. Если размеры совпадают, то всё хорошо. Если нет, значит кто-то из Вас допустил ошибку.
Я говорил это раньше и говорю еще раз — самое глупое — это потратить силы и время на получение данных, а потом испортить их неправильными подписями по невнимательности.