# 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.reporting.report_generator import ReportGenerator 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. 如果分析成功,则生成报告 if analysis_success: logger.info("阶段二:空间分析完成,开始生成Excel报告...") reporter = ReportGenerator(config) report_success = reporter.generate_report() if report_success: logger.info("阶段二:Excel报告生成完毕!") else: logger.error("阶段二:Excel报告生成失败。") else: logger.error("阶段一:空间分析失败,请检查日志。") logger.info("==================================================") logger.info(" 地理处理与土壤属性分析项目结束 ") logger.info("==================================================") if __name__ == "__main__": main()