Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -784,9 +784,71 @@ class NutrientCalculator:
|
|
| 784 |
)
|
| 785 |
self.final_profile['Mg'] = 0
|
| 786 |
|
| 787 |
-
|
| 788 |
-
|
| 789 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 790 |
|
| 791 |
def calculate_ec(self):
|
| 792 |
"""Расчёт электропроводимости"""
|
|
@@ -854,6 +916,5 @@ if __name__ == "__main__":
|
|
| 854 |
|
| 855 |
|
| 856 |
|
| 857 |
-
|
| 858 |
if __name__ == '__main__':
|
| 859 |
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|
|
|
|
| 784 |
)
|
| 785 |
self.final_profile['Mg'] = 0
|
| 786 |
|
| 787 |
+
def _apply_calcium_nitrate(self):
|
| 788 |
+
ca_need = self.final_profile['Ca']
|
| 789 |
+
ca_content = fertilizers_db["Кальциевая селитра"]["Ca"]
|
| 790 |
+
grams = (ca_need * self.volume) / (ca_content * 1000)
|
| 791 |
+
added_n = grams * fertilizers_db["Кальциевая селитра"]["N (NO3-)"] * 1000 / self.volume
|
| 792 |
+
|
| 793 |
+
self.final_profile['N (NO3-)'] -= added_n
|
| 794 |
+
self._apply_fertilizer("Кальциевая селитра", grams, {'внесет NO3': round(added_n, 1)})
|
| 795 |
+
self.final_profile['Ca'] = 0
|
| 796 |
+
|
| 797 |
+
def _apply_mkp(self):
|
| 798 |
+
p_need = self.final_profile['P']
|
| 799 |
+
p_content = fertilizers_db["Монофосфат калия"]["P"]
|
| 800 |
+
grams = (p_need * self.volume) / (p_content * 1000)
|
| 801 |
+
added_k = grams * fertilizers_db["Монофосфат калия"]["K"] * 1000 / self.volume
|
| 802 |
+
|
| 803 |
+
self.final_profile['K'] -= added_k
|
| 804 |
+
self._apply_fertilizer("Монофосфат калия", grams, {'внесет K': round(added_k, 1)})
|
| 805 |
+
self.final_profile['P'] = 0
|
| 806 |
+
|
| 807 |
+
def _apply_potassium_fertilizers(self):
|
| 808 |
+
k_need = self.final_profile['K']
|
| 809 |
+
if k_need <= 0:
|
| 810 |
+
return
|
| 811 |
+
|
| 812 |
+
s_deficit = max(0, self.final_profile['S'])
|
| 813 |
+
if s_deficit > 0:
|
| 814 |
+
s_content = fertilizers_db["Калий сернокислый"]["S"]
|
| 815 |
+
k2so4_grams = (s_deficit * self.volume) / (s_content * 1000)
|
| 816 |
+
added_k = k2so4_grams * fertilizers_db["Калий сернокислый"]["K"] * 1000 / self.volume
|
| 817 |
+
|
| 818 |
+
if added_k > k_need:
|
| 819 |
+
k2so4_grams = (k_need * self.volume) / (fertilizers_db["Калий сернокислый"]["K"] * 1000)
|
| 820 |
+
added_k = k_need
|
| 821 |
+
added_s = k2so4_grams * fertilizers_db["Калий сернокислый"]["S"] * 1000 / self.volume
|
| 822 |
+
else:
|
| 823 |
+
added_s = s_deficit
|
| 824 |
+
|
| 825 |
+
self._apply_fertilizer("Калий сернокислый", k2so4_grams, {
|
| 826 |
+
'внесет K': round(added_k, 1),
|
| 827 |
+
'внесет S': round(added_s, 1)
|
| 828 |
+
})
|
| 829 |
+
self.final_profile['K'] -= added_k
|
| 830 |
+
self.final_profile['S'] -= added_s
|
| 831 |
+
k_need = self.final_profile['K']
|
| 832 |
+
|
| 833 |
+
if k_need > 0:
|
| 834 |
+
kno3_grams = (k_need * self.volume) / (fertilizers_db["Калий азотнокислый"]["K"] * 1000)
|
| 835 |
+
added_n = kno3_grams * fertilizers_db["Калий азотнокислый"]["N (NO3-)"] * 1000 / self.volume
|
| 836 |
+
|
| 837 |
+
self._apply_fertilizer("Калий азотнокислый", kno3_grams, {'внесет NO3': round(added_n, 1)})
|
| 838 |
+
self.final_profile['K'] = 0
|
| 839 |
+
self.final_profile['N (NO3-)'] -= added_n
|
| 840 |
+
|
| 841 |
+
def _apply_ammonium_nitrate(self):
|
| 842 |
+
nh4_need = self.final_profile['N (NH4+)']
|
| 843 |
+
if nh4_need <= 0:
|
| 844 |
+
return
|
| 845 |
+
nh4_content = fertilizers_db["Аммоний азотнокислый"]["N (NH4+)"]
|
| 846 |
+
grams = (nh4_need * self.volume) / (nh4_content * 1000)
|
| 847 |
+
added_n = grams * fertilizers_db["Аммоний азотнокислый"]["N (NO3-)"] * 1000 / self.volume
|
| 848 |
+
|
| 849 |
+
self.final_profile['N (NO3-)'] -= added_n
|
| 850 |
+
self._apply_fertilizer("Аммоний азотнокислый", grams, {'внесет NO3': round(added_n, 1)})
|
| 851 |
+
self.final_profile['N (NH4+)'] = 0
|
| 852 |
|
| 853 |
def calculate_ec(self):
|
| 854 |
"""Расчёт электропроводимости"""
|
|
|
|
| 916 |
|
| 917 |
|
| 918 |
|
|
|
|
| 919 |
if __name__ == '__main__':
|
| 920 |
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|