Skip to content

TellusOne/bloomy-frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bloomy Logo

🌸 Detect. Protect. Bloom.

Interactive Vegetation & Bloom Visualization Platform

NASA Space Apps Challenge 2025 License Built with ArcGIS

Making complex vegetation data accessible to everyone - from scientists to children

πŸš€ Live Demo | πŸ”— Bloomy ETL


🌍 Overview

Bloomy is an interactive 3D globe visualization platform developed for the NASA Space Apps Challenge 2025. It transforms complex satellite vegetation data into beautiful, easy-to-understand visualizations that anyone can explore.

✨ Key Features

  • πŸ—ΊοΈ Interactive 3D Globe - Explore Earth with smooth navigation and beautiful satellite imagery
  • πŸ“Š Time-Lapse Visualization - Watch vegetation changes over time with our intuitive time slider
  • 🌱 NDVI/EVI Analysis - View vegetation health through scientifically accurate color maps
  • 🎯 Smart Markers - Dataset locations marked with flower icons that adapt to zoom level
  • πŸ“± Mobile Responsive - Full functionality on desktop, tablet, and mobile devices
  • πŸ” Polygon Analysis - Draw custom areas to analyze vegetation statistics
  • ⚑ Performance Optimized - Preloading and caching for smooth transitions

🎯 Mission

Bridge the gap between complex Earth observation data and public understanding.

Scientists use satellite data daily to monitor vegetation, crop health, and climate change. But this data is often inaccessible to the public, educators, and decision-makers. Bloomy changes that by:

  • πŸ§‘β€πŸ”¬ For Scientists: Quick visualization of processed datasets with temporal analysis
  • πŸ‘¨β€πŸ« For Educators: Interactive tool to teach remote sensing and environmental science
  • πŸ§’ For Students: Engaging way to explore Earth science and satellite technology
  • 🌾 For Farmers: Visual insights into crop health and seasonal patterns
  • 🌍 For Everyone: Understanding our changing planet through beautiful data

πŸ› οΈ Technology Stack

Core Technologies

Data Processing

  • Bloomy ETL - Python pipeline for Sentinel-2 and Landsat processing
  • NDVI/EVI Indices - Normalized vegetation health metrics
  • GeoTIFF Format - Industry-standard geospatial rasters

Features

  • πŸ“ Custom SVG markers with dynamic visibility
  • 🎞️ Frame preloading for smooth animations
  • πŸ’Ύ Client-side caching with Map API
  • 🎨 Scientific color ramps for vegetation indices
  • ⚑ GPU-accelerated rendering

πŸš€ Quick Start

Prerequisites

any webserver(nginx)

Installation

  1. Clone the repository
git clone https://github.com/TellusOne/bloomy-frontend
  1. Install dependencies?
no, only copy or paste all files on nginx index.html folder or another tiny webserver software
  1. Add your datasets
# Place processed GeoTIFF files in:
public/datasets/01/
  β”œβ”€β”€ index.json        # Dataset metadata
  β”œβ”€β”€ 2024-01-07.tif   # Daily NDVI/EVI rasters
  β”œβ”€β”€ 2024-01-12.tif
  └── ...
  1. Open in browser
http://localhost:0000(the port of your web server)

πŸ“ Project Structure

bloomy-frontend/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ datasets/           # GeoTIFF datasets
β”‚   β”‚   └── 01/
β”‚   β”‚       β”œβ”€β”€ index.json  # Dataset config
β”‚   β”‚       └── *.tif       # Daily rasters
β”‚   β”œβ”€β”€ logo.svg
β”‚   └── favicon.ico
β”œβ”€β”€ js/
β”‚   └── components/
β”‚       └── globe/
β”‚           β”œβ”€β”€ globe.js       # Main 3D scene
β”‚           β”œβ”€β”€ dataset.js     # Dataset loading & rendering
β”‚           β”œβ”€β”€ timelapse.js   # Time slider control
β”‚           β”œβ”€β”€ graphics.js    # Markers & symbols
β”‚           β”œβ”€β”€ sketch.js      # Polygon drawing
β”‚           └── location.js    # Geolocation
β”œβ”€β”€ styles/
β”‚   └── main.css
β”œβ”€β”€ index.html
└── README.md

πŸ“Š Dataset Format

Bloomy expects datasets in the following format:

index.json

{
  "format": "GeoTIFF",
  "crs": "EPSG:4326",
  "transform": [
    0.00027, 0.0, -51.998,
    0.0, -0.00027, -29.449,
    0, 0, 1
  ],
  "dimensions": {
    "height": 41,
    "width": 19
  },
  "center": {
    "lon": -51.995817,
    "lat": -29.455162
  },
  "bounds": {
    "west": -51.998382,
    "south": -29.460697,
    "east": -51.993252,
    "north": -29.449627
  },
  "bands": [
    { "name": "NDVI", "description": "Normalized Difference Vegetation Index" },
    { "name": "EVI", "description": "Enhanced Vegetation Index" }
  ],
  "nodata": -9999,
  "dates": [
    "2024-01-07",
    "2024-01-12",
    "2024-02-01"
  ]
}

GeoTIFF Files

  • Format: Cloud-Optimized GeoTIFF (COG)
  • Bands: 2 (NDVI, EVI)
  • Data Type: Float32
  • NoData Value: -9999
  • CRS: EPSG:4326 (WGS84)

🎨 Features in Detail

🌍 Interactive 3D Globe

  • Smooth camera transitions
  • High-quality satellite basemap
  • Elevation-aware terrain
  • Touch and mouse navigation

πŸ“ˆ Time-Lapse Animation

  • Scrub through dates with slider
  • Auto-play with loop option
  • Frame preloading for smooth playback
  • Date-specific data loading

🌱 Vegetation Indices

NDVI Color Scale:

  • πŸ”΄ Red (-0.2 to 0): Water/Bare soil
  • 🟑 Yellow (0 to 0.2): Sparse vegetation
  • 🟒 Light Green (0.2 to 0.4): Moderate vegetation
  • 🟒 Green (0.4 to 0.6): Healthy vegetation
  • 🌲 Dark Green (0.6 to 1): Dense vegetation

🎯 Smart Markers

  • Flower-shaped SVG icons
  • Yellow petals with white center
  • Scale-dependent visibility
  • Elevated with callout lines

πŸ“ Polygon Analysis

  • Draw custom areas of interest
  • Calculate average NDVI/EVI
  • Pixel count and statistics
  • Export results

πŸŽ“ Educational Use Cases

🏫 Classroom Activities

  1. Seasonal Changes - Compare vegetation across seasons
  2. Crop Monitoring - Track agricultural areas over time
  3. Deforestation - Identify areas of vegetation loss
  4. Urban Growth - Observe city expansion impact on green spaces

πŸ“š Learning Objectives

  • Understanding remote sensing
  • Interpreting vegetation indices
  • Analyzing temporal data
  • Geographic information systems (GIS)
  • Environmental monitoring

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • NASA - For the Space Apps Challenge
  • ESA - Sentinel-2 satellite data
  • USGS - Landsat satellite data
  • Esri - ArcGIS Maps SDK for JavaScript
  • GeoTIFF.js - Client-side geospatial processing

πŸ“¬ Contact

Bloomy Team - NASA Space Apps Challenge 2025


🌟 Support the Project

If you find Bloomy useful, please:

  • ⭐ Star this repository
  • πŸ› Report bugs and issues
  • πŸ’‘ Suggest new features
  • πŸ“£ Share with others
  • 🀝 Contribute code

Made with πŸ’š for our planet

Visualizing Earth's vegetation, one pixel at a time

⬆ Back to Top

About

A sleek and lightweight tool for exploring map datasets

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors