On this page
article
按数据类型检索
按数据类型检索
1. 模块目标
按数据类型检索页对应 dm/tab_databrowser.py 中的 DataBrowserTab。它面向的是“目录级数据发现”,不是数据库元数据编辑。
适合的任务包括:
- 批量扫描某个数据目录
- 按数据类型查看文件
- 快速搜索文件名
- 预览表格、栅格或矢量
2. 界面结构
界面分为三块:
- 顶部路径与搜索栏
- 左侧分类列表与子文件列表
- 右侧属性表与预览区
布局采用两个 QSplitter,可让用户动态调整:
- 分类区宽度
- 详情区与预览区高度
3. 关键类与线程
3.1 DataBrowserTab
负责 UI 组装、目录选择、分类显示、搜索和详情切换。
3.2 InventoryWorker
异步执行 inventory 生成,避免扫描大目录时阻塞界面。
3.3 PreviewPayloadWorker
异步构建预览载荷,避免读取大文件时卡住界面。
4. 数据流
目录级检索的内部数据流可概括为:
$$ \text{目录} \rightarrow \text{InventoryWorker} \rightarrow \text{inventory.csv / grouped_info} \rightarrow \text{分类展示} \rightarrow \text{预览载荷} \rightarrow \text{预览组件} $$
5. 分类逻辑
分类依据来自:
dm/data_config.json- 文件扩展名
- 数据类型字段
对应函数包括:
load_categories()get_category_by_extensions(...)get_category_by_datatype(...)classify_record(...)
因此,若想新增新的数据类别,通常应先修改类型配置文件,而不是直接改 UI。
6. 检索与预览
6.1 搜索
当前页的搜索目标主要是文件名或 inventory 中的相关条目,适合快速定位某类文件。
6.2 详情表
右侧详情表用于显示当前选中项的关键字段,可作为进入预览前的结构检查层。
6.3 预览区
预览区用于显示:
- 表格型数据
- 栅格摘要
- 矢量摘要
- 其他格式的简化信息
这层逻辑通过 load_preview_payload() 和 build_preview_widget_from_payload() 统一组织。
7. 与数据库页的区别
二者容易混淆,但职责不同:
| 页面 | 主要目标 |
|---|---|
| 数据库页 | 管理正式索引、元数据与可编辑记录 |
| 按数据类型检索页 | 对目录内容做快速发现、分类和预览 |
换言之,类型检索更偏“浏览器”,数据库页更偏“资产索引管理器”。
8. 使用建议
推荐在以下场景优先使用本页:
- 接收到一整批外部数据,需要先摸清结构。
- 需要快速确认某目录下有哪些 raster/vector/csv/npz。
- 想先做轻量预览,再决定是否入库。
如果你已经确定数据要长期管理,下一步应进入数据库页正式入库。