# 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()