Атмосферный кислород. Атмосфера, ее состав и структура

Текстовые строки могут быть объявлены двумя способами: можно использовать тип данных String, который входит в ядро, начиная с версии 0019; либо объявить строку как массив символов char с нулевым символом в конце. На этой странице описан второй способ. Для получения более подробной информации об объекте String, предоставляющем больше возможностей ценой большего расхода памяти, см. страницу String - объект .

Примеры

Ниже представлены примеры правильного объявления строк.

Char Str1; char Str2 = {"a", "r", "d", "u", "i", "n", "o"}; char Str3 = {"a", "r", "d", "u", "i", "n", "o", "\0"}; char Str4 = "arduino"; char Str5 = "arduino"; char Str6 = "arduino";

Допускаемые операции при объявлении строк

  • Объявить массив символов без его инициализации (Str1)
  • Объявить массив символов с одним избыточным элементом, компилятор сам добавит требуемый нулевой символ (Str2)
  • Добавить нулевой символ явно (Str3)
  • Инициализировать массив с помощью строковой константы, заключенной в кавычки; компилятор создаст массив необходимого размера с нулевым символом в конце (Str4)
  • Инициализировать массив с помощью строковой константы, явно указав его размер (Str5)
  • Инициализировать массив избыточного размера, оставив место для более длинных строк (Str6)

Нулевой завершающий символ

Как правило, все строки завершаются нулевым символом (ASCII код 0), который позволяет функциям (подобным Serial.print()) определять длину строки. Без этого символа они продолжали ли бы последовательно считывать байты памяти, которые фактически уже не являлись бы частью строки.

По сути, это означает, что длина вашей строки должна быть на 1 символ больше, чем текст, который вы хотели бы в ней хранить. Именно поэтому Str2 и Str5 должны быть длиной 8 символов, несмотря на то, что слово "arduino" занимает всего 7 - последняя позиция автоматически заполняется нулевым символом. Размер Str4 автоматически станет равным 8 - один символ требуется для завершающего нуля. В строке Str3 мы самостоятельно указали нулевой символ (обозначается "\0").

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

Одинарные или двойные кавычки?

Строки всегда объявляются в двойных кавычках ("Abc"), а символы всегда объявляются в одинарных кавычках ("A").

Перенос длинных строк

Длинные строки можно переносить так:

Char myString = "This is the first line" " this is the second line" " etcetera";

Массивы строк

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

В нижеследующей программе звездочка после указания типа данных char "char*" показывает, что переменная является массивом "указателей". Все имена массивов фактически являются указателями, поэтому звездочка необходима для создания массива массивов. Указатели в C - одна из наиболее сложных вещей для начинающих, но в данном случае глубокого понимания указателей для их эффективного использования вовсе не требуется.

Пример

char* myStrings={"This is string 1", "This is string 2", "This is string 3", "This is string 4", "This is string 5","This is string 6"}; void setup(){ Serial.begin(9600); } void loop(){ for (int i = 0; i < 6; i++){ Serial.println(myStrings[i]); delay(500); } }

Arduino String – основная библиотека для работы со строками в ардуино. С ее помощью существенно упрощается использование массивов символов и строк в скетче. Объект типа String содержит множество полезных функций для создания и объединения строк, преобразований string to int (парсинг чисел) и int to string (форматирование чисел). Строки используются практически в любых проектах, поэтому и вероятность встретить String в скетче очень высока. В этой статье мы постараемся рассмотреть основные методы этого класса и наиболее часто возникающие ситуации.

Стандартным способом работы со строками в языке C является использование массива символов. Это все означало необходимость работы с указателями и понимания адресной арифметики. В ардуино и C++ у программистов появилось гораздо больше возможностей. Все “низкоуровневые” операции по работе со строкой выделены в отдельный класс, а для основных операций даже переопределены операторы. Например, для объединения срок мы просто используем хорошо знакомый знак “+”, а не зубодробильные функции типа malloc и strcpy. С помощью String мы работаем со строкой как с целым объектом, а не рассматриваем его как массив символов. Это позволяет сосредоточиться на логике скетча, а не деталях реализации хранения символов в памяти.

Естественно, у любого “упрощения” всегда есть свои подводные камни. String всегда использует больше оперативной памяти и в некоторых случаях функции класса могут медленнее обрабатываться. Поэтому в реальных больших проектах придется тщательно взвешивать все плюсы и минусы и не забывать, что никто не мешает нам работать со строками в стиле С. Все обычные функции обработки массивов char остаются в нашем арсенале и в arduino.

Создание строк в ардуино с помощью String

В ардуино у нас есть несколько способов создать строку, приведем основные:

  • char myCharStr = “Start”; – массив типа char с завершающим пустым символом;
  • String myStr = “Start”; – объявляем переменную, создаем экземпляр класса String и записываем в него константу-строку.
  • String myStr = String(“Start”); – аналогичен предыдущему: создаем строку из константы
  • String myStr(myCharStr); – создаем объект класса String с помощью конструктра, принимающего на вход массив типа char и создающего из char String.
  • String myStr = String(50); – создаем строку из целого числа (преобразование int to string).
  • String myStr = String(30, H); – создаем строку – представление числа в 16-чной системе (HEX to String)
  • String myStr = String(16, B); – создаем строку – представление числа в двоичной системе (Byte to String).

Каждый раз, когда мы объявляем в коде строку с использованием двойных кавычек, мы создаем неявный объект класса String, являющийся константой. При этом обязательно использование именно двойных кавычек: “String” – это строка. Одинарные кавычки нужны для обозначения отдельных символов. ‘S’ – это символ.

Функции и методы класса String

Для работы со строками в String предусмотрено множество полезных функций. Приведем краткое описание каждой из них:

  • String() – конструктор, создает элемент класса данных string. Возвращаемого значения нет. Есть множество вариантов, позволяющих создавать String из строк, символов, числе разных форматов.
  • charAt() возвращает указанный в строке элемент. Возвращаемое значение – n-ный символ строки.
  • compareTo() – функция нужна для проверки двух строк на равенство и позволяет выявить, какая из них идет раньше по алфавиту. Возвращаемые значения: отрицательное число, если строка 1 идет раньше строки 2 по алфавиту; 0 – при эквивалентности двух строк; положительное число, если вторая строка идет раньше первой в алфавитном порядке.
  • concat() – функция, которая объединяет две строки в одну. Итог сложения строк объединяется в новый объект String.
  • startsWith() – функция показывает, начинается ли строка с символа, указанного во второй строке. Возвращаемое значение: true, если строка начинается с символа из второй строки, в ином случае false.
  • endsWith() – работает так же, как и startsWith(), но проверяет уже окончание строки. Также возвращает значения true и false.
  • equals() – сравнивает две строки с учетом регистра, т.е. строки «start» и «START» не будут считаться эквивалентными. Возвращаемые значения: true при эквивалентности, false в ином случае.
  • equalsIgnoreCase() – похожа на equals, только эта функция не чувствительна к регистру символов.
  • getBytes() – позволяет скопировать символы указанной строки в буфер.
  • indexOf() – выполняет поиск символа в строке с начала. Возвращает значение индекса подстроки val или -1, если подстрока не обнаружена.
  • lastIndexOf() –выполняет поиск символа в строке с конца.
  • length() – указывает длину строки в символах без учета завершающего нулевого символа.
  • replace() – заменяет в строке вхождения определенного символа на другой.
  • setCharAt() – изменяет нужный символ в строке.
  • substring() – возвращает подстроку. Может принимать два значения – начальный и конечный индексы. Первый является включительным, т.е. соответствующий ему элемент будет включаться в строку, второй – не является им.
  • toCharArray() – копирует элементы строки в буфер.
  • toLowerCase() – возвращает строку, которая записана в нижнем регистре.
  • toUpperCase() – возвращает записанную в верхнем регистре строку.
  • toInt() – позволяет преобразовать строку в число (целое). При наличии в строке не целочисленных значений функция прерывает преобразование.
  • trim() – отбрасывает ненужные пробелы в начале и в конце строки.

Объединение строк Arduino

Объединить две строки в одну можно различными способами. Эта операция также называется конкатенацией. В ее результате получается новый объект String, состоящий из двух соединенных строк. Добавить к строке можно различные символы:

  • String3 = string1 + 111; // позволяет прибавить к строке числовую константу. Число должно быть целым.
  • String3 = string1 + 111111111; // добавляет к строке длинное целое число
  • String3 = string1 + ‘А’; // добавляет символ к строке
  • String3 = string1 + “aaa”;// добавляет строковую постоянную.
  • String3 = string1 + string2; // объединяет две строки вместе.

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

Arduino string to int и string to float

Для конвертации целочисленных значений string to int используется функция toInt().

String MyStr = “111”;

int x = MyStr.toInt();

Если нужно конвертировать объект с плавающей запятой, применяется функция atof().

String MyStr = “11.111”;

MyStr.toCharArray(myStr1, MyStr.length()); // копируется String в массив myStr1

float x = atof(myStr1); // преобразование в float

Преобразование int to string

Для создания строки из числа не требуется делать особых телодвижений. Мы можем просто объединить строку и число:

String str = “Строка номер “+ i;

Можем создать объект, используя конструктор

String str = String(50);

Можем объединить оба способа:

String str = “Строка номер “+ String(50);

Преобразование String в массив char

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

  • char myStr1; – в данном случае объявлен массив определенного размера.
  • char myStr2 = {‘a’, b, ‘c’, ‘d’, ‘e’}; – объявлен сам массив. Конечный символ не записанявно, его прибавит сам компилятор.
  • char myStr3 = {‘a’, b, ‘c’, ‘d’, ‘e’’/0’}; – объявлен массив, при этом в конце прописан признак окончания строки.
  • char myStr4 = “abcde”; – инициализация массива строковой постоянной. Размер и завершающий символ добавляются автоматически компилятором.
  • char myStr5 = “abcde”; – инициализация массива с точным указанием его размера.
  • char myStr 6 = “abcde”; – аналогично, но размер указан больше для возможности использования строк большей длины.

Еще раз напомним, что в типе данных char строковые константы нужно записывать в двойные кавычки «Abcde», а одиночные символы – в одинарные ‘a’.

Конвертировать строку в массив сhar array можно при помощи следующего кода:

String stringVar = “111”;

char charBufVar;

stringVar.toCharArray(charBufVar, 20);

Можно сделать обратное преобразованиеchar to string .

char chArray = “start”;

String str(chArray);

Пример преобразования String to const char* . Указание звездочкой char*означает, что это массив указателей.

String stringVar=string (`start);

Char charVar[ sizeof ;

stringVar.toCharArray(charVar, sizeof(charVar));

Заключение о String и ардуино

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

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

Текстовые строки могут быть объявлены двумя способами: можно использовать тип данных String, который входит в ядро, начиная с версии 0019; либо объявить строку как массив символов char с нулевым символом в конце. На этой странице описан второй способ. Для получения более подробной информации об объекте String, предоставляющем больше возможностей ценой большего расхода памяти, см. страницу String — объект .

Примеры

Ниже представлены примеры правильного объявления строк.

Char Str1; char Str2 = {"a", "r", "d", "u", "i", "n", "o"}; char Str3 = {"a", "r", "d", "u", "i", "n", "o", "\0"}; char Str4 = "arduino"; char Str5 = "arduino"; char Str6 = "arduino";

char Str1 [ 15 ] ;

char Str2 [ 8 ] = { "a" , "r" , "d" , "u" , "i" , "n" , "o" } ;

char Str3 [ 8 ] = { "a" , "r" , "d" , "u" , "i" , "n" , "o" , "\0" } ;

char Str4 = "arduino" ;

char Str5 [ 8 ] = "arduino" ;

char Str6 [ 15 ] = "arduino" ;

Допускаемые операции при объявлении строк

  • Объявить массив символов без его инициализации (Str1)
  • Объявить массив символов с одним избыточным элементом, компилятор сам добавит требуемый нулевой символ (Str2)
  • Добавить нулевой символ явно (Str3)
  • Инициализировать массив с помощью строковой константы, заключенной в кавычки; компилятор создаст массив необходимого размера с нулевым символом в конце (Str4)
  • Инициализировать массив с помощью строковой константы, явно указав его размер (Str5)
  • Инициализировать массив избыточного размера, оставив место для более длинных строк (Str6)

Нулевой завершающий символ

Как правило, все строки завершаются нулевым символом (ASCII код 0), который позволяет функциям (подобным Serial.print()) определять длину строки. Без этого символа они продолжали ли бы последовательно считывать байты памяти, которые фактически уже не являлись бы частью строки.

По сути, это означает, что длина вашей строки должна быть на 1 символ больше, чем текст, который вы хотели бы в ней хранить. Именно поэтому Str2 и Str5 должны быть длиной 8 символов, несмотря на то, что слово «arduino» занимает всего 7 — последняя позиция автоматически заполняется нулевым символом. Размер Str4 автоматически станет равным 8 — один символ требуется для завершающего нуля. В строке Str3 мы самостоятельно указали нулевой символ (обозначается ‘\0’).

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

Одинарные или двойные кавычки?

Строки всегда объявляются в двойных кавычках («Abc»), а символы всегда объявляются в одинарных кавычках (‘A’).

Перенос длинных строк

Длинные строки можно переносить так:

char myString = "This is the first line" " this is the second line" " etcetera";

char myString = "This is the first line"

" this is the second line"

" etcetera" ;

Массивы строк

При работе с большими объемами текста (например, в проектах, работающих с LCD-экраном) часто удобно использовать массивы строк. Поскольку строки сами по себе являются массивами, то фактически, это — пример двумерного массива.

В нижеследующей программе звездочка после указания типа данных char «char*» показывает, что переменная является массивом «указателей». Все имена массивов фактически являются указателями, поэтому звездочка необходима для создания массива массивов. Указатели в C — одна из наиболее сложных вещей для начинающих, но в данном случае глубокого понимания указателей для их эффективного использования вовсе не требуется.

Пример

char* myStrings={"This is string 1", "This is string 2", "This is string 3", "This is string 4", "This is string 5","This is string 6"}; void setup(){ Serial.begin(9600); } void loop(){ for (int i = 0; i < 6; i++){ Serial.println(myStrings[i]); delay(500); } }

char * myStrings = { "This is string 1" , "This is string 2" , "This is string 3" ,

Текстовые строки могут быть объявлены двумя способами: можно использовать тип данных String, который входит в ядро, начиная с версии 0019; либо объявить строку как массив символов char с нулевым символом в конце. На этой странице описан второй способ. Для получения более подробной информации об объекте String, предоставляющем больше возможностей ценой большего расхода памяти, см. страницу String - объект.

Примеры

Ниже представлены примеры правильного объявления строк.

Char Str1; char Str2 = {"a", "r", "d", "u", "i", "n", "o"}; char Str3 = {"a", "r", "d", "u", "i", "n", "o", " char Str1; char Str2 = {"a", "r", "d", "u", "i", "n", "o"}; char Str3 = {"a", "r", "d", "u", "i", "n", "o", "\0"}; char Str4 = "arduino"; char Str5 = "arduino"; char Str6 = "arduino"; "}; char Str4 = "arduino"; char Str5 = "arduino"; char Str6 = "arduino";

Допускаемые операции при объявлении строк

  • Объявить массив символов без его инициализации (Str1)
  • Объявить массив символов с одним избыточным элементом, компилятор сам добавит требуемый нулевой символ (Str2)
  • Добавить нулевой символ явно (Str3)
  • Инициализировать массив с помощью строковой константы, заключенной в кавычки; компилятор создаст массив необходимого размера с нулевым символом в конце (Str4)
  • Инициализировать массив с помощью строковой константы, явно указав его размер (Str5)
  • Инициализировать массив избыточного размера, оставив место для более длинных строк (Str6)

Нулевой завершающий символ

Как правило, все строки завершаются нулевым символом (ASCII код 0), который позволяет функциям (подобным Serial.print() ) определять длину строки. Без этого символа они продолжали ли бы последовательно считывать байты памяти, которые фактически уже не являлись бы частью строки.

По сути, это означает, что длина вашей строки должна быть на 1 символ больше, чем текст, который вы хотели бы в ней хранить. Именно поэтому Str2 и Str5 должны быть длиной 8 символов, несмотря на то, что слово "arduino" занимает всего 7 - последняя позиция автоматически заполняется нулевым символом. Размер Str4 автоматически станет равным 8 - один символ требуется для завершающего нуля. В строке Str3 мы самостоятельно указали нулевой символ (обозначается "\0").

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

Одинарные или двойные кавычки?

Строки всегда объявляются в двойных кавычках ("Abc"), а символы всегда объявляются в одинарных кавычках ("A").

Перенос длинных строк

Длинные строки можно переносить так:

Char myString = "This is the first line" " this is the second line" " etcetera";

Массивы строк

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

В нижеследующей программе звездочка после указания типа данных char "char*" показывает, что переменная является массивом "указателей". Все имена массивов фактически являются указателями, поэтому звездочка необходима для создания массива массивов. Указатели в C - одна из наиболее сложных вещей для начинающих, но в данном случае глубокого понимания указателей для их эффективного использования вовсе не требуется.

Пример

char* myStrings={"This is string 1", "This is string 2", "This is string 3", "This is string 4", "This is string 5","This is string 6"}; void setup(){ Serial.begin(9600); } void loop(){ for (int i = 0; i < 6; i++){ Serial.println(myStrings[i]); delay(500); } }

Причина кислорода в атмосфере Земли и причина вулканизма на Земле – одна. Это собственное тепло планеты, генерируемое каждым атомом, в процессе метаболизма.


Причина вулканизма на Земле

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

Моя оценка: Энергия Земли 0,2*10^15 Дж/сек (в соответствии с теорией).

Теплопроводность литосферных плит и океанического дна мала, чтобы отвести эту энергию. Поэтому, тепло отводится через вулканизм. Из 10 000 вулканов, зарегистрированных на Земле, большая часть подводные. Они нагревают океан. Меньшая часть надводные. Они нагревают атмосферу.


Разрушение воды

Вода океанов, контактирует с огромным количеством расплавленной магмы, извергаемой подводными вулканами. И от этого контакта разрушается на кислород и водород. Оба газа всплывают на поверхность. Лёгкий водород поднимается в верхние слои атмосферы и там соединяется с озоном, образуя воду. Вода конденсируется и видна как перистые облака на высоте 30 км (на фото). Осадками, вода опять выпадает на землю. А в атмосфере образуются «озоновые дыры». Часть водорода сдувается солнечным ветром и уносится в космос. Кислород тяжёлый, поэтому концентрируется у поверхности Земли. Именно этим кислородом мы все дышим!!!

Осознал это, посмотрев документальный фильм: «Водородная "бомба" под ногами и под нефтяной экономикой».


Причина кислорода в атмосфере Земли

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

Растения, в процессе фотосинтеза тоже выделяют кислород. И тоже, путём разрушения молекул воды. СО2 и Н2 соединяются в углеводород, а молекула кислорода поступает в воздух.

Почему считаю, что не растения отвечают за наблюдаемую концентрацию кислорода в атмосфере Земли? Об этом, чуть ниже.


Процент кислорода в атмосфере, раньше

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


Темпы разрушения Земного океана

Можно оценить время полного разрушения океанов Земли.

Потеря водорода происходит по причине сдувания его солнечным ветром, в космос. Темп выдувания водорода 10% от того, что находится в атмосфере –250 000 000 тонн/год. При таких темпах потери водорода, Земле грозит обезвоживание (по моей гипотезе, его происхождения из воды). Темп разрушения воды – 2,25 км3/год. На полное разрушение всех океанов Земли надо 645 миллионов лет.

Примечание.

1. Темп выдувания водорода 250 000 тонн/год. Информация из фильма: «Водородная "бомба" под ногами и под нефтяной экономикой» таблица на 7 минут 30 секунд.

2. Темп выдувания водорода 10% от того, что находится в атмосфере. Этот же фильм, озвучка на 45 минуте.

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

Судьба Венеры

Что касается второго крупного обломка «Древней планеты» - Венеры. Ей досталось меньше воды океана и очень мало материковых плит (всего две = 10% её площади). Воды не хватило для того, чтобы остудить обнажённую магму. В результате, разложение воды привело к образованию огромного количества кислорода и водорода.

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

Атмосфера Венеры стала очень кислородной. Кислород соединился с углеродом образовав СО2, из которой сейчас и состоит 96,5% атмосферы Венеры.

Собственное тепло, генерируемое материей Венеры - 0,117*10^15 Дж/сек (расчётная, по теории). Для того, чтобы отвести всё тепло, генерируемое материей Венеры и получаемое от Солнца, достаточно температуры поверхности -20С°.

Но Венере досталась более плотная, чем Земле, атмосфера из азота, что создало более выраженный парниковый эффект.

Объём доставшейся Венере азотной атмосферы легко посчитать. То, что есть сейчас, составляет 1,88*10^19 кг. Что в 4,9 раза больше, чем азота в земной атмосфере. Плюс тот азот, что превратился в углерод, за счёт солнечной радиации и, соединившись с кислородом, стал углекислым газом - 1,42*10^20 кг. Что в 36,85 раз больше, чем азота в земной атмосфере. Всего, в атмосфере Венеры, азота было в 41,75 раз больше, чем сейчас на Земле 1,61*10^20 кг.

Водород, от разрушенной воды, интенсивно выдувался в космос. Очень мощная атмосфера из СО2, закрыла планету от излучения тепла, как одеяло. Планета у поверхности очень горячая (464С°). Вода исчезла.

При таких же темпах потери водорода, как на Земле, Венера полностью потеряла бы океан за 189 миллионов лет!!! Но, темпы потери водорода на Венере были намного больше. Она потеряла свой океан меньше, чем за 4 000 000 лет.

Чуть меньше океанов (1/3 от земных), плотнее атмосфера из азота (в 42 раза больше земной), чуть меньше континентальных плит (в 3 раза меньше земных), чуть ближе к Солнцу (больше солнечный ветер), слабое магнитное поле – и совсем другая судьба!!!


Судьба Земли

Землю ожидает судьба Венеры!!!

Не в бесконечном будущем, а менее чем через 645 миллионов лет.


Эволюция

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

Жизнь появилась не раньше воды.

Вулканизм обусловлен метаболизмом материи планеты, поэтому был всегда.

Если была вода и был вулканизм, значит, был кислород в атмосфере.

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


Проблема1: Темпы накопления кислорода.

Если принять темп разрушения воды 2,25 км3/год, то для заполнения атмосферы кислородом, в наблюдаемом сейчас объёме, понадобится 585 000 лет. С нуля.

Чтобы объяснить 4000 000 лет существования Земли, надо найти, куда девается кислород, чтобы сохранялась пропорция.

Или предположить, что темп выветривания водорода в космос был завышен в 4000 000 / 585 000 = 6,8 раза.
- Или предположить, что кислород связывается углеродом в углекислый газ, а затем планктоном, в карбонат кальция, который оседает мелом на дне мирового океана.
- Можно предположить, что некоторая часть водорода образуется из недр Земли, как и утверждается теорией Ларина Владимира Николаевича. Этот водород соединяется в атмосфере с кислородом и возвращается в состояние воды. Этим путём, количество воды на Земле прирастает на 2,25 км3/год взамен разрушенной. Количество воды и количество кислорода остаётся постоянным.


Проблема 2: Откуда берётся кислород?

Если предположить, что моя гипотеза образования кислорода из воды не верна, а весь водород, теряемый «выдуванием» приходит из недр и соединяется с кислородом в атмосфере, то темпы исчезновения кислорода в атмосфере должны быть такими, что за 585 000 лет, он полностью исчезнет. Раз кислород исчезает, надо искать причину его восстановления.

Фотосинтез разрушает воду, связывает водород и углекислый газ в углеводород и создаёт свободный кислород. То есть является источником кислорода. Но, для фотосинтеза нужен углекислый газ. Значит надо искать такой же масштабный источник углекислого газа. Превращение азота в углерод, даёт источник углекислого газа, но ведёт к убыли азота в атмосфере, что в итоге должно привести к истощению атмосферы Земли. Ещё проблема – объём синтезированных растениями углеводов. Они не должны разрушаться. Иначе при окислении, углеводы опять станут водой и углекислым газом. Этот углекислый газ надо куда-то утилизировать, чтобы объяснить его малую концентрацию в атмосфере. Таким источником утилизации является океанический планктон. Он связывает углекислый газ в карбонат кальция, и надолго выводит из круговорота веществ.


Истина где-то посередине.

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

Если водород, является причиной освобождения кислорода из соединений, то нефти должно быть столько, чтобы объяснить всю массу кислорода в атмосфере, то есть – порядка 1 000 000 км3.

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

Тепловой баланс планеты.

Чем больше углекислого газа, тем теплее планета. Тем интенсивнее растения разрушают воду, связывая СО2. Атмосфера обогащается кислородом, что приводит к ускорению синтеза нового углекислого газа. Повышение тепла мирового океана активизирует деятельность планктона, который связывает углекислый газ в мел и выводит из круговорота веществ. Планета остывает, освободившись от углекислого газа. Планете не даёт перегреться – планктон (Видеоцитата 2 м14 сек) !

Как долго это будет длиться?

Пока не «выгорит» весь азот из атмосферы, превратившись в мел.

Аналогично, если планете 6 миллионов лет, то азота в атмосфере Земли было в два раза больше. Земная атмосфера была в два раза плотнее, всего 6 миллионов лет назад!!!

Таблица: Количество воды и атмосферы из азота, сразу после разрушения ДПл.


По мере истощения азота атмосфера становится легче. Давление у поверхности будет ослабевать. Давление будет частично компенсироваться ростом объёма кислорода.

Наступит момент, когда источник углерода (азот) для углекислого газа закончится. Кислород нечем будет связывать. Процентное содержание кислорода в атмосфере значительно возрастёт. Что хорошо для дыхания животных. Животные будут процветать, некоторое время. Затем начнутся пожары из-за чрезмерной, пожароопасной концентрации кислорода. В атмосферу частично высвободится скопленный растениями углекислый газ. Этот газ свяжется планктоном в мел и выйдет из круговорота. Начнётся СО2 голод для растений. Из-за чего их биомасса сократится. За ней сократится биомасса животных. Это произойдёт раньше, чем через 6 миллионов лет. Сложно сказать, насколько, но ясно, что раньше. Океан будет существовать ещё 639 миллионов лет, но без жизни в нём.


Итоги

На полное разрушение океанов надо 645 миллионов лет.
На полное разрушение суши, эрозией, надо 15 миллионов лет.
На полное истощение азота в атмосфере, надо 6 миллионов лет.
Все расчёты показывают одно, жизнь на планете Земля – не вечна.
Условия для существования генетической жизни – уникальны и скоротечны.