A comprehensive web application for monitoring, analyzing, and visualizing greenhouse gas emissions from agricultural systems using chamber-based measurement techniques.
GHG Monitor is a full-stack application designed for researchers and agricultural professionals to track COβ, NβO, and HβO emissions from soil chambers. The system provides real-time data visualization, statistical analysis, and quality control assessment for greenhouse gas flux measurements.
- Real-time Overview: Summary statistics with active chambers, total records, and site status
- Recent Data Preview: Latest 10 measurements with all sensor readings
- Most Recent File Info: Automatic detection of latest data files with metadata
- Smart Data Validation: Filters out invalid chamber IDs and malformed data
- Whole Measurement Cycle: Complete time-series visualization for all chambers
- Per-Chamber Analysis: Multi-chamber comparison with color-coded traces
- Linear Regression: Backend-calculated slope, RΒ², intercept, and flux rates
- Time Window Control: Adjustable analysis windows for precise calculations
- RΒ² vs Time: Diurnal patterns of regression quality
- RΒ² vs Flux Correlation: Quality-flux relationship analysis
- Custom Range Controls: User-defined flux ranges for focused analysis
- Quality Statistics: Automated pass/fail assessment based on configurable thresholds
- Time-Series Analysis: Complete date-time range visualization
- Treatment Statistics: Mean Β± standard error across replicates
- Quality Filtering: Real-time application of RΒ² and flux thresholds
- Error Bar Visualization: Statistical uncertainty display
- Advanced Processing Pipeline: 4-step interpolation and aggregation
- Linear Interpolation: Per-chamber between measurement cycles
- Daily Aggregation: Treatment-level statistics with SE calculation
- Cumulative Analysis: Running totals with baseline correction
- Quality Inheritance: Automatic use of criteria from subdaily analysis
- Site Management: Multi-site support with individual configurations
- Chamber Specifications: Customizable dimensions and measurement frequency
- Quality Thresholds: Configurable RΒ² minimums and flux criteria
- User Authentication: Secure access with JWT tokens
- Automated Flux Calculations: COβ (kg C/ha/d) and NβO (g N/ha/d)
- Temperature/Pressure Corrections: Molar volume adjustments
- Statistical Processing: Mean, standard error, and replicate counting
- Data Quality Assurance: Comprehensive validation and filtering
- Frontend: React 18, TypeScript, TailwindCSS, Recharts
- Backend: Node.js, Express, TypeScript
- State Management: Context API + React Query
- Charts: Recharts with custom error bars and statistical overlays
- Authentication: JWT tokens with secure session management
ghg-monitor/
βββ frontend/ # React SPA application
βββ backend/ # Node.js API server
βββ data-processing/ # Python data processing scripts
βββ data/ # Data storage directory
βββ scripts/ # Original R analysis scripts
βββ docs/ # Documentation
- Node.js 18+
- Python 3.9+
- Git
- Clone the repository:
git clone [repository-url]
cd ghg-monitor- Install frontend dependencies:
cd frontend
npm install- Install backend dependencies:
cd ../backend
npm install- Install Python dependencies:
cd ../data-processing
pip install -r requirements.txt- Start the backend server:
cd backend
npm run dev- Start the frontend development server:
cd frontend
npm run dev- Access the application at
http://localhost:5173
- Password:
ghgmonitor
The application uses simple password authentication. Enter ghgmonitor when prompted to log in.
The application expects GHG flux data in CSV format with the following columns:
- site id, run id, chamber id, date, time
- CO2 (ppm), H2O (ppm), N2O (ppb)
- Status and pressure readings
Data files should be organized by site in the data/ directory.
Site configurations are managed in data/site_registry.json. Each site can have:
- Unique identifier
- Location information
- Chamber configurations
- Processing parameters
- Access controls
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.