Files
traccar_animation/test_relive_animation.py
2025-07-09 16:39:51 +03:00

82 lines
3.0 KiB
Python

#!/usr/bin/env python3
"""
Test script for the improved Relive-style GPS animation
"""
import os
import sys
import json
from datetime import datetime
# Add the project directory to the path
sys.path.append('/home/pi/Desktop/traccar_animation')
from py_scripts.advanced_3d_generator import Advanced3DGenerator
def test_relive_animation():
"""Test the new Relive-style animation"""
# Find a project with GPS data
resources_folder = "/home/pi/Desktop/traccar_animation/resources"
projects_folder = os.path.join(resources_folder, "projects")
if not os.path.exists(projects_folder):
print("No projects folder found")
return
# Look for projects with positions.json
for project_name in os.listdir(projects_folder):
project_path = os.path.join(projects_folder, project_name)
positions_file = os.path.join(project_path, "positions.json")
if os.path.exists(positions_file):
print(f"🎬 Testing Relive-style animation with project: {project_name}")
# Check if positions file has data
try:
with open(positions_file, 'r') as f:
positions = json.load(f)
if len(positions) < 5:
print(f"❌ Project {project_name} has only {len(positions)} GPS points - skipping")
continue
print(f"📍 Found {len(positions)} GPS points")
# Create generator
generator = Advanced3DGenerator(project_path)
# Progress callback
def progress_callback(progress, message):
print(f"Progress: {progress:.1f}% - {message}")
# Generate animation
output_video = os.path.join(project_path, f"relive_animation_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp4")
print(f"🚀 Starting Relive-style animation generation...")
success = generator.generate_3d_animation(
positions_file,
output_video,
style='advanced',
progress_callback=progress_callback
)
if success:
print(f"✅ SUCCESS! Relive-style animation created: {output_video}")
print(f"📁 You can find your video at: {output_video}")
else:
print("❌ Failed to generate animation")
return # Exit after first successful project
except Exception as e:
print(f"❌ Error testing project {project_name}: {e}")
continue
print("❌ No suitable projects found for testing")
if __name__ == "__main__":
print("🎬 Testing Improved Relive-Style GPS Animation")
print("=" * 50)
test_relive_animation()