实验十三 生态安全评价
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 背景及目的 生态安全是生态系统完整性和健康性的整体反映,完整健康的生态系统具有调节气候净化污染、涵养水源、保持水土、防风固沙、减轻灾害、保护生物多样性等功能。维护生态安全对于人类生产、生活、健康及可持续发展至关重要。随着城市化进程的不断推进&…...
【MySQL实战45讲笔记】基础篇——redo log 和 binlog
系列文章 基础篇——MySQL 的基础架构 目录 系列文章1. 重要的日志模块:redo log 和 binlog1.1 redo log1.2 binlog1.3 执行器和 InnoDB 引擎内部如何执行更新语句 1. 重要的日志模块:redo log 和 binlog 前面系统的了解了一个查询语句的执行流程&…...
Java 基于SpringBoot+vue框架的老年医疗保健网站
大家好,我是Java徐师兄,今天为大家带来的是Java Java 基于SpringBootvue框架的老年医疗保健网站。该系统采用 Java 语言开发,SpringBoot 框架,MySql 作为数据库,系统功能完善 ,实用性强 ,可供大…...
Java集合分页
一、前言 在Java开发中,若单次展示的数据量太大,会造成程序响应缓慢,就需要用到分页功能,每一页展示一定量的数据,分多次展示 ... 那么在List集合中,如何实现分页功能呢? 本文将以3种方式&…...
python语言基础-5 进阶语法-5.5 上下文管理协议(with语句)
声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。 5.5 上下文管理协议(with语句)(参考链接࿱…...
周志华深度森林deep forest(deep-forest)最新可安装教程,仅需在pycharm中完成,超简单安装教程
1、打开pycharm 没有pycharm的,在站内搜索安装教程即可。 2、点击“文件”“新建项目” 3、创建项目,Python版本中选择Python39。如果没有该版本,选择下面的Python 3.9下载并安装。 4、打开软件包,搜索“deep-forest”软件包&am…...
技术美术百人计划 | 《2.1 色彩空间介绍》笔记
总览 一、色彩发送器 色彩认知: 光源是出生点,光源发射出光线,光线通过直射反射折射等路径最终进入人眼。 但人眼接收到光线后,人眼的细胞产生了一系列化学反应。 由此把产生的信号传入大脑,最终大脑对颜色产生了认…...
设计模式:6、装饰模式(包装器)
目录 0、定义 1、装饰模式包含的四种角色 2、装饰模式的UML类图 3、示例代码 0、定义 动态地给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。 1、装饰模式包含的四种角色 抽象组件(Component):抽象组件是一个抽象…...
vue-office:word(.docx)、pdf、excel(.xlsx,.xls)格式文件预览
vue-office:word(.docx)、excel(.xlsx,.xls)格式文件预览 组件安装 // docx文档预览组件 npm install vue-office/docx vue-demi0.14.6// excel文档预览组件 npm install vue-office/excel vue-demi0.14.…...
简单工厂模式
简单工厂模式详解 定义 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,用于创建对象的实例。通过一个工厂类来决定实例化哪一个具体类,降低客户端与具体类之间的耦合。 对于长switch或者长if、else,且…...
得物彩虹桥架构演进之路-负载均衡篇
文 / 新一 一、前言 一年一更的彩虹桥系列又来了,在前面两期我们分享了在稳定性和性能2个层面的一些演进&优化思路。近期我们针对彩虹桥 Proxy 负载均衡层面的架构做了一次升级,目前新架构已经部署完成,生产环境正在逐步升级中…...
【大数据学习 | Spark-Core】spark-shell开发
spark的代码分为两种 本地代码在driver端直接解析执行没有后续 集群代码,会在driver端进行解析,然后让多个机器进行集群形式的执行计算 spark-shell --master spark://nn1:7077 --executor-cores 2 --executor-memory 2G sc.textFile("/home/ha…...
macos 使用 nvm 管理 node 并自定义安装目录
系统环境:MacOS Version 参考文章: Github 地址:https://github.com/nvm-sh/nvm 安装的方式是很简单的,直接执行下面的命令即可: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bas…...
MongoDB分片集群搭建
什么是分片 分片是一种跨多台机器分布数据的方法。MongoDB 使用分片来支持超大数据集和高吞吐量操作的部署。什么情况下使用分片 存储容量受单机限制,即磁盘资源遭遇瓶颈。读写能力受单机限制,可能是CPU、内存或者网卡等资源遭遇瓶颈,导致读…...
MySQL数据库基础
1.数据库的操作 1.1 显示当前数据库 show databses; 1.2 创建数据库 create database [if not exist] db_name; 创建名为db_test1的数据库 create database db_test1; 说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集;utf8,校验规则是 utf8_general_c…...
前端性能优化
前端性能优化是提升用户体验的重要环节,优化的目标是减少页面加载时间、提高交互响应速度、降低资源消耗。以下从 加载性能优化、渲染性能优化 和 交互性能优化 三个维度详细说明: 一、加载性能优化 目标是减少页面首次加载时间,提升页面的加…...
深度学习中的正则化技术
在深度学习中,正则化是一种防止模型过拟合的重要手段。过拟合是指模型在训练数据上表现良好,但在未见数据上表现不佳的现象。正则化通过引入额外的约束或信息来限制模型的复杂性,从而提高模型的泛化能力。本文将介绍几种常见的正则化技术&…...
工商银行湖仓智一体创新应用实践
数智技术已经成为企业数字化转型的核心动力 国家《“十四五”数字经济发展规划》指出数字经济是未来的主要经济形态,数据因其倍增效应和乘数效应,可以带来全要素效率的提升,已经成为数字经济的核心要素资源,是企业数字化转型的新要素、新动能。为了高质量推进企业数字化转…...
测试实项中的偶必现难测bug之模糊匹配逻辑
问题: 现在有一个场景,如果只是通过功能测试会比较难测,例如刚开始我们做会员的时候,只有白银会员,在用户分群的场景下,需要用条件逻辑匹配,当时开发用了like的匹配方式没有问题。1年后加了白银试用会员,导致在统计会员分群的时候明明条件选的是白银会员,但是统计的数…...
金融科技白皮书:2022-2023年度回顾与前瞻
在金融科技领域,2022至2023年见证了一系列创新技术的应用和发展。本白皮书将回顾过去一年的主要成就,并展望未来一年的发展趋势。 2022年亮点回顾 **低代码平台:**低代码平台通过高度抽象化和自动化的可视化过程,简化了应用程序开…...
40分钟学 Go 语言高并发:sync包详解(下)
sync包详解(下) 学习目标 知识点掌握程度应用场景WaitGroup使用熟练使用和理解原理并发任务的同步等待Once实现原理理解底层实现和使用场景单例模式、一次性初始化Pool性能优化掌握对象池的使用和调优高并发下的内存优化Cond应用场景了解条件变量的使用…...
android 使用MediaPlayer实现音乐播放--权限请求
在Android应用中,获取本地音乐文件的权限是实现音乐扫描功能的关键步骤之一。随着Android版本的不断更新,从Android 6.0(API级别23)开始,应用需要动态请求权限,而到了android 13以上需要的权限又做了进一步…...
空间计算、物理计算、实时仿真与创造拥有「自主行为」的小狗 | 播客《编码人声》
「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。 虚拟世界与现实世界的界限逐渐模糊,已然成为不争的事实。但究竟哪些曾经的幻想已然…...
Day24 回溯算法part03
93.复原IP地址 本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 题目链接/文章讲解:代码随想录 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili class Solution {private List<String> resul…...
PyTorch:如何使用TensorBoard优化和监控深度学习模型
如何使用TensorBoard优化和监控深度学习模型 为了提供一个更加详细和完整的指南关于如何使用 TensorBoard 进行深度学习模型的监控与优化,我们将从TensorBoard的基础知识开始,一步步探讨如何设置和利用其各项功能。 1. TensorBoard简介与基本架构 Ten…...
FastAPI重载不生效?解决PyCharm中Uvicorn无法重载/重载缓慢的终极方法!
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 重载缓慢 📒📝 问题概述🚨 相关原因📝 解决方案一📝 解决方案二📝 解决方案三📝 解决方案四⚓️ 相关链接 ⚓️📖 介绍 📖 在使用FastAPI开发时,reload=True 本应让你在修改代码后自动重启服务,提升开发效率…...
利用 GitHub 和 Hexo 搭建个人博客【保姆教程】
利用 GitHub 和 Hexo 搭建个人博客 利用 GitHub 和 Hexo 搭建个人博客一、前言二、准备工作(一)安装 Node.js 和 Git(二)注册 GitHub 账号 三、安装 Hexo(一)创建博客目录(二)安装 H…...
【无标题】
通过shell脚本分析部署nginx网络服务 1.接收用户部署的服务名称 2.判断服务是否安装 已安装;自定义网站配置路径为/www;并创建共享目录和网页文件;重启服务 没有安装;安装对应的软件包 3.测试 判断服务是否成功运行&a…...
金融数据中心容灾“大咖说” | 美创科技赋能“灾备一体化”建设
中国人民银行发布的《金融数据中心容灾建设指引》(JR/T 0264—2024)已于2024年7月29日正式实施。这一金融行业标准对金融数据中心容灾建设中的“组织保障、需求分析、体系规划、建设要求、运维管理”进行了规范和指导。面对不断增加的各类网络、业务、应…...
数据集-目标检测系列- 荷花 莲花 检测数据集 lotus>> DataBall
数据集-目标检测系列- 荷花 莲花 检测数据集 lotus>> DataBall DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集可视化项…...
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
1.实验目的 通过课堂理论学习与实验课的实际操作,充分理解视图的相关概念,作用,以及特点,视图中定义的是对一个或多个基本表的查询语句,其本身并不保存数据,所有的数据都存储在数据库的表中,因…...
jetson orin系列开发版安装cuda的gpu版本的opencv
opencv安装包下载地址: https://github.com/opencv/opencv/扩展库下载地址: https://github.com/opencv/opencv_contrib1. 删除jetpack包中的opencv版本 原先的opencv库安装在目录/usr/lib/aarch64-linux-gnu/下(一般其他的第三方库也都安…...
android 使用SQLiteOpenHelper 如何优化数据库的性能
一、数据库设计优化 (Schema Design): 这是性能优化的基础。一个精心设计的数据库结构可以显著提高查询速度和减少存储空间。 范式化 (Normalization): 遵循数据库范式,特别是第一范式、第二范式和第三范式,可以消除数据冗余。冗余数据不仅浪费存储空间…...
海盗王集成网关和商城服务端功能golang版
之前用golang把海盗王的商城服务端和网关服务端都重写了一次。 后来在同时开启网关和商城服务时,发现窗口数量有点多,有时要找到商城窗口比较麻烦。 既然2个都是用golang govcl写的,是不是可以集成到一起,方便使用呢?…...
『大模型笔记』IBM技术团队:AI智能体与AI助手功能对比!
『大模型笔记』IBM技术团队:AI智能体与AI助手功能对比! 文章目录 一. 『大模型笔记』IBM技术团队:AI智能体与AI助手功能对比!AI 助手与 AI 智能体的角色类比AI 助手的特点与性能优化AI 智能体的自主性AI 助手与智能体的用例比较AI 技术的局限性与改进AI 未来发展趋势与协同…...
LeetCode 每日一题 2024/11/18-2024/11/24
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/18 661. 图片平滑器11/19 3243. 新增道路查询后的最短距离 I11/20 3244. 新增道路查询后的最短距离 II11/21 3248. 矩阵中的蛇11/22 3233. 统计不是特殊数字的数字数量1…...
n、nvm、nrm、pnpm、yarn各种指令大全
n mac的版本管理工具(可能与nvm冲突) 安装 # 使用 npm / yarn npm i -g n yarn global add n # 使用 brew brew install n环境变量 export PATH"/usr/local/n/versions/node:$PATH"命令详解 版本查看 # 查看 n 版本 n --version/-V # 查…...
详细描述一下Elasticsearch索引文档的过程?
大家好,我是锋哥。今天分享关于【详细描述一下Elasticsearch索引文档的过程?】面试题。希望对大家有帮助; 详细描述一下Elasticsearch索引文档的过程? Elasticsearch的索引文档过程是其核心功能之一,涉及将数据存储到…...
【shell编程】shell基础之for与while循环
shell基础(五) 声明:该笔记为up主 泷羽的课程笔记,本节链接指路。 警告:本教程仅作学习用途,若有用于非法行为的,概不负责。 for循环 for循环用于遍历一系列的值,通常为一个列表或…...
C++多线程编程入门教程(优质版)
一、引言 在当今的软件开发领域中,多线程编程的重要性日益凸显。它已然成为充分挖掘现代多核处理器性能、提升程序效率与响应速度的关键技术。C 作为一门强大的编程语言,其丰富的多线程编程工具和技术为开发者提供了广阔的施展空间。本文将引领读者踏入 …...
Spring监听的使用、原理、源码分析
一、原理分析 Spring监听的核心原理就是观察者模式。本文将对应观察者模式分析Spring监听的使用和原理。文章较长,跳转记得使用文章右边的目录。 1.1,观察者模式的组成 1,Subject:目标,即被观察者 维护了观察者列表&am…...
CSS布局学习2
flex布局中span会改变行为 在使用 Flex 布局时,盒子中的子元素(如 span)会自动成为 Flex 项目,并参与 Flex 布局的计算。具体原因如下: Flex 容器:当一个元素设置为 display: flex; 时,它会变…...
Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(三)
本篇紧跟第一篇, 和 第二篇无关 Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案 Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二) 先说需求: 某业务配置表,按配置的时间区间及组织层级取方…...
Spring Cloud Netflix 系列:Eureka 经典实战案例和底层原理解析
文章目录 前言Eureka 简介架构设计工作流程 项目 demo 构建Eureka Server 的搭建Eureka Client 的配置补充说明 运行效果 深入使用Eureka 注册中心添加认证搭建 Eureka 集群实现高可用双节点集群搭建 运行效果补充说明为什么要配置 不同host 原理解析服务注册、心跳续期详细流程…...
ElasticSearch学习篇17_《检索技术核心20讲》最邻近检索-局部敏感哈希、乘积量化PQ思路
目录 场景在搜索引擎和推荐引擎中,对相似文章去重是一个非常重要的环节,另外是拍照识花、摇一摇搜歌等场景都可以使用它快速检索。 基于敏感性哈希的检索更擅长处理字面上的相似而不是语义上的相似。 向量空间模型ANN检索加速思路 局部敏感哈希编码 随…...
2024亚太杯国际赛C题参考文章50页+完整解题思路+数据处理+最终结果
中国宠物食品行业的发展趋势与汇率情景分析:基于多模型的量化预测与决策分析 一 、 摘要 本文针对宠物产业及相关产业的发展分析问题,采用多种数学建模方法和数据 分析技术,构建了一系列预测和评估模型。从宠物数量预测、全球市场分析、产业 …...
推荐几个 VSCode 流程图工具
Visual Studio Code(简称VSCode)是一个由微软开发的免费、开源的代码编辑器。 VSCode 发布于 2015 年,而且很快就成为开发者社区中广受欢迎的开发工具。 VSCode 可用于 Windows、macOS 和 Linux 等操作系统。 VSCode 拥有一个庞大的扩展市…...
渗透测试笔记——shodan(4)
声明: 学习视频来自B站up主 【泷羽sec】有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&am…...
一次封装,解放双手:Requests如何实现0入侵请求与响应的智能加解密
引言 之前写了 Requests 自动重试的文章,突然想到,之前还用到过 Requests 自动加解密请求的逻辑,分享一下。之前在做逆向的时候,发现一般医院的小程序请求会这么玩,请求数据可能加密也可能不加密,但是返回…...
c++中操作数据库的常用函数
在C中操作数据库,尤其是MySQL数据库,主要通过MySQL提供的C API或MySQL Connector/C库来实现。这些库提供了一系列的函数,使得开发者能够在C应用程序中执行数据库的连接、查询、更新、删除等操作。以下是C中操作MySQL数据库的一些常用函数&…...