实验十三 生态安全评价
1 背景及目的
生态安全是生态系统完整性和健康性的整体反映,完整健康的生态系统具有调节气候净化污染、涵养水源、保持水土、防风固沙、减轻灾害、保护生物多样性等功能。维护生态安全对于人类生产、生活、健康及可持续发展至关重要。随着城市化进程的不断推进,生态系统受到来自人类社会日益严重的威胁,保障生态安全作为迫切的社会需求已经成为人类社会可持续发展面临的新主题。因此,对区域生态安全水平进行评价,为改善区域生态问题的对策与措施提供参考具有重要的现实意义。
通过本实验希望能够达到以下目的:
①掌握生态安全评价指标体系的构建与计算
②掌握景观指数移动窗口计算方法
③掌握突变模型在指标集成中的应用
2 实验步骤
2.1 数据的预处理
2.1.1 设置工作空间
添加数据:

地理处理-->环境设置:

对工作空间进行设置主要为方便管理过程中产生的数据,也方便自己找得到想要用的数据,更改到当前实验文件夹:

2.1.2 栅格数据的统一处理:栅格重采样
数据管理工具-->栅格--栅格处理-->重采样
这一步骤的作用在于本实验的统一栅格数据为10000m精度,但原数据土地利用数据为30m,因此采用重采样工具对土地利用数据进行处理,将分辨率更改为1000×1000:


2.2 生态服务能力指标计算
不同土地利用类型对应不同生态服务价值系数,利用重分类工具更改栅格中的值:
Spatial Analyst 工具-->重分类-->重分类
更改后如图:

2.3 生态敏感性指标计算
2.3.1 距道路距离的计算
Spatial Analyst 工具-->距离-->欧氏距离

在环境中对输出范围和坐标系进行设置:

结果(我也不懂为什么图是歪的):

以区域面数据为范围对得到的距道路距离栅格进行提取:
Spatial Analyst 工具-->提取分析-->按掩膜提取:

2.3.2 距城市距离
这一步骤可以得到土地利用的矢量数据,转换工具-->由栅格转出-->栅格转面:

右键打开土地利用类型的属性表,按属性筛选出对应值为80的数据:

将刚才选中的数据导出:


对图层进行编辑:
选择面积较大的部分作为城市区域,再将其他区域进行删除,最后保存编辑结果:

打开建设用地属性表,刚才选择的地区都会进行高亮显示,然会选择结果进行反选删除不要的数据:



继续利用欧氏距离和按掩膜提取将处理过的建设用地设为输入栅格数据,得出距城市距离栅格数据结果:


结果:

右键属性调整一下色带:

结果:

2.3.3 植被覆盖
对土地利用数据进行重分类:Spatial Analyst 工具-->重分类-->重分类

结果:
2.3.4 坡度
Spatial Analyst 工具-->表面分析-->坡度

结果:

右键土地利用,导出数据:


2.4 生态组织架构
打开fragstats,把上一步生成的文件导入:


创建一个记事本文件,文件后缀为fcd,输入如下内容,老实英文状态下手敲,不要文字识别,容易后面运行报错:

导入:

设置分析参数:


勾选景观指数:


运行:


报错了,查看下日志:

Error: No level selected for the analysis, please select at least one level.
提示没有为分析选择级别,倒回去看步骤,发现确实少勾选每一个条件:

再次运行,成功了,系统字自动生成一个文件夹:

文件位置:


由于在Fragstats中空值会显示为-999,为不影响归一化结果,需要用“栅格计算器将空值去除
先把Fragstats中生成的6个景观指数加载进ArcMap:

利用栅格计算器去除计算出现的异常值:
Spatial Analyst 工具-->地图代数-->栅格计算器

另外五个都是同样的操作:






2.5 突变模型
利用突变模型对指标体系进行架构
2.5.1 剔除水体
打开土地利用类型属性表,筛选出水体对应值为60的:


右键图层将水体数据导出:

取消上一步的选择:

使用分析工具中的擦除,将水体数据从土地利用数据中擦除:
分析工具-->叠加分析-->擦除



利用区域面的范围对得到的土地利用类型进行裁剪:
分析工具-->提取分析-->裁剪

批量处理14个指标数据--->按掩膜提取
Spatial Analyst 工具-->提取分析-->按掩膜提取


2.5.2 指标归一化
打开python:

写入代码前需要知道哪些是正向指标,哪些是负向指标,二者代码存在区别:

我按上图顺序将代码附上:
注意正向指标与负向指标的公式语句存在差别,代码我也分开放了:
//1 NDVI1 正向
import arcpy
from arcpy import env
from arcpy.sa import *rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_NDVI1.tif"//需要归一化的数据所在位置,一定是上一步进行掩膜提取后的数据
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\NDVI.tif"//归一化后的数据存放位置maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)NormalizedRaster=(Raster(rawRaster)-float(minValue))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:0.89999997615814 原栅格最小值:0.11599999666214//2 NPP2 正向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_NPP2.tif"//NNP2
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\NPP2.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(Raster(rawRaster)-float(minValue))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:2049.6000976563 原栅格最小值:0//3 生态服务价值 正向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_Land_se1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\生态服务价值.tif" maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(Raster(rawRaster)-float(minValue))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:3149 原栅格最小值:0//4 距城市距离 正向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_城市距离掩膜提1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\距城市距离.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(Raster(rawRaster)-float(minValue))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:60373.8359375 原栅格最小值:0//5 距道路距离 正向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_Extract1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\距道路距离.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(Raster(rawRaster)-float(minValue))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:20396.078125 原栅格最小值:0//6 植被覆盖 正向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_植被覆盖1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\植被覆盖.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(Raster(rawRaster)-float(minValue))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:4 原栅格最小值:0//14 斑块连通度 正向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_斑块连接度co1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\斑块连通度.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(Raster(rawRaster)-float(minValue))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:100 原栅格最小值:20.166975021362
//7 降雨量 负向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_降雨量1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\降雨量.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(float(maxValue)-Raster(rawRaster))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:13948.84375 原栅格最小值:11076.044921875//8 坡度 负向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_Slope_D1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\坡度.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(float(maxValue)-Raster(rawRaster))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:30.61713218689 原栅格最小值:0//9 斑块密度 负向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_板块破碎度1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\斑块密度.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(float(maxValue)-Raster(rawRaster))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:0.77777779102325 原栅格最小值:0.11111111193895//10 边缘密度 负向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_边缘密度ED1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\边缘密度.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(float(maxValue)-Raster(rawRaster))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:13.333333015442 原栅格最小值:0//11 面积加权平均形状指数 负向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_面积平均加权形1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\面积加权平均形状指数.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(float(maxValue)-Raster(rawRaster))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:2 原栅格最小值:1//12 香农多样性指数 负向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_香农多样性SH1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\香农多样性.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(float(maxValue)-Raster(rawRaster))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:1.6769877672195 原栅格最小值:0//13 斑块平均距离 负向
import arcpy
from arcpy import env
from arcpy.sa import *
rawRaster="E:\\DengSL zuoye\\exp13\\exp13\\data_exp13\\Extract_斑块平均距离E1.tif"
NormalizedRasterpath="E:\\DengSL zuoye\\exp13\\guiyihua\\斑块平均距离.tif"
maxValueDS=arcpy.GetRasterProperties_management(rawRaster,"MAXIMUM")
maxValue=maxValueDS.getOutput(0)
print"原栅格最大值:"+str(maxValue)
minValueDS=arcpy.GetRasterProperties_management(rawRaster,"MINIMUM")
minValue=minValueDS.getOutput(0)
print"原栅格最小值:"+str(minValue)
NormalizedRaster=(float(maxValue)-Raster(rawRaster))/(float(maxValue)-float(minValue))
NormalizedRaster.save(NormalizedRasterpath)
print"归一化成功!"
//我的结果:原栅格最大值:2828.4272460938 原栅格最小值:0
2.5.3 突变模型
突变模型对于不同数量变量有不同的归一化公式


观察上面两个图,先算B级指数,即活力B1、经济压力B3、自然生态B4、景观破碎度B5、景观连通度B6。
如何去计算这几个指数?则根据指标数量(控制变量数量)来带入公式,此处以景观破碎都B5为例,由图可知景观破碎度B5具有斑块密度C9、边缘密度C10、面颊加权平均形状指数C11、香浓多样性指数C12这四个控制变量,那么带入的公式为:
接下来打开栅格计算器:
Spatial Analyst 工具-->地图代数-->栅格计算器

结果:

以此类推得活力B1:


社会经济压力B3:


自然生态B4:


景观连通度B6:


生态服务能力:

生态敏感性A2:




生态安全指数:


所有数据计算完毕,调整细节出图:


相关文章:
实验十三 生态安全评价
1 背景及目的 生态安全是生态系统完整性和健康性的整体反映,完整健康的生态系统具有调节气候净化污染、涵养水源、保持水土、防风固沙、减轻灾害、保护生物多样性等功能。维护生态安全对于人类生产、生活、健康及可持续发展至关重要。随着城市化进程的不断推进&…...
二级等保要求及设备有哪些?
《网络安全法》规定我国信息系统实际等级保护制度,不同等保等级要求不同: 二级等保(指导保护级):等级保护对象受到破坏后,会对公民、法人和其他组织的合法权益产生严重损害,或者对社会秩序和公…...
无人机的动力系统节能——CKESC电调小课堂12
1.优化电机和螺旋桨配置 精准匹配:根据无人机的设计用途和负载要求,精确选择电机和螺旋桨。确保电机的功率、扭矩等参数与螺旋桨的尺寸、螺距等完美匹配。例如,对于轻型航拍无人机,选用功率合适的小尺寸电机搭配高效的小螺旋桨&a…...
人机打怪小游戏(非常人机)
按q攻击 按箭头进行控制 玩家是 怪是* 攻击是^ #include<bits/stdc.h> #include<Windows.h> #include<conio.h> #define fr(i,a,b) for(int ia;i<b;i) #define rd(a,b) rand()%(b-a1)a using namespace std; int x16,y21,dx[4]{-1,0,1,0},dy[4]{0,…...
SpringBoot 集成 Sharding-JDBC(一):数据分片
在深入探讨 Sharding-JDBC 之前,建议读者先了解数据库分库分表的基本概念和应用场景。如果您还没有阅读过相关的内容,可以先阅读我们之前的文章: 关系型数据库海量数据存储策略-CSDN博客 这篇文章将帮助您更好地理解分库分表的基本原理和实现…...
django-ninja 实现cors跨域请求
要在Django-Ninja项目中实现跨域(CORS),你可以使用django-cors-headers库,这是一个专门用于处理跨域资源共享(CORS)问题的Django应用程序。以下是具体的步骤和配置: 安装依赖: 使用p…...
【论文阅读】InstructPix2Pix: Learning to Follow Image Editing Instructions
摘要: 提出了一种方法,用于教导生成模型根据人类编写的指令进行图像编辑:给定一张输入图像和一条书面指令,模型按照指令对图像进行编辑。 由于为此任务获取大规模训练数据非常困难,我们提出了一种生成配对数据集的方…...
常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433
CSM2433是一款集成2.4GHz频段发射器、125KHz接收器和8位RISC(精简指令集)MCU的SOC芯片,用在汽车PKE无钥匙进入系统里。 什么是汽车PKE无钥匙进入系统? 无钥匙进入系统具有无钥匙进入并且启动的功能,英文名称是PKE&…...
【第四课】rust声明式宏理解与实战
目录 前言 理解宏 实战宏 前言 上一课在介绍vector时,我们再一次提到了rust中的宏,在初始化vector时使用了vec!宏,当时补了一句有机会会好好说明一下rust中的宏,并且写一个hashmap宏来初始化hashmap。想了想一直介绍基本语法还…...
渗透测试--Linux下的文件传输方法
渗透测试过程中,我们经常会需要文件传输,本文主要探讨Linux主机上我们对文件传输的方法。 编码方式 Linux 检查MD5 md5sum id_rsa Linux Base64 编码/解码 编码 cat id_rsa |base64 -w 0;echo 解码 echo -n LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVE…...
浅议Flink中的通讯工具: Akka
在Flink中,各个组件之间需要频繁交换数据和控制信息。Flink选择了基于Actor模型的Akka框架作为通信基础。 Akka是什么 Actor模型 Actor模型是用于单个进程中并发的场景。 在Actor模型中: ActorSystem负责管理actor生命周期 将每个实体视为独立的 Ac…...
基于YOLOv8深度学习的独居老人情感状态监护系统(PyQt5界面+数据集+训练代码)
本研究提出了一种创新的独居老人情感状态监护系统,基于YOLOV8深度学习模型,旨在通过对老年人面部表情的实时监测与分析,来精准识别其情感变化,从而提高独居老人的生活质量,确保其心理健康。本系统通过整合先进的YOLOV8…...
Qt添加外部库:静态库和动态库,批量添加头文件
Qt添加外部库需要知道库文件的位置才能正确链接,如果是静态库,要确保LIBS变量中包含正确的库文件路径和库文件名;如果是动态库,除了库路径外,还需要考虑动态库的加载路径。在 Windows 下,可以将动态库所在路径添加到系…...
Unity类银河战士恶魔城学习总结(P132 Merge skill tree with skill Manager 把技能树和冲刺技能相组合)
【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了解锁技能后才可以使用技能,先完成了冲刺技能的锁定解锁 Dash_Skill.cs using System.Collections; using System…...
Docker入门之Windows安装Docker初体验
在之前我们认识了docker的容器,了解了docker的相关概念:镜像,容器,仓库:面试官让你介绍一下docker,别再说不知道了 之后又带大家动手体验了一下docker从零开始玩转 Docker:一站式入门指南&#…...
DNS实验作业
实验要求 1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器,对主dns服务器进行数据备份。 实验步骤: 1.关闭防护墙 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2.正向解析 [rootlo…...
CSS回顾-CSS选择器详解
一、引言 我来填坑啦!之前在CSS基础知识详解中介绍过,CSS 是一门基于规则的语言。是由选择器与样式信息组成:选择器 {样式信息}。CSS 选择器是 CSS 规则的关键,能精准定位 HTML 元素,CSS3 新增选择器更是增强了设计能…...
FFMPEG录像推流时遇到的问题
FFMPEG录像推流时遇到的问题,记录一下供大参考 1. ret avformat_write_header( ofmt_ctx, NULL ); 执行写入头后,所有的流的时间基都会被内部重新设置,所以并不你想象的把原来的时间直接入到avPACKET中就可以发送了。必须要把你每个流的P…...
【STM32+K210项目】基于K210智能人脸识别+车牌识别系统(完整工程资料源码)
运行效果: 基于K210的智能人脸与车牌识别系统工程 目录: 运行效果: 目录: 前言: 一、国内外研究现状与发展趋势 二、相关技术基础 2.1 人脸识别技术 2.2 车牌识别技术 三、智能小区门禁系统设计 3.1 系统设计方案 3.2 系统设计目标 3.3 智能小区门禁系统硬件设计 3.3.1 控…...
Unity脚本基础规则
Unity脚本基础规则 如何在Unity中创建一个脚本文件? 在Project窗口中的Assets目录下,选择合适的文件夹,右键,选择第一个Create,在新出现的一栏中选择C# Script,此时文件夹内会出现C#脚本图标,…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果2. 绑定本地地址和端口&#x…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
