Files
geo_process/main.py
2025-11-10 23:37:05 +08:00

64 lines
2.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# main.py
import arcpy
import os
import sys
# 将项目根目录添加到Python路径以便导入自定义模块
# 假设 main.py 在项目根目录
project_root = os.path.dirname(os.path.abspath(__file__))
if project_root not in sys.path:
sys.path.insert(0, project_root)
from src import config
from src.utils.logger_setup import logger
from src.analysis.spatial_analyzer import SpatialAnalyzer
from src.analysis.raster_analyzer import RasterAnalyzer # 导入 RasterAnalyzer
def main():
"""
项目主入口函数,负责调度空间分析和报告生成流程。
"""
logger.info("==================================================")
logger.info(" 地理处理与土壤属性分析项目启动 ")
logger.info("==================================================")
# 确保ArcPy环境可用
try:
arcpy.GetInstallInfo()
logger.info(f"ArcPy环境已加载: {arcpy.GetInstallInfo()['ProductName']} {arcpy.GetInstallInfo()['Version']}")
except Exception as e:
logger.critical(f"ArcPy环境未正确配置或加载失败: {str(e)}")
logger.critical("请确保在ArcGIS Pro的Python环境中运行此脚本。")
sys.exit(1)
# 1. 执行空间分析
# logger.info("阶段一:开始执行空间分析...")
# analyzer = SpatialAnalyzer(config)
# analysis_success = analyzer.execute_analysis()
# 2. 执行栅格分析(求交、制表、合并)
logger.info("阶段二:开始执行栅格分析...")
raster_analyzer = RasterAnalyzer(config)
raster_analysis_success = raster_analyzer.execute_analysis()
# 3. 输出分析结果
# if analysis_success and raster_analysis_success:
# logger.info("所有分析流程成功完成!")
# elif analysis_success and not raster_analysis_success:
# logger.error("空间分析成功,但栅格分析失败,请检查日志。")
# elif not analysis_success and raster_analysis_success:
# logger.error("空间分析失败,但栅格分析成功,请检查日志。")
# else:
# logger.error("所有分析流程失败,请检查日志。")
if raster_analysis_success:
logger.info("栅格分析流程成功完成!")
else:
logger.error("栅格分析失败,请检查日志。")
logger.info("==================================================")
logger.info(" 地理处理与土壤属性分析项目结束 ")
logger.info("==================================================")
if __name__ == "__main__":
main()