Spaces:
Sleeping
Sleeping
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():
|