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

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

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

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

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

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

Перечеты проведены разными исследователями в 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=768379-36=4356.6
Береза (betula)21-0=212220-6=1466.7
Кедр (pinsib)40-2=384040-11=2976.3
Пихта (abies)127-8=119123110-7=10386.6
Лиственница (larix)34-2=323435-2=33103.1
Неопределенная порода (none)3-2=133-1=2200


За шестнадцать лет в насаждении активно выпадает елка, кедр и береза (тут нельзя забывать об эффекте низкой базы, см. 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.2060.173 (0.436)/2.237 (2.451)Критерий Шапиро-Уилка, Критерий Дэвида-Хартли-Пирсона, Критерий Андерсона-Дарлинга
Береза (betula)0.296 (0.296)/3.263 (3.263)0.240/3.1940.078 (-0.494)/3.032 (2.958)Критерий Дарбина, Критерий Шапиро-Уилка, Критерий хи-квадрат
Кедр (pinsib)0.139 (0.083)/1.964 (1.961)0.245/2.1170.106 (0.250)/1.869 (1.937)Критерий Филлибена, Критерий Шапиро-Уилка, Критерий Мартинса-Иглевича
Пихта (abies)1.144 (1.103)/5.026 (4.985)0.329/2.3160.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.81927.519 (23.512)
Стандартная ошибка1.257 (1.332)1.2411.254 (1.604)
Медиана24.0 (24.5)24.027.0 (24.0)
Стандартное отклонение11.384 (11.608)11.30511.148 (10.518)
Дисперсия129.605 (134.747)127.808124.279 (110.637)
Минимальное значение8 (8)86 (6)
Максимальное значение52 (52)5254 (46)
Интерквартильный размах18.0 (18.5)18.017.0 (12.0)


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

Характеристика выбоки2002 г.2008 г.2018 г.
Арифметическая средняя47.353 (48.121)48.35348.371 (49.030)
Стандартная ошибка1.648 (2.517)1.6311.594 (2.361)
Медиана50.5 (52.0)52.050.0 (50.0)
Стандартное отклонение14.926 (14.458)14.85714.167 (13.566)
Дисперсия222.781 (209.047)220.720200.711 (184.030)
Минимальное значение15 (15)1617 (17)
Максимальное значение70 (70)7270 (70)
Интерквартильный размах22.25 (20.0)21.016.5 (16.0)


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

Характеристика выбоки2002 г.2008 г.2018 г.
Арифметическая средняя28.750 (29.474)27.95029.375 (27.897)
Стандартная ошибка2.255 (2.300)2.2182.272 (2.399)
Медиана27.5 (30.0)26.029.0 (29.0)
Стандартное отклонение14.264 (14.180)14.02914.368 (12.921)
Дисперсия203.474 (201.067)196.818206.446 (166.953)
Минимальное значение6 (6)66 (8)
Максимальное значение59 (59)6057 (54)
Интерквартильный размах24.75 (25.25)24.523.25 (21.0)


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

Характеристика выбоки2002 г.2008 г.2018 г.
Арифметическая средняя22.476 (22.476)22.022.9 (23.0)
Стандартная ошибка1.310 (1.310)1.2761.339 (1.456)
Медиана22.0 (22.0)22.022.5 (22.5)
Стандартное отклонение6.005 (6.005)5.9845.990 (5.449)
Дисперсия36.062 (36.062)35.81035.884 (29.692)
Минимальное значение11 (11)1011 (11)
Максимальное значение37 (37)3636 (31)
Интерквартильный размах7.0 (7.00)5.55.75 (5.25)


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

Характеристика выбоки2002 г.2008 г.2018 г.
Арифметическая средняя16.70116.08117.745
Стандартная ошибка0.5700.4770.521
Медиана16 (16)1617 (17)
Стандартное отклонение6.4255.2945.461
Дисперсия41.27528.02629.825
Минимальное значение7 (7)68 (8)
Максимальное значение41 (41)2829 (28)
Интерквартильный размах8 (8)89 (9)


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

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

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

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

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

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

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

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

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

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

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

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

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

Характеристика выборки2002 г.2018 г.
Тест Шапиро-УилкаW = 0.92382, p-value = 0.4248W = 0.93569, p-value = 0.1612
Среднее19.019.4
Стандартная ошибка1.2801.062
Медиана21.019.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 года (вероятно, включающих в себя значительные ошибки), но основная причина в том, что делать однозначные заключения о динамике развития растительного сообщества на основании трех наблюдений может только некомпетентный мудак.

Обильные фильтруации

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

Буду фильтровать. Начну с фрагмента снимка SRTM:

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

Начнем с DTM-фильтра, в основе которого лежит статья Георга Фоссельмана. Технология фильтрации основана на предположении о том, что резкий перепад значений высоты на незначительном пространстве DEM-растра свидетельствует не об особенностях рельефа, а о наличии объектов местности, искажающих ЦМР. Проще говоря, если на левом пикселе высота десять метров, а на правом тридцать, то скорее всего на местности в данных точках вы вместо обрыва/карьера увидите стену леса, здание или другую нерельефную ебанину. Фильтр просматривает растр скользящим окном заданного радиуса и отделяет области с уклоном выше указанного. При соответствующих настройках, этот фильтр позволяет не только отделить неестественные превышения, но и разделить растр на слои равнин и уклонов.

На демке с территорией города Шахты, алгоритм фильтрации сбоит на терриконах и отвалах. Впрочем, на таких масштабах уместнее использовать вместо SRTM растры ASTER GDEM. На моем фрагменте все работает прекрасно. Вот вам равнины:

А вот уклоны свыше тридцати градусов:

Главное, помните фильтр только отделяет одни пиксели от других. Дать физическое объяснение результата — уже ваша задача. Вот какого хрена на острове Поперечном такие уклоны? Он же ровный как блин. У меня даже фоточка есть:

Чаще всего подобные искажения возникают за счет растительности. Отделить ее от рельефа практически невозможно. Но если на плакорах с этим можно почти смириться (нужно только забыть про разницу в возрастах, бонитетах, наличие дорог, лугов, болот и полей, ветровалы, бобров, пожары, рубки и усыхания), то получить детальную ЦМР для склонов долин обычно затруднительно. Да чего объяснять-то? Каждый из вас наверняка видел такую взаимосвязь растительности и рельефа:

Но хватит, уже про DTM. Вы можете подумать, что у меня нет чувства такта. Фильтр комочков (Filter clumps — да простят меня профессиональные переводчики) отсеивает связанные пикселы с единым значением, превышающие заданную площадь. Например, вот области в которых соприкасается не менее тридцати пикселов с единым значением высоты:

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

Исходный SRTM в приближении:

Результат работы мажоритарного фильтра в том же экстенте:

  • Для понимания, на рисунке ниже черные изолинии с SRTM наложены на красные изолинии с отфильтрованного растра. Результат налицо:

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

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

Красные линии — горизонтали с растра дилатации, черные — горизонтали SRTM:

При эрозии происходит обратный процесс. Однородные области увеличиваются в размере за счет подавления шума между ними.

Красные изолинии с растра эрозии на фоне черных горизонталей SRTM

Это размыкание

с горизонталями

А это замыкание

с горизонталями

Все, хватит про морфологические фильтры. Это банально и скучно. Самое время испить из фрактальной реки и вспомнить про богов алеатики. Дамы и господа! Леди и джентельмены! Мудачье! Специально для вас, Карл Гаусс со своим фильтром!

— ээээээ, а где растр то?

А не будет растра. Ибо визуально после применения фильтра различия почти не отличить. Суть фильтра в отсеивании областей с заданным стандартным отклонением. Что-бы вы не расстраивались вот вам картинка с изолиниями (standart deviation = 1):

Фильтр Ли. Это к китайцам не имеет никакого отношения, просто я в душе не ебу, как перевести «Multi direction lee filter» на адекватный русский язык. Более того, я с трудом понимаю что это вообще такое, а для чего это — не понимаю вообще. Но раз уж зашла речь про фильтрацию, грех не рассказать про эту хрень.

Фильтр разделяет растр на три дочерних: результат фильтрации, растр минимума стандартного отклонения и растр направления минимума стандартного отклонения.

Результат фильтрации визуально от оригинала не отличим:

Минимальное стандартное отклонение. Тут все почти просто, если найти мануал, объясняющий значение прилагательного «минимальное».  Результирующий растр в псевдоцветах выглядит так (чем краснее, тем выше стандартное отклонение):

Слой изолиний в той же палитре:

Но самое интересное — направление минимума стандартного отклонения. Я воздержусь от комментариев, лучше покажу вам результат и выпью своего пива.

Изолинии по растру направления минимума стандартного отклонения на фоне изолиний SRTM (черные линии):

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

Изолинии из результата фильтрации (50-й ранг) на фоне изолиний SRTM:

На этом все.

Э, да я смотрю вас не наебешь. Действительно, а как же дивергенция градиента значений растра? Вообще физический смысл лапласиана достаточно условен, типа значений концентрации градиента. Но в нашем случае ситуация проще. Фильтр Лапласа выделяет контуры на растре. В итоге имеем следущее:

Да прибудет с нами псевдоцвет растра итогов применения фильтра Лапласа!

Ну и горизонтали, само-собой. Хотя, это все-таки не горизонтали, а просто изолинии.

Хотя, конечно, проще всего использовать простой фильтр. Особенно, если вы хотите строить горизонтали.

А еще проще совершенно не использовать фильтр. Я лично нефильтрованному вообще приоритет отдаю, у меня как раз тут еще немного осталось.

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

Векторная отмывка

Зашел тут на днях разговор про отмывку рельефа. Дескать, отмывка всегда представляет собой растр, со всеми вытекающими отсюда последствиями. Обычно так и есть, но давайте посмотрим на проблему шире.

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

Возьмем модифицированный фрагмент MODIS Blue Marble Next Generation с повышенной яркостью и контрастом для основы:
2

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

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

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

izorelef2

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

3

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

1a

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

index

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

000109

Пивопровод на ХБК

В поселке ХБК сто четыре жилых дома, которые необходимо подключить к пивопроводу. Само собой, сделать это необходимо с минимальными издержками на прокладку труб и дальнейшее их обслуживание.

Для проектирования пивопроводной сети, откроем в QGis карту OpenStreetMap с помощью плагина QuickMapServices или его старого аналога OpenLayersPlugin:

1

Приблизим интересующий нас район, и создадим полигональный шейп-файл:
2

Обведем контуры поселка:
3
Теперь, требуется загрузить контуры домов, нуждающихся в подключении. В нашем случае самым простым решением будет импорт зданий из базы геоданных OpenStreetMap с помощью сервиса Overpass turbo. Мы для этих целей воспользуемся плагином QuickOSM, загрузив полигональные объекты со значением «building=apartmens». В OSM полигонального типа нет, модуль выполняет эту конвертацию за нас:
4
В результате получим векторные слой, который будем использовать для построения графа.

5

Прежде всего, получим вершины графа, путем извлечения центроидов полигонов:
6
Если бы мы располагали графическими картами в качестве исходного материала, то пришлось бы их отсканировать, затем привязать, затем оцифровать. Это конечно дольше, но мы бы расставили точки более сложным образом. Центроиды полигонов хорошо применять только в случае простых полигонов, на сложных это приводит к погрешности:
8
Впрочем, нас такая точность устраивает, тем более, что от каждого центроида будет идти разводящая сеть. Мы получили вершины графа. Теперь, используя триангуляцию Делоне создадим множество полигонов, каждая вершина которых будет точкой центроида зданий.
7
Преобразуем полигональную триангуляцию в сеть линий. С помощью команды «split» плагина Networks разобьем сеть на отдельные линии. Мы получили граф, достаточный для роутинга. Если нам потребуется кратчайшим образом связать между собой две его вершины, достаточно будет просто использовать модуль RoadGraph:
9
При необходимости, можно добавить каждому ребру графа определенный вес. Полученные полилинии можно экспортировать в виртуальный слой и во внешний шейп.
15

Но у нас немного другая задача — построить сеть с ребрами минимальной длины. Для этого рассчитаем длину каждого ребра, используя встроенный калькулятор QGis:
13
Раскрасим слой ребер по градиенту возрастания длины ребра.
14
Ребер у нас много, поэтому выведем длину каждого из них в качестве подписи:

4

Теперь начинается чистая математика: нам требуется выбрать наиболее подходящий алгоритм. Очень много зависит от конкретных условий проектирования, например нельзя оставлять висячие ребра, нельзя делать множественное ветвление и др.

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

Добавим домики, отметим точки ветвления сети, изменим для лучшей визуализации проекцию и схема готова.

2

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

Метод Бенфорда в оценке достоверности данных

Метод Бенфорда в оценке достоверности данных

Друзья мои! Вы несомненно знаете больше меня о последних мировых новостях и потому разобщены и тревожны. Но сегодня, у вас будет повод отвлечься. В этот день мы все объединены единым горем утраты. Утрачена флешка, на которой я хранил для вас статью о диссипативной динамике живого напочвенного покрова. Вместе с ней пропало содержимое подарочной бутылки коньяка, мой рукописный реферат на тему «Сатанизм-как социальное явление» и весь тираж осеннего номера «Лабораторного Журнала», отпечатанный в объеме двух с половиной экземпляров. Воистину, в этот день можно посыпать голову пеплом, ибо об этот реферат я в свое время исписал четыре ручки и мне он чертовски дорог, как память о студенческих годах.

Дабы загладить боль утраты, я предлагаю вам статью из пропавшего «Лабораторного Журнала» (а где вы ее теперь прочитаете?), описывающую сущность, принципы применимости и алгоритм метода Бенфорда на примере анализа данных о площадях ООПТ России и площадях, охваченных лесными пожарами в 2009-2013 годах. Сам же я отправляюсь в келью, где буду страдать вплоть до открытия магазина.

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

Свое название бенфорд-последовательность получила в честь Фрэнка Бенфорда Альберта-младшего — американского инженера-электрика, физика и оптика, жившего в штатах в первой половине XX века. Однако, сам «Закон Бенфорда», он же «закон первой цифры» впервые описан за три года до его рождения американским астрономом, математиком и экономистом Саймоном Ньюкомбом. Работая в 1881 году с логарифмическими таблицами в книгах, он обнаружил, что сильнее всего истрепаны страницы на которых содержаться логарифмы чисел, начинающиеся с единицы. На первый взгляд, вероятность оказаться на первом месте в числе одинакова для всех цифр и составляет 1/9. Однако, чем выше по значению было число, состоящее из первой цифры логарифма, тем в большей сохранности находились страницы. Все это наводило на подозрение о неравномерной встречаемости первых цифр в числах.

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

P(d) = logb(d+1)-logb(d) = logb(1+1/d)

где:
b — основание системы счисления, в нашем случае b = 10;
d — первая цифра в числе;

На основе этой формулы была построена бенфорд-последовательность — последовательность вероятности появления различных цифр на первом месте числа. Рассчитанная по формуле, эта последовательность выглядит следующим образом: 30.1, 17.6, 12.5, 9.7, 7.9, 6.7, 5.8, 5.1, 4.6. Вероятность того, что на первом месте в числе окажется единица составляет 30.1%, двойка — 17,6% и так далее до девятки (4.6%).

Долгое время, эта интересная закономерность не находила никакого применения. Однако после 1997 года на нее обратили внимание и стали все активнее использовать для проверки фальсификации данных, например результатов голосования (в том числе и в России). В 1997 году М. Нигрини и Л. Миттермайер в издании «Аудит: Журнал теории и практики» опубликовали шесть разработанных математических тестов, основанных на законе Бенфорда. Тесты были успешно введены в практику аудиторской компанией «Эрнст и Янг» и позволили выявить несоответствие между реальными и заявленными данными клиентов.

Необходимо учитывать, что метод Бенфорда применим не ко всем данным. Он выдает значительные погрешности при работе с выборками для которых заданы максимальные или минимальные значения, с выборками, охватывающими только один или два порядка величин и с малыми по объему выборками.

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

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

Алгоритм применения бенфорд-метода в программах LibreOfficeCalc и MS Excel 

1. Исходные данные

Со страницы сайта oopt.aari.ru, разработанного ФГБУ «ААНИИ» и Лабораторией геоинформационных технологий взят перечень особо охраняемых природных территорий России. Список насчитывает 8013 ООПТ, из которых 4410 войдут в нашу обработку. Это действующие или реорганизованные ООПТ, для которых есть данные по площади.

Данные по площади лесных пожаров взяты с сайта федерального агентства лесного хозяйства. Выборка охватывает данные по всем регионам России с первого квартала 2009 года по второй квартал 2013 года. Всего за этот период было охвачено лесным пожаром 949 территорий различной площади.

2. Проверка на распределение

Нам необходимо убедиться, что данные подчиняются экспоненциальному распределению. Сортируем данные по площади и аппроксимируем их экспонентой.

Lj2-24

На рисунках изображены площади ООПТ (верхний рисунок) и площади пожаров (нижний рисунок), отсортированные по значению. Ось ординат показывает площадь в гектарах.   Чем больше площадь особо охраняемой природной территории, тем меньше таких ООПТ в стране. Равно как и значительные площади подвергаются пожарам гораздо реже небольших участков.  Коэффициент аппроксимации обоих наборов данных экспонентой (синяя линия) составил 0,98.

3. Избавление от нулей

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

4. Отделение первой цифры и расчет

Методом LEFT() в LibreOfficeCalc или ЛЕВСИМВ() в Excel отделяем первую цифру из каждого числа. Получившийся столбец с первыми цифрами чисел сортируем и подсчитываем количество единиц, двоек, троек и т.д. до девяток. Вероятность встречи каждой цифры рассчитываем как отношение количества чисел, начинающихся с данной цифры к общему количеству чисел. Например, если в выборке по пожарам было 273 числа, начинающихся на единицу, а общий объем выборки 949, то вероятность того, что первой цифрой в числе будет единица составит 100%*273/949=28,8%.   В итоге у вас получится аналог вот таких таблиц (верхняя таблица — данные по площади ООПТ, нижняя таблица — данные по площади пожаров):

Lj2-25

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

Lj2-252

Стобцы на графиках соответствуют фактической бенфорд-последовательности, красная линия соответствует теоретической последовательности, рассчитанной по формуле Бенфорда.

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

В случае, если бы анализируемые нами выборки были сфальцифицированы рандомным методом, то есть, вместо реальных значений были указаны случайные числа, фактическая и расчетная бенфорд-последовательности различались бы радикально.

P.S. Да, я знаю, что качество приведенных картинок отвратительно. Но поверьте, вы встретились с ними в странный момент их жизни.

Мапим по гуглопанорамам — наземное фотограмметрическое картирование в QGIS с помощью плагина stereoSurveys

Read in English

Замечание 1. В данной статье не расматриваются юридические вопросы законности использования описанного метода при работе с данными компании Гугл. Мое дело метод показать, а с юристами сами разбирайтесь.
Замечание 2. Собственно, ничто не мешает использовать любые другие данные, вплоть до своих фотографий.
Замечание 3. Код описываемого ниже модуля от первой до последней строки написан Enrico Ferreguti. Мое значение в этом проекте чисто терапевтическое.

Пару месяцев назад я опубликовал пост о технологии применении снимков Google StreetView для фотограмметрического картирования территории. Этот незатейливый текст вдохновил Enrico Ferreguti (по его словам) на разработку модуля StereoSurveys для QGIS.

Основное назначение модуля — перенос контуров объектов, попавших в объектив камеры гугломобиля в точечный слой QGis. Наличие объекта с известным пеленгом на двух геопривязанных снимках позволяет однозначно установить его местоположение по свойству суммы углов треугольника. Использовать это свойство на практике возможно было и ранее, однако, только после появления StereoSurveys появилась возможность значительно сократить трудоемкость работ и увеличить точноность нанесения данных.

Для иллюстрации работы модуля, нанесем в точечном слое местоположение фонарных столбов на улице Текстильной (ХБК, город Шахты). Со спутникового снимка их не видно, поэтому единственный способ нанести их не от балды — воспользоваться описываемым методом.

0

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

1. Для начала скачиваем модуль с гит-хаба.  На тот случай, если гит-хаб закроют (твою-ж мать…) сохранил копию у себя на сервере. Последняя ссылка подойдет так-же для тех, у кого скачанный с гит-хаба архив не открывается (как у меня, например).

2. Скачанный архив необходимо распаковать в папку хранения модулей QGIS. Для windows XP это обычно C:\Documents and Settings\[username]\.qgis2\python\plugins для windows 7: C:\Users\[username]\.qgis2\python\plugins, для linux: /home/[username]/qgis2/python/plugins. Если в папке home отсутствует папка qgis2 (или .qgis2), то, возможно, у вас не отображаются скрытые файлы. В debian-подобных системах (debian, ubuntu, mint, OSGeoLive и др.) это исправляется так: правая кнопка мыши — отображать скрытые файлы.

3. Если у вас винда — обратите внимание на название папки [username]. Плагин не переносит кириллицу! Если в названии файла, проекта, плагина или пути к ним встретится русская буква, QGIS выдаст следующую ошибку:

Traceback (most recent call last):   File "", line 1, in   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\pyplugin_installer\installer.py", line 274, in upgradeAllUpgradeable     self.installPlugin(key, quiet=True)   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\pyplugin_installer\installer.py", line 322, in installPlugin     reloadPlugin(key) # unloadPlugin + loadPlugin + startPlugin   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\qgis\utils.py", line 319, in reloadPlugin     loadPlugin(packageName)   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\qgis\utils.py", line 200, in loadPlugin     msg = msgTemplate % (packageName, "', '".join(sys.path)) UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 9: ordinal not in range(128)

Для пользователей Windows 7, причина кроется как правило в том, что папка «Users» в этой системе названа как «Пользователи», кроме того, обычно кириллическое написание имеет папка  [username]. Теоретически, исправить эту беду можно создав новую учетную запись с правами администратора. Через нее следует войти завершив текущую сессию, после чего стандартным способом сменить название директорий на латиницу. Насколько это возможно и действенно, я утверждать не берусь — не проверял.

В Линуксе, как правило, папка [username] всегда может быть названа только латиницей. Поэтому, если у вас Линукс — переходите к следующему пункту.

4. Теперь можно запустить QGIS, либо перезапустить его, если он работал до этого.

В верхнем меню выбираем: модули — управление модулями-с ошибками. Ставим галку в чекбоксе stereo surveys и нажимаем установить

Снимок экрана от 2015-06-20 21_37_45

 

После установки появляется текст «Модуль неисправен invalid syntax». Презираем его и закрывая окно установки модулей.

Снимок экрана от 2015-06-20 21_37_59

 

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

Снимок экрана от 2015-06-20 21_40_00

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

Для точечного слоя, создадим шейп-файл с названием test и системой координат EPSG: 3785 (можно и EPSG: 3857 — все работает, другие датумы не пробовал).

Снимок экрана от 2015-06-20 21_42_06

 

Что-бы вернуть его в рамки окна — перетащим таблицу слоев (менеджер слоев, TOC — все его по-разному называют) в нижнюю часть экрана.

Для того, что-бы картирование было более наглядным, подгрузим слой OpenStreetMap — Mapnik, воспользовавшись плагином OpenLayersPlugin.  Это не обязательно, но очень удобно. Приблизим нужный участок.

Рядом с левым верхним углом левой панорамы находится кнопка с зеленым индейцем. Нажимаем на эту кнопку, после чего выбираем на карте точку, из которой мы хотим видеть панораму. Обычно после этого в левом окне появляется панорама Google StreetView.

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

Первое сообщение об ошибке:

Снимок экрана от 2015-06-20 21_43_57

 

Второе сообщение об ошибке:

Снимок экрана от 2015-06-20 21_44_00

 

После нескольких неудачных попыток модуль срабатывает как надо и пользователь видит следующее:

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

— Непонятные числа, поля ввода и текст not calibrated слева и справа от окон с панорамами (первые два числа слева и справа — это координаты точки, в которой сделана панорама.

— Числа по центру, под окном со спутниковым снимком, которые обозначают следующее (я могу ошибаться):

H — высота точки, взятой на прицел в обоих панорамных окнах в метрах, относительно земли;

+/- — погрешность местоположения точки, взятой на прицел в обоих окнах, в метрах;

Lon, Lat — долгота и широта;

X,Y — неизвестные прямоугольные координаты;

— Под числами, расположена кнопка с текстом, «Digitize on map», по клику на которой, точка, взятая на прицел в обоих панорамах должна переносится в точечный слой.

— В окне отображения данных QGIS, помимо OSM-карты, пользователь видит три точки: зеленую — точка из которой снята панорама в левом окне StereoSurveys, красную — точка, из которой снята панорама в правом окне и желтую — точка, взятая на прицел в обоих окнах просмотра панорам.

Можно начинать работу. Находим на обоих панорамах одну и ту же точку. Кнопка Digitize on map не срабатывает, поэтому, включаем редактирование слоя и наносим ее вручную (кликаем по желтой точке, предварительно выбрав инструмент «добавить объект»). В проекте, который идет как пример к плагину, кнопка Digitize on map работает, но тоже далеко не всегда. Этот вопрос еще необходимо прояснить.

Находим один и тот же объект на двух снимках (в нашем случае это первый фонарный столб со знаком пешеходного перехода).

Снимок экрана от 2015-06-20 21_44_18

 

Прицеливаемся поточнее и стреляем — ставим точечный объект поверх желтой точки.

Снимок экрана от 2015-06-20 21_45_02

 

Точно так-же поступаем для остальных объектов. Картирование фонарного столба на противоположной стороне улицы.
Снимок экрана от 2015-06-20 21_47_33

 

Навигация осуществляется средствами Google StreetView. «Проезжаем» на несколько метров вперед в обоих окнах просмотра панорам и берем на прицел новый столб.

Снимок экрана от 2015-06-20 21_49_59

 

Иногда, без видимых причин возникает сообщение об ошибке:

Снимок экрана от 2015-06-20 21_51_10

 

Игнорируем его и продолжаем работать дальше.

Снимок экрана от 2015-06-20 21_53_17

 

Ради интереса, попытаемся изменить числа в полях StereoSurveys. Числа ввести можно только корректные. Насколько я понял из общения с Enrico, данные поля позволяют корректировать данные о высоте точки. Первое поле отвечает за высоту камеры над поверхностью земли (2.5 метра), второе за высоту поверхности земли (по умолчанию 0). Эти параметры особенно важны в горной местности с большими перепадами высот и при картировании объектов, находящихся на большом удалении от точек съемки панорам.

Не отвлекаемся и стреляем столбы дальше.

Снимок экрана от 2015-06-20 21_58_20

 

Процесс захватывает.

Снимок экрана от 2015-06-20 22_00_02 Снимок экрана от 2015-06-20 22_04_23 Снимок экрана от 2015-06-20 22_08_46 Снимок экрана от 2015-06-20 22_09_57

 

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

Еще точечку.

Снимок экрана от 2015-06-20 22:13:22 Снимок экрана от 2015-06-20 22:23:21 Снимок экрана от 2015-06-20 22:25:19

 

В результате, мы получаем точечный слой, который планировали. После нанесения всех точек, закрываем модуль и сохраняем полученный слой. Иногда, после закрытия модуля красная и зеленая точки (точки съемки панорам) не исчезают, в этом случае, необходимо отключить модуль через меню-модули-управление модулями-снять галку с чекбокса напротив StereoSurveys и нажать «Закрыть».

Любопытный момент: обычно, снимки привязывают к gps-трекам. Я за всю Одессу говорить не буду, но в OpenStreetMap так и происходит. Думаю в Google тоже. При этом трек рассматривается в качестве центра дороги, что частично верно только для проселочных колейных дорог. Игнорирование понятия полосы дороги, приводит к системной ошибке в координатах до 5 метров (обычно +/- 3 м). Сама по себе, это величина небольшая, часто незначительная на фоне погрешности прибора. Однако, в том случае, если координаты объекта используются для расчетов детерминированных показателей, ошибки могут быть колоссальны. Это категорически запрещает использование популярных веб-проектов для расчета площади секторов, лежащих в створе с известными координатами, анализа видимости объектов, привязки объектов по двум точкам…, боюсь, этот список может оказаться длинным.

Обратите внимание на местоположение фонарного столба на улице Ворошилова.

Карта OpenStreetMap — столб стоит на дороге.

Снимок экрана от 2015-06-20 22:31:49

 

Карта Google. Аналогичное местоположение столба. Так-же, обратите внимание на местоположение дороги, относительно столбов освещения.

Снимок экрана от 2015-06-20 22:31:14

 

Загадка. В какую сторону ехал гугломобиль, если дело происходит в стране с правосторонним движением?

Снимок экрана от 2015-06-20 22:30:49

 

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

Вот карта фонарных столбов, полученная с помощью модуля:

Снимок экрана от 2015-06-20 22:27:30

 

А вот, та же карта, полученная два месяца назад вручную. Ошибки нанесения (дублирование столбов) — налицо.

9

 

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

- Не работает с кириллицей;
- Не хватает угла обзора панорам как в модуле go2streetview;
- Возникает ошибка при попытке переместить точку на карте;
- Не работает кнопка Digitize on map;
- Плагин не реагирует, когда на обоих экранах одинаковый снимок (должно высвечиваться предупреждение);
- Не высвечивается предупреждение, если погрешность больше заданной величины;
- При запуске модуля должны отображаться снимки из текущих координат экстента;
- При наличии таблицы слоев, модуль выходит за размеры экрана;
- Не исчезают точки после закрытия плагина;
- Нет явного объяснения значения чисел и полей ввода в плагине;
- Много времени уходит на масштабирование снимков, не хватает кнопки "сбросить увеличение";
- Не хватает кнопки "назад" для каждого из окон панорам;
- Не хватает кнопки "вперед", перемещающей обе точки;

P.S. Спасибо Enrico Ferreguti за написание такого чудесного плагина. Десять лет назад я говорил, что скоро наступят времена, когда картографы долгими зимними вечерами будут превращать видеозаписи своих летних путешествий в точнейшие карты. Тогда надо мной все смеялись. Теперь, благодаря Enrico, я понимаю, что был прав.

Наземное фотограмметрическое картирование объектов с помощью Google StreetView, QGis и модуля go2streetview

Замечание 1. В данной статье не расматриваются юридические вопросы законности использования описанного метода при работе с данными компании Гугл. Мое дело метод показать, а с юристами сами разбирайтесь.
Замечание 2. Собственно, ничто не мешает использовать любые другие данные, вплоть до своих фотографий. Для этого необходимо только переписать модуль. К сожалению, моих познаний в языке для этого недостаточно. Была попытка написать отдельную программу для реализации этого метода (Borland С++ Builder 6) с произвольными фотографиями, но, ввиду отсутствия времени и денег работа была остановлена.

 

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

Для иллюстрации метода, нанесем на карту столбы освещения на Текстильной улице города Шахты, Ростовской области. Сделать это по спутниковому снимку невозможно. Более того, по спутниковому снимку невозможно даже определить их наличие:

0

 

С помощью меню «Модули» -> «Управление модулями» установим модуль «go2streetview«. После чего откроем в QGis указанный район и запустим модуль. Сделать это можно перетаскиванием желтого человечка на необходимую точку улицы, точно так же как и в Google Maps. В новом окне откроется фотография улицы из указанной точки, а сама точка на карте будет обозначенна синим цветом с двумя лучами, иллюстрирующими рамки окна с фотографией.

1

 

Изменение угла обзора в окне go2streetview, автоматически изменяет положение лучей. Это замечательное свойство модуля, наряду со свойством треугольника, позволяет нам определить местоположение любого объекта, попадающего не менее чем на два снимка StreetView.

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

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

Теперь откроем панораму с этими столбами снятую из другой точки. Сделать это можно кликнув по карте (не забудьте перед этим переключиться из режима редактирования слоя в режим модуля). Еще проще сделать это кликнув по стрелке в окне go2streetview.

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

3
Находим противоположный столб.

4

 

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

5

 

В ходе работы необходимо следить за тем, что-бы не ошибиться в выборе рамки окна go2streetview. Когда постоянно «вертишься» в пространстве панорам, такая ошибка, особенно в начале работы, случается часто. Обычно, это сразу заметно по нехарактерному положению искомого объекта на плане.

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

6

 

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

7

 

Получая в итоге следующее:

8

 

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

9

Технологии к которым мы не готовы: видеосъемка с орбиты

В конце прошлого года в сети впервые появились данные с нового спутника SkySat-1. Теперь мы получаем с орбиты не только фото, но и видео, причем в весьма хорошем качестве. При просмотре создается впечатление, что спутник зависает над территорией съемки. В действительности же происходит поворот снимающей камеры, синхронизированный с движением спутника. Максимальное время записи составляет 1,5 минуты. Помимо видеосъемки, SkySat-1 способен вести панхроматическую и мультиспектральную (красный, синий, зеленый, ближний инфракрасный цветовые диапазоны) с разрешением 0,9 и 2 метра на пиксель соответственно.

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

Спутники разработаны в американской компании SkyBox Imagin, основанной в 2009 году четырьмя аспирантами Стэнфордского университета. В настоящее время в компании работает порядка 100 человек, которые планируют завершить работу по выводу всей орбитальной группировки к 2016 году. Предполагается, что основными клиентами станут частные лица. Если стратегия SkyBox Imagin будет успешной, на рынок выйдет первая компания, предоставляющая данные дистанционного зондирования Земли для конечных потребителей. Иными словами, мы имеем возможность уже через два года получать несколько раз в день видеозапись для произвольной территории. Но даже если сроки не удастся соблюсти, все равно на лицо существенный прогресс в космической съемке, который пока не очень понятно как использовать.

Конечно же речь идет не об оперативных задачах, для которых необходимость в получении своевременных данных (например, дорожные пробки или лесные пожары) понятна. Многие задачи, такие как составление карт растительности по снимкам Landsat, Modis и QuickBurd едва ли требуют сейчас столь качественных данных, которые предоставляет SkyBox Imagin. Фактически через пару лет картографы могут получить мощнейший инструмент без всякого понимания того, как его можно применять. Было бы весьма неплохо уже сейчас задуматься над тем, как мы сможем использовать полученные данные. Это позволит уже сейчас сформировать те направления исследований, которые будут востребованы в ближайшие годы.

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

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

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

В геоботанике неизбежно усиление фенологических методов. Более того, вполне вероятно, что фенологические методы станут основными в геоботанической картографии, а индикационная геоботаника существенно дополнится методами, основанными на физиологии растений.

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

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

Использованы материалы:

SkyBox Imagin

Хабрахабр

Совзонд

Наземный фотограмметрический WZPr-метод оценки полноты древостоя

«Лесник без спичек, что хуй без яичек»
Народная лесниковская поговорка

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

Выражаю данной статьей признательность Михаилу Васильевичу Нешатаеву и Антону Олеговичу Пестерову, которые проебали мою призму Анучина в районе Левашово, а так-же Ивану Васильевичу Никифорчину, который в 2009 году взял на проверку курсовую работу по таксации и до сих пор проверяет.

Матчасть в лице учебника таксации говорит, что полнота «представляет собой сумму площадей поперечных сечений всех деревьев на площади на высоте 130 см в пересчете на гектар леса». Естественно, тут и далее в статье пойдет речь про абсолютную полноту, которая выражается обычно в квадратных метрах на гектар. Проще говоря абсолютная полнота это площадь всех пеньков на гектаре, срубленных выше пупка, но ниже головы — одна из важнейших величин при определения запаса древесины, а следовательно всех вытекающих параметров. Для измерения абсолютной полноты существует давно разработанный и опробованный метод угловых проб, который чаще называют методом реласкопических площадок или методом Биттерлиха, по имени изобретателя. В старой литературе, иногда встречается название WZPr-метод, от немецкого die Winkelzahlprobe. Те, кто уже знаком с методом, могут пропустить нудятину с его описанием и сразу перейти к сути вопроса.

Метод очаровательно прост. Вам потребуется изготовить вот такой «прибор»:

Полнотомер

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

Нормальный полнотомер

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

1. При наведении на дерево, дерево «закрывает» прорезь
2. При наведении на дерево, оно точно вписывается в прорезь (невозможно точно определить «закрывает» дерево прорезь или нет)
3. При наведении на дерево, дерево очевидно не закрывает прорезь

Принцип полнотомера

Деревья из первой категории вы считаете за единицу, деревья из второй категории считаете за пол-единицы. Третью категорию не учитываете. Предположим у вас 10 деревьев вошло в первую категорию, 4 дерева попали во вторую и все остальные попали в третью категорию. Абсолютная полнота в этом случае составляет 10*1+4*0,5=12 кв. метров на 1 гектар. Естественно, одной площадкой не обойдешься — весь мануал доступен в книжке «Методы отвода и таксации лесосек» — рекомендую к прочтению.

Весь фокус метода можно понять из картинки ниже:

Хуевая картинка

если длина полнотомера составляет 100 см, то круг, описанный им будет иметь площадь π кв.м. Если в этом кругу будет расти дерево, которое точно вписывается в разрез пластины полнотомера, значит диаметр этого дерева 2 см, а площадь сечения 0,0001π кв.м., что соответствует абсолютной полноте 1 кв. м на 1 га.

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

Призма Анучина

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

Принцип призмы Анучина

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

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

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

Схема метода

Не правда ли, это похоже на полнотомер Биттерлиха, только как бы «повернутый» прицельным визиром к наблюдателю? Естественно, ни о каком соотношении 1:50 тут не может быть и речи, но тем не менее, это не мешает установив зависимость между линейными размерами пиксела, и углом, который он охватывает в натуре, оценивать значения абсолютных полнот.
Первое что необходимо сделать — это узнать ширину 1 пиксела. Ее можно посмотреть либо в свойствах снимка, либо с помощью фоторедактора, например в GIMP 2.8: меню изображение -> свойства-разрешение:

Гимп скриншот

Разрешение снимка обычно представлено либо одним, либо двумя числами. В первом случае чило означает количество пикселей в дюйме диагонали, во втором случае, количестово пикселей в дюйме ширины и высоты. Соответственно, для вычисления ширины в первом случае нам необходимо воспользоваться теоремой Пифагора (количество пикселей в дюйме ширины равно квадратному корню половины квадрата количества пикселей в дюйме диагонали). В нашем случае в 1 дюйме ширины содержится 180 пикселей изображения. Следовательно, ширина 1 пиксела 0,014 см. Это и будет минимальная ширина прорези в нашем виртуальном полнотомере Биттерлиха.
Теперь необходимо определиться с длиной виртуальной базисной рейки. Для этого необходимо установить какой угол по ширине охватывает объектив вашего фотоаппарата. Учтите, что он изменяется при зуммировании объектива, поэтому «приближения» при снимках использовать не нужно.
Ширину охвата фотоаппарата можно рассчитать исходя из технической документации на ваш объектив, в которой указан угол изображения объектива. Для широкоугольных объективов он превышает 75 градусов, для длиннофокусных составляет менее 30 градусов. Остальные объективы называют нормальными, как правило на недорогих моделях стоят именно они. Угол изображения объектива — это диагональный угол, поэтому для расчета ширины охвата требуется вновь воспользоваться теоремой Пифагора.
Если же документация утеряна много лет назад, как в моем случае, достаточно просто установить фотоаппарат на штатив, сфотографировав удаленную на известное расстояние линейку, после чего измерить получившийся угол. Мой фотоаппарат охватывает ширину в 45 градусов.
Ширина фотографии составляет 3072 пиксела, что видно из свойств растра. Значит на каждый пиксел охватывает ширину в 45/3072=0,0146484375 градуса. Выше мы рассчитали, что каждый пиксел имеет ширину 0,014 см. Все что нам остается, для того, что-бы рассчитать длину виртуальной базисной рейки — это решить задачку для седьмого класса: основание равнобедренного треугольника составляет 0,014 см, вершина имеет угол 0,0146484375 градуса. Всего-то необходимо найти высоту этого треугольника.
Решение 1. Высота делит равнобедренный треугольник на два равных прямоугольных треугольника с длиной противолежащего катета 0,014/2=0,007 см и острым углом в вешине 0,0146484375/2=0,00732421875 градуса. Искомая высота является прилежащим катетом в наших треугольниках и равна отношению катета к тангенсу острого угла: 0,007 / tg(0,00732421875) = 54,7594860417≈55 см.
Решение 2. Будем считать, что этот треугольник не равнобедренный, а прямоугольный. Да, это аморальное математическое допущение, но при таком соотношении сторон, возникающая ошибка незначительно мала. Тогда искомая высота, она же прилежащий катет составляет: 0,014/tg(0,0146484375)=54,7594851469≈55 см.
Размер нашей виртуальной базисной рейки составляет 5,5 м. Визирный прицел составляет 0,00014 м. Следовательно, если на фотографии мы видим, что единственное дерево имеет ширину 1 пиксел, мы можем утверждать, что на площади (π×5,5^2)/(360/45)=11,8791472214≈12 кв.м площадь сечения древостоя составляет π*0,00007^2=1,5393804 × 10^(-8) м, что в пересчете на гектар составит 0,000013 кв.м. Это, конечно, чрезвычайно мало, но ситуация, при которой у вас в кадре будет только один ствол дерева шириной в 1 пиксел может быть разве что в таком случае:

Саванна

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

Таким образом, абсолютная полнота древостоя на 1 га вычисляется по формуле:
P = Σ(10000*(π*(0,5*B)^2)/(360/V*π*((0,5*B)/tg(0,5*0,W*B))^2)) где,
P — полнота, в кв.м
V — угол охвата снимка,
B — ширина дерева на фото, в см (ширина прорези виртуального полнотомера),
W — угол охвата одного пиксела, градусов
Применительно к нашему случаю:
P = Σ(10000*(π*(0,5*B)^2)/(360/45*π*((0,5*B)/tg(0,5*0,014*B))^2))
В материальном виде, использование этого метода можно представить так, будто мы располагаем не одним полнотомером, а бесконечным множеством полнотомеров с разными размерами визиров. Классический метод Биттерлиха совершенно игнорирует все деревья, не совпадающие с размером визира. В случае же фотограмметрического метода, учитываются все деревья. При этом, нет необходимости измерять абсолютно все деревья на снимке, но чем больше их будет измерено, тем точнее окажутся результаты.

Фрактальный анализ сложности горизонтальной структуры напочвенного покрова

Фрактальный анализ сложности горизонтальной структуры напочвенного покрова

Эта статья была написана в 2009 году и уже устарела — появились новые данные, новые результаты. В статье не рассмотрены методы связанные с размерностями высоких порядков, методы поканального анализа растров. Ни слова об алгоритмах сжатия jpeg. Данных — кот наплакал. И вообще, кругом говно. Есть только одна причина, по которой я ее публикую. Постройте аналог таблицы 7 по данным (В.Н. Федорчук и др., 2005) или любым другим. Построили? Ну вот, потому-то и публикую.

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

Цель работы — определить факторы, влияющие на сложность горизонтальной структуры напочвенного покрова.

Для достижения цели разработан метод фрактального анализа фотоизображений напочвенного покрова, основанный на понимании напочвенного покрова как диссипативной структуры.

Материалы и методы

В 2008 году в лесопарке «Пискаревка» (Санкт-Петербург) заложено 80 учетных площадок размером 0,25 кв.м. Преобладающий тип леса на обследованной территории – смешанный березняк (6Б4С) черничный. Возраст древостоев 60 лет, отдельные деревья имеют возраст до 150 лет. На каждой учетной площадке сделана фотография лесного полога (вертикально вверх), живого напочвенного покрова (вертикально вниз). Описано общее и повидовое проективное покрытие травяно-кустарничкового и мохово-лишайникового ярусов, мощность и покрытие подстилки, мощность гумусового горизонта.

При анализе данных, описанные виды травяно-кустарничкового яруса делились на 4 эколого-ценотические группы (А.А. Егоров и др., 1997; «Иллюстрированный определитель…», 2000; В. Ю. Нешатаев, А. А. Егоров, 2006):
1. Лесные виды, характерные для ненарушенного леса черничной серии типов (В.Н. Федорчук и др., 2005), такие как Vaccinium vitis-idaea, Vaccinium myrtillus и др.
2. Луговые виды (Trifolium pratenseLathyrus pratensis и др.)
3. Сорные виды (Plantago majorTaraxacum officinale и др.).
4. Опушечные, неморальные, прибрежные и прочие виды, такие как Geum urbanum, а так же светолюбивые лесные злаки (например, Avenella flexuosa).

Для каждой из эколого-ценотических групп рассчитывалась степень доминирования (индекс Симпсона) («Методы…», 2002).

Сложность структуры напочвенного покрова на учетных площадках (0,25 кв. м) определена на основе анализа фотоизображений, полученных в ходе полевых работ. На первом этапе фотографии были обрезаны по контуру учетной площадки и переведены из формата jpeg в формат bmp (256-цветовая палитра) с разрешением 22,97 х 22,97 см (650 х 650 пикселей), что в реальности соответствует площадке размером 50 х 50 см (рис.1).

Рис.1. Обрезка фотографии по контуру учетной площадки и преобразование ее в формат bmp-256 (650х650 пикселей).

Рис.1. Обрезка фотографии по контуру учетной площадки и преобразование ее в формат bmp-256 (650х650 пикселей).

Затем полученное изображение сохранялось в виде негатива формата bmp (черно-белый) (рис.2).

Рис.2. Преобразование негатива фотографии в формат bmp-ч/б (650х650 пикселей).

Рис.2. Преобразование негатива фотографии в формат bmp-ч/б (650х650 пикселей).

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

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

Покрытие1Рис.3. Покрытие изображения клетками различного масштаба. Граничные клетки залиты красным цветом (увеличено, показан левый нижний угол рисунка 2.).

Рис.3. Покрытие изображения клетками различного масштаба. Граничные клетки залиты красным цветом (увеличено, показан левый нижний угол рисунка 2.).

Размер клеток с каждым новым покрытием возрастал. Изображение покрывали 10 раз. Минимальная площадь одной клетки 0,01см2 (418609 клеток), максимальная 0,60 см2 (4186 клеток).

Зависимость между площадью одной клетки и количеством клеток содержащих в себе черный и белый пиксель аппроксимировали степенной функцией.

Размерность Хаусдорфа-Безиковича (фрактальная размерность) рассчитана с использованием полученного уравнения регрессии по формуле:

 D = -N;
где N- показатель степени в уравнении регрессии (y = ax^N).

Обычно для природных систем характерен целый ряд размерностей. Такие системы носят название мультифракталов. Показатель размерности при их изучении зависит не только от сложности анализируемой структуры, но и от параметров клеточного метода (Иванов и др., 2006). Для анализа мультифракталов применяют кривую спектра фрактальных размерностей (Федер, 1991; Шредер, 2001; Божокин, Паршин, 2001; Мандельброт, 2002; Шурганова и др., 2002). Чтобы выразить этот спектр численно, разработана формула отношения области охваченной мультифрактальным спектром к площади, ограниченной топологическими размерностями, между которыми заключены все фрактальные размерности спектра:

Формулагде Z- показатель сложности структуры;
Dt –Топологическая размерность. Равна 0 в нижней границе области фрактальных размерностей (равна 0 в случае Dt* a), равна 1 в верхней границе области фрактальных размерностей (равна 1 в случае Dt* b),
f(x) — функция, наилучшим образом аппроксимирующая фрактальный спектр,
a – Нижняя граница площадей клеток покрытия, см;
b – Верхняя граница площадей клеток покрытия, см;

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

Результаты и их обсуждение

Характеристика горизонтальной структуры напочвенного покрова

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

Наиболее простая структура (значение размерности – 0,65-0,7) наблюдается при высокой сомкнутости древостоя (80%) низкой мощности подстилки, малом проективном покрытии. Видовое разнообразие на таких площадках низкое (в среднем 3 вида травяно-кустарничкового яруса на одной учетной площадке). Представлены преимущественно виды лесных местообитаний (Oxalis acetosella, Vaccinium vitis-idaea, Vaccinium myrtillus, Majantemum bifolium).

При снижении сомкнутости древостоя увеличивается видовое разнообразие и проективное покрытие видов травяно-кустарничкового яруса. Снижается степень доминирования лесных видов, за счет усиления роли видов опушечнных, неморальных и прочих местообитаний. Появляются рудеральные виды (Taraxacum officinale). Увеличивается мощность подстилки (более 1 см). Значение интегральной размерности покрытия для структуры напочвенного покрова составляет 0,7-0,8.

В условиях минимальной сомкнутости древостоя проективное покрытие и видовое разнообразие достигают самых больших значений. Мощность подстилки в этих условиях максимальна. В травяно-кустарничковом ярусе из лесных видов сохраняется только седмичник европейский. Появляется Poa pratense – типичный луговой вид. Доминируют виды переходных местообитаний. Структура напочвенного покрова имеет наибольшую сложность. Интегральная размерность покрытия для таких площадок выше 0,9.

Связь сложности горизонтальной структуры с параметрами напочвенного покрова

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

Тут должна быть таблица, которую все-равно никто не читает.

Из косвенных факторов, имеющих заметную связь с интегральной размерностью покрытия, выделяется сомкнутость древостоя, количество и степень доминирования лесных видов и видов, не относящихся к конкретным местообитаниям, произрастающих в широком диапазоне условий.

Связь сложности горизонтальной структуры с проективным покрытием травяно-кустарничкового яруса

Связь сложности структуры напочвенного покрова и проективного покрытия травяно-кустарничкового яруса наилучшим образом описывается степенным законом, поскольку общее проективное покрытие имеет верхний предел (100 %).

Изменение проективного покрытия заметно влияет на сложность структуры только на начальных этапах (рис. 4.). При проективном покрытии до 40%, увеличение проективного покрытия ведет к заметному усложнению структуры напочвенного покрова, снижение к упрощению. При проективном покрытии свыше 40 % изменение проективного покрытия незначительно сказывается на сложности структуры напочвенного покрова (рис. 4.).

Рис. 4. Связь интегральной размерности покрытия (сложности структуры напочвенного покрова) и проективного покрытия травяно-кустарничкового яруса (ТКЯ) при различных значениях проективного покрытия.

Рис. 4. Связь интегральной размерности покрытия (сложности структуры напочвенного покрова) и проективного покрытия травяно-кустарничкового яруса (ТКЯ) при различных значениях проективного покрытия.

Связь сложности горизонтальной структуры с видовым разнообразием

Связь интегральной размерности покрытия и видового разнообразия, теоретически должна быть линейна, поскольку верхний предел богатства видового разнообразия отсутствует. В действительности, это не совсем так (рис. 5.), поскольку существует положительная корреляция (r2 = 0,41) между количеством видов и проективным покрытием травяно-кустарничкового яруса.

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

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

Малому видовому разнообразию соответствует обычно или очень небольшое или наоборот максимальное проективное покрытие. В левой части рис. 5. видно, что площадкам с низким видовым разнообразием не характерны определенные значения фрактальной размерности. Большой разброс данных происходит от того, что в них отражена одновременно информация о площадках с высоким проективным покрытием травяно-кустарничкового яруса (увеличивающим значения интегральной размерност покрытия до 0,9-0,95) и площадках с низким проективным покрытием (значение размерности менее 0,75). Для участков с более высоким видовым разнообразием (правая часть рис. 5.) связь становится более заметной.

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

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

Связь сложности горизонтальной структуры с параметрами мохово-лишайникового яруса и подстилки

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

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

Диссипативные свойства структуры напочвенного покрова

Для диссипативной структуры характерно усложнение при увеличении притока энергии (Г. Хакен, 1980). Аналогичное свойство наблюдается и у горизонтальной структуры напочвенного покрова. При увеличении притока энергии (снижении сомкнутости древостоя) интегральная размерность покрытия возрастает (рис. 6).

Рис.6. Возрастание сложности структуры напочвенного покрова при снижении сомкнутости. Данные сгруппированы в десять групп. Корреляция между значениями исходных данных указана в Таблице.

Рис.6. Возрастание сложности структуры напочвенного покрова при снижении сомкнутости. Данные сгруппированы в десять групп. Корреляция между значениями исходных данных указана в Таблице.

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

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

Подобная динамика действительно прослеживается на обследованных учетных площадках (рис.7).

Рис. 7. Динамика видового разнообразия и проективного покрытия травяно-кустарничкового яруса (ТКЯ) на учетных площадках, при изменении сомкнутости древостоя.

Рис. 7. Динамика видового разнообразия и проективного покрытия травяно-кустарничкового яруса (ТКЯ) на учетных площадках, при изменении сомкнутости древостоя.

Заключение

Метод фрактального анализа выявляет зависимость сложности структуры напочвенного покрова от трех основных прямых фактора: проективного покрытия, видового разнообразия травяно-кустарничкового яруса и мощности подстилки. Если проективное покрытие имеет низкие значения (до 40%) преимущественно от него зависит сложность структуры напочвенного покрова. Если проективное покрытие имеет значения более 40%, сложность структуры напочвенного покрова определяется другими признаками (например, видовым разнообразием травяно-кустарничкового яруса).

Главным косвенным фактором, влияющим на структуру напочвенного покрова, является степень сомкнутости древостоя.

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

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

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