refactor: 重构项目结构,将geo_tools重命名为app并更新相关引用

- 将主包名从geo_tools改为app
- 更新所有模块中的引用路径
- 迁移并更新测试用例
- 添加项目规则文档
- 保持原有功能不变,仅进行结构调整
This commit is contained in:
2026-04-12 19:49:56 +08:00
parent fcb8e1f255
commit db51d41aef
41 changed files with 4132 additions and 808 deletions

10
.trae/rules/geo_rules.md Normal file
View File

@@ -0,0 +1,10 @@
# Geo-Tools 项目特定编码规范
## 地理数据处理黄金法则
1. **投影先行**:任何涉及距离、面积的计算前,必须先检查 CRS若是地理坐标系(如 EPSG:4326),必须提示用户或自动调用 `suggest_projected_crs` 转换。
2. **几何清洗**:任何接收用户输入的 GeoDataFrame 的公开方法,内部必须包含 `gdf = gdf[gdf.is_valid]``make_valid()` 的处理逻辑,防止脏数据导致底层 C 库崩溃。
3. **内存控制**:读取大文件函数需要提供 `mask` (裁剪范围) 或 `rows` (读取行数限制) 参数。
## 代码风格
- 空间操作函数返回新的 GeoDataFrame尽量不修改原始输入数据Immutable
- 使用 `pathlib.Path` 处理所有文件路径,而不是字符串拼接。

View File

@@ -0,0 +1,8 @@
# 给 AI 助手看的规则 - 小白专用版
## 关于内存(最重要)
1. 凡是读文件的函数,只要没加 `rows` 限制或 `chunk_size` 分块,都要在注释里用【警告】两个字提醒用户注意内存风险。
2. 不要用 `for` 循环一行行修改 GeoDataFrame要用 `apply` 或者向量化操作。
## 关于报错
3. 禁止直接把底层库fiona, shapely的英文报错抛给用户看。必须包一层 try-except翻译成中文提示例如“文件打不开检查一下路径是不是有中文”或者“数据里有烂掉的图形已自动修复/跳过”。