fleur.js

Оценка кормовых угодий на JavaScript

Заголовок кривой, но так вернее — я пишу статью в междисциплинарный вакуум: программисты бросят читать на втором слове, а ботаники на четвертом. По этой причине изложу мысль от лица человека, который геоботанику с программированием в гробу видал.

Представим, что вы заимели в распоряжение некоторую площадь земли и намереваетесь распорядиться ей по хозяйски. Решив финансовые, кадастровые и прочие вопросы вы неизбежно придете к вопросу: «Какова земля по своим качествам?». Годится ли для посадки помидоров или кроме кривой сосны ничего не вырастет? Какой цемент выбрать для фундамента: исходя из сухой почвы или периодически подтопляемой? Почему у соседа вызревает полна жопа огурцов, а у вас дохнет последний подорожник? Потому, что в почве элементов не хватает или соседские коровы все вытоптали?

Когда участок мал, ответ познают органолептическим методом. Но что делать, если вам нужны точные результаты? Например, ваша сестра вышла замуж за премьер-министра и вы завладели миллионами гектаров угодий. Первая мысль — отобрать пробы почв из разных мест и отдать в физико-химическую лабораторию. Идея хороша, но есть три «но». Во-первых, это будет стоить безумных денег. Во-вторых, физико-химические свойства почвы постоянно меняются. Прошел дождь — и вот вам иное соотношение растворимых солей. Выглянуло солнце — изменилась влажность. В третьих, и это самое главное, вам необходимо знать не абсолютные концентрации микроэлементов, а то, насколько успешно они поглощаются растениями.

Логично оценить угодья по местным растениям. Если условные редька и одуванчик нуждаются в одинаковых условиях, значит поле одуванчиков подходит для редьки. Это примитивная, но верная мысль. Преимущество растений в длительном росте, который накапливает свойства территории за большой период. Кроме того, изучая растительность мы снижаем риск ошибки, связанной с бочкой Либиха.
Бочка Либиха

Бочка Либиха — принцип названный по фамилии немецкого профессора. В скучной экологической литературе он чаще упоминается как закон лимитирующего фактора. Наполним водой деревянную бочку, которую сколотили из досок разного размера. По заполнению, вода начнет вытекать через самую короткую доску. Наша редька будет дохнуть именно от самого проблемного элемента. Мы проверили все: азот, фосфор, калий, серу, железо и кучу других элементов — все в порядке. Но случайно забыли про марганец и вот наша условная редька уже в точечных пятнах хлороза тщетно пытается синтезировать аскорбиновую кислоту, дожидаясь малейшего повода для смерти. Условный одуванчик реагирует на всю совокупность физико-химических условий произрастания. Если он бодр и весел, за редьку можно не переживать.

Жизнь устроена сложнее наших условностей. Не бывает двух организмов, а уж тем более видов с одинаковыми требованиями к условиям обитания. «Что русскому хорошо, то немцу смерть» в переводе на экологический язык называется нормой реакции и выражается в кривой жизнедеятельности:
Кривая жизнедеятельности

Принцип влияния экологических факторов на организм выражается пословицей «Все хорошо в меру». Задача — сравнить между собой «меры» различных видов и применить к ним школьный принцип «меньше большего, больше меньшего». Если мы нашли одуванчик, значит условия жизни для одуванчика подходят. Если рядом с одуванчиком сныть, значит условия жизни подходят для одуванчика и сныти одновременно. Если мы собрали тридцать разных видов, значит условия подходят одновременно для каждого из них. Чем больше видов, тем уже диапазон факторов произрастания:
Сужение диапазона факторов произрастания

Теоретически, мы можем построить такие кривые для любого фактора окружающей среды (вопрос эмергентности опустим — это тема долгого и сложного разговора). Нас не волнует медианное значение влажности почв. Мы хотим знать, достаточно ли влаги растениям? Это не одно и тоже: весной воды хоть залейся, но растения живут в условиях физиологической сухости, поскольку не могут впитать воду из холодной почвы. Вопрос шкалирования («в каких единицах измерять») решается принципом канторово-пелевинской «сиськой в себе». Рисуем пустую стобалльную шкалу, после идем в самое сухое место, определяем найденные растения и вписываем их в левую часть шкалы. Потом идем в самое сырое место и вписываем местные растения в правую часть шкалы. После делаем несколько десятков тысяч описаний из разных мест и расставляем на шкале встреченные виды.

В одну из ночей опустите луч фонарика вертикально вниз. На землю ляжет тень от травы — проекция растений на плоскость. Если забыть, что луч бьет из одной точки или взять громадный прожектор, то площадь тени будет пропорциональна густоте растений. В геоботанике этот показатель называется проективным покрытием. Глазомерно он вычисляется как доля покрытой растениями территории. Сумма проективных покрытий всех видов больше общего покрытия травостоя, поскольку разные виды перекрывают друг друга. Псевдоматематики называют проективное покрытие вероятностью обнаружения вида в точке со случайными координатами или говорят о других диких концепциях, но на практике без инструментов никто не способен оценить густоту растений точнее 5-10 процентов (хоть все говорят, что могут), поэтому описание дополняют словами «единично», «незначительно» и прочей гуманитарной фигней.

Идя по градиенту влажности от сырого к сухому месту, вы встретите новые виды. Пока еще чахлые и редкие. Они едва выживают при такой влажности. Скоро этих растений станет больше. В идеальных условиях проективное покрытие возрастет до ста процентов — вспомните непроходимые заросли крапивы urtica dioica. На подходе к сухому месту проективное покрытие уменьшается, в сухих условиях остаются лишь единичные растения. В очень сухих ваши они уступают другим видам. За время похода вы пройдете несколько куполообразных изменений проективного покрытия, которые вспомните составляя шкалу:
Градиент изменения условий среды

Когда первая шкала готова, делим весь массив описаний на группы по влажности территорий и для каждой группы тем же методом строим шкалу «бедность-богатство-засоленность». Затем итеративно повторяем процесс для переменности увлаженения, аллювиальности почв, пастбищной дегрессии (вытоптанности) и чего душа пожелает.

Для работы необходимы десятки лет, миллиарды рублей и армия ботаников. Сегодня такие ресурсы получить невозможно, но по счастью кровавый сталинизм оставил в наследство не только сопливый дудевский фильм, но и результат работы института луговой и болотной культуры (сейчас НИИ кормов имени Вильямса), где под руковоством Л.Г. Раменского подготовлена прекрасная монография «Экологическая оценка кормовых угодий по растительному покрову». Книга содержит короткую пояснительную записку, методы анализа и таблицу на сотни страниц, где указано размещение видов растений на экологических шкалах в зависимости от проективного покрытия.
Книга Экологическая оценка кормовых угодий по растительному покрову

Свыше полувека работа с этой книгой выглядит так: геоботаник описывает проективные покрытия видов на площадке, возвращается домой, достает миллиметровку и рисует на ней шкалу влажности (сто двадцать единиц). Смотрит на значение проективного покрытия первого вида, находит этот вид где-нибудь на триста седьмой странице и откладывает на миллиметровке указанный в книге диапазон. Потом второй вид, потом третий и так до конца. Вид а: от сорока до пятидесяти, вид б: от сорока пяти до семидесяти, вид в: от двадцати до сорока восьми. На основе «больше меньшего, меньше большего» оцениваем увлажнение участка от сорока пяти до сорока восьми баллов. Потом переходим к вычислению богатства почвы, потом к остальным показателям. Спустя несколько часов беремся за другое описание.

Это не единственный метод, но остальные еще хуже. Тратить на это жизнь в двадцать первом веке невыносимо, поэтому ботаники забросили шкалы на антресоль и достают только студентам показать. За минувшие десятилетия технология нисколько не развилась и видимо до следующего витка репрессий останется в забвении.

Казалось бы, любой первокурсник-технарь напишет алгоритм за пару часов, любой школьник, отличающий инкремент от компиляции закодит его за вечер. Все просто как две копейки. Но все программные реализации (включая мою работу десятилетней давности) напоминали сплетенные из вареных макарон костыли для безруких. Потому что легче «Анну Каренину» на машинный язык перевести, чем автоматизировать работу с экологическими шкалами Раменского.

Проблема исключительно гуманитарная. Ботаники — от студентов до докторов наук до сих пор не отличают электронную информацию от цифровой. Наука о растительности — это пещера в котором обитает карго-культ технологического развития. Попросите любого выслать метаданные описаний — столкнетесь с непониманием. Договоритесь о данных в цифровом виде — получите на почту вордовский файл с таблицами. Гусиные перья сменила печатная машинка, печатную машинку компьютер, но сама технология изучения растительности осталась на уровне гусиных перьев.

Геоботаническое описание обычно содержит в себе метаданные (где, кем, когда и др.), описание древостоя (при наличии оного и отсутствии отдельных таксационных работ), подроста, подлеска и таблицы проективных покрытий травяно-кустарничкового и мохово-лишайникового ярусов. Камеральная обработка сводится к переносу данных в эксель, часто в том же виде, в каком они представлены на бланке. Форма бланков у всех разная, поэтому данные разных авторов не сравнимы без мучительной корректорской работы. Я опускаю разность методик, разность понимания видов, здесь разговор только о технической стороне вопроса.
Образец геоботанического описания

Без общепринятого формата, любой код автоматизации придется переписывать под каждого автора. Но это не спасет без решения проблемы субъективных оценок. Нельзя вместо оценки проективного покрытия скормить алгоритму понятия «единично», «изредка», «две куртины» и прочий бред (все из реальных описаний). Предположим, мы исключим такие данные из выборки. Если речь об экологическом шкалировании, то это допустимо. Но следом возникает проблема таксономии.

Линней, работая с номенклатурой не думал о том, что латынь уйдет в прошлое, а коробка размером с небольшой саквояж уместит в себе всю ботаническую литературу. Сегодня виды сохраняют латинское название (и это правильно), но саму латынь никто не помнит, герундий от герундива не отличает, рода путают между собой. В результате окончания видов обычно записаны с ошибками. Другое проблемное место — нечитаемые буквы. Попробуйте спустя месяц по памяти верно воспроизвести krascheninnikovii, krascheninnikoviana, или krascheninnikoviorum. Тут ботаники с лицом честного гаишника воскликнут, что они, дескать все выверяют по справочнику Черепанова. Клевер луговой у них трифолиум пратенсе, а клевер ползучий — амория репенс. Не верьте. При мне за несколько лет луговик извилистый из дешампсии стал лерхенфельдией, а из последней превратился в авенеллу. Все обсуждают подобные мелочные вопросы и никто не ничего хочет менять всерьез. А без изменений весь накопленный материал стоит дешевле макулатуры.

Я давно не работаю в государственном институте. Пол-месяца ввода, пол-месяца обработки и месяц дальнейшей психотерапии в мой прайс не включен, поэтому пришлось уйти от ботанических практик и минуя табличные редакторы, вводить данные сразу в виде js-объекта (в данные внесены искажения по условиям контракта, комментарии добавил для наглядности):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var descript = [
{
time:20160602,
note:'GR-0602-1',
tags:'Сосняк, Мяглово-Карьер',
lat:59.82739,
lng:30.69896,
datum:'4326',
author:'S.N.Golubev',
feedback:'schwejk-rpnt@rambler.ru',
license:'CC-BY-NC-SA-3.0',
source:'fieldobserve',
aream:2411,
dendro:{   /*Характеристики древостоя*/
	allvolumemcb:329,   /*Запас, куб. м*/
	allfullmsq:34.4,    /*Абсолютная полнота, кв. м*/
	pins__sylrs:{       /*Данные по сосне - pinus sylvestris*/
		volumemcb:329,   /*Запас, куб. м*/
		fullmsq:34.4,    /*Абсолютная полнота, кв. м*/
		diasm:23,        /*Средний диаметр, cм*/
		heightm:24.7,    /*Высота, м*/
		age:70,          /*Возраст, лет*/
	},
},
grass:{   /*Данные по живому напочвенному покрову*/
	allcover:50,   /*Общее проективное покрытие яруса*/
	cover:{        /*Повидовое проективное покрытие*/
		vacnm_myrls/*Черника - Vaccinium_myrtillus_L*/:20,
		vacnm_vitd/*Брусника - Vaccinium_vitisidaea_L*/:30,
		conlr_majls/*Ландыш - Convallaria_majalis_L*/:5,
		trils_eurp_/*Седмичник - Trientalis_europaea_L*/:0.1,
		desps_flexs/*Луговик - Deschampsia_flexuosa_Trin*/:10,
		melrm_prans/*Марьянник - Melampyrum_pratense_L*/:0.1,
		luzl__pils_/*Ожика - Luzula_pilosa_L_Willd*/:0.1,
		calln_vulrs/*Вереск - Calluna_vulgaris_L_Hull*/:0.1,
		charn_anglm/*Кипрей - Chamerion_angustifolium_L_Holub*/:0.1,
		fragr_vesc_/*Земляника - Fragaria_vesca_L*/:0.1,
		soldg_virgr/*Золотарник - Solidago_virgaurea_L*/:0.1,
		maimm_biflm/*Майник - Maianthemum_bifolium_L_FW_Schmidt*/:0.1,
		desps_cests/*Щучка - Deschampsia_cespitosa_L_Beauv*/:0.1,
		},
	},
undergrass:{/*Данные по мохово-лишайниковому ярусу*/
	allcover:40/*Общее проективное покрытие яруса*/,
	cover:{
		polhm_specs:0.1/*Политрихум*/,
		plezm_schbr:40/*Плеуроциум*/,
		},
	},
},
]

Структура данных повторяет бланк описания (метаданные-древостой-живой напочвенный покров-мохово-лишайниковый ярус). Видам с незначительным обилием присвоено проективное покрытие 0.1%. Видовые названия записаны в виде одиннадцати символов: пять на род, пять на вид и символ нижнего подчеркивания между ними. Род и вид преобразуются в код вида по такому принципу:
— Первые три буквы таксона берутся без изменений (Convallaria — con);
— Последние две соответствуют двум последним согласным таксона (Convallaria — lr);
— Если букв в таксоне меньше пяти, пропуски заполняются нижним подчеркиванием (Poa pratense — poa___prans);
— Если после первых трех букв одна согласная или согласных нет — пустые места заполняются нижним подчеркиванием (Luzula_pilosa — luzl__pils_).

Это не самый удачный принцип, поскольку требует исключений. Например, одуванчики Taraxacum laticordatum и Taraxacum latisectum кодируются одинаково: tarcm_lattm. К более простому решению, которое обеспечивает автоматическую кодировку списка таксонов я пока не пришел. К счастью исключения редки даже для региональной флоры, для локальной совсем незначительны и легко отлавливаются простой проверкой по сортированному массиву.

После я перевел таблицу из книги Л. Г. Раменского в js-массив следующего вида:

1
2
3
4
5
6
7
8
9
10
11
12
var ramen = [
["КОД", "ВИД", "ШКАЛА", "ЗОНА", "ПОЧВА", "ПОКРЫТИЕ", "MIN", "MAX"],
["acalm_punns", "Acanthophyllum pungens (Bunge) Boiss.", "water", false, false, 0.3, 10, 15],
["acalm_punns", "Acanthophyllum pungens (Bunge) Boiss.", "water", false, false, 0.1, 8, 1000],
["acalm_punns", "Acanthophyllum pungens (Bunge) Boiss.", "rich", false, false, 0.3, 12, 15],
["acapr_schhr", "Acarospora schleicheri (Ach.). Mass.", "water", false, false, 2.5, 15, 19],
["acapr_schhr", "Acarospora schleicheri (Ach.). Mass.", "water", false, false, 0.3, 11, 22],
["acapr_schhr", "Acarospora schleicheri (Ach.). Mass.", "water", false, false, 0.1, 10, 35],
["acer__plads", "Acer platanoides L.", "water", false, false, 0.1, 65, 71],
["acer__plads", "Acer platanoides L.", "water", false, false, 0, 0, 91],
...
]

Массив состоит из 11 673 элементов, включая заголовок. Каждый элемент содержит информацию о видовом коде, таксоне, экологической шкале, минимальном и максимальном балле шкалы. Информация о типе почв и природно-климатической зоне отсутствует, но на случай развития проекта для этих данных оставлено место. В тех случаях, когда минимальный балл в книге не указан, в таблице стоит 0. Если не указан максимальный балл, в таблице стоит 1000.

Скрипт расчета Fleur.js содержит всего полторы сотни строк, но его следует сократить вдвое, поскольку вторая функция на 99% дублирует первую. На момент написания я вконец обленился и просто скопипастил свою же функцию, дополнив ее несколькими строками. Функция «ramenall(e)» подхватывает первое описание в серии, переводит абсолютные значения проективного покрытия из геоботанического описания в группы проективных покрытий шкал Л. Г. Раменского (единично-0.1, 0.1-0.3, 0.3-2.5, 2.5-8, 8 и более процентов). После сравнивает видовые списки из описания и таблицы экологических шкал на основе общего ключа кода видов. Найдя совпадение в коде, функция заполняет массив номером и таксонами описания с присвоением минимального и максимального балла для каждого вида. Если для вида информация отсутствует, скрипт выдает «-Infinity, Infinity;». После программа переходит к следующему описанию из серии. Когда описания заканчиваются, программа выводит собранный массив на html-страницу.

Функция «ramenbase(e)» выполняет те же самые операции, только для каждого описания в серии формирует массив с минимальными и максимальными значениями баллов. Из массива минимальных баллов отбирает наибольший, из массива максимальных — наименьший. Итогом выпадает таблица с номером описания, минимальным и максимальным значением на экологической шкале.
Больше меньшего, меньше большего

Обе функции потребляют на вход одинаковые аргументы: «rich» — богатство и засоленность почвы, «water» — влажность почвы, «waterwave» — переменность увлажнения, «alluvium» — аллювиальность почвы и «degrade» — пастбищная дегрессия.

Качество кода оставляет желать лучшего, но поскольку он написан три года назад по дороге из Кингисеппа в деревню Лисино-Корпус Ленинградской области, я доволен и без нужды ничего менять не планирую.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// Полный расчет (значения для всех видов)
function ramenall(e){
 
  for(var a=0; a<descript.length; a++)
  {
	  var gbo = descript[a]; // Текущее описание в обработке
	  var spec=[];           // Вид
	  var pokr=[];           // Проективное покрытие в процентах
	  var pokrball=[];       // Балл покрытия по Раменскому
	  var spectable=[];      // Обертка для spec, pokr, pokrball
 
// Перевод % покрытия в % покрытия по Раменскому	  
	  for(var key in gbo.grass.cover)
	  {
		  spec.push(key);
		  pokr.push(gbo.grass.cover[key]);
		  if(gbo.grass.cover[key]>=8.0 &&
				gbo.grass.cover[key]<100){pokrball.push(8.0);}
		  if(gbo.grass.cover[key]>=2.5 &&
				gbo.grass.cover[key]<8.0){pokrball.push(2.5);}
		  if(gbo.grass.cover[key]>=0.3 &&
				gbo.grass.cover[key]<2.5){pokrball.push(0.3);}
		  if(gbo.grass.cover[key]>=0.1 &&
				gbo.grass.cover[key]<0.3){pokrball.push(0.1);}
		  if(gbo.grass.cover[key]>=0.0 &&
				gbo.grass.cover[key]<0.1){pokrball.push(0.0);}
		}
 
// Заполнение таблицы для сравнения со шкалами    
	  spectable.push(spec);
	  spectable.push(pokr);
	  spectable.push(pokrball);
 
// Сравнение со шкалами   
	  for(var i=0; i<spec.length; i++)
	  {
		  for(var k=0; k<ramen.length; k++)
		  {
			  if(spectable[0][i]==ramen[k][0] && //Код вида
				ramen[k][2]==e && // Шкала (указана в HTML)
				ramen[k][3]==false && // Природная зона (игнорируется)
				ramen[k][4]==false && // Тип почвы (игнорируется)
				ramen[k][5]==spectable[2][i] // Проективное покрытие
				)
				{
// Публикация отчета в HTML
				var str = document.getElementById('tableResult');
				var add = str.insertRow(-1);
				var addTr = document.createElement("tr");
				var addTd = document.createElement("td");
					addTd.innerHTML=descript[a].note+", ";
					addTr.appendChild(addTd); // Номер описания
				var addTd = document.createElement("td");
					addTd.innerHTML=ramen[k][1]+", ";
					addTr.appendChild(addTd); // Название вида
				var addTd = document.createElement("td");
					addTd.innerHTML=spectable[1][i]+"%,      ";
					addTr.appendChild(addTd); // Покрытие
				var addTd = document.createElement("td");
					addTd.innerHTML=ramen[k][6]+",      ";
					addTr.appendChild(addTd); // Максимум
				var addTd = document.createElement("td");
					addTd.innerHTML=ramen[k][7];
					addTr.appendChild(addTd); // Максимум
				str.appendChild(addTr);
				};
		};
	};
};
}
 
// Краткий расчет (классический, результаты для пробной площади в целом)
function ramenbase(e){
	for(var a=0; a<descript.length; a++)
	{
		var gbo = descript[a];
		var spec=[];
		var pokr=[];
		var pokrball=[];
		var spectable=[];
 
		for(var key in gbo.grass.cover)
		{
			spec.push(key);
			pokr.push(gbo.grass.cover[key]);
			if(gbo.grass.cover[key]>=8.0 &&
				gbo.grass.cover[key]<100){pokrball.push(8.0);}
			if(gbo.grass.cover[key]>=2.5 &&
				gbo.grass.cover[key]<8.0){pokrball.push(2.5);}
			if(gbo.grass.cover[key]>=0.3 &&
				gbo.grass.cover[key]<2.5){pokrball.push(0.3);}
			if(gbo.grass.cover[key]>=0.1 &&
				gbo.grass.cover[key]<0.3){pokrball.push(0.1);}
			if(gbo.grass.cover[key]>=0.0 &&
				gbo.grass.cover[key]<0.1){pokrball.push(0.0);}
		}
 
		spectable.push(spec);
		spectable.push(pokr);
		spectable.push(pokrball);
 
		var ecoscalemin=[];// Шкала минимумов
		var ecoscalemax=[];// Шкала максимумов
 
		for(var i=0; i<spec.length; i++)
		{
			for(var k=0; k<ramen.length; k++)
			{
				if(spectable[0][i]==ramen[k][0] &&
				ramen[k][2]==e &&
				ramen[k][3]==false &&
				ramen[k][4]==false &&
				ramen[k][5]==spectable[2][i]
				)
				{
					ecoscalemin.push(ramen[k][6]);
					ecoscalemax.push(ramen[k][7]);
				};
			};
		};
 
		var str = document.getElementById('tableResultKratk');
		var add = str.insertRow(-1);
		var addTr = document.createElement("tr");
		var addTd = document.createElement("td");
			addTd.innerHTML=descript[a].note+",  ";
			addTr.appendChild(addTd); // Номер описания
		var addTd = document.createElement("td");
 
			// Максимальное значение шкалы минимумов
			addTd.innerHTML=Math.max.apply(Math, ecoscalemin)+",  ";
			addTr.appendChild(addTd); // Минимум
		var addTd = document.createElement("td");
 
			// Минимальное значение шкалы максимумов
			addTd.innerHTML=Math.min.apply(Math, ecoscalemax)+";  ";
			addTr.appendChild(addTd); // Максимум
		str.appendChild(addTr);
	};
}

Остается сверстать простую html-страницу, без всяких цээсэсов, назначить функции кнопкам и радоваться жизни. Полноценный анализ тестового набора с помощью миллиметровки у меня бы занял дней десять, может больше. Наверняка есть профи, кто сделает это быстрее, но даже супермен не рассчитал бы показатели для сотни описаний за долю секунды.

Финализировать эту эпопею нужно тремя вопросами: почему JavaScript?, что дальше? и как использовать полученные результаты анализа?. JavaScript — потому что эти расчеты иногда требуется выполнять на чужих компьютерах без установленного R, Wine или другого софта. Что дальше — не знаю. Есть пару идей, но я три года ничего не менял, могу еще три года ничего не менять. А как использовать результаты я не расскажу, поскольку строки этой статьи все-равно никто не увидит. Программисты бросят читать на втором слове, а ботаники на четвертом.


По адресу городшахты.рф/source/fleur/ лежит готовая к использованию программа. Можете указать ссылку на свой набор геоботанических описаний в указанном выше формате и рассчитать богатство, увлажнение, переменность водного режима, аллювиальность и пастбищную дегрессию почв.
Полноценное теоретическое обоснование, альтернативные методы и материалы для контроля доступны в книге: Л. Г. Раменский, И. А. Цаценкин, О. Н. Чижиков, Н. А. Антипин «Экологическая оценка кормовых угодий по растительному покрову» Всесоз. науч. -исслед. ин-т кормов им. В. Р. Вильямса. М. : Сельхозгиз , 1956 470, [2] с.: ил., 1 л. граф.

Деревья на пробной площади

Проба номер три

Одним из важнейших объектов исследования в отечественном лесоводстве являются постоянные пробные площади — ограниченные территории, на которых раз в несколько лет производится замер высоты, диаметра и других биометрических показателей деревьев. Попутно при этом описывают живой напочвенный покров, закладывают почвенные прикопки и фиксируют прочие наблюдения. В теории, эти данные накапливаются год за годом, а их анализ дает возможность проследить динамику развития растительного сообщества, что необходимо для объективного прогноза и экстраполяции данных.

На практике эти пробные площади нахуй никому не нужны. Как и отечественное лесное хозяйство, которое издревле держалось на подневольных, а когда люди закончились, накрылось пиздой в которую глянуть страшно. Погуляйте по дождливой лесной дороге — сразу поймете, почему единственным возможным видом достойного заработка в лесу являются концентрированные рубки средствами крупных лесопромышленных компаний.

Не думайте, что я вещаю из глубин пессимизма и депрессии. Наоборот, меня такая ситуация радует и любые попытки позитивных изменений я встречаю тревожным скепсисом: про возрождение лесного хозяйства в России обычно вспоминают отправляясь на постройку очередного ГУЛАГа.

Но хотя бы сегодня, давайте забудем про разных пидарасов и окунемся в мир статистики. Тем более, что процесс исследования постоянных пробных площадей, даже при отсутствии в нем всякого смысла, остается очень увлекательным занятием. Примерно как онанизм. Поэтому давайте уединимся и пока никто нас не спалил, посмотрим на данные сплошных перечетов древостоя, проведенные на одной из постоянных пробных площадей в Ханты-Мансийском автономном округе Западной Сибири.

Перечеты проведены разными исследователями в 2002 (З.Я. и В.З. Нагимовы), 2008 (Г.М. Кукуричкин) и 2018 году на ограниченной площади в 0,4 гектара. Все деревья на площади пронумерованы, на каждое дерево нанесена линия на высоте которой измеряется диаметр ствола. Изначально, эта высота должна составлять ровно 1,3 метра, но спустя шестнадцать лет, уровень ее колеблется между 1.0-1.7 м от шейки корня. Предположительно, это можно объяснить динамикой микрорельефа, хотя состояние пробы в целом создает впечатление того, что при закладке создатели были в говно пьяны. Древостой сложен лиственницей, пихтой, кедром, елью и березой, развит подрост и подлесок, живой напочвенный покров представлен лесными кустарничками и видами эвтрофных местообитаний (кислица, аконит, майник и др.). Если не смотреть на породный состав — типичный буреломный кисличник.

Первое, что необходимо сделать перед началом любой работы — привести все данные в машиночитаемый вид. Отдельно замечу: не в электронный, а именно в машиночитаемый, пригодный для автоматической обработки. Все эти бесконечные ворды, пдф-ы и эксели в девяносто девяти случаях из ста представляют собой богомерзкую хуету, которая для анализа пригодна ничуть не лучше, чем запись в полевом дневнике. При этом неизбежна стандартизация данных. В итоге разношерстные тексты сводятся в единую таблицу вот такого вида:

ele;num;d02;h02;l02;d08;d18;h18;l18 abies;1;19;NA;TRUE;20;21;NA;TRUE picea;2;38;NA;TRUE;38;37;NA;FALSE abies;3;12;NA;TRUE;12;13;NA;TRUE

Таблица целиком, пояснения и обозначения заголовков
Заголовки:
ele — (текст) — порода;
num — (текст) — номер в перечете, нанесен на ствол дерева;
d02 — (число) — диаметр в см ствола согласно перечету 2002 года;
h02 — (число) — высота в м ствола согласно перечету 2002 года;
l02- (логическое) — состояние дерева в 2002 году. TRUE — живое, FALSE — мертвое;
d08 — (число) — диаметр в см ствола согласно перечету 2008 года;;
d18 — (число) — диаметр в см ствола согласно перечету 2018 года;;
h18 — (число) — высота в м ствола согласно перечету 2018 года;
l18- (логическое) — состояние дерева в 2018 году. TRUE — живое, FALSE — мертвое;

Породы:
abies — пихта;
betula — береза;
larix — лиственница;
picea — ель;
pinsib — кедр;
none — дерево, по разному определенное в разные перечетах. Порода не установлена;

Прочее:
NA — нет данных

При составлении таблицы:
1. Отсутствующие значения (дерево выпало, еще не выросло, пропущено в ходе перечета или замер для него не проводился) обозначаются как NA;
2. В качестве названия вида используется название данное в перечете 2002 года в случае:
— если оно соответствует названию вида по перечету 2018 года
— если при перечете 2018 года это дерево было представлено сухостоем или валежом (полагая, что ошибка в определении живого дерева менее вероятна);
3. Если название дерева по перечету 2002 года не соответствует названию дерева по перечету 2018 года, дерево считается неназванным (неизвестно, кто именно допустил ошибку);
4. Значения диаметров и высот округлены до целых чисел (процедура необязательная, но позволяет избежать случайных ошибок и упрощает работу);
5. Состояние деревьев принимается бинарным (живое/мертвое). Любое дробное деление при ограниченности выборки приведет лишь излишней работе и недостоверным оценкам;

Таблица данных:
ele;num;d02;h02;l02;d08;d18;h18;l18
abies;1;19;NA;TRUE;20;21;NA;TRUE
picea;2;38;NA;TRUE;38;37;NA;FALSE
abies;3;12;NA;TRUE;12;13;NA;TRUE
picea;4;24;NA;TRUE;24;22;NA;FALSE
picea;5;47;NA;TRUE;46;42;NA;FALSE
pinsib;6;37;NA;TRUE;28;32;NA;TRUE
abies;7;11;NA;TRUE;12;13;NA;TRUE
picea;8;22;NA;TRUE;24;24;NA;FALSE
none;9;14;NA;FALSE;14;13;NA;FALSE
picea;10;31;27;TRUE;32;31;NA;FALSE
picea;11;19;NA;TRUE;18;20;NA;FALSE
picea;12;17;NA;TRUE;16;18;NA;FALSE
picea;13;17;NA;TRUE;16;16;NA;FALSE
betula;14;22;NA;TRUE;22;24;NA;TRUE
abies;15;14;NA;TRUE;14;15;NA;TRUE
abies;16;24;NA;TRUE;24;26;NA;TRUE
abies;17;15;16;TRUE;16;16;NA;TRUE
abies;18;18;NA;TRUE;18;17;NA;FALSE
picea;19;41;NA;TRUE;40;40;NA;FALSE
picea;20;36;NA;TRUE;36;35;NA;FALSE
pinsib;21;22;NA;FALSE;20;25;NA;FALSE
none;22;15;NA;TRUE;16;16;NA;TRUE
picea;23;9;NA;TRUE;8;9;NA;TRUE
none;24;21;NA;FALSE;20;NA;NA;TRUE
larix;25;67;NA;TRUE;68;66;NA;TRUE
picea;26;25;NA;TRUE;24;24;NA;FALSE
picea;27;48;NA;TRUE;48;49;NA;FALSE
picea;28;27;NA;TRUE;26;27;NA;FALSE
picea;29;42;NA;TRUE;42;41;30;FALSE
larix;30;56;NA;TRUE;54;56;NA;FALSE
picea;31;20;NA;TRUE;20;20;NA;FALSE
picea;32;37;NA;TRUE;36;36;NA;FALSE
larix;33;54;NA;TRUE;54;58;39;TRUE
larix;34;28;NA;TRUE;28;28;NA;TRUE
picea;35;49;NA;TRUE;48;44;NA;FALSE
picea;36;38;27;TRUE;38;39;NA;FALSE
picea;37;13;NA;TRUE;12;NA;NA;TRUE
pinsib;38;6;NA;TRUE;6;6;NA;FALSE
abies;39;14;NA;FALSE;14;NA;NA;TRUE
abies;40;15;NA;TRUE;14;NA;NA;TRUE
pinsib;41;40;26;TRUE;40;39;NA;FALSE
abies;42;13;NA;TRUE;14;16;NA;TRUE
picea;43;27;24;TRUE;26;28;NA;TRUE
abies;44;9;NA;TRUE;10;13;NA;TRUE
picea;45;28;NA;TRUE;28;27;NA;FALSE
picea;46;35;NA;TRUE;34;36;NA;FALSE
abies;47;29;NA;TRUE;20;23;23;TRUE
picea;48;44;NA;TRUE;44;44;NA;FALSE
betula;49;18;NA;TRUE;18;22;NA;TRUE
picea;50;12;NA;TRUE;12;12;NA;TRUE
betula;51;28;NA;TRUE;28;31;NA;TRUE
abies;52;16;NA;TRUE;16;20;NA;TRUE
picea;53;14;NA;TRUE;16;18;NA;TRUE
abies;54;17;NA;TRUE;18;20;NA;TRUE
betula;55;30;NA;TRUE;30;30;NA;TRUE
pinsib;56;39;NA;TRUE;40;40;NA;FALSE
betula;57;16;NA;TRUE;16;16;NA;TRUE
abies;58;20;NA;TRUE;20;23;NA;TRUE
abies;59;12;NA;TRUE;12;15;NA;TRUE
betula;60;26;NA;TRUE;24;NA;NA;TRUE
betula;61;30;NA;TRUE;30;29;NA;TRUE
picea;62;16;NA;TRUE;16;18;NA;TRUE
betula;63;26;NA;TRUE;28;24;NA;FALSE
picea;64;8;NA;TRUE;8;11;NA;TRUE
larix;65;70;NA;TRUE;72;70;NA;TRUE
betula;66;17;NA;TRUE;18;19;NA;TRUE
betula;67;13;NA;TRUE;12;13;NA;FALSE
abies;68;21;17;TRUE;22;25;26;TRUE
pinsib;69;12;NA;TRUE;12;13;16;TRUE
pinsib;70;42;24;TRUE;42;44;NA;FALSE
abies;71;10;NA;TRUE;12;13;13;TRUE
abies;72;17;NA;TRUE;18;20;19;TRUE
abies;73;14;NA;TRUE;14;16;19;TRUE
larix;74;42;29;TRUE;42;42;34;TRUE
larix;75;63;NA;TRUE;64;65;NA;TRUE
larix;76;60;NA;TRUE;62;58;37;TRUE
picea;77;29;25;TRUE;28;28;NA;FALSE
picea;78;35;NA;TRUE;38;36;NA;FALSE
abies;79;19;NA;TRUE;18;20;NA;TRUE
abies;80;10;NA;TRUE;10;12;NA;TRUE
picea;81;33;NA;TRUE;34;34;NA;FALSE
abies;82;10;NA;TRUE;10;12;NA;TRUE
abies;83;9;NA;TRUE;10;12;16;TRUE
larix;84;35;29;TRUE;36;37;NA;TRUE
abies;85;18;NA;TRUE;18;NA;NA;TRUE
picea;86;24;NA;FALSE;24;NA;NA;TRUE
abies;87;13;15;TRUE;14;14;12;TRUE
larix;88;42;NA;TRUE;40;41;33;TRUE
larix;89;60;NA;TRUE;62;60;32;TRUE
picea;90;18;NA;TRUE;18;19;NA;FALSE
larix;91;56;NA;TRUE;54;57;NA;TRUE
larix;92;60;NA;TRUE;60;58;35;TRUE
larix;93;22;NA;FALSE;22;19;NA;FALSE
larix;94;68;NA;TRUE;70;66;NA;TRUE
pinsib;95;21;20;TRUE;22;23;NA;TRUE
picea;96;29;NA;TRUE;28;29;NA;FALSE
larix;97;52;NA;TRUE;54;50;NA;TRUE
picea;98;31;NA;FALSE;30;32;NA;FALSE
abies;99;22;NA;TRUE;22;24;NA;TRUE
larix;100;62;NA;TRUE;64;58;NA;TRUE
larix;101;61;NA;TRUE;62;60;NA;TRUE
picea;102;50;NA;TRUE;48;48;NA;FALSE
picea;103;41;NA;TRUE;40;42;NA;FALSE
picea;104;38;NA;TRUE;38;36;NA;FALSE
picea;105;35;NA;TRUE;34;35;NA;FALSE
picea;106;19;NA;TRUE;20;20;NA;FALSE
abies;107;27;NA;TRUE;26;28;27;TRUE
abies;108;23;NA;TRUE;22;20;NA;FALSE
abies;109;15;NA;TRUE;16;17;NA;TRUE
abies;110;27;NA;TRUE;28;28;NA;TRUE
abies;111;14;NA;TRUE;16;17;NA;TRUE
abies;112;21;NA;TRUE;20;22;NA;TRUE
abies;113;25;NA;TRUE;26;28;NA;TRUE
abies;114;25;NA;TRUE;26;26;NA;TRUE
abies;115;24;NA;TRUE;24;26;NA;TRUE
abies;116;21;NA;FALSE;NA;NA;NA;TRUE
abies;117;21;NA;TRUE;20;23;NA;TRUE
abies;118;20;NA;TRUE;20;22;NA;TRUE
abies;119;17;NA;TRUE;18;19;NA;TRUE
picea;120;16;NA;TRUE;16;16;NA;TRUE
pinsib;121;14;NA;TRUE;14;16;NA;TRUE
abies;122;12;NA;TRUE;12;14;NA;TRUE
abies;123;13;NA;FALSE;12;14;NA;FALSE
pinsib;124;43;NA;TRUE;44;46;NA;TRUE
picea;125;26;NA;TRUE;28;28;NA;TRUE
pinsib;126;24;NA;TRUE;26;29;NA;TRUE
larix;127;21;NA;TRUE;22;21;NA;TRUE
abies;128;19;NA;TRUE;20;20;NA;TRUE
picea;129;19;NA;TRUE;20;21;NA;TRUE
picea;130;22;NA;FALSE;22;NA;NA;TRUE
abies;131;13;NA;TRUE;12;14;NA;TRUE
picea;132;20;NA;TRUE;22;24;NA;TRUE
picea;133;22;NA;FALSE;20;NA;NA;TRUE
picea;134;22;23;TRUE;22;25;NA;TRUE
pinsib;135;34;22;TRUE;34;36;NA;TRUE
picea;136;41;27;TRUE;42;42;NA;TRUE
abies;137;12;NA;TRUE;12;14;NA;TRUE
abies;138;11;NA;TRUE;12;12;18;TRUE
larix;139;42;NA;TRUE;44;47;NA;TRUE
picea;140;24;NA;TRUE;24;26;NA;TRUE
abies;141;20;NA;TRUE;20;21;NA;TRUE
larix;142;55;NA;TRUE;54;56;NA;TRUE
pinsib;143;28;NA;TRUE;26;23;NA;TRUE
abies;144;17;13;TRUE;18;19;NA;TRUE
pinsib;145;32;NA;TRUE;22;17;NA;TRUE
picea;146;23;22;TRUE;24;28;NA;TRUE
abies;147;26;21;TRUE;NA;NA;NA;TRUE
abies;148;15;NA;TRUE;16;19;NA;TRUE
abies;149;12;NA;TRUE;12;14;NA;TRUE
abies;150;27;NA;TRUE;26;28;NA;TRUE
abies;151;29;NA;TRUE;28;29;NA;FALSE
abies;152;13;NA;TRUE;14;16;NA;TRUE
betula;153;37;NA;TRUE;36;36;NA;FALSE
abies;154;18;NA;TRUE;18;21;NA;TRUE
abies;155;23;23;TRUE;22;24;NA;TRUE
pinsib;156;16;NA;TRUE;16;18;20;TRUE
pinsib;157;8;NA;TRUE;8;11;NA;TRUE
pinsib;158;34;23;TRUE;36;40;NA;TRUE
abies;159;26;NA;TRUE;26;27;23;TRUE
abies;160;23;NA;TRUE;24;25;27;TRUE
abies;161;16;NA;TRUE;18;20;22;TRUE
abies;162;13;NA;TRUE;14;NA;NA;TRUE
abies;163;20;NA;TRUE;22;24;NA;TRUE
abies;164;16;NA;TRUE;16;19;NA;TRUE
picea;165;36;NA;TRUE;36;36;NA;FALSE
picea;166;28;NA;TRUE;28;28;NA;FALSE
abies;167;21;NA;TRUE;22;24;22;TRUE
larix;168;52;NA;TRUE;54;54;37;TRUE
larix;169;66;NA;TRUE;66;70;NA;TRUE
picea;170;29;NA;TRUE;30;33;25;TRUE
picea;171;33;NA;TRUE;34;35;NA;TRUE
larix;172;27;NA;TRUE;26;29;33;TRUE
larix;173;31;29;TRUE;32;33;32;TRUE
abies;174;18;NA;FALSE;18;NA;NA;TRUE
betula;175;24;NA;TRUE;24;24;NA;FALSE
abies;176;10;NA;TRUE;10;10;NA;TRUE
abies;177;18;NA;TRUE;16;21;NA;TRUE
pinsib;178;48;NA;TRUE;48;48;NA;TRUE
picea;179;15;NA;TRUE;16;17;NA;TRUE
abies;180;12;NA;TRUE;12;15;19;TRUE
abies;181;19;NA;TRUE;18;NA;NA;TRUE
abies;182;11;NA;TRUE;12;14;NA;TRUE
abies;183;12;NA;TRUE;14;15;NA;TRUE
picea;184;52;NA;TRUE;52;54;NA;FALSE
pinsib;185;8;NA;TRUE;8;8;NA;TRUE
abies;186;11;NA;TRUE;12;13;NA;TRUE
abies;187;18;NA;TRUE;18;21;NA;TRUE
betula;188;19;NA;TRUE;20;22;NA;TRUE
abies;189;11;NA;TRUE;10;12;NA;TRUE
abies;190;12;NA;TRUE;12;13;NA;TRUE
abies;191;9;NA;TRUE;8;8;NA;FALSE
abies;192;21;NA;TRUE;22;22;NA;TRUE
pinsib;193;43;NA;TRUE;44;44;28;TRUE
abies;194;8;NA;TRUE;8;10;NA;TRUE
picea;195;23;NA;TRUE;24;24;23;TRUE
abies;196;9;NA;TRUE;8;9;NA;TRUE
abies;197;9;NA;TRUE;10;10;12;TRUE
abies;198;8;NA;TRUE;8;8;NA;TRUE
abies;199;19;NA;TRUE;18;20;NA;TRUE
abies;200;9;NA;TRUE;8;9;NA;TRUE
abies;201;7;NA;TRUE;6;NA;NA;TRUE
pinsib;202;48;NA;TRUE;48;48;NA;FALSE
abies;203;10;NA;TRUE;10;11;NA;TRUE
abies;204;9;NA;TRUE;8;9;NA;TRUE
abies;205;21;NA;TRUE;22;23;24;TRUE
abies;206;7;NA;TRUE;8;8;12;TRUE
abies;207;12;NA;TRUE;14;14;11;FALSE
picea;208;8;NA;FALSE;8;NA;NA;TRUE
abies;209;11;NA;TRUE;10;12;NA;TRUE
abies;210;16;NA;TRUE;16;16;20;TRUE
pinsib;211;32;NA;TRUE;34;36;NA;TRUE
pinsib;212;15;NA;TRUE;14;14;NA;TRUE
abies;213;17;NA;TRUE;18;20;NA;TRUE
pinsib;214;27;23;TRUE;26;29;NA;TRUE
pinsib;215;22;20;TRUE;22;24;28;TRUE
picea;216;45;NA;TRUE;46;44;NA;TRUE
abies;217;10;NA;TRUE;10;12;NA;TRUE
abies;218;21;NA;TRUE;22;23;NA;TRUE
abies;219;9;NA;TRUE;10;10;NA;TRUE
pinsib;220;14;NA;TRUE;14;14;NA;FALSE
abies;221;9;NA;TRUE;10;NA;NA;TRUE
abies;222;15;NA;TRUE;16;NA;NA;TRUE
picea;223;26;NA;FALSE;26;NA;NA;TRUE
abies;224;19;NA;TRUE;20;23;NA;TRUE
larix;225;40;29;TRUE;42;44;NA;TRUE
abies;226;13;NA;TRUE;14;18;NA;TRUE
picea;227;44;30;TRUE;46;46;NA;TRUE
abies;228;17;NA;TRUE;18;18;NA;TRUE
abies;229;14;NA;TRUE;14;14;NA;TRUE
abies;230;22;NA;TRUE;22;NA;NA;TRUE
abies;231;14;NA;TRUE;14;15;18;TRUE
abies;232;20;NA;TRUE;20;20;21;TRUE
abies;233;25;NA;TRUE;26;27;22;TRUE
larix;234;54;NA;TRUE;54;56;34;TRUE
betula;235;21;NA;TRUE;20;21;22;TRUE
pinsib;236;17;NA;TRUE;18;21;NA;TRUE
picea;237;23;NA;TRUE;24;26;NA;TRUE
larix;238;47;NA;TRUE;50;50;NA;TRUE
larix;239;15;NA;TRUE;16;17;NA;TRUE
larix;240;37;NA;TRUE;38;38;NA;TRUE
picea;241;11;NA;TRUE;12;12;NA;TRUE
picea;242;11;NA;TRUE;12;13;NA;TRUE
picea;243;25;NA;TRUE;26;28;NA;TRUE
picea;244;14;NA;TRUE;16;16;NA;TRUE
picea;245;16;NA;TRUE;16;19;NA;TRUE
picea;246;13;NA;TRUE;12;13;NA;TRUE
betula;247;25;NA;TRUE;24;27;NA;TRUE
abies;248;20;NA;TRUE;20;23;NA;TRUE
larix;249;45;29;TRUE;44;45;NA;TRUE
larix;250;42;30;TRUE;42;43;NA;TRUE
abies;251;21;NA;TRUE;20;22;NA;TRUE
pinsib;252;33;NA;TRUE;34;38;NA;TRUE
betula;253;21;NA;TRUE;20;20;NA;FALSE
betula;254;22;NA;TRUE;22;25;NA;TRUE
betula;255;23;NA;TRUE;22;19;NA;FALSE
betula;256;11;NA;TRUE;10;11;NA;TRUE
betula;257;21;NA;TRUE;18;NA;NA;TRUE
pinsib;258;8;NA;FALSE;8;8;NA;FALSE
picea;259;23;NA;TRUE;24;25;NA;TRUE
betula;260;22;NA;TRUE;22;23;NA;TRUE
picea;261;25;NA;TRUE;26;27;NA;TRUE
picea;262;15;NA;TRUE;14;14;NA;FALSE
abies;263;10;NA;TRUE;10;12;NA;TRUE
picea;264;19;NA;TRUE;18;20;NA;TRUE
picea;265;21;NA;TRUE;22;24;NA;TRUE
picea;266;15;NA;TRUE;16;16;NA;TRUE
larix;267;49;NA;TRUE;50;52;NA;TRUE
picea;268;8;NA;TRUE;8;8;NA;TRUE
picea;269;23;NA;TRUE;24;24;NA;TRUE
picea;270;11;NA;TRUE;10;12;NA;TRUE
abies;271;28;NA;TRUE;28;28;NA;FALSE
abies;272;16;NA;TRUE;16;18;NA;TRUE
pinsib;273;52;NA;TRUE;34;54;NA;TRUE
picea;274;39;NA;TRUE;38;40;NA;TRUE
picea;275;30;NA;TRUE;30;30;NA;TRUE
abies;276;11;NA;TRUE;12;12;NA;TRUE
picea;277;27;NA;TRUE;26;28;NA;TRUE
picea;278;NA;NA;TRUE;24;25;NA;TRUE
pinsib;279;23;NA;TRUE;30;32;NA;TRUE
larix;280;29;NA;TRUE;42;43;NA;TRUE
pinsib;281;40;24;TRUE;44;45;NA;TRUE
pinsib;282;43;15;TRUE;14;16;NA;TRUE
pinsib;283;15;NA;TRUE;52;52;NA;FALSE
pinsib;284;50;NA;TRUE;60;57;NA;FALSE
pinsib;285;59;NA;TRUE;34;33;NA;FALSE
abies;286;36;NA;FALSE;16;NA;NA;TRUE
abies;287;16;21;TRUE;20;22;NA;TRUE
abies;288;20;NA;TRUE;12;13;NA;TRUE
picea;289;12;29;TRUE;44;42;NA;TRUE
pinsib;290;42;NA;TRUE;26;29;NA;TRUE
pinsib;291;26;NA;TRUE;18;17;NA;TRUE
abies;292;16;NA;TRUE;10;12;NA;TRUE
pinsib;293;10;NA;TRUE;10;10;NA;TRUE
picea;294;11;NA;TRUE;42;42;NA;TRUE
abies;295;41;NA;TRUE;12;NA;NA;TRUE
abies;296;12;24;TRUE;NA;NA;NA;TRUE
abies;297;23;NA;TRUE;14;16;NA;TRUE
abies;298;13;NA;TRUE;12;15;NA;TRUE
abies;299;12;21;TRUE;24;24;NA;TRUE
pinsib;300;23;NA;TRUE;42;40;NA;TRUE
abies;301;41;NA;TRUE;16;12;NA;TRUE
abies;302;11;NA;TRUE;16;16;NA;TRUE
abies;303;15;NA;TRUE;16;16;NA;TRUE
abies;304;15;NA;FALSE;10;NA;NA;TRUE
abies;305;11;NA;TRUE;18;19;NA;TRUE
abies;306;18;NA;TRUE;18;20;NA;TRUE
abies;307;17;NA;FALSE;8;NA;NA;TRUE
betula;308;NA;NA;TRUE;20;22;NA;TRUE
abies;267А;20;NA;FALSE;NA;16;NA;TRUE
larix;267Б;NA;NA;FALSE;NA;46;NA;TRUE
picea;б/н;NA;NA;TRUE;NA;10;NA;TRUE
none;б/н;NA;NA;TRUE;NA;9;7;TRUE
picea;б/н;NA;NA;TRUE;NA;6;NA;TRUE

В таком виде собранные данные пригодны для обработки хоть вручную, хоть в Экселе, SPSS или любом отличном от брэйнфака языке. Мы воспользуемся R.

Подключение пакетов и загрузка данных

#Устанавливаем необходимые пакеты
install.packages("moments") #Коэффициенты эксцесса и асимметрии
install.packages("nortest") #Тесты на нормальность
#===================================================================
#Подключаем необходимые библиотеки
library(moments)
library(nortest)
#===================================================================
#Загружаем данные
alldata <- read.table(file="alldata", header=TRUE, sep=";")
spec <- split(alldata,alldata$ele)
#===================================================================

Перед тем, как вникать в статистику, посмотрим на размеры выборки. При первом перечете описано 307 деревьев (на самом деле 308, но у елки №278 не указан диаметр, поэтому будем считать ее незафиксированной). При последующих перечетах добавилось еще шесть новых деревьев (включая ель №278). Рассчитаем, как распределяются 313 деревьев по породам с учетом количества усохших и выпавших деревьев:

Пример количественной оценки пихт

abies.all <- spec$abies
length(abies.all$ele) #Всего записей, которые относятся к пихтам (127)
sum(!is.na(abies.all$d02)) #Количество пихт в перечете 2002 года (127)
sum(!is.na(abies.all$d08)) #Количество пихт в перечете 2008 года (123)
sum(!is.na(abies.all$d18)) #Количество пихт в перечете 2018 года (110)
#===================================================================
# Подсчитываем количество пихт в 2002 году
abies.all.live02 <- split(abies.all,abies.all$l02)
length(abies.all.live02$'FALSE'$ele)# Количество измеренных мертвых (FALSE) пихт в 2002 году (8)
length(abies.all.live02$'TRUE'$ele)# Количество измеренных живых (TRUE) пихт в 2002 году (119)
#===================================================================
# Подсчитываем количество пихт в 2018 году
abies.all.live18 <- split(abies.all,abies.all$l18)
length(abies.all.live18$'FALSE'$ele) # Количество измеренных мертвых (FALSE) пихт в 2018 году (7)
sum(!is.na(abies.all.live18$'TRUE'$d18))# Количество измеренных живых (TRUE) пихт в 2018 году (103)
#===================================================================

В перечете 2008 года отсутствует информация о разделении деревьев на живые и усохшие, поэтому данные этого года представлены одним числом — общим количеством учтенных стволов. Данные 2002 и 2018 года представлены операцией вычитания, в которой уменьшаемое — число всех деревьев породы, вычитаемое — число сухих деревьев, разность — число живых деревьев.

Количество учтенных деревьев (размеры выборок)

Порода 2002 год 2008 год 2018 год Сохранность,%
Ель (picea) 82-6=76 83 79-36=43 56.6
Береза (betula) 21-0=21 22 20-6=14 66.7
Кедр (pinsib) 40-2=38 40 40-11=29 76.3
Пихта (abies) 127-8=119 123 110-7=103 86.6
Лиственница (larix) 34-2=32 34 35-2=33 103.1
Неопределенная порода (none) 3-2=1 3 3-1=2 200


За шестнадцать лет в насаждении активно выпадает елка, кедр и береза (тут нельзя забывать об эффекте низкой базы, см. 200% сохранности неопределенных пород). Любой нормальный лесовод на этом бы завершил свои изыскания, но мы продолжим наши статистические фрикции.

Для того, что-бы оценить качество исследуемых данных, сравним между собой их наиболее значимые части — подеревные перечеты. Логично предположить, что при неизменных данных график зависимости значений диаметров текущего перечета от значений диаметров прошлого перечета будет представлять собой идеальную прямую которая проходит под углом сорок пять градусов. В реальности всегда есть отклонения от такой прямой. Даже при неизмеряемой величине радиального прироста, диаметры могут как увеличиваться (за счет неравномерности окружности ствола, ошибок округления при измерении), так и уменьшаться (за счет отслаивания коры, указанных выше или других причин). Однако эти изменения при качественно выполненной работе всегда невелики. При одностороннем замере диаметров встречаются отклонения до пяти сантиметров с единичными отклонениями до 10 см (при измерении стволов неправильной формы).

Я не могу объяснить изменение диаметра стволов на двадцать пять сантиметров за шесть лет иными причинами, кроме разъебайства исследователей. Очевидно, что это грубые ошибки наблюдения, поскольку в перечетах 2008-2018 года таких выбросов не наблюдается (за исключением одного кедра). При финальной обработке данных, такие значения должны быть удалены из выборки, однако, в данный момент делать это некорректно. В ситуации, когда два наблюдения противоречат друг другу (стабильность и разброс измеренных величин) даже в самом примитивном подходе необходимо третье наблюдение. Тем более, что выбросы наблюдаются преимущественно в измерениях кедров и пихт, а для берез, лиственниц и елей нехарактерны.

Тем не менее, следует помнить, что все нижеприведенные рассуждения основаны на анализе исходных странных данных, поэтому всякая интерпретация результата должна быть подвержена великому сомнению.

Прежде чем перейти к описательной статистике, необходимо протестировать данные на нормальность. Без этого мы не имеем права делать сложный анализ. Да что анализ, даже сравнивать между собой средние значения без теста нормальности недопустимо. Существует около двух десятков популярных тестов на нормальность — заебешься тестировать, поэтому мы ограничимся лишь наиболее подходящими тестами по совету А.И. Кобзаря («Прикладная математическая статистика». — М.: Физматлит, 2006. — 816 с.). Для этого оценим, насколько распределения отличаются от гауссовской палатки с помощью коэффициентов ассиметрии и эксцесса:

Пример расчета ассиметрии и эксцесса

skewness(abies.all$d02, na.rm = TRUE) # Ассиметрия распределения диаметров пихт в 2002 году (1.144345)
kurtosis(abies.all$d02, na.rm = TRUE) # Эксцесс распределения диаметров пихт в 2002 году (5.02645)
#===================================================================

В числителе указана ассиметрия, в знаменателе эксцесс. Значения коэффициентов, рассчитанные для всех деревьев породы (живые и сухие) указаны вне скобок. В скобках даны значения коэффициентов только для живых деревьев породы.

Порода 2002 год

асс/экс

2008 год

асс/экс

2018 год

асс/экс

Предпочтительные тесты

на нормальность

Ель (picea) 0.418 (0.398)/2.298 (2.173) 0.311/2.206 0.173 (0.436)/2.237 (2.451) Критерий Шапиро-Уилка, Критерий Дэвида-Хартли-Пирсона, Критерий Андерсона-Дарлинга
Береза (betula) 0.296 (0.296)/3.263 (3.263) 0.240/3.194 0.078 (-0.494)/3.032 (2.958) Критерий Дарбина, Критерий Шапиро-Уилка, Критерий хи-квадрат
Кедр (pinsib) 0.139 (0.083)/1.964 (1.961) 0.245/2.117 0.106 (0.250)/1.869 (1.937) Критерий Филлибена, Критерий Шапиро-Уилка, Критерий Мартинса-Иглевича
Пихта (abies) 1.144 (1.103)/5.026 (4.985) 0.329/2.316 0.190 (0.154)/2.079 (2.019) Критерий Шапиро-Уилка, Критерий Дэвида-Хартли-Пирсона, Критерий Андерсона-Дарлинга
Лиственница (larix) -0.43 (-0.475)/2.189 (2.347) -0.419/2.325 -0.58 (-0.53)/2.610 (2.684) Критерий Шапиро-Уилка, Критерий Дэвида-Хартли-Пирсона, Критерий Андерсона-Дарлинга


В качестве наиболее универсальных критериев нормальности наших данных используем критерии Шапиро-Уилка и Андерсона-Дарлинга. Можно было бы ограничиться лишь Шапиро-Уилка, но этот тест плохо работает на больших выборках. Действующий ГОСТ Р ИСО 5479-2002 не рассматривает применение критерия Шапиро-Уилка для выборок свыше пятидесяти наблюдений, что создает препятствия для оценки нормальности распределения диаметров елок и пихт.

Полученные значения асимметрии и эксцесса сами по себе отражают динамику развития древостоя (преобладание крупных или мелких деревьев, изменение количества средних по диаметру деревьев). Для наглядности, представим ядерную плотность этих распределений на фоне доверительной полосы соответствующего нормального распределения. В верхнем ряду изображений показаны распределения для всех деревьев породы, живых и усохших (три маленькие картинки), в нижнем только для живых деревьев (две большие картинки).

Построение графиков плотности распределения

sm.density(picea.all.live02$'TRUE'$d02, model = "Normal", xlab="Диаметр ствола ели, см", ylab="Плотность распределения")
dev.print(png, filename="RGraph.png", width=7, height=7, pointsize=12, units="in", res=200)
#===================================================================


Самые интересные процессы наблюдаются у пихты. В 2002 году в древостое преобладали деревья диаметром 10-25 см с ассиметричным распределением. Спустя шестнадцать лет ассиметрия уменьшилась в семь раз. В настоящее время элемент леса дифференцируется на две группы: деревья с преобладающим диаметром 10-15 см и деревья диаметром 20-25 см. Предпосылки к бимодальному распределению наблюдались еще в перечете 2002 года (еще раз указываю на странность тех данных), однако лишь в перечете 2018 года бимодальность проявляется явно. Это может быть связано с изреживанием элемента: часть пихт (левый пик распределения) достигла предельных возможностей развития. Эти деревья угнетаются, замедляются в росте и постепенно будут выпадать. Напротив, правая часть распределения представлена наиболее перспективными и жизнеспособными особями. Со временем это должно привести к разделению пихты на два элемента леса: угнетенные деревья 4-го и 5-го класса Крафта и нормально распределенный второй ярус древостоя.

В еловом элементе за время наблюдений выпала большая часть деревьев диаметром 30-40 см и значительная часть тонких деревьев менее 20 см. Это привело к увеличению преобладающего диаметра (мода распределения) примерно на пять сантиметров. В отличие от пихты, ель не проявляет бимодального распределения, что вероятнее всего свидетельствует о неспособности занимать в данных условиях доминирующее положение. Текущая динамика позволяет предположить, что меньшая часть деревьев из правой части распределения сохранит свое положение во втором ярусе, в то время как основная часть перейдет в низкие классы Крафта. В конечном итоге, ель будет представлять собой разнородную примесь в разных ярусах

Распределение берез по диаметру внешне напоминает нормальное распределение и за время наблюдений сохранило свою форму, за исключением смещения коэффициента ассиметрии в область отрицательных значений (усыхание деревьев с диаметром ствола менее 20 см). Впрочем, берез на пробе к 2018 году осталось лишь полтора десятка (меньше половины процента), поэтому информативность данной выборки переоценивать не стоит.

Кедр за шестнадцать лет сохранил суббимодальное распределение по диаметрам, однако его ассиметрия утроилась за счет выпадения деревьев толще 20 см. К настоящему времени ярко выделяется преобладающая мода в диапазоне 15-25 см. Вероятнее всего со временем бимодальность и ассиметрия в распределении будет расти, количество деревьев существенно снизится: отдельные деревья займут промежуточный ярус между лиственницей и пихтой, большая же часть кедров останется угнетенной во втором ярусе.

Распределения еловых, кедровых и, частично пихтовых стволов прямо не соответствуют кривой Шарлье, однако имеют сходство с распределением в насаждениях, где длительное время производят выборочные рубки, направленные на уборку отстающих в росте деревьев (Н.П. Анучин, 1982). В отличии от них, у лиственницы распределение с изначально отрицательной ассиметрий за время наблюдений еще больше сместилось в правую область. Равномерное снижение количества деревьев при уменьшении диаметра сменилось небольшим прогибом в диапазоне 20-40 см, что компенсировало выпадение деревьев толще 60 см.

При проверке распределения диаметров на нормальность воспользуемся p-значением 0.01. Классическое p=0.05, несмотря на его популярность не выдерживает критики, особенно в биологических исследованиях, где выборки представлены небольшим числом наблюдений (да, истинная причина в обосновании дальнейших параметрических методов, но я согласен с теми, кто даже 99% точность считает недопустимо низкой).

Проверка на нормальность диаметров живых пихт в 2002 году

shapiro.test(abies.all.live02$'TRUE'$d02) # тест Шапиро-Уилка
ad.test(abies.all.live02$'TRUE'$d02) # тест Андерсона-Дарлинга

В таблице указаны результаты теста Шапиро-Уилка (W) и Андерсона-Дарлинга (A) с вероятностями принятия нуль-гипотезы. В скобках указаны результаты тестов для живых деревьев, в остальных случаях для всех учтенных на пробе деревьев определенной породы.

Порода 2002 год 2008 год 2018 год
Ель (picea) W = 0.963, p-value = 0.018 (W = 0.959, p-value = 0.015);A = 0.801, p-value = 0.036 (A = 0.867, p-value = 0.025); W = 0.963, p-value = 0.018;A = 0.903, p-value = 0.020; W = 0.980, p-value = 0.239 (W = 0.952, p-value = 0.071);A = 0.494, p-value = 0.210 (A = 0.630, p-value = 0.094);
Береза (betula) W = 0.980, p-value = 0.925 (W = 0.980, p-value = 0.925);A = 0.218, p-value = 0.815 (A = 0.218, p-value = 0.815); W = 0.969, p-value = 0.681;
A = 0.381, p-value = 0.370;
W = 0.980, p-value = 0.936 (W = 0.958, p-value = 0.686);A = 0.249, p-value = 0.712 (A = 0.266, p-value = 0.633);
Кедр (pinsib) W = 0.961, p-value = 0.186 (W = 0.964, p-value = 0.263);A = 0.480, p-value = 0.222 (A = 0.440, p-value = 0.278); W = 0.963, p-value = 0.207;
A = 0.461, p-value = 0.247;
W = 0.960, p-value = 0.161 (W = 0.957, p-value = 0.274);A = 0.488, p-value = 0.211 (A = 0.420, p-value = 0.305);
Пихта (abies) W = 0.922, p-value = 1.653e-06 (W = 0.923, p-value = 3.764e-06);A = 0.801, p-value = 0.036 (A = 1.679, p-value = 0.0002); W = 0.962, p-value = 0.001;
A = 0.903, p-value = 0.020;
W = 0.966, p-value = 0.007 (W = 0.965, p-value = 0.007);A = 0.494, p-value = 0.210 (A = 1.117, p-value = 0.006);
Лиственница (larix) W = 0.956, p-value = 0.184 (W = 0.959, p-value = 0.236);A = 0.476, p-value = 0.224 (A = 0.437, p-value = 0.280); W = 0.958, p-value = 0.207;
A = 0.488, p-value = 0.209;
W = 0.950, p-value = 0.111 (W = 0.961, p-value = 0.281);A = 0.544, p-value = 0.151 (A = 0.387, p-value = 0.369);


Диаметры елей, берез, кедров и лиственниц распределены нормально во всех выборках, исходя из обоих тестов. При последнем наблюдении p-значения елок существенно увеличены, а критерий Андерсона-Дарлинга значительно снижен, что косвенно говорит о нормализации элемента леса.

Сложнее обстоит дело с пихтами. В 2002 году их распределение существенно отличалось от нормального по тесту Шапиро-Уилка и соответствовало нормальному по тесту Андерсона-Дарлинга. Данная выборка превышает сотню наблюдений, поэтому тест Шапиро-Уилка мы можем проигнорировать, но даже в этом случае нормальность распределения наблюдается лишь для всей совокупности деревьев (живых и мертвых). При наблюдениях 2008 и 2018 года нормальность всей совокупности подтверждается обоими тестами, причем, как в случае с елями, вероятность случайного распределения существенно возрастает к настоящему времени. При этом выборка измеренных диаметров живых деревьев остается далекой от нормального распределения.

Полученные результаты дают нам основание сравнивать между собой средние значения диаметров пород в разные годы наблюдения, за исключением живых деревьев пихты. В последнем случае мы вынуждены использовать для сравнения медианные значения и не можем достоверными параметрическими методами выявить изменение величины радиального прироста.

Таблицы описательных статистик распределения диаметров

Вычисление описательных статистик

mean(abies.all.live02$'TRUE'$d02, na.rm = TRUE) # Арифметическая средняя
median(abies.all.live02$'TRUE'$d02, na.rm = TRUE) # Медиана
sd(abies.all.live02$'TRUE'$d02, na.rm = TRUE)# Стандартное отклонение
var(abies.all.live02$'TRUE'$d02, na.rm = TRUE) # Дисперсия
min(abies.all.live02$'TRUE'$d02, na.rm = TRUE) # Минимальное значение
max(abies.all.live02$'TRUE'$d02, na.rm = TRUE) # Максимальное значение
sd(abies.all.live02$'TRUE'$d02, na.rm = TRUE)/sqrt(sum(!is.na(abies.all.live02$'TRUE'$d02))) # Стандартная ошибка
IQR(abies.all.live02$'TRUE'$d02, na.rm = TRUE) # Интерквартильный
размах

Описательные статистики для ели (в скобках данные для живых деревьев, за скобками данные для всей совокупности деревьев)

Характеристика выбоки 2002 г. 2008 г. 2018 г.
Арифметическая средняя 26.000 (26.303) 26.819 27.519 (23.512)
Стандартная ошибка 1.257 (1.332) 1.241 1.254 (1.604)
Медиана 24.0 (24.5) 24.0 27.0 (24.0)
Стандартное отклонение 11.384 (11.608) 11.305 11.148 (10.518)
Дисперсия 129.605 (134.747) 127.808 124.279 (110.637)
Минимальное значение 8 (8) 8 6 (6)
Максимальное значение 52 (52) 52 54 (46)
Интерквартильный размах 18.0 (18.5) 18.0 17.0 (12.0)


Описательные статистики для лиственницы (в скобках данные для живых деревьев, за скобками данные для всей совокупности деревьев)

Характеристика выбоки 2002 г. 2008 г. 2018 г.
Арифметическая средняя 47.353 (48.121) 48.353 48.371 (49.030)
Стандартная ошибка 1.648 (2.517) 1.631 1.594 (2.361)
Медиана 50.5 (52.0) 52.0 50.0 (50.0)
Стандартное отклонение 14.926 (14.458) 14.857 14.167 (13.566)
Дисперсия 222.781 (209.047) 220.720 200.711 (184.030)
Минимальное значение 15 (15) 16 17 (17)
Максимальное значение 70 (70) 72 70 (70)
Интерквартильный размах 22.25 (20.0) 21.0 16.5 (16.0)


Описательные статистики для кедра (в скобках данные для живых деревьев, за скобками данные для всей совокупности деревьев)

Характеристика выбоки 2002 г. 2008 г. 2018 г.
Арифметическая средняя 28.750 (29.474) 27.950 29.375 (27.897)
Стандартная ошибка 2.255 (2.300) 2.218 2.272 (2.399)
Медиана 27.5 (30.0) 26.0 29.0 (29.0)
Стандартное отклонение 14.264 (14.180) 14.029 14.368 (12.921)
Дисперсия 203.474 (201.067) 196.818 206.446 (166.953)
Минимальное значение 6 (6) 6 6 (8)
Максимальное значение 59 (59) 60 57 (54)
Интерквартильный размах 24.75 (25.25) 24.5 23.25 (21.0)


Описательные статистики для березы (в скобках данные для живых деревьев, за скобками данные для всей совокупности деревьев)

Характеристика выбоки 2002 г. 2008 г. 2018 г.
Арифметическая средняя 22.476 (22.476) 22.0 22.9 (23.0)
Стандартная ошибка 1.310 (1.310) 1.276 1.339 (1.456)
Медиана 22.0 (22.0) 22.0 22.5 (22.5)
Стандартное отклонение 6.005 (6.005) 5.984 5.990 (5.449)
Дисперсия 36.062 (36.062) 35.810 35.884 (29.692)
Минимальное значение 11 (11) 10 11 (11)
Максимальное значение 37 (37) 36 36 (31)
Интерквартильный размах 7.0 (7.00) 5.5 5.75 (5.25)


Описательные статистики для пихты (в скобках данные для живых деревьев, за скобками данные для всей совокупности деревьев)

Характеристика выбоки 2002 г. 2008 г. 2018 г.
Арифметическая средняя 16.701 16.081 17.745
Стандартная ошибка 0.570 0.477 0.521
Медиана 16 (16) 16 17 (17)
Стандартное отклонение 6.425 5.294 5.461
Дисперсия 41.275 28.026 29.825
Минимальное значение 7 (7) 6 8 (8)
Максимальное значение 41 (41) 28 29 (28)
Интерквартильный размах 8 (8) 8 9 (9)


Средние значения диаметров всех деревьев (живых и мертвых) за время наблюдения возросли у ели, лиственницы, кедра (кроме 2008 г.), березы (кроме 2008 г.) и снизились у пихты. При этом средние диаметры живых елей и кедров снизились. Однако, ни одно из этих изменений нельзя назвать статистически достоверным. В этой связи, приходится признать, что значимых изменений радиального прироста за шестнадцать лет зафиксировать не удалось.

Распределение диаметров пород выравнивается (подтверждается снижением интерквартильного размаха и дисперсии на 10-30 процентов) вокруг средних значений. Максимальные значения диаметров снижаются, минимальные возрастают. Одновременное выпадение наиболее крупных и мелких деревьев свидетельствует об увеличении однородности насаждения и его несформированности. Однако, окончательный вывод о динамике развития древостоя по существующим данным делать недопустимо.

Еще меньшей информативностью обладают данные по высотам. Измерение высот — чрезвычайно трудоемкий процесс с большой вероятностью субъективных ошибок. Над его улучшением трудились Ленхорд, Ланг, Лайер, Таката, Видеманн, Филипп, Гогенадль, Вейзе, Кренн, Лорей, Митерлих, Жан Парде, Продан и другие выдающиеся исследователи, но результат высотных замеров как был, так и остается хуетой в подавляющем большинстве исследований. Это связано со сложностью распознавания вершины дерева (и самим понятием «вершины»), микрорельефом, трудностью выставления точного базисного расстояния, несоответствием отбираемых деревьев распределению по диаметру и ряду других причин.

Несоответствие диаметров 2002 и 2008-2018 годов заранее вызывает подозрение в плохом качестве проведенной измерительной работы при закладке пробы. Это подтверждают и графики распределения высот по диаметрам. Конечно же, за шестнадцать лет могли произойти видимые изменения, но едва ли они могут иметь столь радикальный характер. Вероятнее предположить, что наблюдаемые изменения являются следствием погрешности и распиздяйства.

Это предположение подтверждает и описательная статистика. Поскольку число модельных деревьев каждой породы составляет максимум полтора-два десятка наблюдений, для оценки нормальности распределения достаточно применить только критерий Шапиро-Уилка. За исключением лиственницы в перечете 2018 года, все остальные выборки распределены нормально, но их средние значения не выявляют достоверных различий.

Таблицы описательных статистик распределения высот

Статистики распределения значений высоты у кедра

Характеристика выборки 2002 г. 2018 г.
Тест Шапиро-Уилка W = 0.905, p-value = 0.281 W = 0.849, p-value = 0.224
Среднее 21.9 23.0
Стандартная ошибка 1.073 3
Медиана 23 24

Статистики распределения значений высоты у лиственницы

Характеристика выборки 2002 г. 2018 г.
Тест Шапиро-Уилка W = 0.496, p-value = 2.073e-05 W = 0.908, p-value = 0.266
Среднее 29.2 34.6
Стандартная ошибка 0.167 0.748
Медиана 29.0 34.0

Статистики распределения значений высоты у ели

Характеристика выборки 2002 г. 2018 г.
Тест Шапиро-Уилка W = 0.954, p-value = 0.737 W = 0.942, p-value = 0.537
Среднее 26.0 26.0
Стандартная ошибка 0.898 2.082
Медиана 27.0 25.0

Статистики распределения значений высоты у пихты

Характеристика выборки 2002 г. 2018 г.
Тест Шапиро-Уилка W = 0.92382, p-value = 0.4248 W = 0.93569, p-value = 0.1612
Среднее 19.0 19.4
Стандартная ошибка 1.280 1.062
Медиана 21.0 19.5

Статистики распределения значений высоты у березы

Характеристика выборки 2002 г. 2018 г.
Среднее 22.0


Таким образом, за период наблюдений 2002-20018 г. на пробной площади не отмечено достоверных изменений средних диаметров, высот, а значит и запасов у элементов леса. Запас продолжает быть необычайно высоким: принимая значение видовых чисел за 0.5, он составляет 452.5 кубометра живой древесины на гектар (лиственница — 270 куб.м, ель — 60 куб.м, кедр — 50 куб.м, пихта — 57.5 куб.м, береза — 15 куб.м). Это значение почти идентично запасу, рассчитанному в 2002 году (466 куб.м), хотя замечу, что в статье З.Я. и В.З. Нагимовых сумма запасов у пород (504 куб.м в таблице и 524 куб. м в тексте статьи) превышает запас на пробной площади: существенно разнятся по запасам ель (в статье 148 куб. м) и береза (в статье 15 куб. м). Запас, определенный в 2008 году идентичен текущему запасу.

Анализ изменения распределений по диаметру елей, кедров и в меньшей степени пихт указывает на процессы изреживания наиболее отстающих в росте деревьев. У пихты и кедра наблюдается небольшая бимодальность распределения в отличии от ели, что косвенно свидетельствует о меньшем потенциале елового элемента в становлении древостоя. Отмечаются слабые процессы нормализации в распределении диаметров у пород, что говорит о повышении его однородности и текущем активном процессе формирования древостоя (хотя это видно визуально и без всяких вычислений).

При рассмотрении выводов, следует помнить про вероятностный характер любых интерпретаций. Во многом это следствие необычных данных 2002 года (вероятно, включающих в себя значительные ошибки), но основная причина в том, что делать однозначные заключения о динамике развития растительного сообщества на основании трех наблюдений может только некомпетентный мудак.

К слову об источниках русловой динамики степных рек с малым течением

В наш просвещенный век каждый знает о таком явлении, как меандрирование рек. Чем сильнее изгибается русло, тем выше разность скоростей течения воды у берегов. По внешнему радиусу водный поток движется быстрее, соответственно там быстрее проистекают процессы эрозии еще более изгибая направление русла и повышая разность скоростей водного потока. Это, если хотите, прекрасный пример системы с положительной обратной связью.

Принято считать, что самой наглядной демонстрацией меандр являются космические снимки. Например, как вот этот мапбоксовский снимок реки Аксай:
aksaj

В действительности, ничего не может продемонстрировать суть меандрирования реки лучше, чем сплав по ней в солнечную погоду. Вот солнце слева от вас, а нет уже справа, нет, опять слева, нет сзади, да нет же, справа, хотя постойте, вот прямо по курсу светит… Сплавляясь весной по этой реке, я не мог не обратить свое внимание на особенности русловой динамики и даже имею кое-что сообщить вам по этому поводу.

Гидрологическая наука в лице А. Ю. Сидорчука (статья «Главные формы речных русел: меандры и разветвления«) утверждает, что: «Первоначальный изгиб русла появляется за счет гидродинамической неустойчивости прямолинейного потока». Утверждение настолько тривиальное, что создается ощущение, будто автор пытается уйти от вопроса первопричины образования изгиба водотока. В чем механика процесса зарождения изгиба, господа? Не развития, подчеркиваю, а именно изгиба? Если принять за истину, что в основе всего стоит «гидродинамическая неустойчивость», то следует признать, что такой неустойчивости присуще странное свойство сохранения ассиметричной структуры на время, достаточное, для появления разности скоростей течения, а это согласитесь, едва ли возможно.

Конечно-же, причины зарождения изгиба русла кроются не в самом водном потоке, но в связи водного потока и его русла. Неоднородности русла влияют на неоднородность потока и наоборот — это неразрывное целое. И с этой точки зрения прямолинейное русло есть система, напряженность которой прямо пропорциональна длине русла. В какой-то момент напряженность достигает максимума и линейная динамика сменяется хаотической в лучших традициях теории катастроф Рене Тома. В это сингулярное время, поводом к началу изгиба реки может быть все что угодно.

Но, хватит теории. Сплавляясь по Аксаю, я с интересом отметил, что во многих случаях, причиной появления разности скоростей водного потока у противоположных берегов являются упавшие стволы деревьев:
img_3042

Растущие по берегам деревья (большей частью тополя) падают неизменно в воду, поскольку крона их неравномерно развита и значительно более массивна с открытой стороны, обращенной к воде. Упав, дерево может достаточно долго оставаться прикрепленным корнями к субстрату, при этом замедляя течение и аккумулируя перед собой плывущие ветви и водоросли.
img_3039

Накопленный, благодаря колебаниям уровня воды ил, вкупе с разлагающимся субстратом древесины создает достаточные условия для произрастания трав, а в редких случаях даже кустарников:
img_3044

Но что еще интереснее — на реках с малым течением, коим является и Мертвый Аксай в его верховьях, основной причиной падения деревьев в воду становится не подмывание почвы, хотя таковое тоже имеет место, а банальный ветровал. В связи с этим, наиболее сильная дифференциация скорости водного потока происходит на участках реки с узкими береговыми полосами леса или множеством отдельно стоящих деревьев. Большие лесные массивы вдоль берегов служат достаточным барьером против ветра — плыть по этим участкам почти не составляет труда: топляков и коряг весьма немного. Участки же с редкостойными насаждениями по берегам исключительно труднопроходимы для лодки и порой представляют серьезную опасность для экспедитора.

Это наблюдение веско показывает, что зная инициатор какого-либо естественного процесса и руководствуясь разумным представлением о механике природных явлений мы с успехом можем решать исключительно практические проблемы, к коим несомненно относится и прокладка экспедиционных маршрутов.