重要提示: 当项目发生以下变化时,开发人员和AI助手必须同步更新本规则文件:
AcidMap/
├── app/ # 应用核心代码
│ ├── api/ # API路由层
│ │ ├── raster.py # 栅格数据接口
│ │ ├── vector.py # 矢量数据接口
│ │ └── cd_prediction.py # Cd预测模型接口 ✨新增
│ ├── services/ # 业务逻辑层
│ │ ├── raster_service.py
│ │ ├── vector_service.py
│ │ └── cd_prediction_service.py # Cd预测业务服务 ✨新增
│ ├── models/ # 数据模型层
│ │ ├── base.py # 基础模型
│ │ ├── orm_models.py # ORM模型
│ │ ├── raster.py # 栅格数据模型
│ │ ├── vector.py # 矢量数据模型
│ │ └── county.py # 县域数据模型
│ ├── utils/ # 工具函数
│ │ ├── file_validators.py
│ │ └── cd_prediction_wrapper.py # Cd预测系统包装器 ✨新增
│ ├── config/ # 配置管理 ✨新增
│ │ ├── __init__.py
│ │ └── cd_prediction_config.py # Cd预测配置管理
│ ├── static/ # 静态文件 ✨新增
│ │ └── cd_predictions/ # Cd预测输出文件
│ │ ├── figures/ # 地图和直方图
│ │ ├── raster/ # 栅格文件
│ │ ├── reports/ # 报告文件
│ │ └── data/ # 数据文件
│ ├── logs/ # 日志文件
│ ├── scripts/ # 脚本文件
│ ├── database.py # 数据库配置
│ └── main.py # FastAPI应用入口
├── Cd_Prediction_Integrated_System/ # Cd预测系统 ✨新增
│ ├── models/ # 预测模型
│ │ ├── crop_cd_model/
│ │ └── effective_cd_model/
│ ├── analysis/ # 数据分析模块
│ ├── utils/ # 工具函数
│ ├── data/ # 数据文件
│ ├── output/ # 输出文件
│ ├── main.py # 主执行脚本
│ └── config.py # 配置文件
├── data/ # 数据文件
│ └── counties.geojson # 县域地理数据
├── migrations/ # 数据库迁移文件
├── scripts/ # 项目脚本
├── ssl/ # SSL证书文件
├── config.env # 环境配置
├── environment.yml # Conda环境依赖
├── soilgd.sql # 数据库备份文件
├── db_migrate.py # 数据库迁移脚本
├── reset_db.py # 数据库重置脚本
├── test_cd_integration.py # Cd集成测试脚本 ✨新增
├── INTEGRATION_GUIDE.md # 集成使用指南 ✨新增
├── CD_INTEGRATION_SUMMARY.md # 集成总结文档 ✨新增
└── main.py # 应用启动入口
必须使用JSDoc风格注释:
def process_raster_data(file_path: str, options: dict) -> dict:
"""
处理栅格数据文件
@param {str} file_path - 栅格文件路径
@param {dict} options - 处理选项配置
@returns {dict} 处理结果,包含状态和数据信息
@throws {ValueError} 当文件路径无效时抛出
@example
>>> result = process_raster_data('/path/to/file.tif', {'format': 'GeoTIFF'})
>>> print(result['status'])
"""
pass
# 标准库导入
import os
import logging
from typing import List, Dict, Optional
# 第三方库导入
from fastapi import FastAPI, HTTPException
from sqlalchemy import create_engine
from geoalchemy2 import Geometry
# 本地模块导入
from .models import Base
from .services import RasterService
/api/raster/*
/api/vector/*
/api/cd-prediction/*
✨新增{
"success": true,
"message": "操作成功",
"data": {...},
"error": null
}
# 核心配置项
- SQLALCHEMY_DATABASE_URL: 数据库连接字符串
- SessionLocal: 会话工厂
- get_db(): 依赖注入函数
- execute_sql(): 原生SQL执行
alembic revision --autogenerate -m "描述"
alembic upgrade head
config.env
: 数据库连接配置environment.yml
: Conda环境依赖# 开发环境
uvicorn app.main:app --reload
# 生产环境
uvicorn app.main:app --host 0.0.0.0 --port 8000
# Cd集成测试
python test_cd_integration.py
test_cd_integration.py
POST /api/cd-prediction/crop-cd/generate-and-get-map
POST /api/cd-prediction/effective-cd/generate-and-get-map
POST /api/cd-prediction/crop-cd/generate-and-get-histogram
POST /api/cd-prediction/effective-cd/generate-and-get-histogram
POST /api/cd-prediction/crop-cd/generate-map
POST /api/cd-prediction/effective-cd/generate-map
GET /api/cd-prediction/crop-cd/download-map
GET /api/cd-prediction/effective-cd/download-map
GET /api/cd-prediction/crop-cd/download-histogram
GET /api/cd-prediction/effective-cd/download-histogram
FileResponse
图片文件Content-Type: image/jpeg
Content-Disposition: attachment; filename="crop_cd_prediction_map.jpg"
[图片文件二进制数据]
{
"success": true,
"message": "作物Cd预测地图生成成功",
"data": {
"map_path": "string",
"histogram_path": "string",
"raster_path": "string",
"prediction_stats": {}
},
"error": null
}
/docs
)INTEGRATION_GUIDE.md
)本规范文档旨在为AcidMap项目的开发提供统一的标准和指导。所有开发人员和AI助手在进行功能开发、代码维护和系统扩展时,都应严格遵循本规范,以确保代码质量、系统稳定性和开发效率。
重要提醒: 本规范文件应与项目功能同步更新。任何新功能集成、架构调整或开发流程变更都必须及时反映到相应的规范章节中。
遇到规范未覆盖的情况时,应优先考虑:
最后更新: 2025-06-01 (Cd预测功能集成)