Cell Tower Data Analyzer
Welcome to the Cell Tower Data Analyzer! This project is designed to help you analyze and interpret data from cell towers. Whether you’re looking to determine the average signal strength, find the nearest tower to a specific location, or gain insights into your cellular network, this tool provides an easy and efficient way to handle your data.
Features #
- Data Parsing: Quickly and accurately parse cell tower data.
- Signal Strength Analysis: Calculate and display the average signal strength of your towers.
- Nearest Tower Finder: Easily find the nearest cell tower to any specified location.
- Results Export: Export your analysis results for further use and sharing.
How to Use #
- Prepare Your Data: Ensure your cell tower data is formatted correctly.
- Run the Analyzer: Execute the provided script to analyze your data.
- View Results: Check the console for immediate results and view the exported file for a summary of the analysis.
Project Objectives #
The purpose of this Ruby programming project is to analyze cell tower data, specifically focusing on calculating the average signal strength and identifying the tower with the strongest signal. The goals are to provide accurate and efficient analysis and to ensure that the data can be easily processed and understood.
Script Overview #
This project consists of three main Ruby scripts:
- average_signal_analyzer.rb: A script to calculate and display the average signal strength of cell towers.
- strongest_signal_analyzer.rb: A script to identify and display the tower with the strongest signal.
- main.rb: A script that integrates the functionalities of the other two scripts and provides a user interface for running the analyses.
Script Functions #
average_signal_analyzer.rb #
- read_data: Reads data from a CSV file and stores it in an instance variable.
- average_signal_strength: Calculates the average signal strength of the cell towers.
- display_average_signal_strength: Displays the average signal strength in a human-readable format.
strongest_signal_analyzer.rb #
- read_data: Reads data from a CSV file and stores it in an instance variable.
- strongest_signal_tower: Identifies the tower with the strongest signal.
- display_strongest_signal_tower: Displays the details of the tower with the strongest signal in a human-readable format.
main.rb #
- Integration: Requires and uses the functionalities of average_signal_analyzer.rb and strongest_signal_analyzer.rb.
- User Interface: Provides a command-line interface for users to run the analyses and display results.
Usage Instructions #
main.rb #
-
Ensure that average_signal_analyzer.rb and strongest_signal_analyzer.rb are in the same directory as main.rb.
-
Replace ‘cell_towers.csv’ with the path to your CSV file containing the cell tower data.
-
Run main.rb from the command line: bash ruby script.rb
-
The script will display the average signal strength and the details of the tower with the strongest signal.
Command-Line Arguments and Options #
Currently, the scripts do not accept command-line arguments. All configurations are set within the scripts.
Dependencies #
- Ruby (version 2.5.0 or higher)
- CSV library (standard library in Ruby)
- FAKER
Error Handling #
Errors encountered while reading the CSV file will be logged and printed to the console. If the CSV file is not found or cannot be read, an error message will be displayed. If the data is empty or invalid, appropriate error messages will be shown.
Logging #
Errors and important information are printed to the console. Additional logging can be implemented as needed using Ruby’s Logger library.
Testing Procedures #
Unit Testing: Each method should be tested individually with sample data. Integration Testing: The main.rb script should be tested to ensure it correctly integrates the functionalities of the other two scripts. Sample Data: Create a sample CSV file with test data to validate the functionality.
Documentation Standards #
Use clear and descriptive method names. Comment on each method with a brief description of its purpose and functionality. Use consistent code formatting, adhering to Ruby style guidelines (e.g., two-space indentation).
Version Control #
Use Git for version control. Repository location: GitHub Repository Branching: Use main branch for stable releases and develop branch for ongoing development. Create feature branches for new functionalities and bug fixes.
Contributions #
We welcome contributions! Feel free to submit issues or pull requests to help improve the functionality and performance of this tool.
License #
This project is open source and available under the MIT License.
Contact #
Thank you for using the Cell Tower Data Analyzer! We hope it helps you gain valuable insights from your cell tower data. If you have any questions or feedback, please don’t hesitate to reach out.
Happy analyzing