A Streamlit-based web application designed to visualize and predict population growth in Tamil Nadu sub-districts using a continuous-time logistic model. The app provides a user-friendly interface for analyzing population growth and future infrastructure requirements based on dynamic inputs.
The app integrates map visualization using Folium, enabling users to interact with geospatial data and mark specific locations for further analysis.
-
Population Prediction:
- Predicts future population using a continuous-time logistic growth model.
- Includes sinusoidal adjustments for seasonal variations.
-
Map Visualization:
- Displays Tamil Nadu districts and sub-districts on an interactive map.
- Allows users to add markers for selected sub-districts.
-
Dynamic Input Options:
- Select a district and sub-districts for analysis.
- Customize growth model parameters such as time period, amplitude, and sinusoidal components.
-
Infrastructure Requirements:
- Analyzes predicted population to suggest future infrastructure needs, such as:
- Hospitality
- Education
- Public Safety
- Transportation
- Water Connection
- Infrastructures
- Commercial and Retail
- Analyzes predicted population to suggest future infrastructure needs, such as:
-
User Interaction:
- Provides actionable suggestions for infrastructure needs based on population predictions.
- Interactive buttons to visualize recommendations for specific facilities.
-
Data Display:
- Show underlying data in tabular format for transparency.
-
Clone the repository:
git clone https://github.com/Aswajith7077/PopulationAnalysis.git cd PopulationAnalysis -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
streamlit run run.py
-
Data Requirements:
- Ensure the following files are present:
- GeoJSON to CSV data:
geojson-to-csv.csv - Population data:
A-1_NO_OF_VILLAGES_TOWNS_HOUSEHOLDS_POPULATION_AND_AREA_1.xlsx
- GeoJSON to CSV data:
- Ensure the following files are present:
-
Steps to Use the App:
- Select a district from the dropdown.
- Choose sub-districts for analysis.
- Adjust growth model parameters (time, amplitude, sinusoidal period) as needed.
- View predictions and suggested infrastructure needs.
-
Map Features:
- Markers for selected sub-districts.
- Use the "Submit" button to calculate predictions and display results.
-
Threshold Analysis:
- Facilities are suggested based on population thresholds for sub-districts.
-
algo.py:- Contains the
project_continuous_time_logistic_modelfunction for population prediction.
- Contains the
-
geojson-to-csv.csv:- GeoJSON data converted to CSV format containing geospatial and demographic details.
-
A-1_NO_OF_VILLAGES_TOWNS_HOUSEHOLDS_POPULATION_AND_AREA_1.xlsx:- Excel file with population data for Tamil Nadu.
-
Population Prediction:
- Uses the logistic model with optional sinusoidal adjustments.
-
Interactive Map:
- Displays sub-districts and allows marker placement.
-
Threshold Analysis:
- Maps population values to predefined facility needs.
-
Infrastructure Voting:
- Users can interact with infrastructure recommendations via dialog boxes.
- Streamlit: For creating the web interface.
- Folium: For map visualization.
- Pandas: For data manipulation.
- Shapely: For handling geospatial data.
- NumPy: For numerical calculations.
- Math: For mathematical computations.
- Add support for uploading custom datasets.
- Improve map interactivity with detailed overlays.
- Include more advanced prediction models.
- Optimize the interface for better user experience.