# Meteor Detection System Configuration # Unique identifier for this detector (will be auto-generated if not specified) device_id = "meteor-detector-01" # Logging level (trace, debug, info, warn, error) log_level = "info" # Camera settings [camera] # Camera device: # - Linux: device path (e.g., "/dev/video0") # - macOS: device index (e.g., "0") or identifier device = "/dev/video0" # Resolution (options: HD1080p, HD720p, VGA) resolution = "HD720p" # Frames per second fps = 30 # Exposure mode (Auto or Manual exposure time in microseconds) exposure = "Auto" # Gain/ISO setting (0-255) gain = 128 # Whether to lock focus at infinity focus_locked = true # GPS and time synchronization [gps] # Whether to enable GPS functionality enable_gps = true # Serial port for GPS module port = "/dev/ttyAMA0" # Baud rate baud_rate = 9600 # Whether to use PPS signal for precise timing use_pps = true # GPIO pin for PPS signal (BCM numbering) pps_pin = 18 # Allow system to run without GPS (using fallback position) allow_degraded_mode = true # Camera orientation [gps.camera_orientation] # Azimuth/heading in degrees (0 = North, 90 = East) azimuth = 0.0 # Elevation/pitch in degrees (0 = horizontal, 90 = straight up) elevation = 90.0 # Fallback GPS position (used when GPS is not available) [gps.fallback_position] # Latitude in degrees (positive is North, negative is South) latitude = 34.0522 # Longitude in degrees (positive is East, negative is West) longitude = -118.2437 # Altitude in meters above sea level altitude = 85.0 # Environmental sensors [sensors] # Whether to use DHT22 temperature/humidity sensor use_dht22 = true # GPIO pin for DHT22 data (BCM numbering) dht22_pin = 4 # Whether to use light sensor use_light_sensor = true # GPIO pin for light sensor analog input light_sensor_pin = 0 # Sampling interval in seconds sampling_interval = 10 # Whether to allow operation without sensors (using fallback values) allow_degraded_mode = true # Default temperature value when sensor is unavailable (Celsius) fallback_temperature = 25.0 # Default humidity value when sensor is unavailable (0-100%) fallback_humidity = 50.0 # Default sky brightness value when sensor is unavailable (0-1) fallback_sky_brightness = 0.05 # Star chart overlay settings [star_chart] # Whether the star chart overlay is enabled enabled = true # Path to the astrometry.net solve-field binary solve_field_path = "/usr/local/bin/solve-field" # Path to the astrometry.net index files index_path = "/usr/local/share/astrometry" # Update frequency in seconds update_frequency = 30.0 # Star marker color (B, G, R, A) star_color = [0, 255, 0, 255] # Green # Constellation line color (B, G, R, A) constellation_color = [0, 180, 0, 180] # Semi-transparent green # Star marker size star_size = 3 # Constellation line thickness line_thickness = 1 # Working directory for temporary files working_dir = "/tmp/astrometry" # Whether to show star names show_star_names = true # Size of index files to use (in arcminutes) index_scale_range = [10.0, 60.0] # Maximum time to wait for solve-field (seconds) max_solve_time = 60 # Storage settings [storage] # Directory for storing raw video data raw_video_dir = "data/raw" # Directory for storing event video clips event_video_dir = "data/events" # Maximum disk space to use for storage (in MB) max_disk_usage_mb = 10000 # Number of days to keep event data event_retention_days = 30 # Whether to compress video files compress_video = true # Watermark settings [watermark] # Whether the watermark is enabled enabled = true # Position of the watermark position = "BottomLeft" # Font scale (1.0 = normal size) font_scale = 0.6 # Font thickness thickness = 1 # Text color (B, G, R, A) color = [255, 255, 255, 255] # White # Include background behind text background = true # Background color (B, G, R, A) background_color = [0, 0, 0, 128] # Semi-transparent black # Padding around text (in pixels) padding = 8 # Content to include in the watermark content = ["Timestamp", "GpsCoordinates", "Environment"] # Date/time format string time_format = "%Y-%m-%d %H:%M:%S%.3f" # Coordinate format (decimal or dms) coordinate_format = "decimal" # Temperature format (C or F) temperature_format = "C" # Detection settings [detection] # Minimum brightness change to trigger detection min_brightness_delta = 30.0 # Minimum number of pixels changed to trigger detection min_pixel_change = 10 # Minimum number of consecutive frames to confirm event min_frames = 3 # Number of seconds to save before/after event event_buffer_seconds = 10 # Detection sensitivity (0.0-1.0) sensitivity = 0.7 # Detection pipeline configuration (for multiple detectors) [detection.pipeline] # Maximum number of parallel detector workers max_parallel_workers = 4 # Aggregation strategy: "any", "all", "majority" aggregation_strategy = "any" # Detector configurations # You can include multiple detectors by adding more [[detection.pipeline.detectors]] sections # Brightness detector configuration [[detection.pipeline.detectors]] type = "brightness" # Unique ID for this detector id = "brightness-main" # Minimum brightness change to trigger detection min_brightness_delta = 30.0 # Minimum number of pixels changed to trigger detection min_pixel_change = 10 # Minimum number of consecutive frames to confirm event min_frames = 3 # Detection sensitivity (0.0-1.0) sensitivity = 0.7 # CAMS detector configuration [[detection.pipeline.detectors]] type = "cams" # Unique ID for this detector id = "cams-main" # Brightness threshold for meteor detection in maxpixel image brightness_threshold = 30 # Minimum ratio of stdpixel to avepixel for meteor detection std_to_avg_ratio_threshold = 1.5 # Minimum number of pixels that must exceed thresholds min_pixel_count = 10 # Minimum trajectory length (pixels) to be considered a meteor min_trajectory_length = 5 # Whether to save feature images for all batches (not just detections) save_all_feature_images = false # Directory to save feature images output_dir = "output/cams" # Prefix for saved files file_prefix = "meteor" # Communication settings [communication] # MQTT broker URL mqtt_broker = "mqtt://localhost:1883" # MQTT client ID (will be auto-generated if not specified) mqtt_client_id = "meteor-detector-01" # MQTT credentials (optional) mqtt_username = "" mqtt_password = "" # Topic for event notifications event_topic = "meteor/events" # Topic for system status status_topic = "meteor/status" # HTTP API port api_port = 8080 # Whether to enable SSL for HTTP API api_use_ssl = false # Path to SSL certificate and key (only needed if api_use_ssl = true) api_cert_path = "" api_key_path = "" # RTSP streaming settings [rtsp] # Whether to enable RTSP streaming enabled = true # RTSP server port port = 8554 # Stream name stream_name = "meteor" # Stream resolution (options: HD1080p, HD720p, VGA) resolution = "HD720p" # Stream frame rate fps = 15 # Stream bitrate (in kbps) bitrate = 2000