DmitrMakeev commited on
Commit
c655e9f
·
verified ·
1 Parent(s): 8172b25

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -17
app.py CHANGED
@@ -702,7 +702,7 @@ BASE_PROFILE = {
702
  'N (NH4+)': 0
703
  }
704
 
705
- # Полная база всех удобрений (7 удобрений)
706
  ALL_FERTILIZERS = {
707
  "Кальциевая селитра": {
708
  "N (NO3-)": 0.118, "Ca": 0.169
@@ -713,9 +713,6 @@ ALL_FERTILIZERS = {
713
  "Калий сернокислый": {
714
  "K": 0.448, "S": 0.184
715
  },
716
- "Сульфат калия": {
717
- "K": 0.448, "S": 0.184
718
- },
719
  "Аммоний азотнокислый": {
720
  "N (NO3-)": 0.175, "N (NH4+)": 0.175
721
  },
@@ -733,25 +730,19 @@ class NutrientCalculator:
733
  self.results = {}
734
  self.final_profile = BASE_PROFILE.copy()
735
  self.total_ppm = sum(BASE_PROFILE.values()) + TOTAL_NITROGEN
736
- self.initial_n_profile = {}
737
  self.fertilizers_db = ALL_FERTILIZERS
738
 
739
  def calculate(self, total_n, no3_ratio, nh4_ratio):
740
- # 1. Сначала рассчитываем баланс азота
741
  total_parts = no3_ratio + nh4_ratio
742
  no3 = total_n * (no3_ratio / total_parts)
743
  nh4 = total_n * (nh4_ratio / total_parts)
744
 
745
- self.initial_n_profile = {
746
- 'N (NO3-)': round(no3, 1),
747
- 'N (NH4+)': round(nh4, 1)
748
- }
749
-
750
  # Записываем азот в профиль
751
  self.final_profile['N (NO3-)'] = no3
752
  self.final_profile['N (NH4+)'] = nh4
753
 
754
- # 2. Вносим удобрения в правильном порядке
755
  self._apply_magnesium_sulfate()
756
  self._apply_calcium_nitrate()
757
  self._apply_potassium_phosphate()
@@ -759,7 +750,7 @@ class NutrientCalculator:
759
  self._apply_potassium_sulfate()
760
  self._apply_potassium_nitrate()
761
 
762
- # Корректируем отрицательные значения
763
  self._adjust_negative_values()
764
 
765
  return self.results
@@ -876,10 +867,6 @@ class NutrientCalculator:
876
  table = [[el, round(val, 1)] for el, val in self.final_profile.items()]
877
  print(tabulate(table, headers=["Элемент", "Остаток ppm"]))
878
 
879
- print("\nИсходный расчёт азота:")
880
- for form, value in self.initial_n_profile.items():
881
- print(f" {form}: {value} ppm")
882
-
883
  print("\n" + "="*60)
884
  print(f"РАСЧЕТ ДЛЯ {self.volume} ЛИТРОВ РАСТВОРА")
885
  print("="*60)
 
702
  'N (NH4+)': 0
703
  }
704
 
705
+ # Полная база всех удобрений (6 удобрений, сульфат калия и калий сернокислый - одно и то же)
706
  ALL_FERTILIZERS = {
707
  "Кальциевая селитра": {
708
  "N (NO3-)": 0.118, "Ca": 0.169
 
713
  "Калий сернокислый": {
714
  "K": 0.448, "S": 0.184
715
  },
 
 
 
716
  "Аммоний азотнокислый": {
717
  "N (NO3-)": 0.175, "N (NH4+)": 0.175
718
  },
 
730
  self.results = {}
731
  self.final_profile = BASE_PROFILE.copy()
732
  self.total_ppm = sum(BASE_PROFILE.values()) + TOTAL_NITROGEN
 
733
  self.fertilizers_db = ALL_FERTILIZERS
734
 
735
  def calculate(self, total_n, no3_ratio, nh4_ratio):
736
+ # 1. Рассчитываем баланс азота
737
  total_parts = no3_ratio + nh4_ratio
738
  no3 = total_n * (no3_ratio / total_parts)
739
  nh4 = total_n * (nh4_ratio / total_parts)
740
 
 
 
 
 
 
741
  # Записываем азот в профиль
742
  self.final_profile['N (NO3-)'] = no3
743
  self.final_profile['N (NH4+)'] = nh4
744
 
745
+ # 2. Вносим удобрения в строгом порядке
746
  self._apply_magnesium_sulfate()
747
  self._apply_calcium_nitrate()
748
  self._apply_potassium_phosphate()
 
750
  self._apply_potassium_sulfate()
751
  self._apply_potassium_nitrate()
752
 
753
+ # 3. Корректируем отрицательные значения
754
  self._adjust_negative_values()
755
 
756
  return self.results
 
867
  table = [[el, round(val, 1)] for el, val in self.final_profile.items()]
868
  print(tabulate(table, headers=["Элемент", "Остаток ppm"]))
869
 
 
 
 
 
870
  print("\n" + "="*60)
871
  print(f"РАСЧЕТ ДЛЯ {self.volume} ЛИТРОВ РАСТВОРА")
872
  print("="*60)