Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -807,16 +807,22 @@ class NutrientCalculator:
|
|
807 |
for elem in self.fertilizers[fert_name]:
|
808 |
self.results[fert_name][f'внесет {elem}'] = 0.0
|
809 |
|
|
|
|
|
810 |
for element, content in self.fertilizers[fert_name].items():
|
811 |
required_ppm = self.target_profile[element] - self.actual_profile[element]
|
812 |
if required_ppm > 0.1:
|
813 |
-
|
814 |
-
self.results[fert_name]['граммы'] += grams
|
815 |
-
self.results[fert_name]['миллиграммы'] += int(grams * 1000)
|
816 |
|
817 |
-
|
818 |
-
|
819 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
|
821 |
def _remove_fertilizer(self, fert_name):
|
822 |
"""Удаление удобрения"""
|
|
|
807 |
for elem in self.fertilizers[fert_name]:
|
808 |
self.results[fert_name][f'внесет {elem}'] = 0.0
|
809 |
|
810 |
+
# Находим максимальный недостаток среди всех элементов удобрения
|
811 |
+
max_required_ppm = 0
|
812 |
for element, content in self.fertilizers[fert_name].items():
|
813 |
required_ppm = self.target_profile[element] - self.actual_profile[element]
|
814 |
if required_ppm > 0.1:
|
815 |
+
max_required_ppm = max(max_required_ppm, required_ppm / content)
|
|
|
|
|
816 |
|
817 |
+
# Добавляем удобрение в количестве, необходимом для покрытия максимального недостатка
|
818 |
+
grams = max_required_ppm * 1000
|
819 |
+
self.results[fert_name]['граммы'] += grams
|
820 |
+
self.results[fert_name]['миллиграммы'] += int(grams * 1000)
|
821 |
+
|
822 |
+
for element, content in self.fertilizers[fert_name].items():
|
823 |
+
added_ppm = (grams * content * 1000) / self.volume
|
824 |
+
self.results[fert_name][f'внесет {element}'] += added_ppm
|
825 |
+
self.actual_profile[element] += added_ppm
|
826 |
|
827 |
def _remove_fertilizer(self, fert_name):
|
828 |
"""Удаление удобрения"""
|