当前位置: 首页 > news >正文

Python粒子群优化算法结合热力图TIFF文件案例

Python粒子群优化算法结合热力图TIFF文件案例

1. 项目概述

本项目使用粒子群优化算法(PSO)在热力图TIFF文件中寻找温度最高点。热力图通常以地理空间数据形式存储(TIFF格式),包含温度分布信息。PSO算法模拟鸟群觅食行为,通过粒子协作在搜索空间中寻找最优解。

import numpy as np
import rasterio
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
from mpl_toolkits.axes_grid1 import make_axes_locatable
import time# 创建热力图数据(模拟真实场景)
def create_heatmap_tiff(filename):x = np.linspace(-5, 5, 500)y = np.linspace(-5, 5, 500)X, Y = np.meshgrid(x, y)# 创建多峰温度分布Z = (np.sin(X)*np.cos(Y)*2 + np.exp(-((X-2)**2 + (Y-2)**2)/2) * 3 +np.exp(-((X+3)**2 + (Y+1)**2)/3) * 4 +np.exp(-((X-1)**2 + (Y+3)**2)/4) * 5)# 标准化到0-100℃范围Z = (Z - Z.min()) / (Z.max() - Z.min()) * 100# 保存为TIFFwith rasterio.open(filename,'w',driver='GTiff',height=Z.shape[0],width=Z.shape[1],count=1,dtype=Z.dtype,crs='EPSG:4326',transform=rasterio.transform.from_origin(x.min(), y.max(), x[1]-x[0], y[1]-y[0])) as dst:dst.write(Z, 1)# 生成热力图文件
create_heatmap_tiff('heatmap.tif')
2. 粒子群优化算法实现
class ParticleSwarmOptimizer:def __init__(self, objective_func, bounds, num_particles=50, max_iter=100,inertia=0.5, cognitive_param=1.5, social_param=1.5):self.objective_func = objective_funcself.bounds = np.array(bounds)self.num_particles = num_particlesself.max_iter = max_iterself.inertia = inertiaself.cognitive_param = cognitive_paramself.social_param = social_param# 初始化粒子self.particles = np.random.uniform(low=self.bounds[:, 0], high=self.bounds[:, 1], size=(self.num_particles, len(self.bounds)))self.velocities = np.zeros((self.num_particles, len(self.bounds)))self.best_positions = self.particles.copy()self.best_scores = np.full(self.num_particles, np.inf)self.global_best_position = Noneself.global_best_score = np.infself.history = []def optimize(self):for iter_num in range(self.max_iter):for i in 

相关文章:

  • 讯方“教学有方”平台获华为昇腾应用开发技术认证!
  • 【Dify学习笔记:】本地部署RagFlow适配Dify
  • 猿人学js逆向比赛第一届第九题
  • 高并发网络通信Netty之空轮询问题
  • Cargo 与 Rust 项目
  • wx.getLocation线上版本无法弹出授权框?
  • httpclient实现http连接池
  • 深入理解JVM执行引擎
  • 湖北师范大学人工智能与计算机学院电子信息研究生课程《随机过程》第一次作业
  • go语言位运算
  • OneSug:快手发布了端到端Query Suggestion生成式模型,显著提升电商场景下的查询建议能力!!
  • FPGA基础 -- Verilog 共享任务(task)和函数(function)
  • 1.22Node.js 中操作 Redis
  • 信创 CDC 实战|国产数据库的数据高速通道:OceanBase 实时入仓 StarRocks
  • 408第二季 - 组成原理 - 指令的寻址方式
  • Linux 系统中,查询 JDK 的安装目录
  • uvicorn api:app --host 0.0.0.0 --port 7777容器运行失败
  • servlet前后端交互
  • TDengine 与开源可视化编程工具 Node-RED 集成
  • 使用 OpenCV 和传统机器学习实现工业开关状态识别
  • 做网站怎样收费的/可以免费发广告的网站有哪些
  • 专做PPP项目网站/mac923水蜜桃923色号
  • 制作企业网站页面的实训报告/国际财经新闻
  • 网站建设托管/今日重点新闻
  • 做网站云服务器装系统/网络营销的五个发展阶段
  • 网站建设鼠标点击变色怎么弄/文职培训机构前十名