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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910159.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Mambaout替换YOLObackbone 整合全局信息,提升遮挡目标检测中定位能力,以及小目标、多尺度

近年来,Transformer 架构虽在各类任务中成为主流,但注意力机制的二次复杂度对长序列处理构成挑战。为此,类似 RNN 的模型如 Mamba 被引入,其核心是状态空间模型(SSM),旨在以线性复杂度处理长序列…

力扣网C语言编程题:接雨水(动态规划实现)

一. 简介 本文记录力扣网上的逻辑编程题,涉及数组方面的,这里记录一下 C语言实现和Python实现。 二. 力扣网C语言编程题:接雨水 题目:接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子…

关于ubuntu环境下vscode进行debug的随笔

CMakeLists.txt的编写 顶层目录的CMakelists.txt 目录:./CMakeLists.txt #./CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(xxx_project_name LANGUAGES CXX) #设置工程名# 设置 C 标准和编译选项 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_ST…

技术演进中的开发沉思-9:window编程系列-内核对象线程同步(下)

今天我们继续走进 Windows 内核的世界,就昨天没说完的内核对象与线程同步内容接着继续,它们就像精密仪器里的齿轮,虽不显眼,却至关重要。 异步设备 I/O 在 Windows 系统中,异步设备 I/O 就像是一场精心编排的接力赛。…

用AI从0开始量化交易-Anaconda环境(env)和缓存(pkg)更改储存位置

之前介绍了Anaconda的安装和环境建立,最近自己的量化交易工具开发的差不多了,却发生了尴尬的问题,C盘被不断增大的conda环境和缓存占据得快满了。 在网上找了些教程,大多是讲迁移的,专门讲改本地改储存位置的比较少&am…

Python爬虫工作基本流程及urllib模块详解

在2025年的数据驱动时代,网络数据成为企业与个人的“金矿”,而Python爬虫则是挖掘这金矿的“利器”!无论是抓取电商价格、分析社交媒体趋势,还是构建知识库,Python爬虫都能让你事半功倍。然而,爬虫开发并非…

thinkphp8 模型-一对一,一对多,多对多 学习

thinkphp 命令创建模型(和laravel基本一样) php think make:model User 在模型里创建字段 protected $table User; protected $pk id; // 定义返回哪些字段 protected $field [id, name]; // 返回字段的类型 protected $schema [id > int] 模…

非线性方程组求解:复杂情况下的数值方法

在科学研究和工程应用中,非线性方程组的求解是一个常见的挑战。尤其当方程组包含复杂函数(如特殊函数、积分、微分等),使得雅可比矩阵难以解析求导时,传统的基于解析雅可比矩阵的 Newton-Raphson 方法难以直接应用。本…

边缘计算网关EG8200Mini首发开箱视频丨破解工业互联“协议孤岛”,重塑数据价值核心引擎行业痛点直击|低代码开发

数据采集4G边缘计算网关plc 工业现场设备品牌林立(西门子、三菱、欧姆龙等30品牌PLC)、协议碎片化(Modbus/OPC UA/BACnet等)、网络环境复杂(户外无光纤、车间电磁干扰)——传统网关难以实现多源异构设备统一…

2024-2025下期《网络设备与配置》期末模拟测试

一、 单选题(每题2分,共60分) RIP协议的默认最大跳数是( ) A. 10 B. 15 C. 20 D. 30以下哪个命令可以用来在交换机上进入全局配置模式?( ) A. 使用enable命令 B. 使用configure terminal命令 C. 使用inte…

虹科案例 | 欣旺达如何实现动力电池测试的长期稳定性+自动化?

新能源汽车产业狂飙突进,动力电池测试正面临前所未有的技术大考。 传统电池测试方案常因数据丢帧、协议适配等问题,导致测试周期延长和交付延期。在这场关乎安全与效率的产业竞速中,高精度数据采集与全球化交付能力,已成为动力电…

第17天:数据库学习笔记1

数据库学习笔记 1 SQL语言介绍 2 数据库的安装 2.1 启动数据库 方式一:net start mysql 方式二:在计算机管理里面手动打开数据库 2.2 登录MySQL 方式一:本地登录 即数据库与客户端在同一台电脑上。 方式二:远程登录 mysq…

ChromaDB完全指南:从核心原理到RAG实战

一、引言:拥抱AI时代的“记忆”变革 在人工智能(AI)浪潮席卷全球的今天,大型语言模型(LLM)以其强大的自然语言处理能力,正在重塑我们与信息的交互方式。然而,LLM并非万能,它们普遍存在知识截止日期、无法访问私有数据等“记忆”短板。为了突破这一瓶颈,向量数据库应…

XCUITest + Swift 详细示例

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】

Spring Boot + MyBatis + Redis Vue3 Docker + Kubernetes + Nginx

前言 前些天发现了一个巨牛的人工智能免费学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 1.1 毕设项目需求分析(附需求文档片段) 一、项目全景与技术选型 1.1 毕设项目需求分析(附需…

【云计算领域数学基础】组合数学优化

一、组合数学优化 1.1、定义与本质特征 1.1.1、组合数学优化的核心原理 ​问题本质与数学工具​ ​组合爆炸问题​:软件输入参数、路径组合随规模指数级增长,如10个二值参数需1024个用例。组合数学通过覆盖数组(Covering Array)、…

企业文档如何变身AI语料库?无忧文档NLP+OCR技术实战解析

当企业争相采购ChatGPT、文心一言等通用大模型时,却忽略了:企业文档其实是这座数字油田的核心资产。从产品手册、客户案例到会议纪要,企业沉淀的海量文档,这些看似零散的信息,其实正通过AI技术被转化为可复用的“语料库…

掌握Python编程的核心能力,能快速读懂并上手项目开发。

掌握Python编程的核心能力,能快速读懂并上手项目开发。 一套系统且通俗的讲解,理论讲解 实战技巧 代码框架模板,让你能: 看懂Python项目结构 能自己写代码:函数、流程控制、类和模块 能写出一个完整、规范的Pytho…

「Linux文件及目录管理」硬链接与软连接

知识点解析 在Linux系统中,硬链接(Hard Link)和软链接(Symbolic Link,又称软连接)是两种不同的文件链接方式: 1.硬链接(Hard Link): 本质:硬链接是文件的一个别名,与原文件共享相同的inode和磁盘数据块。特点: 数据共享:硬链接与原文件指向同一数据块,修改任…

分清display三个属性

display 三兄弟行为对比表格 属性值是否换行能否设置宽高默认宽度常用标签典型用途block是可以撑满父容器<div>, <p>, <section>页面结构、布局容器inline否不行随内容大小<span>, <a>文字中嵌套、小图标inline-block否可以随内容大小<img&g…