On this page
article
数据管理与质量控制
数据管理与质量控制
1. 模块定位
数据管理模块以 tab_dm.py 为入口,当前主要包含两个子页:
- 数据库
- 按数据类型检索
虽然界面上页签较少,但代码侧的职责已经覆盖:
- 元数据索引
- 文件目录清点
- 数据预览
- 栅格/矢量质量检查与修复的基础承载
- 数据根目录管理
2. 主入口类
2.1 DataManagerTab
位于 tab_dm.py。它负责创建页签容器,并将:
DatabaseTabDataBrowserTab
组织进统一的数据管理页。
2.2 DatabaseTab
位于 dm/tab_database.py,是数据库页核心类。
核心职责:
- 连接
SQLiteManager - 管理数据根目录
- 接收单文件导入和文件夹批量导入
- 展示元数据表
- 执行检索、删除、编辑、导入导出数据库
- 预览数据内容
2.3 DataBrowserTab
位于 dm/tab_databrowser.py,是目录清点与类型浏览页核心类。
核心职责:
- 生成 inventory
- 依据数据类型分类展示
- 支持文件名搜索
- 显示属性表和预览视图
3. 数据库页字段体系
DatabaseTab.fields 当前包含以下主要字段:
| 字段 | 含义 |
|---|---|
id |
记录主键 |
name |
数据名称 |
type |
数据类型 |
format |
格式 |
path |
文件路径 |
keywords |
关键词 |
crs |
坐标参考系统 |
geometry_type |
几何类型 |
layer_extent |
空间范围 |
no_data_value |
无效值 |
band_count |
波段数 |
created_time |
创建时间 |
last_modified |
修改时间 |
file_size |
文件大小 |
source |
来源 |
description |
描述 |
citation |
引用 |
semantic_category |
语义分类 |
这一结构说明数据库页已经不是简单的文件名清单,而是偏向轻量 GIS 资产目录。
4. 工作机制
4.1 数据根目录
数据库页优先从 config.json 读取 data_root。这意味着:
- 项目可面向一个主要数据仓库运行。
- 后续导入、检索与预览都可围绕该根目录展开。
4.2 SQLiteManager
SQLiteManager 是数据库层的核心抽象。文档层面需要理解它的定位:
- 它不是存放大体量栅格数据本体。
- 它存放的是“文件级元数据、可检索字段和资产索引”。
因此数据库设计更接近:
$$ \text{文件系统} + \text{索引数据库} + \text{可视化预览} $$
4.3 线程安全日志
DatabaseTab 通过 utils.ui_logger.get_threadsafe_logger() 实现线程安全日志输出,避免后台操作直接触碰 UI 控件。
这对于以下场景很重要:
- 批量导入目录
- 大型表更新
- 数据预览构建
5. 按数据类型检索
5.1 inventory 生成
DataBrowserTab 使用 DatasetInventoryGenerator 扫描指定目录并生成 inventory。
输出的 inventory 不是最终数据库,而是目录级清单,适合:
- 快速浏览
- 初步分类
- 批量核查
5.2 核心工作线程
InventoryWorker:目录扫描与 inventory 生成PreviewPayloadWorker:预览载荷异步生成
这使得类型检索页在面对大量文件时仍能保持较好的界面响应性。
5.3 预览机制
预览通过下列接口完成:
build_preview_widgetbuild_preview_widget_from_payloadload_preview_payload
因此预览区不直接绑定具体文件格式逻辑,而是统一走“预览载荷”抽象。
6. 质量控制含义
虽然“栅格检查、自动修复、矢量修复”等模块不都直接在这个页签上展开,但数据管理模块是这些质量控制功能的组织中心。其价值体现在:
- 分析前先发现投影、无效值、几何错误和属性异常。
- 对结果资产形成长期可检索索引。
- 为空间结构分析与遥感生产提供稳定输入。
7. 用户操作建议
推荐工作顺序:
- 设置数据根目录。
- 导入核心数据到数据库。
- 用按数据类型检索页检查目录结构与预览。
- 对异常栅格/矢量先做预处理或修复。
- 再进入数据生产或空间结构关系分析模块。
8. 二次开发建议
若要继续扩展数据管理模块,优先考虑:
- 参数库重新接回主页签。
- 统一接入栅格检查/修复工具页。
- 扩展数据库字段与标签系统。
- 增加“引用关系”和“派生关系”追踪,让结果文件能反向追溯来源数据。