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
|
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 |
"""Генерация текстового отчета"""
|