change the kepadatan AGAIN

This commit is contained in:
kicap 2024-07-29 23:05:29 +08:00
parent 2a7fa1722b
commit 772b912c05
2 changed files with 51 additions and 27 deletions

47
app.py
View File

@ -20,6 +20,7 @@ kenderaan_kiri = 0
kenderaan_kanan = 0 kenderaan_kanan = 0
kenderaan_sekarang = 0 kenderaan_sekarang = 0
selesainya= False selesainya= False
total_kenderaan_sekarang = 0
MYSQL_HOST = os.getenv('MYSQL_HOST') MYSQL_HOST = os.getenv('MYSQL_HOST')
MYSQL_USER = os.getenv('MYSQL_USER') MYSQL_USER = os.getenv('MYSQL_USER')
@ -45,6 +46,7 @@ def hitung_kepadatan_kendaraan(jumlah_kendaraan, panjang_jalan):
return kepadatan return kepadatan
async def insert_data(nama, waktu,waktu_sekarang ,kenderaan_kiri, kenderaan_kanan,status): async def insert_data(nama, waktu,waktu_sekarang ,kenderaan_kiri, kenderaan_kanan,status):
global total_kenderaan_sekarang
# get the datetime # get the datetime
now = time.strftime("%Y-%m-%d %H:%M:%S") now = time.strftime("%Y-%m-%d %H:%M:%S")
@ -58,21 +60,28 @@ async def insert_data(nama, waktu,waktu_sekarang ,kenderaan_kiri, kenderaan_kana
# print(waktu_sekarang) # print(waktu_sekarang)
# update existing data # update existing data
# rount the waktu_sekarang # rount the waktu_sekarang
rounded_waktu_sekarang = round(float(waktu_sekarang)) # rounded_waktu_sekarang = round(float(waktu_sekarang))
if (rounded_waktu_sekarang == 0): # if (rounded_waktu_sekarang == 0):
rounded_waktu_sekarang = 1 # rounded_waktu_sekarang = 1
jumlah_kenderaan = int(kenderaan_kiri) + int(kenderaan_kanan) # jumlah_kenderaan = int(kenderaan_kiri) + int(kenderaan_kanan)
jumlah_kenderaan_per_menit = jumlah_kenderaan / rounded_waktu_sekarang * 60 # jumlah_kenderaan_per_menit = jumlah_kenderaan / rounded_waktu_sekarang * 60
kepadatan = "" # kepadatan = ""
if(jumlah_kenderaan_per_menit < 20): # if(jumlah_kenderaan_per_menit < 20):
kepadatan = "Kepadatan Sepi" # kepadatan = "Kepadatan Sepi"
elif(jumlah_kenderaan_per_menit < 40 and jumlah_kenderaan_per_menit >= 20): # elif(jumlah_kenderaan_per_menit < 40 and jumlah_kenderaan_per_menit >= 20):
kepadatan = "Kepadatan Sedang" # kepadatan = "Kepadatan Sedang"
elif(jumlah_kenderaan_per_menit >= 40): # elif(jumlah_kenderaan_per_menit >= 40):
kepadatan = "Kepadatan Tinggi" # kepadatan = "Kepadatan Tinggi"
# kepadatan= "Kepadatan Sepi" # kepadatan= "Kepadatan Sepi"
if total_kenderaan_sekarang <= 2:
kepadatan = "Kepadatan Sepi"
elif total_kenderaan_sekarang > 2 and total_kenderaan_sekarang <= 4:
kepadatan = "Kepadatan Sedang"
else:
kepadatan = "Kepadatan Tinggi"
sql = "UPDATE tb_data SET waktu = %s, waktu_sekarang = %s, kenderaan_kiri = %s, kenderaan_kanan = %s , updated_at = %s , status = %s , kepadatan = %s WHERE nama = %s" sql = "UPDATE tb_data SET waktu = %s, waktu_sekarang = %s, kenderaan_kiri = %s, kenderaan_kanan = %s , updated_at = %s , status = %s , kepadatan = %s WHERE nama = %s"
await cursor.execute(sql, (waktu, waktu_sekarang, kenderaan_kiri, kenderaan_kanan, now, status, kepadatan, nama)) await cursor.execute(sql, (waktu, waktu_sekarang, kenderaan_kiri, kenderaan_kanan, now, status, kepadatan, nama))
@ -90,7 +99,7 @@ async def generate_frames2(video, threshold,stat):
global jumlah_kenderaan global jumlah_kenderaan
global kenderaan_kiri global kenderaan_kiri
global kenderaan_kanan global kenderaan_kanan
global cap,selesainya, kenderaan_sekarang global cap,selesainya, kenderaan_sekarang , total_kenderaan_sekarang
jumlah_kenderaan = 0 jumlah_kenderaan = 0
kenderaan_kiri = 0 kenderaan_kiri = 0
@ -221,6 +230,11 @@ async def generate_frames2(video, threshold,stat):
# The section below keeps track of the centroids and assigns them to old carids or new carids # The section below keeps track of the centroids and assigns them to old carids or new carids
# print("total centroids: " + str(len(cxx)))
total_kenderaan_sekarang = len(cxx)
if len(cxx): # if there are centroids in the specified area if len(cxx): # if there are centroids in the specified area
if not carids: # if carids is empty if not carids: # if carids is empty
@ -239,6 +253,7 @@ async def generate_frames2(video, threshold,stat):
dx = np.zeros((len(cxx), len(carids))) # new arrays to calculate deltas dx = np.zeros((len(cxx), len(carids))) # new arrays to calculate deltas
dy = np.zeros((len(cyy), len(carids))) # new arrays to calculate deltas dy = np.zeros((len(cyy), len(carids))) # new arrays to calculate deltas
for i in range(len(cxx)): # loops through all centroids for i in range(len(cxx)): # loops through all centroids
@ -502,7 +517,7 @@ app.add_url_rule('/video_feed', 'video_feed', video_feed)
@app.route('/check_jumlah_kenderaan', methods=['GET']) @app.route('/check_jumlah_kenderaan', methods=['GET'])
async def check_jumlah_kenderaan(): async def check_jumlah_kenderaan():
global jumlah_kenderaan , kenderaan_kiri, kenderaan_kanan ,videonya ,selesainya , kenderaan_sekarang global jumlah_kenderaan , kenderaan_kiri, kenderaan_kanan ,videonya ,selesainya , kenderaan_sekarang,total_kenderaan_sekarang
if (videonya != None): if (videonya != None):
conn = await get_db_connection() conn = await get_db_connection()
async with conn.cursor() as cursor: async with conn.cursor() as cursor:
@ -513,13 +528,13 @@ async def check_jumlah_kenderaan():
if len(result) == 0: if len(result) == 0:
return jsonify({'jumlah_kenderaan': 0, 'kenderaan_kiri': 0, 'kenderaan_kanan': 0}) return jsonify({'jumlah_kenderaan': 0, 'kenderaan_kiri': 0, 'kenderaan_kanan': 0})
else: else:
print(result[0]) # print(result[0])
jumlah_kenderaan = result[0][4] + result[0][5] jumlah_kenderaan = result[0][4] + result[0][5]
kenderaan_kiri = result[0][4] kenderaan_kiri = result[0][4]
kenderaan_kanan = result[0][5] kenderaan_kanan = result[0][5]
waktu_sekarang = result[0][3] waktu_sekarang = result[0][3]
kepadatan = result[0][7] kepadatan = result[0][7]
return jsonify({'jumlah_kenderaan': jumlah_kenderaan, 'kenderaan_kiri': kenderaan_kiri, 'kenderaan_kanan': kenderaan_kanan, 'waktu_sekarang':waktu_sekarang , "selesainya": selesainya , "kenderaan_sekarang": kenderaan_sekarang, "kepadatan":kepadatan}) return jsonify({'jumlah_kenderaan': jumlah_kenderaan, 'kenderaan_kiri': kenderaan_kiri, 'kenderaan_kanan': kenderaan_kanan, 'waktu_sekarang':waktu_sekarang , "selesainya": selesainya , "kenderaan_sekarang": kenderaan_sekarang, "kepadatan":kepadatan , "total_kenderaan_sekarang":total_kenderaan_sekarang})
# return jsonify({'jumlah_kenderaan': jumlah_kenderaan, 'kenderaan_kiri': kenderaan_kiri, 'kenderaan_kanan': kenderaan_kanan}) # return jsonify({'jumlah_kenderaan': jumlah_kenderaan, 'kenderaan_kiri': kenderaan_kiri, 'kenderaan_kanan': kenderaan_kanan})

View File

@ -278,6 +278,7 @@
<script src="assets/color-switcher/color-switcher.min.js"></script> <script src="assets/color-switcher/color-switcher.min.js"></script>
<script> <script>
var minimal_kepadatan = document.getElementById('minimal_value').value; var minimal_kepadatan = document.getElementById('minimal_value').value;
$("#kepadatan").text("...");
$("#minimal_kepadatan").val(minimal_kepadatan); $("#minimal_kepadatan").val(minimal_kepadatan);
function olah_video() { function olah_video() {
var video = document.getElementById('video').value; var video = document.getElementById('video').value;
@ -285,7 +286,7 @@
// var threshold = document.getElementById('threshold').value; // var threshold = document.getElementById('threshold').value;
var threshold = 450; var threshold = 450;
// window.location.href = '/?video=' + video + '&threshold=' + threshold + '&minimal_kepadatan=' + minimal_kepadatan; // window.location.href = '/?video=' + video + '&threshold=' + threshold + '&minimal_kepadatan=' + minimal_kepadatan;
window.location.href = '/?video=' + video + '&threshold=' + threshold ; window.location.href = '/?video=' + video + '&threshold=' + threshold;
} }
function check_jumlah_kenderaan() { function check_jumlah_kenderaan() {
@ -294,8 +295,8 @@
type: "GET", type: "GET",
url: "/check_jumlah_kenderaan", url: "/check_jumlah_kenderaan",
success: function (data) { success: function (data) {
// console.log(data) console.log(data.total_kenderaan_sekarang)
console.log(data.kenderaan_sekarang) // console.log(data.kenderaan_sekarang)
// if (data.kenderaan_sekarang == undefined) { // if (data.kenderaan_sekarang == undefined) {
// document.getElementById('kepadatan').innerHTML = "Belum Diproses" // document.getElementById('kepadatan').innerHTML = "Belum Diproses"
// } else if (data.kenderaan_sekarang >= minimal_kepadatan) { // } else if (data.kenderaan_sekarang >= minimal_kepadatan) {
@ -306,6 +307,13 @@
document.getElementById('kiri').innerHTML = data.kenderaan_kiri document.getElementById('kiri').innerHTML = data.kenderaan_kiri
document.getElementById('kanan').innerHTML = data.kenderaan_kanan document.getElementById('kanan').innerHTML = data.kenderaan_kanan
if (data.total_kenderaan_sekarang <= 2) {
$("#kepadatan").text("Kepadatan Sepi");
} else if (data.total_kenderaan_sekarang > 2 && data.total_kenderaan_sekarang <= 4) {
$("#kepadatan").text("Kepadatan Sedang");
} else {
$("#kepadatan").text("Kepadatan Tinggi");
}
document.getElementById('total').innerHTML = data.jumlah_kenderaan document.getElementById('total').innerHTML = data.jumlah_kenderaan
if (document.getElementById('example')) { if (document.getElementById('example')) {
@ -314,15 +322,16 @@
$("#td-kiri").text(data.kenderaan_kiri); $("#td-kiri").text(data.kenderaan_kiri);
$("#td-kanan").text(data.kenderaan_kanan); $("#td-kanan").text(data.kenderaan_kanan);
$("#td-status-kepadatan").text(data.kepadatan); $("#td-status-kepadatan").text(data.kepadatan);
if(data.kepadatan == "Kepadatan Sepi"){ // if(data.kepadatan == "Kepadatan Sepi"){
$("#kepadatan").text("Sepi"); // $("#kepadatan").text("Sepi");
}else if(data.kepadatan == "Kepadatan Sedang"){ // }else if(data.kepadatan == "Kepadatan Sedang"){
$("#kepadatan").text("Sedang"); // $("#kepadatan").text("Sedang");
}else { // }else {
$("#kepadatan").text("Tinggi"); // $("#kepadatan").text("Tinggi");
} // }
// //
} }
if (data.selesainya == true) { if (data.selesainya == true) {