https://github.com/alexandertiopan1212/streamlit_app_gis_clustering_fcm_pso
A Streamlit-based web application for geospatial clustering using Fuzzy C-Means (FCM) and Particle Swarm Optimization (PSO), visualized on an interactive map with support for shapefiles in .zip format. Includes a blog module for adding and managing user-generated articles.
https://github.com/alexandertiopan1212/streamlit_app_gis_clustering_fcm_pso
fiona fuzzy-cmeans-clustering pso-algorithm python sqlite streamlit
Last synced: about 2 months ago
JSON representation
A Streamlit-based web application for geospatial clustering using Fuzzy C-Means (FCM) and Particle Swarm Optimization (PSO), visualized on an interactive map with support for shapefiles in .zip format. Includes a blog module for adding and managing user-generated articles.
- Host: GitHub
- URL: https://github.com/alexandertiopan1212/streamlit_app_gis_clustering_fcm_pso
- Owner: alexandertiopan1212
- Created: 2025-04-10T06:20:22.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-04-10T06:58:55.000Z (about 2 months ago)
- Last Synced: 2025-04-10T07:30:42.670Z (about 2 months ago)
- Topics: fiona, fuzzy-cmeans-clustering, pso-algorithm, python, sqlite, streamlit
- Language: Python
- Homepage: https://npwipkyb9prbpklphrhnwh.streamlit.app/
- Size: 25.5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# πΊοΈ Streamlit_App_GIS_Clustering_FCM_PSO
This is a **Streamlit-based web application** for performing **geospatial clustering** using **Fuzzy C-Means (FCM)** optimized with **Particle Swarm Optimization (PSO)**. In addition to spatial clustering, the app includes a basic **blog dashboard** to post, view, and manage news or articles related to your data insights.
---
## π Features
### π§ GIS Clustering Module
- Reads `.shp` shapefile and Excel datasets containing geographic and indicator data.
- Visualizes clustering results with interactive **Plotly Choropleth Mapbox**.
- Implements **Fuzzy C-Means (FCM)** clustering, enhanced with **PSO optimization**.
- Evaluation metrics: **Davies-Bouldin Score** and **Silhouette Score**.### π° Blog & News Management
- Create, view, and delete posts in a simple blog system.
- Uses **SQLite** as the backend database.
- Blog cards styled with HTML templates for a clean layout.---
## π§± Folder Structure
```
.
βββ app.py # Main Streamlit app
βββ pso_clustering.py # FCM-PSO clustering logic
βββ particle.py # PSO particle behavior
βββ db_functions.py # Blog-related SQLite functions
βββ data.db # SQLite database
βββ dataset/ # Folder for uploaded Excel files
βββ gadm36_IDN_2.shp # Shapefile for Indonesia's regions
βββ requirements.txt # Python dependencies
βββ README.md # Project documentation
```---
## π¦ Installation
### 1. Clone the repository
```bash
git clone https://github.com/your-username/Streamlit_App_GIS_Clustering_FCM_PSO.git
cd Streamlit_App_GIS_Clustering_FCM_PSO
```### 2. Create a virtual environment (optional but recommended)
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```### 3. Install dependencies
```bash
pip install -r requirements.txt
```### 4. Run the app
```bash
streamlit run app.py
```---
## π Screenshots






---
## π Requirements
- Python 3.8+
- Internet connection (for loading Mapbox tiles)
- Shapefile and structured Excel dataset---
## π¬ Contact
Built with β€οΈ by **Alexander Tiopan**
π§ Email: [email protected]
πΌ LinkedIn: [linkedin.com/in/alexander-tiopan-85215117b](https://www.linkedin.com/in/alexander-tiopan-85215117b)---
## π License
This project is licensed under the MIT License.