Planet Ruler

Documentation:

  • Installation
    • System Requirements
    • Python Dependencies
    • Installation Methods
      • From PyPI (Recommended)
      • From Source
      • Using Conda (Development)
    • Virtual Environment Setup
    • Verification
    • Troubleshooting
      • Common Installation Issues
    • Performance Optimization
    • GPU Support
    • Next Steps
  • Tutorials
    • Tutorial 0: Pre-Configured Earth Radius Measurement
      • Prerequisites
      • Step 1: Setup and Imports
      • Step 2: Load Configuration and Image
      • Step 3: Detect the Horizon (Default: Manual Annotation)
      • Step 4: Fit Planetary Parameters
      • Step 5: Calculate Uncertainty
      • Step 6: Validate Results
    • Tutorial 1: Auto-Configured Earth Radius Measurement
      • Prerequisites
      • Step 1: Automatic Camera Detection
      • Step 2: Direct Analysis (No Config Files)
      • Step 3: CLI Usage (Even Simpler)
    • Tutorial 1.5: Measure Earth from an Airplane Window
      • Prerequisites
      • The Science: Why This Works
      • Part 1: Taking Your Photo
        • Best Timing
        • Photography Tips
      • Part 2: Finding Your Altitude
        • Method 1: FlightRadar24 (Recommended)
        • Method 2: In-Flight Display
        • Method 3: Ask the Flight Crew
        • Method 4: Estimate from Flight Type
      • Part 3: Analysis with Planet Ruler
        • Zero-Config Workflow
        • Horizon Detection
        • Parameter Fitting
        • Results and Uncertainty
        • Expected Output
      • Part 4: Understanding Your Results
        • What to Expect
        • Sources of Error
        • Improving Your Accuracy
      • Part 5: Educational Extensions
        • Class Projects
        • Discussion Questions
        • Advanced Challenges
      • Part 6: Troubleshooting
        • Common Issues
        • Command Line Alternative
      • Next Steps
      • Summary
    • Tutorial 2: Advanced Manual Annotation Techniques
      • Interactive GUI Features
      • Working with Difficult Images
      • Saving and Loading Annotation Sessions
    • Tutorial 2.5: Gradient-Field Automated Detection
      • When to Use Gradient-Field
      • Prerequisites
      • Step 1: Basic Gradient-Field Measurement
      • Step 2: Understanding Gradient-Field Parameters
      • Step 3: Multi-Resolution Optimization
      • Step 4: Choosing Minimizers for Gradient-Field
      • Step 5: Visualizing Gradient-Field Results
      • Step 6: Batch Processing with Gradient-Field
    • Tutorial 3: Multi-planetary Analysis (Manual Annotation)
      • Comparing Earth, Pluto, and Saturn with Precise Manual Selection
    • Tutorial 4: Detection Method Comparison
    • Quick Decision Tree
    • Method Overview
      • Comparison Table
    • Method 1: Manual Annotation
      • How It Works
      • When to Use
      • Example Usage
      • Visual Examples
    • Method 2: Gradient-Field Detection
      • How It Works
      • When to Use
      • Example Usage
      • Visual Examples
      • Performance Notes
    • Method 3: ML Segmentation
      • How It Works
      • When to Use
      • Example Usage
      • Installation
    • Combining Methods
      • Best Practices Workflow
    • Troubleshooting Decision Guide
      • If Your Results Look Wrong
    • Summary
    • Next Steps
    • Installation and Setup
      • Basic Installation
      • Verification Test
      • Optional: Advanced Detection Methods
      • Testing Optional Dependencies
      • Troubleshooting
    • Next Steps
  • Examples
    • Example 0: Zero-Configuration Workflow (Auto-Config from EXIF)
      • Dataset Details
      • Complete Auto-Config Analysis
      • Using the Live Dashboard
    • Example 1: Earth from International Space Station
      • Dataset Details
      • Complete Analysis
    • Example 1.5: Gradient-Field Automated Detection
      • Dataset Details
      • Complete Gradient-Field Analysis
    • Example 2: Pluto from New Horizons Spacecraft
      • Dataset Details
      • Analysis Code
    • Example 3: Saturn from Cassini Spacecraft
      • Dataset Details
      • Analysis Code
    • Example 4: Comparative Analysis Across Planets
      • Multi-Planet Comparison
    • Example 5: Advanced Uncertainty Analysis
      • Advanced Uncertainty Quantification
    • Example 6: Advanced Optimization Workflows
      • Warm Start Optimization
      • Multi-Resolution Optimization
      • Advanced Loss Functions
      • Command Line Interface Usage
      • Expected Optimization Improvements
    • Running the Examples
    • Next Steps
  • API Reference
    • Core Modules
      • Geometry Module
        • horizon_distance()
        • limb_camera_angle()
        • focal_length()
        • detector_size()
        • field_of_view()
        • intrinsic_transform()
        • extrinsic_transform()
        • limb_arc_sample()
        • get_rotation_matrix()
        • limb_arc()
      • Image Processing Module
        • load_image()
        • directional_gradient_blur()
        • bilinear_interpolate()
        • bidirectional_gradient_blur()
        • gradient_break()
        • MaskSegmenter
        • SegmentationBackend
        • SAMBackend
        • CustomBackend
        • smooth_limb()
        • fill_nans()
        • gradient_field()
      • Observation Module
        • PlanetObservation
        • LimbObservation
        • package_results()
      • Annotation Module
        • ToolTip
        • create_tooltip()
        • TkLimbAnnotator
        • TkMaskSelector
      • Camera Module
        • extract_exif()
        • get_camera_model()
        • get_focal_length_mm()
        • get_focal_length_35mm_equiv()
        • get_image_dimensions()
        • calculate_sensor_dimensions()
        • get_sensor_statistics_by_type()
        • infer_camera_type()
        • extract_camera_parameters()
        • get_gps_altitude()
        • get_initial_radius()
        • create_config_from_image()
      • Fitting and Optimization
        • unpack_parameters()
        • pack_parameters()
        • CostFunction
        • calculate_parameter_uncertainty()
        • format_parameter_result()
        • unpack_diff_evol_posteriors()
      • Uncertainty Module
        • calculate_parameter_uncertainty()
      • Plotting and Visualization
        • plot_image()
        • plot_limb()
        • plot_3d_solution()
        • plot_topography()
        • plot_gradient_field_at_limb()
        • compare_blur_methods()
        • compare_gradient_fields()
        • plot_diff_evol_posteriors()
        • plot_full_limb()
        • plot_residuals()
        • plot_gradient_field_quiver()
        • plot_segmentation_masks()
        • plot_sam_masks()
      • Validation Module
        • validate_limb_config()
      • Command-Line Interface
        • load_config()
        • main()
        • measure_command()
        • demo_command()
        • list_command()
      • Dashboard Module
        • OutputCapture
        • is_jupyter()
        • FitDashboard
      • Demo and Configuration
        • make_dropdown()
        • load_demo_parameters()
        • display_text()
    • Function Categories
      • Mathematical Functions
      • Image Processing Functions
      • Manual Annotation Functions
      • Camera Parameter Functions
      • Coordinate Transform Functions
      • Optimization Functions
      • Validation Functions
      • Command-Line Functions
      • Visualization Functions
    • Classes
      • CostFunction
        • CostFunction
      • PlanetObservation
        • PlanetObservation
      • LimbObservation
        • LimbObservation
      • MaskSegmenter
        • MaskSegmenter
      • TkLimbAnnotator
        • TkLimbAnnotator
    • Constants and Configuration
      • Camera Database
      • Planet Radius Database
      • Default Parameters
      • File Formats
    • Error Handling
  • Modules
    • planet_ruler
    • Core Modules
      • Geometry Module
        • horizon_distance()
        • limb_camera_angle()
        • focal_length()
        • detector_size()
        • field_of_view()
        • intrinsic_transform()
        • extrinsic_transform()
        • limb_arc_sample()
        • get_rotation_matrix()
        • limb_arc()
      • Image Processing Module
        • load_image()
        • directional_gradient_blur()
        • bilinear_interpolate()
        • bidirectional_gradient_blur()
        • gradient_break()
        • MaskSegmenter
        • SegmentationBackend
        • SAMBackend
        • CustomBackend
        • smooth_limb()
        • fill_nans()
        • gradient_field()
      • Observation Module
        • PlanetObservation
        • LimbObservation
        • package_results()
      • Annotation Module
        • ToolTip
        • create_tooltip()
        • TkLimbAnnotator
        • TkMaskSelector
      • Camera Module
        • extract_exif()
        • get_camera_model()
        • get_focal_length_mm()
        • get_focal_length_35mm_equiv()
        • get_image_dimensions()
        • calculate_sensor_dimensions()
        • get_sensor_statistics_by_type()
        • infer_camera_type()
        • extract_camera_parameters()
        • get_gps_altitude()
        • get_initial_radius()
        • create_config_from_image()
      • Fitting Module
        • unpack_parameters()
        • pack_parameters()
        • CostFunction
        • calculate_parameter_uncertainty()
        • format_parameter_result()
        • unpack_diff_evol_posteriors()
      • Uncertainty Module
        • calculate_parameter_uncertainty()
      • Plotting Module
        • plot_image()
        • plot_limb()
        • plot_3d_solution()
        • plot_topography()
        • plot_gradient_field_at_limb()
        • compare_blur_methods()
        • compare_gradient_fields()
        • plot_diff_evol_posteriors()
        • plot_full_limb()
        • plot_residuals()
        • plot_gradient_field_quiver()
        • plot_segmentation_masks()
        • plot_sam_masks()
      • Validation Module
        • validate_limb_config()
      • Command-Line Interface
        • load_config()
        • main()
        • measure_command()
        • demo_command()
        • list_command()
      • Demo Module
        • make_dropdown()
        • load_demo_parameters()
        • display_text()

Development:

  • Testing
    • Test Categories
      • Unit Tests
      • Integration Tests
      • Property-Based Tests
      • Performance Benchmarks
    • Running Tests
      • Basic Test Execution
      • Detailed Test Configuration
      • Test Environment Setup
    • Test Coverage Analysis
      • Current Coverage
      • Coverage Reports
    • Integration Test Details
      • Real Mission Data Tests
      • Configuration Validation Tests
    • Performance Benchmarks
      • Benchmark Categories
      • Running Benchmarks
    • Custom Test Fixtures
      • Planetary Configuration Fixtures
      • Mock Objects and Patches
    • Continuous Integration Testing
      • GitHub Actions Workflow
      • Test Workflow Configuration
    • Writing New Tests
      • Test Organization
      • Test Function Naming
      • Property-Based Test Examples
      • Adding Benchmarks
    • Best Practices
      • Test Design Principles
      • Mock Strategy
      • Error Testing
    • Running Tests Locally
      • Development Workflow
      • Test Debugging
    • Test Quality Metrics
    • Contributing to Tests
  • Performance Benchmarks
    • Benchmark Overview
    • Running Benchmarks
      • Basic Benchmark Execution
      • Detailed Benchmark Options
    • Performance Results
      • Core Geometry Functions
      • Image Processing Functions
      • Optimization and Fitting
    • Scaling Analysis
      • Image Size Performance
      • Parameter Count Scaling
    • Memory Usage Analysis
      • Memory Profiling
    • Performance Optimization Tips
      • Image Processing Optimization
      • Parameter Fitting Optimization
      • Memory Optimization
    • Benchmarking Custom Code
      • Adding New Benchmarks
      • Benchmark Fixtures
      • Comparative Benchmarking
    • Performance Regression Testing
      • Baseline Management
      • CI/CD Integration
    • Profiling Deep Dives
      • CPU Profiling
      • Line Profiling
      • Memory Profiling
    • Performance Best Practices
      • Development Guidelines
      • Optimization Priorities
    • Hardware Considerations
      • CPU Performance
      • GPU Acceleration
      • Storage Performance
    • Benchmark Interpretation
      • Understanding Results
      • Statistical Significance
      • Performance Targets
    • Contributing Performance Improvements
  • Contributing
    • Getting Started
      • Development Setup
      • Development Dependencies
    • Code Standards
      • Code Style
      • Type Checking
      • Docstring Style
    • Testing Guidelines
      • Test Categories
      • Test Writing
      • Running Tests
      • Performance Considerations
    • Pull Request Process
      • Before Submitting
      • Pull Request Guidelines
      • Code Review Process
      • Common Review Feedback
    • Feature Development
      • Adding New Functions
      • Adding New Modules
    • Documentation
      • Documentation Structure
      • Building Documentation
      • Documentation Requirements
    • Release Process
      • Version Numbering
      • Release Checklist
    • Communication Guidelines
      • Issue Reporting
      • Discussion Etiquette
    • Recognition
      • Types of Contributions
    • Getting Help
    • Development Tools
      • Recommended IDE Setup
      • Debugging Tips
      • Git Workflow
Planet Ruler
  • Search


© Copyright 2024, Brandon Anderson.

Built with Sphinx using a theme provided by Read the Docs.