A Vue.js application designed to visualize geospatial data using MapLibre, with integrated data processing tools for urban analytics and sustainability metrics.
- Interactive Map Visualization: Built with MapLibre for smooth geospatial data rendering
- Layer Management: Toggle between different data layers and visualizations
- Data Processing Pipeline: Convert shapefiles, CSV, and other formats into PMTiles
- Urban Analytics: Specialized tools for analyzing city data and sustainability metrics
- Responsive Design: Optimized for both desktop and mobile viewing
- Node.js (v20 or later)
- Python (3.11 or later)
- uv (Python package manager)
- npm
-
Clone the repository:
git clone https://github.com/EPFL-ENAC/bluecity-viz.git cd bluecity-viz -
Install all dependencies:
make install
-
Start the development server:
make dev
The application will be available at
http://localhost:5173
make help- Show all available commandsmake dev- Start development servermake build- Build for productionmake install- Install all dependenciesmake clean- Clean temporary filesmake notebook- Start Jupyter notebook for data processing
bluecity-viz/
├── frontend/ # Vue.js application
│ ├── src/ # Source code
│ │ ├── components/ # Vue components
│ │ ├── views/ # Application views
│ │ ├── stores/ # Pinia state management
│ │ └── utils/ # Utility functions
│ ├── public/ # Static assets
│ │ └── geodata/ # Geospatial data files
│ └── schema/ # JSON schemas
├── processing/ # Python data processing tools
│ ├── Correlation/ # Correlation analysis
│ ├── SP0*/ # Statistical processing modules
│ └── pyproject.toml # Python dependencies
└── Makefile # Build automation
frontend/: Vue.js application with MapLibre integrationprocessing/: Python tools for data analysis and processingfrontend/public/geodata/: Processed geospatial data in PMTiles format
For detailed dataset management instructions, see ADD_DATASET.md.
The frontend is built with:
- Vue 3 with Composition API
- TypeScript for type safety
- Vuetify for UI components
- MapLibre GL for map rendering
- PMTiles for efficient geospatial data loading
The processing module uses:
- Python 3.11+ with modern tooling
- uv for fast dependency management
- GeoPandas for geospatial data manipulation
- Jupyter for interactive analysis
- Automated deployment via GitHub Actions
- S3 integration for geodata hosting
- Static site generation for GitHub Pages
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature - Make your changes and commit:
git commit -m "feat: add your feature" - Push to your fork:
git push origin feat/your-feature - Create a Pull Request
Please follow the conventional commits format.
This project is licensed under the GNU General Public License v3.0. See LICENSE for details.