DmitrMakeev commited on
Commit
4d59d9b
·
verified ·
1 Parent(s): 4708784

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -22
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 = self.profile["NO3_RAT"]
811
- if no3_ratio >= 8: # Если соотношение NO3/NH4 >= 8, кальций хлористый не добавляется
812
- print("Соотношение NO3/NH4 >= 8. Кальций хлористый не добавляется.")
813
  remaining_ca = ca_target
814
  else:
815
- # 1. Определяем, сколько кальция взять из хлористого кальция
816
- cacl_ratio = self.activation_cacl / 100 # Пример: активация в процентах
817
  cacl_target = ca_target * cacl_ratio
818
 
819
- # 2. Вносим кальций из хлористого кальция
820
  if cacl_target > 0:
821
  self._apply_fertilizer("Кальций хлорид", "Ca", cacl_target)
822
 
823
- # 3. Оставшийся кальций берем из кальциевой селитры
824
  remaining_ca = ca_target - cacl_target
825
 
826
  # Добавляем оставшийся кальций из кальциевой селитры
827
  if remaining_ca > 0:
828
  self._apply_fertilizer("Кальциевая селитра", "Ca", remaining_ca)
829
 
830
- def _verify_results(self):
831
- """Проверка результатов расчета"""
832
- deficits = {}
833
- for el in self.target:
834
- diff = self.target[el] - self.actual[el]
835
- if abs(diff) > 0.1:
836
- deficits[el] = round(diff, self.rounding_precision)
837
-
838
- return {
839
- 'fertilizers': {k: round(v['граммы'], self.rounding_precision) for k, v in self.results.items()},
840
- 'actual_profile': {k: round(v, self.rounding_precision) for k, v in self.actual.items()},
841
- 'deficits': deficits,
842
- 'total_ppm': round(sum(self.actual.values()), self.rounding_precision)
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
  """Генерация текстового отчета"""