Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -681,11 +681,9 @@ def view_image():
|
|
681 |
|
682 |
|
683 |
|
684 |
-
|
685 |
-
|
686 |
# Общий азот и соотношение NO3:NH4
|
687 |
TOTAL_NITROGEN = 220 # ppm
|
688 |
-
N_RATIO = (10,
|
689 |
|
690 |
# Профиль питательного раствора для томатов (ppm)
|
691 |
TOMATO_PROFILE = {
|
@@ -731,6 +729,7 @@ class NutrientCalculator:
|
|
731 |
self.results = {}
|
732 |
self.final_profile = {}
|
733 |
self.total_ppm = 0
|
|
|
734 |
|
735 |
def calculate(self, base_profile, total_n, n_ratio):
|
736 |
# Расчёт NO3 и NH4 на основе общего азота и соотношения
|
@@ -738,6 +737,12 @@ class NutrientCalculator:
|
|
738 |
no3 = total_n * (n_ratio[0] / total_parts)
|
739 |
nh4 = total_n * (n_ratio[1] / total_parts)
|
740 |
|
|
|
|
|
|
|
|
|
|
|
|
|
741 |
# Формирование полного профиля
|
742 |
self.final_profile = base_profile.copy()
|
743 |
self.final_profile['N (NO3-)'] = no3
|
@@ -847,6 +852,10 @@ class NutrientCalculator:
|
|
847 |
profile_table.append([element, round(value, 1)])
|
848 |
print(tabulate(profile_table, headers=["Элемент", "Концентрация (ppm)"]))
|
849 |
|
|
|
|
|
|
|
|
|
850 |
ec = self.calculate_ec()
|
851 |
print("\n" + "="*50)
|
852 |
print(f"РАСЧЕТ ДЛЯ {self.volume} ЛИТРОВ РАСТВОРА")
|
@@ -889,8 +898,5 @@ if __name__ == "__main__":
|
|
889 |
|
890 |
|
891 |
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
if __name__ == '__main__':
|
896 |
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|
|
|
681 |
|
682 |
|
683 |
|
|
|
|
|
684 |
# Общий азот и соотношение NO3:NH4
|
685 |
TOTAL_NITROGEN = 220 # ppm
|
686 |
+
N_RATIO = (10, 1) # Пример: 10:1 (NO3:NH4)
|
687 |
|
688 |
# Профиль питательного раствора для томатов (ppm)
|
689 |
TOMATO_PROFILE = {
|
|
|
729 |
self.results = {}
|
730 |
self.final_profile = {}
|
731 |
self.total_ppm = 0
|
732 |
+
self.initial_n_profile = {}
|
733 |
|
734 |
def calculate(self, base_profile, total_n, n_ratio):
|
735 |
# Расчёт NO3 и NH4 на основе общего азота и соотношения
|
|
|
737 |
no3 = total_n * (n_ratio[0] / total_parts)
|
738 |
nh4 = total_n * (n_ratio[1] / total_parts)
|
739 |
|
740 |
+
# Сохраняем рассчитанные значения азота
|
741 |
+
self.initial_n_profile = {
|
742 |
+
'N (NO3-)': round(no3, 1),
|
743 |
+
'N (NH4+)': round(nh4, 1)
|
744 |
+
}
|
745 |
+
|
746 |
# Формирование полного профиля
|
747 |
self.final_profile = base_profile.copy()
|
748 |
self.final_profile['N (NO3-)'] = no3
|
|
|
852 |
profile_table.append([element, round(value, 1)])
|
853 |
print(tabulate(profile_table, headers=["Элемент", "Концентрация (ppm)"]))
|
854 |
|
855 |
+
print("\nИсходный расчёт азота по TOTAL_NITROGEN и соотношению NO3:NH4")
|
856 |
+
for n_type, value in self.initial_n_profile.items():
|
857 |
+
print(f" {n_type}: {value} ppm")
|
858 |
+
|
859 |
ec = self.calculate_ec()
|
860 |
print("\n" + "="*50)
|
861 |
print(f"РАСЧЕТ ДЛЯ {self.volume} ЛИТРОВ РАСТВОРА")
|
|
|
898 |
|
899 |
|
900 |
|
|
|
|
|
|
|
901 |
if __name__ == '__main__':
|
902 |
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|