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)))
|