Spaces:
Sleeping
Sleeping
Update nutri_call.html
Browse files- nutri_call.html +42 -25
nutri_call.html
CHANGED
@@ -1094,51 +1094,68 @@ function updateNitrogenFields(data) {
|
|
1094 |
|
1095 |
|
1096 |
|
1097 |
-
|
|
|
|
|
|
|
1098 |
function updateNPK(data) {
|
1099 |
-
console.log("=== РАСЧЕТ СООТНОШЕНИЯ NPK ===");
|
1100 |
|
1101 |
// Извлекаем значения из actual_profile
|
1102 |
const nValue = (data.actual_profile["N (NH4+)"] || 0) + (data.actual_profile["N (NO3-)"] || 0);
|
1103 |
const pValue = data.actual_profile["P"] || 0;
|
1104 |
const kValue = data.actual_profile["K"] || 0;
|
1105 |
|
1106 |
-
//
|
1107 |
-
|
1108 |
-
|
1109 |
-
const kOxide = kValue * 1.2; // K → K2O
|
1110 |
|
1111 |
-
|
|
|
|
|
|
|
1112 |
|
1113 |
-
|
1114 |
-
const sumNPK = nOxide + pOxide + kOxide;
|
1115 |
|
1116 |
-
|
1117 |
-
|
1118 |
-
const pPercent = (pOxide / sumNPK) * 100;
|
1119 |
-
const kPercent = (kOxide / sumNPK) * 100;
|
1120 |
|
1121 |
-
|
|
|
|
|
|
|
1122 |
|
1123 |
-
|
1124 |
-
const nNormalized = nPercent / 2;
|
1125 |
-
const pNormalized = pPercent / 2;
|
1126 |
-
const kNormalized = kPercent / 2;
|
1127 |
|
1128 |
-
|
|
|
|
|
|
|
1129 |
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
|
|
|
|
|
|
1136 |
}
|
1137 |
|
1138 |
|
1139 |
|
1140 |
|
1141 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1142 |
function calculateOxidePercentages(data) {
|
1143 |
console.log("=== РАСЧЕТ ПРОЦЕНТОВ ОКСИДОВ ===");
|
1144 |
|
|
|
1094 |
|
1095 |
|
1096 |
|
1097 |
+
|
1098 |
+
|
1099 |
+
|
1100 |
+
|
1101 |
function updateNPK(data) {
|
1102 |
+
console.log("=== РАСЧЕТ СООТНОШЕНИЯ NPK В ОКСИДНОЙ ФОРМЕ ===");
|
1103 |
|
1104 |
// Извлекаем значения из actual_profile
|
1105 |
const nValue = (data.actual_profile["N (NH4+)"] || 0) + (data.actual_profile["N (NO3-)"] || 0);
|
1106 |
const pValue = data.actual_profile["P"] || 0;
|
1107 |
const kValue = data.actual_profile["K"] || 0;
|
1108 |
|
1109 |
+
// Проверяем, что значения существуют
|
1110 |
+
if (nValue > 0 && pValue > 0 && kValue > 0) {
|
1111 |
+
console.log(`Значения NPK: N=${nValue}, P=${pValue}, K=${kValue}`);
|
|
|
1112 |
|
1113 |
+
// Переводим в оксидную форму
|
1114 |
+
const nOxide = nValue; // N остается без изменений
|
1115 |
+
const pOxide = pValue * 2.29; // P → P2O5
|
1116 |
+
const kOxide = kValue * 1.2; // K → K2O
|
1117 |
|
1118 |
+
console.log(`Оксидная форма: N=${nOxide.toFixed(2)}, P2O5=${pOxide.toFixed(2)}, K2O=${kOxide.toFixed(2)}`);
|
|
|
1119 |
|
1120 |
+
// Сумма активных питательных веществ
|
1121 |
+
const sumNPK = nOxide + pOxide + kOxide;
|
|
|
|
|
1122 |
|
1123 |
+
// Процентное содержание относительно суммы NPK
|
1124 |
+
const nPercent = (nOxide / sumNPK) * 100;
|
1125 |
+
const pPercent = (pOxide / sumNPK) * 100;
|
1126 |
+
const kPercent = (kOxide / sumNPK) * 100;
|
1127 |
|
1128 |
+
console.log(`Проценты: N=${nPercent.toFixed(2)}%, P2O5=${pPercent.toFixed(2)}%, K2O=${kPercent.toFixed(2)}%`);
|
|
|
|
|
|
|
1129 |
|
1130 |
+
// Применяем коэффициент нормировки (÷2)
|
1131 |
+
const nNormalized = nPercent / 2;
|
1132 |
+
const pNormalized = pPercent / 2;
|
1133 |
+
const kNormalized = kPercent / 2;
|
1134 |
|
1135 |
+
console.log(`Нормированные значения: N=${nNormalized.toFixed(1)}, P2O5=${pNormalized.toFixed(1)}, K2O=${kNormalized.toFixed(1)}`);
|
1136 |
+
|
1137 |
+
// Обновляем поля на странице
|
1138 |
+
document.getElementById("npk-n-value").textContent = nNormalized.toFixed(1);
|
1139 |
+
document.getElementById("npk-p-value").textContent = pNormalized.toFixed(1);
|
1140 |
+
document.getElementById("npk-k-value").textContent = kNormalized.toFixed(1);
|
1141 |
+
} else {
|
1142 |
+
console.error("Ошибка: Значения NPK не найдены в ответе сервера или равны нулю.");
|
1143 |
+
}
|
1144 |
}
|
1145 |
|
1146 |
|
1147 |
|
1148 |
|
1149 |
|
1150 |
+
|
1151 |
+
|
1152 |
+
|
1153 |
+
|
1154 |
+
|
1155 |
+
|
1156 |
+
|
1157 |
+
|
1158 |
+
|
1159 |
function calculateOxidePercentages(data) {
|
1160 |
console.log("=== РАСЧЕТ ПРОЦЕНТОВ ОКСИДОВ ===");
|
1161 |
|