From 311641f6e985bb3a0665d718f70f9b487e75f497 Mon Sep 17 00:00:00 2001 From: EdyAtthoillah123 <112244332+EdyAtthoillah123@users.noreply.github.com> Date: Wed, 7 May 2025 10:49:45 +0700 Subject: [PATCH] Feat: Local Binary Pattern --- RoboSoil/Robo_Soil/views.py | 228 +----------------------------------- 1 file changed, 1 insertion(+), 227 deletions(-) diff --git a/RoboSoil/Robo_Soil/views.py b/RoboSoil/Robo_Soil/views.py index 67f6cc1..72440b1 100644 --- a/RoboSoil/Robo_Soil/views.py +++ b/RoboSoil/Robo_Soil/views.py @@ -160,242 +160,16 @@ def lbp(request): print(f"Nilai histogram normalisasi yang paling sering muncul: {mode_lbp_value}") print(f"Frekuensi ternormalisasi dari nilai yang paling sering muncul: {mode_lbp_frequency}") - - - # Sistem Pakar Forward Chaining hasil_operasi_Natrium = mode_lbp_frequency * 0.1928 + 0.021 round_natrium = round(hasil_operasi_Natrium, 2) print(f"hasil Nilai N (Natrium): {round_natrium}") - N = hasil_operasi_Natrium - if N < 1.0: - Kategori_N = 1 - elif N >= 1.0 and N < 2.0: - Kategori_N = 2 - elif N >= 2.001 and N < 3.0: - Kategori_N = 3 - elif N >= 3.001 and N < 5.0: - Kategori_N = 4 - elif N >= 5.001: - Kategori_N = 5 - else: - Kategori_N = 6 hasil_operasi_fosfor = (mode_lbp_frequency * -10.725) + 16.533 round_fosfor = round(hasil_operasi_fosfor, 2) print(f"hasil Nilai P (Fosfor): {round_fosfor}") - P = hasil_operasi_fosfor - if P < 10.0: - Kategori_P = 1 - elif P > 10.001 and P <= 25.99: - Kategori_P = 2 - elif P >= 26.0 and P <= 45.99: - Kategori_P = 3 - elif P >= 46.0 and P <= 60: - Kategori_P = 4 - elif P > 60.001: - Kategori_P = 5 - else: - Kategori_P = 6 hasil_operasi_Kalium = mode_lbp_frequency * -0.1864 + 0.2471 round_kalium = round(hasil_operasi_Kalium, 2) - print(f"hasil Nilai K (Kalium): {round_kalium}") - K = hasil_operasi_Kalium - if K < 0.1: - Kategori_K = 1 - elif K >= 0.1 and K <= 0.3999999999: - Kategori_K = 2 - elif K >= 0.4 and K <= 0.599999999: - Kategori_K = 3 - elif K >= 0.6 and K <= 1.0: - Kategori_K = 4 - elif K > 1.0001: - Kategori_K = 5 - else: - Kategori_K = 6 - - # Hasil perhitungan NPK - N = Kategori_N - P = Kategori_P - K = Kategori_K - - # Nilai N, P, dan K yang ingin Anda cocokkan - target_N_sawah = 3 - target_P_sawah = 4 - target_K_sawah = 3 - - # lahan sawah irigasi - if N >= target_N_sawah and P >= target_P_sawah and K < target_K_sawah: - SaranTanaman1 = "Kategori S1 Sangat Sesuai Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih" - print(SaranTanaman1) - elif N == 2 and P == 3 and K == 2: - SaranTanaman1 = "Kategori S2 Cukup Sesuai (Sedang) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk" - print(SaranTanaman1) - elif N == 1 and P >= 2 or P == 1 and K == 1: - SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman1) - elif N >= 1 and P <= 2 and K == 1: - SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman1) - elif N == 1 and P == 1 and K >= 1 or K == 1: - SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman1) - elif N == 1 and P >= 2 or P == 1 and K >= 1 or K == 1: - SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman1) - elif N >= 1 or N == 1 and P == 1 and K >= 1 or K == 1: - SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman1) - else: - SaranTanaman1 = "Tidak Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Karena" - print(SaranTanaman1) - - if N < target_N_sawah: - SaranTanaman1 = "Perlu Perbaikan N Untuk ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih" - print(SaranTanaman1) - if N >= target_N_sawah: - SaranTanaman1 = "Sangat Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih" - print(SaranTanaman1) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - if P < target_P_sawah: - SaranTanaman1 = "Perlu Perbaikan P Untuk ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih" - print(SaranTanaman1) - if P >= target_P_sawah: - SaranTanaman1 = "Sangat Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih" - print(SaranTanaman1) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - if K < target_K_sawah: - SaranTanaman1 = "Perlu Perbaikan K Untuk ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih" - print(SaranTanaman1) - if K >= target_K_sawah: - SaranTanaman1 = "Sangat Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih" - print(SaranTanaman1) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - # Nilai N, P, dan K yang ingin Anda cocokkan - target_N_jagung = 3 - target_P_jagung = 4 - target_K_jagung = 4 - - # lahan sawah irigasi - if N >= target_N_jagung and P >= target_P_jagung and K < target_K_jagung: - SaranTanaman2 = "Kategori S1 Sangat Sesuai Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah" - print(SaranTanaman2) - elif N == 2 and P == 3 and K == 3: - SaranTanaman2 = "Kategori S2 Cukup Sesuai (Sedang) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk" - print(SaranTanaman2) - elif N == 1 and P >= 2 or P == 1 and K == 2: - SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman2) - elif N >= 1 or N == 1 and P == 1 and K == 1: - SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman2) - elif N == 1 and P == 1 and K >= 1 or K == 1: - SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman2) - elif N == 1 and P >= 2 or P == 1 and K >= 1 or K == 1: - SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman2) - elif N >= 1 or N == 1 and P == 1 and K >= 1 or K == 1: - SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman2) - else: - SaranTanaman2 = "Tidak Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Karena" - print(SaranTanaman2) - - if N < target_N_jagung: - SaranTanaman2 = "Perlu Perbaikan N Untuk ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah" - print(SaranTanaman2) - if N >= target_N_jagung: - SaranTanaman2 = "Sangat Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah" - print(SaranTanaman2) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - if P < target_P_jagung: - SaranTanaman2 = "Perlu Perbaikan P Untuk ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah" - print(SaranTanaman2) - if P >= target_P_jagung: - SaranTanaman2 = "Sangat Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah" - print(SaranTanaman2) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - if K < target_K_jagung: - SaranTanaman2 = "Perlu Perbaikan K Untuk ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah" - print(SaranTanaman2) - if K >= target_K_jagung: - SaranTanaman2 = "Sangat Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah" - print(SaranTanaman2) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - target_N_Ubi = 3 - target_P_Ubi = 3 - target_K_Ubi = 3 - - # lahan sawah irigasi - if N >= target_N_Ubi and P >= target_P_Ubi and K < target_K_Ubi: - SaranTanaman3 = ( - "Kategori S1 Sangat Sesuai Untuk ditanami Ubi Kayu, Ubi Jalar" - ) - print(SaranTanaman3) - elif N == 2 and P == 2 and K == 2: - SaranTanaman3 = "Kategori S2 Cukup Sesuai (Sedang) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk" - print(SaranTanaman3) - elif N == 1 and P >= 1 or P == 1 and K == 1: - SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman3) - elif N >= 1 or N == 1 and P == 1 and K == 1: - SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman3) - elif N == 1 and P == 1 and K >= 1 or K == 1: - SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman3) - elif N == 1 and P >= 1 or P == 1 and K >= 1 or K == 1: - SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman3) - elif N >= 1 or N == 1 and P == 1 and K >= 1 or K == 1: - SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak" - print(SaranTanaman3) - else: - SaranTanaman3 = "Tidak Cocok Untuk ditanami Ubi Kayu, Ubi Jalar Karena" - print(SaranTanaman3) - - if N < target_N_Ubi: - SaranTanaman3 = "Perlu Perbaikan N Untuk ditanami Ubi Kayu, Ubi Jalar" - print(SaranTanaman3) - if N >= target_N_Ubi: - SaranTanaman3 = "Sangat Cocok Untuk ditanami Ubi Kayu, Ubi Jalar" - print(SaranTanaman3) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - if P < target_P_Ubi: - SaranTanaman3 = "Perlu Perbaikan P Untuk ditanami Ubi Kayu, Ubi Jalar" - print(SaranTanaman3) - if P >= target_P_Ubi: - SaranTanaman3 = "Sangat Cocok Untuk ditanami Ubi Kayu, Ubi Jalar" - print(SaranTanaman3) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - if K < target_K_Ubi: - SaranTanaman3 = "Perlu Perbaikan K Untuk ditanami Ubi Kayu, Ubi Jalar" - print(SaranTanaman3) - if K >= target_K_Ubi: - SaranTanaman3 = "Sangat Cocok Untuk ditanami Ubi Kayu, Ubi Jalar" - print(SaranTanaman3) - else: - print("Hasil tidak cocok dengan data yang diberikan.") - - print(SaranTanaman1, ", dan ", SaranTanaman2, ", dan ", SaranTanaman3) - lbp_histogram = calculate_normalized_lbp_histogram(img_gray) - print("Program LBP selesai") + lbp(None)