meteor_detect/config-example-updated.toml
2025-04-22 01:46:51 +08:00

237 lines
6.8 KiB
TOML

# 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