可视化模块修改
This commit is contained in:
parent
5c382e1810
commit
a3a5e5738a
@ -15,8 +15,11 @@ class DirectoryManager:
|
||||
def clean_output_dir(self):
|
||||
"""清理输出目录"""
|
||||
try:
|
||||
if os.path.exists(self.config.output_dir):
|
||||
shutil.rmtree(self.config.output_dir)
|
||||
print(f"已清理输出目录: {self.config.output_dir}")
|
||||
else:
|
||||
pass
|
||||
except Exception as e:
|
||||
print(f"清理输出目录时发生错误: {str(e)}")
|
||||
raise
|
||||
@ -65,7 +68,7 @@ class DirectoryManager:
|
||||
free_space = disk_usage.free
|
||||
|
||||
# 计算所需空间(输入大小的10倍)
|
||||
required_space = input_size * 10
|
||||
required_space = input_size * 8
|
||||
|
||||
if free_space < required_space:
|
||||
error_msg = (
|
||||
|
@ -2,6 +2,7 @@ import logging
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
def setup_logger(output_dir):
|
||||
# 创建logs目录
|
||||
log_dir = os.path.join(output_dir, 'logs')
|
||||
|
@ -85,21 +85,20 @@ class ODMProcessMonitor:
|
||||
self.logger.error("容器运行失败的详细错误日志:")
|
||||
for line in error_msg:
|
||||
self.logger.error(line)
|
||||
container.remove()
|
||||
time.sleep(5)
|
||||
else:
|
||||
# 获取所有日志
|
||||
logs = container.logs().decode("utf-8").splitlines()
|
||||
|
||||
# 输出最后 50 行日志
|
||||
self.logger.info("容器运行完成,以下是最后 50 行日志:")
|
||||
for line in logs[-50:]:
|
||||
self.logger.info(line)
|
||||
success = True
|
||||
error_msg = ""
|
||||
container.remove()
|
||||
break
|
||||
|
||||
# 删除容器
|
||||
container.remove()
|
||||
time.sleep(5)
|
||||
|
||||
return success, error_msg
|
||||
|
||||
|
@ -55,28 +55,31 @@ class FilterVisualizer:
|
||||
self.logger.info(f"开始生成{step_name}的可视化结果")
|
||||
|
||||
# 找出被过滤掉的点
|
||||
filtered_files = set(previous_points['file']) - set(current_points['file'])
|
||||
filtered_points = previous_points[previous_points['file'].isin(filtered_files)]
|
||||
filtered_files = set(
|
||||
previous_points['file']) - set(current_points['file'])
|
||||
filtered_points = previous_points[previous_points['file'].isin(
|
||||
filtered_files)]
|
||||
|
||||
# 转换坐标到UTM
|
||||
current_x, current_y = self._convert_to_utm(current_points['lon'], current_points['lat'])
|
||||
filtered_x, filtered_y = self._convert_to_utm(filtered_points['lon'], filtered_points['lat'])
|
||||
current_x, current_y = self._convert_to_utm(
|
||||
current_points['lon'], current_points['lat'])
|
||||
filtered_x, filtered_y = self._convert_to_utm(
|
||||
filtered_points['lon'], filtered_points['lat'])
|
||||
|
||||
# 创建图形
|
||||
plt.rcParams['font.sans-serif']=['SimHei']#黑体
|
||||
plt.rcParams['font.sans-serif'] = ['SimHei'] # 黑体
|
||||
plt.rcParams['axes.unicode_minus'] = False
|
||||
plt.figure()
|
||||
plt.figure(figsize=(20, 20))
|
||||
|
||||
# 绘制保留的点
|
||||
plt.scatter(current_x, current_y,
|
||||
color='blue', label='保留的点',
|
||||
alpha=0.6, s=50)
|
||||
alpha=0.6, s=5)
|
||||
|
||||
# 绘制被过滤的点
|
||||
if not filtered_points.empty:
|
||||
plt.scatter(filtered_x, filtered_y,
|
||||
color='red', marker='x', label='过滤的点',
|
||||
alpha=0.6, s=100)
|
||||
color='red', marker='x', label='过滤的点')
|
||||
|
||||
# 设置图形属性
|
||||
plt.title(f"{step_name}后的GPS点\n"
|
||||
@ -85,6 +88,7 @@ class FilterVisualizer:
|
||||
plt.xlabel("东向坐标 (米)", fontsize=12)
|
||||
plt.ylabel("北向坐标 (米)", fontsize=12)
|
||||
plt.grid(True)
|
||||
plt.axis('equal')
|
||||
|
||||
# 添加统计信息
|
||||
stats_text = (
|
||||
@ -104,7 +108,8 @@ class FilterVisualizer:
|
||||
|
||||
# 保存图形
|
||||
save_name = save_name or step_name.lower().replace(' ', '_')
|
||||
save_path = os.path.join(self.output_dir, 'filter_imgs', f'filter_{save_name}.png')
|
||||
save_path = os.path.join(
|
||||
self.output_dir, 'filter_imgs', f'filter_{save_name}.png')
|
||||
plt.savefig(save_path, dpi=300, bbox_inches='tight')
|
||||
plt.close()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user