https://github.com/aurascoper/agri_yield_pipeline
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.3%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: aurascoper
- Language: Python
- Default Branch: main
- Size: 47.9 KB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Agri Yield Pipeline
End-to-end system for ingesting, processing, visualizing, and modeling agricultural yield, NDVI, and weather data in Missouri.
Table of Contents
- Prerequisites
- Clone & Setup
- Environment Configuration
- Docker Services
- Real-Time Data Ingestion
- Stream Processing
- Dashboard Access
- API Endpoints
- Troubleshooting Tips
Prerequisites
- Git (for cloning the repo)
- Docker & Docker Compose (v3.8+)
- Python 3.9+ (for running local scripts)
- Google Earth Engine CLI (
earthengine)
Clone & Setup
bash
git clone https://github.com/aurascoper/agri_yield_pipeline.git
cd agri_yield_pipeline
Environment Configuration
Create a .env file in the project root with the following variables:
```dotenv
NOAAAPITOKEN=
(Optional) Kafka settings:
KAFKABOOTSTRAPSERVERS=localhost:9092 KAFKAGROUPID=processor-group
(Optional) Redis URL:
REDIS_URL=redis://localhost:6379/0
Authenticate with Google Earth Engine:
bash
earthengine authenticate
```
Docker Services
Start core services:
bash
docker-compose up -d
Services launched:
- Zookeeper & Kafka
- Redis
- PostgreSQL
- InfluxDB (initialized with your .env settings)
- Stream Processor
- Dash Dashboard
Check status and logs:
bash
docker-compose ps
docker-compose logs -f
Real-Time Data Ingestion
Fetch NOAA weather and USDA yield data into InfluxDB and Kafka:
bash
python src/data_ingestion/live_ingestor.py \
--start-date 2021-01-01 \
--end-date 2021-12-31 \
--station-id GHCND:USW00003952 \
--year 2021
Stream Processing
Consumes raw Kafka topics (weather, yield), enriches data, and writes to:
- Kafka output topic (enriched-yield)
- InfluxDB (for dashboard queries)
- Redis (for alerts cache)
Run via Docker Compose (already started above):
bash
docker-compose up -d stream-processor
Or locally:
bash
python src/processing/stream_processor.py
Dashboard Access
The live Dash dashboard is available at: http://localhost:8050
To run locally:
bash
python src/visualization/live_dashboard.py
API Endpoints
Backend API with FastAPI (NDVI & weather):
bash
uvicorn api.main:app --reload
- GET /ndvi/
- GET /weather/
Troubleshooting Tips
- Ensure
.envis correctly configured and contains all required variables. - Verify no port conflicts on 5432, 6379, 8086, 8050, and 9092.
- Use
docker-compose psanddocker-compose logs <service>for diagnostics. - Access InfluxDB UI at http://localhost:8086 (use credentials from
.env). - Test Redis with
redis-cli -u redis://localhost:6379/0. - Confirm Google Earth Engine authentication:
earthengine authenticate.
Owner
- Login: aurascoper
- Kind: user
- Repositories: 1
- Profile: https://github.com/aurascoper
GitHub Events
Total
- Push event: 7
- Create event: 2
Last Year
- Push event: 7
- Create event: 2