Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -765,32 +765,32 @@ class NutrientCalculator:
|
|
765 |
self._apply("Калий азотнокислый", "N (NO3-)", k_no3_part)
|
766 |
|
767 |
|
768 |
-
|
769 |
-
|
770 |
def calculate(self):
|
771 |
try:
|
772 |
-
|
773 |
-
|
774 |
|
775 |
-
|
776 |
-
|
777 |
|
778 |
# 3. Кальций и фосфор (после азота!)
|
779 |
-
|
780 |
-
|
781 |
|
782 |
-
|
783 |
-
|
784 |
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
|
790 |
-
|
791 |
except Exception as e:
|
792 |
-
|
793 |
-
|
|
|
|
|
794 |
|
795 |
def _apply(self, fert_name, main_element, required_ppm):
|
796 |
if required_ppm <= 0:
|
|
|
765 |
self._apply("Калий азотнокислый", "N (NO3-)", k_no3_part)
|
766 |
|
767 |
|
|
|
|
|
768 |
def calculate(self):
|
769 |
try:
|
770 |
+
# 1. Всё, что не связано с азотом (например, Mg)
|
771 |
+
self._apply("Сульфат магния", "Mg", self.target_profile['Mg'])
|
772 |
|
773 |
+
# 2. Балансировка азота (NH₄⁺/NO₃⁻)
|
774 |
+
self._balance_nitrogen() # <-- Ваш новый блок
|
775 |
|
776 |
# 3. Кальций и фосфор (после азота!)
|
777 |
+
self._apply("Кальциевая селитра", "Ca", self.target_profile['Ca'])
|
778 |
+
self._apply("Монофосфат калия", "P", self.target_profile['P'])
|
779 |
|
780 |
+
# 4. Калий и сера (коррекция)
|
781 |
+
self._apply_k_sulfate()
|
782 |
|
783 |
+
# 5. Последние проверки (например, дефицит калия)
|
784 |
+
k_deficit = self.target_profile['K'] - self.actual_profile['K']
|
785 |
+
if k_deficit > 0.1:
|
786 |
+
self._apply("Калий азотнокислый", "K", k_deficit)
|
787 |
|
788 |
+
return self.results
|
789 |
except Exception as e:
|
790 |
+
print(f"Ошибка: {str(e)}")
|
791 |
+
raise
|
792 |
+
|
793 |
+
|
794 |
|
795 |
def _apply(self, fert_name, main_element, required_ppm):
|
796 |
if required_ppm <= 0:
|