GoGo-Bugiganga to jump into X-Dating.
Professional-grade dendrochronology toolkit for scientific cross-dating of tree-ring measurement series
Quick Start β’ Features β’ GUI Guide β’ CLI Reference β’ Examples
Date-X Bugiganga is a comprehensive dendrochronology toolkit that combines cutting-edge statistical methods with user-friendly interfaces to provide tree-ring dating, it features:
- π¬ Scientific Rigor: Multi-dimensional validation using T-Value, Overlap, and GleichlΓ€ufigkeit
- π Modern Methods: Cubic Smoothing Spline detrending
- π¨ Dual Interface: Choose between intuitive GUI or powerful CLI
- π Rich Visualizations: Comprehensive 2x2 plots with narrative interpretations
- π Global Database: Integrated NOAA reference database access
- β‘ Batch Processing: Handle hundreds of samples efficiently
# Clone the repository
git clone https://github.com/yourusername/date-x-bugiganga.git
cd date-x-bugiganga
# Install dependencies
pip install pandas numpy matplotlib scipy tqdm
# Launch the GUI
python Date-X.py- Setup Database: Click
Setuptab βDownload NOAA DatabaseβBuild Masters - Load Sample:
Datetab β Browse for your.rwlfile - Select Master: Choose
master_alpine_instrument_wood.csv - Run Analysis: Click
Date Sampleand view results!
- Modern Detrending: Cubic Smoothing Spline removes biological age trends with superior flexibility
- Multi-Dimensional Validation: Prevents false positives through comprehensive statistical analysis
- Two-Piece Analysis: Specialized mode for matching and merging separate measurement series
- Interactive GUI: Point-and-click interface for single sample analysis
- Scriptable CLI: Batch processing and automation capabilities
- Detective Mode: Unknown origin samples tested against entire database
- Custom Masters: Build chronologies from your own reference collections
- Comprehensive Plots: 2x2 visual summaries with statistical overlays
- Narrative Reports: Full interpretation with match strength classification
- Export Options: Save results as images, CSV, or formatted text reports
| Component | Requirement |
|---|---|
| Python | 3.7+ (3.9+ recommended) |
| OS | Windows 10+, macOS 10.14+, Linux (Ubuntu 18.04+) |
| RAM | 4GB minimum, 8GB recommended |
| CPU | Multicore for // Processing |
| Storage | 100MB free space (for NOAA database) |
| Display | 1920x1080 recommended for GUI |
- Input:
.rwl(Tucson format),.csv(custom format) - Output:
.png,.pdf,.csv,.txt
ββββββββββββββββββββββββββββββ
β π₯ Download NOAA Database β
βββββββββββββββ¬βββββββββββββββ
β
βββββββββββββββΌβββββββββββββββββ
β ποΈ Build Master Chronologies β
βββββββββββββββ¬βββββββββββββββββ
β
ββββββΌβββββ
β Sample β
β Origin β
β Known? β
ββββββ¬βββββ
β
βββββββββββΌββββββββββ
β Yes β No β
βΌ βΌ βΌ
βββββββββ βββββββββββββββββββββ
β Date β β π΅οΈ Detective Mode β
βAgainstβ β Test All Sites β
βMaster β βββββββββββ¬ββββββββββ
βββββ¬ββββ β
βββββββββ¬ββββββββ
β
βββββββββΌββββββββ
β π Analyze β
β Results β
βββββββββ¬ββββββββ
β
βββββββββΌββββββββ
β π Generate β
β Report β
βββββββββββββββββ
-
ποΈ Build Reference Database (One-time setup)
- Download standard
.rwlfiles from NOAA server - Create local cache and index (
noaa_europe_index.csv)
- Download standard
-
ποΈ Create Master Chronologies
- Build regional masters (e.g., 'Alpine Instrument Wood')
- Average multiple series to amplify climate signals
-
π― Analyze Your Sample
- Known origin: Test against specific master chronology
- Unknown origin: Use Detective mode for geographic identification
-
π Interpret Results
- Review comprehensive visual plots
- Check statistical classification (Very Strong, Significant, etc.)
- Generate shareable reports
python Date-X.pyπΈ [Screenshot of main GUI interface would go here]
Purpose: Date samples against known reference chronologies
| Field | Description | Recommendation |
|---|---|---|
| Analysis Type | Single Sample or Two-Piece Mean | Use Two-Piece for instrument analysis |
| Sample File | Your .rwl measurement file |
Ensure proper Tucson format |
| Master File | Reference chronology | Use relevant regional master |
| Reverse | Sample measured centerβedge | Check for radial measurements |
| Min Overlap | Required overlap years | 60+ for reliable results |
| Stiffness | Detrending sensitivity | Standard (67%) for most cases |
Purpose: Identify unknown sample origins
- Predefined Categories:
alpine,baltic - Custom Folders: Use your own reference collections
- Top N Results: Display best matches (recommended: 5-10)
- High Overlap: Use 80+ years for detective work
Purpose: Build custom chronologies from local collections
- Select folder containing
.rwlfiles - Choose output filename
- Software automatically processes and averages series
Purpose: Database management
- Step 1: Download NOAA database (run once)
- Step 2: Build predefined masters
- Monitor progress with built-in progress bars
Purpose: Scientific methodology and citation information
python gogo.py [command] -h # Help for any commandpython gogo.py indexDownloads and indexes the complete NOAA Europe database
# Build all predefined masters
python gogo.py build
# Build specific target
python gogo.py build --target alpine
python gogo.py build --target balticpython gogo.py date "sample.rwl" "master_alpine.csv" [options]
# Options:
--min_overlap 60 # Minimum overlap years
--reverse # Reverse measurement direction
--stiffness 0.67 # Detrending stiffness (0.5-0.8)# Search predefined category
python gogo.py detective "sample.rwl" alpine --top_n 5
# Search local folder
python gogo.py detective "sample.rwl" "/path/to/references/"python gogo.py create "/path/to/rwl_folder/" "custom_master.csv"# Two-piece analysis for violin belly (bass and treble sides)
python Date-X.py
# Select "Two-Piece Mean", load both measurement files
# Choose alpine master, check "Reverse" if needed# CLI approach for unknown sample
python gogo.py detective "mystery_sample.rwl" alpine --top_n 10 --min_overlap 80
# Expected output: Ranked list of best matches with statistics# Create master from local collection
python gogo.py create "./my_oak_collection/" "regional_oak_master.csv"# Process multiple files (requires simple script)
for file in *.rwl; do
python gogo.py date "$file" "master_alpine.csv" --min_overlap 60
doneCreate standalone .exe files for easy distribution without Python dependencies.
pip install pyinstallerpyinstaller --name "Date-X" --onefile --windowed --icon="icon.ico" Date-X.py--onefile: Single executable file--windowed: No console window (GUI only)--icon: Custom application icon--name: Output executable name
- Executable located in
dist/folder - Fully portable - no installation required
- ~50-100MB file size (includes Python runtime)
Issue: ModuleNotFoundError: No module named 'pandas'
# Solution: Install dependencies
pip install pandas numpy matplotlib scipy tqdmIssue: "Cannot parse .rwl file"
# Check file format:
# - Must be standard Tucson format
# - Headers should contain site codes
# - Measurements in 0.01mm unitsIssue: "Memory error during large detective search"
# Solutions:
# 1. Increase minimum overlap (reduces comparisons)
# 2. Use smaller reference categories
# 3. Process in smaller batchesIssue: Tkinter-related errors
# Linux users may need:
sudo apt-get install python3-tk
# macOS users with Homebrew:
brew install python-tk- Database download: ~10-15 minutes (one-time)
- Master building: ~2-5 minutes per category
- Single analysis: ~1-5 seconds
- Detective mode: ~30 seconds to 5 minutes (depends on database size)
- π Check the Methods & References tab in GUI
- π Report bugs via GitHub Issues
- π‘ Feature requests welcome
- π§ Contact: your.email@domain.com
Detrending: Cubic Smoothing Spline with 67% cutoff frequency (Cook & Peters, 1981)
Cross-Dating Validation:
- T-Value: Student's t-test for correlation significance
- Overlap (n): Number of overlapping years
- GleichlΓ€ufigkeit (GLK): Sign-test for year-to-year changes
| Classification | T-Value | Overlap | GLK | Interpretation |
|---|---|---|---|---|
| Very Strong | >6.0 | >80 | >65% | Highly reliable match |
| Strong | >4.0 | >60 | >60% | Reliable match |
| Significant | >3.0 | >40 | >55% | Likely correct match |
| Weak | >2.0 | >30 | >50% | Possible match, verify |
| No Match | <2.0 | - | - | No significant correlation |
- Cook, E.R. & Peters, K. (1981) The smoothing spline: a new approach to standardizing forest interior tree-ring width
- Baillie, M.G.L. & Pilcher, J.R. (1973) A simple crossdating program for tree-ring research
- Eckstein, D. & Bauch, J. (1969) Beitrag zur Rationalisierung eines dendrochronologischen Verfahrens
We welcome contributions to improve Date-X Bugiganga! Here's how you can help:
- Use GitHub Issues with detailed descriptions
- Include sample files if possible
- Specify OS and Python version
- Describe use case and expected behavior
- Consider scientific validity and user needs
- Check existing issues first
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Follow PEP 8 style guidelines
- Add tests for new functionality
- Submit pull request with clear description
- Improve README clarity
- Add examples and use cases
- Translate to other languages
- Create video tutorials
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- β Commercial use allowed
- β Modification and distribution permitted
- β Patent use granted
- β Must disclose source code
- β Must include license and copyright notice
- β Derivative works must use same license
- NOAA Paleoclimatology Database for providing open access to tree-ring data
- International Tree-Ring Data Bank (ITRDB) for standardized data formats
- Scientific Community for decades of dendrochronological research
Made with π³ for the community
β Star this repository if you find it useful!
π Home β’ π Documentation β’ π Issues