DmitrMakeev commited on
Commit
313dd15
·
verified ·
1 Parent(s): dd1c844

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -12
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.3 # Коэффициент для "Магния азотнокислого"
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_sulfate, magnesium_nitrate_ratio):
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.use_magnesium_sulfate = int(use_magnesium_sulfate) # Флаг для использования "Сульфата магния"
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.use_magnesium_sulfate == 1:
 
 
 
 
 
 
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():