Skip to content

Commit 2069e58

Browse files
committed
feat(image): add OCR, FITS, SER enhancements and metadata support
- Add OCR processing module with Tesseract integration, spell checker, and model manager - Add FITS format support with HDU tables, compression, WCS, and calibration - Enhance SER format with debayer, drizzle, lucky imaging, and video export - Add comprehensive metadata support (EXIF, IPTC, XMP) with validators and tools - Improve image processing filters and realtime processor - Add CLAUDE.md documentation files for all modules - Update test assertions and image tests
1 parent 2e8f4de commit 2069e58

File tree

110 files changed

+41765
-30
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+41765
-30
lines changed

.claude/index.json

Lines changed: 378 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,378 @@
1+
{
2+
"scan_metadata": {
3+
"timestamp": "2025-01-15T00:00:00Z",
4+
"scan_type": "module_documentation_update",
5+
"scan_version": "1.2.0",
6+
"project_root": "D:\\Project\\Atom",
7+
"scanner_version": "adaptive-architect-v1",
8+
"scan_duration": "targeted_module_documentation",
9+
"files_scanned": "estimated_500+"
10+
},
11+
"project_info": {
12+
"name": "Atom",
13+
"version": "0.1.0",
14+
"description": "Foundational library for astronomical software",
15+
"license": "GPL-3.0",
16+
"homepage": "https://github.com/ElementAstro/Atom",
17+
"cpp_standard": "C++20",
18+
"cmake_minimum": "3.21",
19+
"primary_language": "C++",
20+
"secondary_languages": ["Python", "CMake", "Shell"],
21+
"platforms": ["Windows", "Linux", "macOS"]
22+
},
23+
"modules": [
24+
{
25+
"name": "algorithm",
26+
"path": "atom/algorithm",
27+
"type": "library",
28+
"dependencies": ["type", "utils", "error"],
29+
"optional_dependencies": ["OpenSSL", "TBB"],
30+
"entry_point": "atom/algorithm/algorithm.hpp",
31+
"has_tests": true,
32+
"has_examples": true,
33+
"has_documentation": true,
34+
"documentation_path": "atom/algorithm/CLAUDE.md",
35+
"subdirectories": ["core", "crypto", "hash", "math", "compression", "signal", "optimization", "encoding", "graphics", "utils"],
36+
"description": "Mathematical algorithms, cryptography, signal processing, pathfinding, GPU acceleration"
37+
},
38+
{
39+
"name": "async",
40+
"path": "atom/async",
41+
"type": "library",
42+
"dependencies": ["utils"],
43+
"entry_point": "atom/async/async.hpp",
44+
"has_tests": false,
45+
"has_examples": true,
46+
"has_documentation": true,
47+
"documentation_path": "atom/async/CLAUDE.md",
48+
"subdirectories": ["core", "threading", "messaging", "execution", "sync", "utils"],
49+
"description": "Asynchronous programming primitives, futures, promises, executors, messaging"
50+
},
51+
{
52+
"name": "components",
53+
"path": "atom/components",
54+
"type": "library",
55+
"dependencies": ["meta", "utils", "type", "error"],
56+
"optional_dependencies": ["Lua", "Python3"],
57+
"has_tests": true,
58+
"has_examples": true,
59+
"has_documentation": true,
60+
"documentation_path": "atom/components/CLAUDE.md",
61+
"subdirectories": ["core", "scripting", "lifecycle", "data"],
62+
"description": "Component system, lifecycle management, scripting engines (Lua, Python), event dispatch"
63+
},
64+
{
65+
"name": "connection",
66+
"path": "atom/connection",
67+
"type": "library",
68+
"dependencies": ["async", "error", "type"],
69+
"optional_dependencies": ["ASIO", "OpenSSL", "libssh"],
70+
"has_tests": true,
71+
"has_examples": true,
72+
"has_documentation": true,
73+
"documentation_path": "atom/connection/CLAUDE.md",
74+
"subdirectories": ["tcp", "udp", "fifo", "shared", "ssh"],
75+
"description": "Network communication (TCP, UDP, FIFO, SSH), async sockets, connection pooling"
76+
},
77+
{
78+
"name": "containers",
79+
"path": "atom/containers",
80+
"type": "library",
81+
"dependencies": ["type"],
82+
"optional_dependencies": ["Boost"],
83+
"has_tests": true,
84+
"has_examples": true,
85+
"has_documentation": true,
86+
"documentation_path": "atom/containers/CLAUDE.md",
87+
"description": "High-performance containers, lock-free queues, intrusive data structures"
88+
},
89+
{
90+
"name": "error",
91+
"path": "atom/error",
92+
"type": "library",
93+
"dependencies": [],
94+
"entry_point": "atom/error/error.hpp",
95+
"has_tests": true,
96+
"has_examples": true,
97+
"has_documentation": true,
98+
"documentation_path": "atom/error/CLAUDE.md",
99+
"subdirectories": ["core", "stacktrace", "exception", "context", "handler"],
100+
"optional_dependencies": ["cpptrace", "backward-cpp", "Boost.Stacktrace", "libunwind", "libbacktrace", "Abseil"],
101+
"description": "Comprehensive error handling, stack traces, error contexts, exception hierarchies"
102+
},
103+
{
104+
"name": "image",
105+
"path": "atom/image",
106+
"type": "library",
107+
"dependencies": ["algorithm", "io", "async"],
108+
"optional_dependencies": ["OpenCV", "CFITSIO", "Tesseract", "Leptonica", "nlohmann_json"],
109+
"entry_point": "atom/image/image.hpp",
110+
"has_tests": true,
111+
"has_examples": true,
112+
"has_documentation": true,
113+
"documentation_path": "atom/image/CLAUDE.md",
114+
"subdirectories": ["core", "formats", "io", "processing", "metadata"],
115+
"description": "Image processing with astronomical format support (FITS, SER), OCR, computer vision"
116+
},
117+
{
118+
"name": "io",
119+
"path": "atom/io",
120+
"type": "library",
121+
"dependencies": ["async", "utils"],
122+
"optional_dependencies": ["ZLIB", "minizip-ng", "ASIO", "TBB"],
123+
"has_tests": false,
124+
"has_examples": true,
125+
"has_documentation": true,
126+
"documentation_path": "atom/io/CLAUDE.md",
127+
"subdirectories": ["core", "filesystem", "compression", "async"],
128+
"description": "Input/output operations, file system utilities, compression, async I/O"
129+
},
130+
{
131+
"name": "log",
132+
"path": "atom/log",
133+
"type": "library",
134+
"dependencies": ["error", "utils"],
135+
"required_dependencies": ["spdlog", "ZLIB"],
136+
"has_tests": true,
137+
"has_examples": true,
138+
"has_documentation": true,
139+
"documentation_path": "atom/log/CLAUDE.md",
140+
"description": "Async logging framework with rotation, memory-mapped sinks, structured logging"
141+
},
142+
{
143+
"name": "memory",
144+
"path": "atom/memory",
145+
"type": "library",
146+
"dependencies": ["type", "error"],
147+
"optional_dependencies": ["spdlog", "Boost"],
148+
"has_tests": true,
149+
"has_examples": true,
150+
"has_documentation": true,
151+
"documentation_path": "atom/memory/CLAUDE.md",
152+
"description": "Memory management, memory pools, arenas, tracking, custom allocators"
153+
},
154+
{
155+
"name": "meta",
156+
"path": "atom/meta",
157+
"type": "library",
158+
"dependencies": ["error", "utils"],
159+
"required_dependencies": ["spdlog"],
160+
"optional_dependencies": ["json-cpp", "yaml-cpp"],
161+
"has_tests": true,
162+
"has_examples": true,
163+
"has_documentation": true,
164+
"documentation_path": "atom/meta/CLAUDE.md",
165+
"description": "Reflection, type traits, property helpers, FFI utilities, metaprogramming"
166+
},
167+
{
168+
"name": "search",
169+
"path": "atom/search",
170+
"type": "library",
171+
"dependencies": ["type", "io"],
172+
"required_dependencies": ["spdlog", "SQLite3"],
173+
"optional_dependencies": ["libmariadb"],
174+
"has_tests": true,
175+
"has_examples": true,
176+
"has_documentation": true,
177+
"documentation_path": "atom/search/CLAUDE.md",
178+
"subdirectories": ["core", "cache", "database"],
179+
"description": "Search functionality, LRU/TTL caches, full-text search, pluggable database backends"
180+
},
181+
{
182+
"name": "secret",
183+
"path": "atom/secret",
184+
"type": "library",
185+
"dependencies": ["algorithm", "io", "type", "utils"],
186+
"required_dependencies": ["OpenSSL"],
187+
"optional_dependencies": ["spdlog", "libsecret"],
188+
"has_tests": true,
189+
"has_examples": true,
190+
"has_documentation": true,
191+
"documentation_path": "atom/secret/CLAUDE.md",
192+
"subdirectories": ["core", "crypto", "password", "otp", "storage", "manager", "serialization"],
193+
"description": "Security and encryption utilities, password management, OTP, secure storage"
194+
},
195+
{
196+
"name": "serial",
197+
"path": "atom/serial",
198+
"type": "library",
199+
"dependencies": ["error", "log"],
200+
"optional_dependencies": ["libusb-1.0", "bluez"],
201+
"has_tests": true,
202+
"has_examples": true,
203+
"has_documentation": true,
204+
"documentation_path": "atom/serial/CLAUDE.md",
205+
"subdirectories": ["core", "bluetooth", "platform", "usb"],
206+
"description": "Serial communication, Bluetooth adapters, USB device support"
207+
},
208+
{
209+
"name": "sysinfo",
210+
"path": "atom/sysinfo",
211+
"type": "library",
212+
"dependencies": ["error", "type", "utils"],
213+
"optional_dependencies": ["fmt", "spdlog"],
214+
"has_tests": true,
215+
"has_examples": true,
216+
"has_documentation": true,
217+
"documentation_path": "atom/sysinfo/CLAUDE.md",
218+
"subdirectories": ["hardware", "storage", "network", "info", "utils"],
219+
"description": "System information, CPU/memory/disk/GPU/network introspection, hardware monitoring"
220+
},
221+
{
222+
"name": "system",
223+
"path": "atom/system",
224+
"type": "library",
225+
"dependencies": ["sysinfo", "meta", "utils"],
226+
"optional_dependencies": ["libusb-1.0"],
227+
"has_tests": true,
228+
"has_examples": true,
229+
"has_documentation": true,
230+
"documentation_path": "atom/system/CLAUDE.md",
231+
"subdirectories": ["core", "process", "hardware", "power", "info", "registry", "network", "storage", "signals", "scheduling", "clipboard", "shortcut"],
232+
"description": "System-level integration, process management, platform-specific code, scheduling"
233+
},
234+
{
235+
"name": "type",
236+
"path": "atom/type",
237+
"type": "library",
238+
"dependencies": ["error", "utils"],
239+
"has_tests": false,
240+
"has_examples": true,
241+
"has_documentation": true,
242+
"documentation_path": "atom/type/CLAUDE.md",
243+
"description": "Type utilities, variant/any helpers, small-vector, type traits"
244+
},
245+
{
246+
"name": "utils",
247+
"path": "atom/utils",
248+
"type": "library",
249+
"dependencies": ["error", "type"],
250+
"optional_dependencies": ["OpenSSL", "ZLIB", "fmt", "spdlog", "TBB"],
251+
"has_tests": false,
252+
"has_examples": true,
253+
"has_documentation": true,
254+
"documentation_path": "atom/utils/CLAUDE.md",
255+
"subdirectories": ["core", "text", "time", "process", "conversion", "crypto", "random", "debug", "format", "container", "memory"],
256+
"description": "General utility functions, string/time processing, UUID generation, crypto helpers"
257+
},
258+
{
259+
"name": "web",
260+
"path": "atom/web",
261+
"type": "library",
262+
"dependencies": ["utils", "io", "system", "log", "type"],
263+
"optional_dependencies": ["CURL", "fmt", "spdlog"],
264+
"has_tests": true,
265+
"has_examples": true,
266+
"has_documentation": true,
267+
"documentation_path": "atom/web/CLAUDE.md",
268+
"subdirectories": ["http", "mime", "utils", "address", "time"],
269+
"description": "HTTP client, MIME helpers, URL tools, downloaders, web utilities"
270+
}
271+
],
272+
"supporting_structures": [
273+
{
274+
"name": "tests",
275+
"path": "tests",
276+
"type": "test_suite",
277+
"framework": "GoogleTest",
278+
"description": "Comprehensive test suite with CTest integration, 19+ test directories",
279+
"test_modules": ["algorithm", "async", "components", "connection", "containers", "error", "image", "io", "log", "memory", "meta", "search", "secret", "serial", "sysinfo", "system", "type", "utils", "web"]
280+
},
281+
{
282+
"name": "example",
283+
"path": "example",
284+
"type": "examples",
285+
"description": "Usage examples for all modules, including sub-module examples"
286+
},
287+
{
288+
"name": "python",
289+
"path": "python",
290+
"type": "bindings",
291+
"framework": "pybind11",
292+
"description": "Python bindings for most modules with modular subdirectory structure"
293+
},
294+
{
295+
"name": "scripts",
296+
"path": "scripts",
297+
"type": "build_tools",
298+
"description": "Build scripts, dependency management, packaging tools"
299+
},
300+
{
301+
"name": "cmake",
302+
"path": "cmake",
303+
"type": "build_modules",
304+
"description": "CMake modules for build configuration",
305+
"key_modules": ["ModuleDependencies.cmake", "ModuleDependenciesData.cmake", "ScanModule.cmake", "FindDependencies.cmake"]
306+
},
307+
{
308+
"name": "extra",
309+
"path": "atom/extra",
310+
"type": "third_party",
311+
"description": "Third-party libraries bundled with Atom",
312+
"libraries": ["spdlog", "asio", "curl", "beast", "uv", "pugixml", "inicpp", "dotenv", "iconv", "boost"]
313+
}
314+
],
315+
"coverage": {
316+
"total_modules": 19,
317+
"modules_with_tests": 17,
318+
"modules_with_examples": 19,
319+
"modules_with_documentation": 19,
320+
"documented_modules": ["algorithm", "async", "components", "connection", "containers", "error", "image", "io", "log", "memory", "meta", "search", "secret", "serial", "sysinfo", "system", "type", "utils", "web"],
321+
"coverage_percentage": 100.0,
322+
"estimated_total_files": "500+",
323+
"estimated_cpp_files": "200+",
324+
"estimated_hpp_files": "300+",
325+
"documentation_gaps": []
326+
},
327+
"ignore_patterns": [
328+
"node_modules/**",
329+
".git/**",
330+
".github/**",
331+
"dist/**",
332+
"build/**",
333+
"build-*/**",
334+
"build-msvc/**",
335+
"cmake-build-*/**",
336+
"out/**",
337+
"_build/**",
338+
"python/build-python/**",
339+
".venv/**",
340+
"venv/**",
341+
"__pycache__/**",
342+
"*.pyc",
343+
"*.pyo",
344+
"*.egg-info/**",
345+
".tox/**",
346+
".nox/**",
347+
".coverage",
348+
"*.log",
349+
"*.dll",
350+
"*.exe",
351+
"*.obj",
352+
"*.o",
353+
"*.a",
354+
"*.lib",
355+
"*.so",
356+
"*.dylib",
357+
"vcpkg_installed/**",
358+
"llmdoc/**"
359+
],
360+
"next_steps": [
361+
"Add unit tests for modules without tests (async, type, utils, io)",
362+
"Add more detailed API documentation for each module",
363+
"Create architecture diagrams for complex modules",
364+
"Document inter-module dependencies more thoroughly",
365+
"Add performance benchmarks and optimization guides",
366+
"Document Python bindings structure and usage",
367+
"Create integration guides for using multiple modules together"
368+
],
369+
"truncated": false,
370+
"truncation_reason": null,
371+
"scan_quality": {
372+
"module_discovery": "complete",
373+
"dependency_analysis": "complete",
374+
"file_statistics": "estimated",
375+
"documentation_coverage": "complete",
376+
"test_coverage": "complete"
377+
}
378+
}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,3 +521,4 @@ python/build-python/
521521
# -----------------------------------------------------------------------------
522522
# End of .gitignore
523523
# -----------------------------------------------------------------------------
524+
.ace-tool/

0 commit comments

Comments
 (0)