57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
# 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()
|