Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -803,44 +803,43 @@ class NutrientCalculator:
|
|
| 803 |
self._apply_fertilizer("Калий азотнокислый", "K", remaining_k)
|
| 804 |
|
| 805 |
def _distribute_calcium(self):
|
| 806 |
-
"""Распределение кальция между селитрой и хлоридом"""
|
| 807 |
ca_target = self.target["Ca"] # Общий кальций
|
|
|
|
| 808 |
|
| 809 |
# Проверка соотношения NO3/NH4
|
| 810 |
-
no3_ratio = self.
|
| 811 |
-
|
| 812 |
-
print("Соотношение NO3/NH4 >= 8. Кальций хлористый не добавляется.")
|
| 813 |
remaining_ca = ca_target
|
| 814 |
else:
|
| 815 |
-
#
|
| 816 |
-
cacl_ratio = self.
|
| 817 |
cacl_target = ca_target * cacl_ratio
|
| 818 |
|
| 819 |
-
#
|
| 820 |
if cacl_target > 0:
|
| 821 |
self._apply_fertilizer("Кальций хлорид", "Ca", cacl_target)
|
| 822 |
|
| 823 |
-
#
|
| 824 |
remaining_ca = ca_target - cacl_target
|
| 825 |
|
| 826 |
# Добавляем оставшийся кальций из кальциевой селитры
|
| 827 |
if remaining_ca > 0:
|
| 828 |
self._apply_fertilizer("Кальциевая селитра", "Ca", remaining_ca)
|
| 829 |
|
| 830 |
-
|
| 831 |
-
|
| 832 |
-
|
| 833 |
-
|
| 834 |
-
|
| 835 |
-
|
| 836 |
-
|
| 837 |
-
|
| 838 |
-
|
| 839 |
-
|
| 840 |
-
|
| 841 |
-
|
| 842 |
-
|
| 843 |
-
|
| 844 |
|
| 845 |
def generate_report(self, results):
|
| 846 |
"""Генерация текстового отчета"""
|
|
|
|
| 803 |
self._apply_fertilizer("Калий азотнокислый", "K", remaining_k)
|
| 804 |
|
| 805 |
def _distribute_calcium(self):
|
|
|
|
| 806 |
ca_target = self.target["Ca"] # Общий кальций
|
| 807 |
+
no3_ratio = self.profile["NO3_RAT"]
|
| 808 |
|
| 809 |
# Проверка соотношения NO3/NH4
|
| 810 |
+
if no3_ratio >= self.activation_cacl: # Заменили "5" на self.activation_cacl
|
| 811 |
+
print(f"Соотношение NO3/NH4 >= {self.activation_cacl}. Кальций хлористый не добавляется.")
|
|
|
|
| 812 |
remaining_ca = ca_target
|
| 813 |
else:
|
| 814 |
+
# Определяем, сколько кальция взять из хлористого кальция
|
| 815 |
+
cacl_ratio = self.enhancement_cacl # Заменили "0.1" на self.enhancement_cacl
|
| 816 |
cacl_target = ca_target * cacl_ratio
|
| 817 |
|
| 818 |
+
# Вносим кальций из хлористого кальция
|
| 819 |
if cacl_target > 0:
|
| 820 |
self._apply_fertilizer("Кальций хлорид", "Ca", cacl_target)
|
| 821 |
|
| 822 |
+
# Оставшийся кальций берем из кальциевой селитры
|
| 823 |
remaining_ca = ca_target - cacl_target
|
| 824 |
|
| 825 |
# Добавляем оставшийся кальций из кальциевой селитры
|
| 826 |
if remaining_ca > 0:
|
| 827 |
self._apply_fertilizer("Кальциевая селитра", "Ca", remaining_ca)
|
| 828 |
|
| 829 |
+
def _verify_results(self):
|
| 830 |
+
"""Проверка результатов расчета"""
|
| 831 |
+
deficits = {}
|
| 832 |
+
for el in self.target:
|
| 833 |
+
diff = self.target[el] - self.actual[el]
|
| 834 |
+
if abs(diff) > 0.1:
|
| 835 |
+
deficits[el] = round(diff, self.rounding_precision)
|
| 836 |
+
|
| 837 |
+
return {
|
| 838 |
+
'fertilizers': {k: round(v['граммы'], self.rounding_precision) for k, v in self.results.items()},
|
| 839 |
+
'actual_profile': {k: round(v, self.rounding_precision) for k, v in self.actual.items()},
|
| 840 |
+
'deficits': deficits,
|
| 841 |
+
'total_ppm': round(sum(self.actual.values()), self.rounding_precision)
|
| 842 |
+
}
|
| 843 |
|
| 844 |
def generate_report(self, results):
|
| 845 |
"""Генерация текстового отчета"""
|