# predict_location.py import subprocess import joblib import pandas as pd # Function to scan Wi-Fi networks (same as in wifi_scan.py) def get_wifi_signal(): scan_output = subprocess.check_output(['sudo', 'iwlist', 'wlan0', 'scan']).decode('utf-8') return scan_output # Function to parse signal strength from scan output def parse_signal_strength(scan_output): signal_strengths = [] for line in scan_output.split('\n'): if "Signal level=" in line: strength = line.split("Signal level=")[1].split(" ")[0] signal_strengths.append(int(strength)) return signal_strengths # Load the pre-trained model model = joblib.load('wifi_model.pkl') # Predict the location based on real-time signal strengths def predict_location(): scan_output = get_wifi_signal() signal_strengths = parse_signal_strength(scan_output) # Prepare the input as a DataFrame with the correct feature name for strength in signal_strengths: data = pd.DataFrame([[strength]], columns=['SignalStrength']) # Use the feature name 'SignalStrength' predicted_location = model.predict(data) print(f'Predicted Location: {predicted_location[0]}') # Run the prediction predict_location()