Files
railway_cloud/upload_app/使用指南.md
2025-11-08 19:33:05 +08:00

5.1 KiB
Raw Blame History

Parquet数据处理脚本 - 使用指南

快速开始

1. 安装依赖

pip install pandas numpy openpyxl

2. 运行脚本

python process_parquet_to_excel.py

3. 查看结果

输出目录:./output/

  • 川藏13B标二分部_水准数据报表.xlsx
  • 川藏13B标一分部_水准数据报表.xlsx
  • ...

新版本 v1.1 特性

修复了之前的错误

  • 修复了 "The truth value of an array..." 错误
  • 改进了numpy array的处理方式

数据质量检验

脚本现在会自动验证数据完整性:

  • 对比预期记录数与实际记录数
  • 如果不一致,提供详细分析
  • 帮助快速发现数据问题

示例输出:

✅ 数据质量检验通过:实际记录数(150) = 预期记录数(150)

增强的错误提示

  • 详细的错误堆栈跟踪
  • 智能错误分析
  • 更好的中文提示

NYID期数ID重复检查

  • 自动检测水准数据中的重复NYID
  • 详细列出重复的NYID及其出现次数
  • 全局汇总所有数据集的重复情况
  • 计算额外重复记录数

示例输出:

检查NYID期数ID重复...

⚠️  发现 2 个重复的NYID:
   NYID=1308900 出现 2 次
   NYID=1317148 出现 3 次

全局统计报告

全局数据质量统计
============================================================
川藏13B标二分部: 150 条记录
川藏13B标一分部: 120 条记录
川藏14B标二分部: 200 条记录
川藏14B标三分部: 180 条记录
川藏14B标一分部: 160 条记录

总计: 810 条记录
============================================================

如何验证数据完整性

方法1查看质量检验结果

脚本运行时会显示:

预期生成记录数: 200
数据质量检验:最终记录数应等于此数字
...
✅ 数据质量检验通过:实际记录数(200) = 预期记录数(200)

如果看到 ⚠️ 警告,说明有数据丢失,需要检查。

方法2手动验证

  1. 统计水准数据文件中的记录总数
  2. 对比Excel文件中的记录数
  3. 理论上应该相等每条水准数据对应一条Excel记录

方法3检查日志

寻找以下警告:

  • "NYID=xxx 无对应沉降数据" - 说明数据关联链断裂
  • "处理水准数据时出错" - 说明处理过程中出现异常

方法4检查NYID重复

脚本会自动检查NYID期数ID是否重复

检查NYID期数ID重复...

✅ 未发现重复的NYID

⚠️  发现 2 个重复的NYID:
   NYID=1308900 出现 2 次
   NYID=1317148 出现 3 次

如果在"NYID期数ID重复汇总"中看到重复记录,需要检查数据质量。

输出文件说明

每个Excel文件包含8列

  • 日期水准数据时间YYYY-MM-DD
  • 水准线路linecode
  • 起始点benchmarkids拆分如果存在
  • 终止点benchmarkids拆分如果存在
  • 测点同一水准线路的所有观测点ID
  • 起始时间原始数据mtime最早时间
  • 终止时间原始数据mtime最晚时间
  • 类型断面数据的work_site

常见问题

Q: 出现数据质量警告怎么办?

A: 查看脚本输出的"可能原因"部分,通常是因为:

  • 某些水准数据没有对应的沉降数据
  • 数据文件损坏或不完整
  • 数据关联链有问题

Q: 起始点和终止点为空怎么办?

A: 这说明水准数据中不存在benchmarkids字段属于正常情况。脚本会显示

注意: 未发现benchmarkids字段起始点/终止点将为空

Q: 时间范围显示默认值怎么办?

A: 这说明该数据集没有原始数据表(原始数据表),脚本会使用水准数据时间作为默认值。

Q: 如何查看详细的处理日志?

A: 脚本会自动输出详细日志,包括:

  • 扫描到的文件数量
  • 读取的记录数
  • 处理进度
  • 错误和警告信息

目录结构要求

data/
  ├── 川藏13B标二分部/
  │   ├── 沉降数据表/
  │   │   └── settlement_*.parquet
  │   ├── 断面数据表/
  │   │   └── section_*.parquet
  │   ├── 观测点数据表/
  │   │   └── point_*.parquet
  │   └── 水准数据表/
  │       └── level_*.parquet
  ├── 川藏13B标一分部/
  │   └── ...
  └── ...

配置选项

在脚本顶部可以修改:

# 数据根目录
DATA_ROOT = "./data"

# 输出目录
OUTPUT_DIR = "./output"

技术支持

如有问题,请检查:

  1. 所有parquet文件是否完整
  2. 数据目录结构是否正确
  3. 依赖包是否已正确安装
  4. 查看脚本输出的错误和警告信息

版本历史

  • v1.2 (2025-11-08)

    • 彻底修复numpy array布尔值判断错误
    • 新增NYID期数ID重复检查功能
    • 新增全局重复NYID汇总
    • 增强数据质量检验
    • 增强防御性编程
  • v1.1 (2025-11-08)

    • 修复numpy array布尔值错误
    • 新增数据质量检验机制
    • 新增全局统计报告
    • 增强错误处理和提示
  • v1.0 (2025-11-08)

    • 初始版本
    • 基本的数据处理和Excel导出功能