Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -708,14 +708,14 @@ INPUT_DATA = {
|
|
708 |
"activation_cacl": 5, # Добавлено
|
709 |
"enhancement_cacl": 0.1, # Добавлено
|
710 |
"use_magnesium_sulfate": 0, # Флаг для использования "Сульфата магния"
|
711 |
-
"magnesium_nitrate_ratio": 0
|
712 |
}
|
713 |
}
|
714 |
|
715 |
from tabulate import tabulate
|
716 |
|
717 |
class NutrientCalculator:
|
718 |
-
def __init__(self, fertilizer_constants, profile_settings, liters, rounding_precision, activation_cacl, enhancement_cacl,
|
719 |
self.fertilizers = fertilizer_constants
|
720 |
self.profile = profile_settings
|
721 |
self.volume = liters
|
@@ -724,7 +724,7 @@ class NutrientCalculator:
|
|
724 |
# Новые параметры
|
725 |
self.activation_cacl = float(activation_cacl) # Активация CaCl
|
726 |
self.enhancement_cacl = float(enhancement_cacl) # Усиление CaCl
|
727 |
-
self.
|
728 |
self.magnesium_nitrate_ratio = float(magnesium_nitrate_ratio) # Коэффициент для "Магния азотнокислого"
|
729 |
|
730 |
total_parts = self.profile["NO3_RAT"] + 1
|
@@ -748,21 +748,25 @@ class NutrientCalculator:
|
|
748 |
# Добавляем фосфор
|
749 |
self._apply_fertilizer("Монофосфат калия", "P", self.target["P"])
|
750 |
|
751 |
-
# Добавляем магний
|
752 |
-
if self.
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
mg_needed = self.target["Mg"] - self.actual["Mg"]
|
754 |
if mg_needed > 0:
|
755 |
self._apply_fertilizer("Сульфат магния", "Mg", mg_needed * (1 - self.magnesium_nitrate_ratio))
|
756 |
-
|
757 |
-
# Балансируем калий и серу
|
758 |
-
self._balance_k_s()
|
759 |
-
|
760 |
-
# Добавляем оставшийся магний через "Магний азотнокислый", если коэффициент > 0
|
761 |
-
if self.magnesium_nitrate_ratio > 0:
|
762 |
mg_remaining = self.target["Mg"] - self.actual["Mg"]
|
763 |
if mg_remaining > 0:
|
764 |
self._apply_fertilizer("Магний азотнокислый", "Mg", mg_remaining)
|
765 |
|
|
|
|
|
|
|
766 |
# Распределяем кальций
|
767 |
self._distribute_calcium()
|
768 |
|
@@ -843,7 +847,6 @@ class NutrientCalculator:
|
|
843 |
'total_ppm': round(sum(self.actual.values()), self.rounding_precision)
|
844 |
}
|
845 |
|
846 |
-
|
847 |
def generate_report(self, results):
|
848 |
fert_table = []
|
849 |
for name, data in results['fertilizers'].items():
|
|
|
708 |
"activation_cacl": 5, # Добавлено
|
709 |
"enhancement_cacl": 0.1, # Добавлено
|
710 |
"use_magnesium_sulfate": 0, # Флаг для использования "Сульфата магния"
|
711 |
+
"magnesium_nitrate_ratio": 0 # Коэффициент для "Магния азотнокислого"
|
712 |
}
|
713 |
}
|
714 |
|
715 |
from tabulate import tabulate
|
716 |
|
717 |
class NutrientCalculator:
|
718 |
+
def __init__(self, fertilizer_constants, profile_settings, liters, rounding_precision, activation_cacl, enhancement_cacl, use_magnesium_nitrate, magnesium_nitrate_ratio):
|
719 |
self.fertilizers = fertilizer_constants
|
720 |
self.profile = profile_settings
|
721 |
self.volume = liters
|
|
|
724 |
# Новые параметры
|
725 |
self.activation_cacl = float(activation_cacl) # Активация CaCl
|
726 |
self.enhancement_cacl = float(enhancement_cacl) # Усиление CaCl
|
727 |
+
self.use_magnesium_nitrate = int(use_magnesium_nitrate) # Флаг для использования "Магния азотнокислого"
|
728 |
self.magnesium_nitrate_ratio = float(magnesium_nitrate_ratio) # Коэффициент для "Магния азотнокислого"
|
729 |
|
730 |
total_parts = self.profile["NO3_RAT"] + 1
|
|
|
748 |
# Добавляем фосфор
|
749 |
self._apply_fertilizer("Монофосфат калия", "P", self.target["P"])
|
750 |
|
751 |
+
# Добавляем магний
|
752 |
+
if self.use_magnesium_nitrate == 0:
|
753 |
+
# Используем только "Сульфат магния"
|
754 |
+
mg_needed = self.target["Mg"] - self.actual["Mg"]
|
755 |
+
if mg_needed > 0:
|
756 |
+
self._apply_fertilizer("Сульфат магния", "Mg", mg_needed)
|
757 |
+
else:
|
758 |
+
# Используем распределение между "Сульфатом магния" и "Магнием азотнокислым"
|
759 |
mg_needed = self.target["Mg"] - self.actual["Mg"]
|
760 |
if mg_needed > 0:
|
761 |
self._apply_fertilizer("Сульфат магния", "Mg", mg_needed * (1 - self.magnesium_nitrate_ratio))
|
762 |
+
|
|
|
|
|
|
|
|
|
|
|
763 |
mg_remaining = self.target["Mg"] - self.actual["Mg"]
|
764 |
if mg_remaining > 0:
|
765 |
self._apply_fertilizer("Магний азотнокислый", "Mg", mg_remaining)
|
766 |
|
767 |
+
# Балансируем калий и серу
|
768 |
+
self._balance_k_s()
|
769 |
+
|
770 |
# Распределяем кальций
|
771 |
self._distribute_calcium()
|
772 |
|
|
|
847 |
'total_ppm': round(sum(self.actual.values()), self.rounding_precision)
|
848 |
}
|
849 |
|
|
|
850 |
def generate_report(self, results):
|
851 |
fert_table = []
|
852 |
for name, data in results['fertilizers'].items():
|