How emir-isroilov/osmon-source works
Osmon is a desktop GIS for viewing and editing vector and raster data, running geoprocessing, and collaborating through internet or local-network projects. The main user journey is to open a project and layers, inspect them on the map, make edits or run tools, then save or export results. Other documented capabilities include online data, an action-oriented chatbot, print layouts, and shared-server collaboration. The graph reflects sampled code and explicit README capabilities; some subsystem links remain unverified because their implementation was not sampled.
Main entry points: workspace.py Project workspace · server_db.py Shared server database · vector_data.py Vector data · processing.py Processing toolbox
Components 24
GIS workspace
- Osmon desktop
Osmon.py - Project workspace
osmon_qt/workspace.py - Project handling
project.py - Map canvas
osmon_qt/map_canvas.py
GIS data and editing
- Vector data
osmon_core/vector_data.py - Vector rendering
osmon_qt/vector_item.py - Edit session
osmon_qt/edit_session.py - Edit operations
osmon_core/edit_ops.py - Attribute table
osmon_qt/attribute_table.py
Analysis and data access
- Processing toolbox
processing.py - Vector geoprocessing
osmon_core/geoprocess.py - Raster tools
osmon_core/raster_tools.py - Online data
osmon_core/online.py - Chatbot actions
osmon_core/chatbot.py - Background chat jobs
osmon_core/chat_jobs.py
Accounts and collaboration
- Account interface
osmon_qt/auth_ui.py - Account services
auth.py - Shared server database
osmon_core/server_db.py - LAN server
osmon_core/lan_server.py
Output and interaction
- Chat interface
osmon_qt/chat_exec.py - Print layout
osmon_qt/print_layout.py
Other components
- GIS user
- Supabase services
- GIS files
Connections 26
- GIS user → Osmon desktop: uses
- Osmon desktop → Project workspace: opens workspace
- Project workspace → Project handling: uses project handling
osmon_qt/workspace.py - Project workspace → Map canvas: presents map
osmon_qt/workspace.py - Map canvas → Vector data: loads data
osmon_qt/map_canvas.py - Map canvas → Vector rendering: builds vector view
osmon_qt/map_canvas.py - Vector rendering → Vector data: reads layer data
osmon_qt/vector_item.py - Edit session → Vector data: changes layer data
osmon_qt/edit_session.py - Edit session → Edit operations: uses edit operations
- Attribute table → Edit session: edits attributes
- Vector data → GIS files: reads and writes
- Processing toolbox → Vector geoprocessing: registers tools
processing.py - Processing toolbox → Raster tools: registers tools
processing.py - Processing toolbox → GIS files: produces outputs
processing.py - GIS user → Online data: gets open data
- Chat interface → Chatbot actions: dispatches requests
osmon_qt/chat_exec.py - Chatbot actions → Background chat jobs: runs background jobs
osmon_core/chatbot.py - Background chat jobs → Online data: fetches online data
osmon_core/chat_jobs.py - GIS user → Print layout: creates map output
- Account interface → Account services: calls account logic
osmon_qt/auth_ui.py - Account services → Supabase services: authenticates
auth.py - Shared server database → Account services: uses account session
osmon_core/server_db.py - Shared server database → Supabase services: accesses shared data
osmon_core/server_db.py - LAN server → Shared server database: uses server database
osmon_core/lan_server.py - Project workspace → Shared server database: opens shared layers
osmon_qt/workspace.py - GIS user → LAN server: hosts LAN project