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

【Hydro】部分基流分割方法及程序代码说明

目录

  • 说明
  • 一、数字滤波法
    • 单参数数字滤波
      • Lyne-Hollick滤波法
      • Chapman滤波法
      • Chapman-Maxwell滤波法
      • Boughton-Chapman滤波法
    • 双参数滤波法
      • Eckhardt滤波法
  • 二、其他基流分割方法
    • 基流指数(BFI)法
    • 时间步长(HYSEP)法
    • PART法
    • 加里宁-阿里巴扬基流估算改进方法
  • 三、计算程序及代码
    • SWAT Baseflow Program基流计算程序
      • 基本原理
      • Baseflow输入输出文件
    • Lyne-Hollick滤波法Python代码
    • grwat中的基流分割方法
  • 参考文献

说明

径流分为直接径流和基流,直接径流退水快而陡,基流退水慢而平缓。基流是指来源于地下水的径流,在枯水季节是径流的主要组成部分。基流相对稳定,对于维持河流生态、保障流域生产生活用水以及水环境保护具有重要的意义。
基流分割方法根据基流计算的原理, 分为图解法、 物理化学法、 数学物理法、 水文模型法和数值模拟法。常用的数值模拟法有数字滤波法、 BFI法、 HYSEP法、 PART法和加里宁法。

一、数字滤波法

数字滤波法利用数字滤波器将径流过程划分为直接径流和基流两个部分。直接径流代表快速响应特征,与数字信号中的高频部分相似,而基流代表慢速响应特征,与数字信号中的低频部分相似。该方法包括单参数滤波法和双参数滤波法(又称递归数字滤波法)。

单参数数字滤波

Lyne-Hollick滤波法

Lyne-Hollick滤波法由Lyne和Hollick于1979年首次提出, 并由Nathan和Mcmahon于1990年引入到水文中进行基流分割, 其基流分割方程为:
在这里插入图片描述

Chapman滤波法

Chapman 于1991年对Lyne-Hollick滤波法进行了改进, 提出了Chapman滤波法, 改进后的基流分割方程为:
在这里插入图片描述

Chapman-Maxwell滤波法

Chapman和Maxwell于1996把基流假定为同时刻的地表径流和前一时刻基流的加权平均, 提出了Chapman-Maxwell滤波法, 基流分割方程如下:
在这里插入图片描述

Boughton-Chapman滤波法

为使基流分割更为平滑, Boughton于1993年提出Boughton-Chapman滤波法, 基流分割方程为:
在这里插入图片描述

双参数滤波法

Eckhardt滤波法

Eckhardt在单参数的基础上提出了一种双参数数字滤波方法,包含2个滤波参数(退水常数α和最大基流指数BFImax), 方法更加灵活准确, 其计算如式所示:
在这里插入图片描述MRC方法可用BASEFLOW程序实现,双参数方法相对于单参数方法的优势在于可以通过调节 B F I m a x BFI_{max} BFImax来修改基流过程。 B F I m a x BFI_{max} BFImax不是一个可观测的量,Eckhardt给出了推荐值:对于常年性排水流域为0.8,对于季节性排水流域为0.5,对于常年性排水但是硬质基岩的流域为0.25。需要指出的是,当 B F I m a x BFI_{max} BFImax为0.5时,双参数和单参数数字滤波方法等价。

二、其他基流分割方法

基流指数(BFI)法

基流指数(BFI)法又称最小滑动法, 该方法以基流指数为权系数来计算基流量, 在区域枯季径流的研究中, 该值可反映区域地下水资源量的参数。通常情况下, 主要由地下水补给的河流BFI接近1, 而季节性河流的BFI值趋近0。

BFI法是英国水文所 (Institute of Hydrology) 提出的一种基流分割方法,又叫最小滑动法。其原理为:首先将年流量过程按照给定的时间间隔N分割为m(m=365/N) 段,确定每段的最小流量序列 (q1,q2,…,qm);然后从中确定拐点 (如果满足kqt小于qt-1和qt+1,则qt为拐点)。最后将所有的拐点连接得到基流过程,拐点之间的基流则通过线性插值得到。如果某时刻基流超过总径流,则将该时刻基流修改为总径流量。在实际分割中,通常k取值0.9或者0.979能得到较好的效果。此外,在地下水分析中基流指数BFI (一般以年或者多年为统计时期) 是反映流域特性的一个重要特征量,其定义为统计时期内基流所占总径流的比。

时间步长(HYSEP)法

Petty John和Henning于1979年提出了HYSEP程序, 此方法首次实现了基流计算的程序。HYSEP法是美国地质调查局(USGS)使用的主要基流计算方法。HYSEP法有固定步长法、 滑动步长法和局部最小值法3种方式。固定步长法(Fixed interval), 在上述所选取的时间间隔内, 将该时间间隔内的最小流量作为该时段内任意一天的基流。滑动步长法(Sliding interval), 将某天前后(2N-1)/2d内的最小流量作为该天的基流, 由此计算出每一天的基流。局部最小值法(Local minimum), 选择时间步长内中心点前后(2N-1)/2d内的最小流量作为相邻时间步长内中心点的基流值, 然后通过线性内插得到步长中心点之外时段的基流。3种方法均以本次计算的终点作为下次时间的起点, 重复以上过程便可计算出基流分割过程。

PART法

PART是美国地质调查局(USGS)提出的用于分割基流的另一种计算机程序, PART法适用于以谷地泻流方式排泄或测站位于下游终点的河流, 所需径流资料不少于一个水文年。该方法以日流量为数据源, 基于前期径流消退进行分割。这种方法首先将日平均流量数据排列成单维数组, 然后在数组中选择符合前期衰退要求的日值, 在符合条件的这些天数中, 如果日衰退量小于0.1个对数周期, 日径流量值即作为基流量, 在其余的日期中, 基流值则通过线性插值的方法来获得。

加里宁-阿里巴扬基流估算改进方法

基于水量平衡原理, 加里宁提出了基流的分割方法, 杨远东和陈利群等对其进行改进。实际资料表明, 改进的方法避免了地下水流量过程估算的任意性, 且减少了计算工作量, 所得成果是合理的, 方法是简易可行的。其估算方程为:
在这里插入图片描述

三、计算程序及代码

SWAT Baseflow Program基流计算程序

基本原理

该程序使用递归滤波技术来分离基本流量,并计算流量衰退常数(α),SWAT官网包含该程序的下载链接。SWAT Bflow程序的算法参照Arnold和Allen等人提出的单参数数字滤波方法,其滤波方程为:
在这里插入图片描述
滤波器可以在流量数据上通过三次(正向、反向和正向),这取决于用户从流量数据的试点研究中选择的基本流量估计值。通常,每次通过都会导致基本流量占总流量的百分比减少。对于所分析的数据,显示基流的最高、最低和平均减少量。此选项为用户提供了更多的灵活性,可以调整分离,以更准确地接近现场条件。可以参考相关论文,以及实际情况选择合适的通道。

根据base flow源代码,Baseflow 中3个通道(Bflow Pass1、2、3),的基流计算代码如下:

!! perform passes to calculate base flow
f1 = 0.925
f2 = 0.
f2 = (1. + f1) / 2.
surfq(1) = strflow(1) * .5
baseq(1,1) = strflow(1) - surfq(1)
baseq(2,1) = baseq(1,1)
baseq(3,1) = baseq(1,1)
!! make the first pass (forward)    
do i = 2, isumdsurfq(i) = f1 * surfq(i-1) + f2 * (strflow(i) - strflow(i-1))if (surfq(i) < 0.) surfq(i) = 0.baseq(1,i) = strflow(i) - surfq(i)if (baseq(1,i) < 0.) baseq(1,i) = 0.if (baseq(1,i) > strflow(i)) baseq(1,i) = strflow(i)
end do!! make the second pass (backward)     
baseq(2,isumd - 1) = baseq(1,isumd - 1)
do i = isumd - 2, 1, -1surfq(i) = f1 * surfq(i+1) + f2 * (baseq(1,i) - baseq(1,i+1))if (surfq(i) < 0.) surfq(i) = 0.baseq(2,i) = baseq(1,i) - surfq(i)if (baseq(2,i) < 0.) baseq(2,i) = 0.if (baseq(2,i) > baseq(1,i)) baseq(2,i) = baseq(1,i)
end do!! make the third pass (forward)    
baseq(3,isumd - 1) = baseq(1, isumd - 1)
do i = 2, isumdsurfq(i) = f1 * surfq(i-1) + f2 * (baseq(2,i)- baseq(2,i-1))if (surfq(i) < 0.) surfq(i) = 0.baseq(3,i) = baseq(2,i) - surfq(i)if (baseq(3,i) < 0.) baseq(3,i) = 0.if (baseq(3,i) > baseq(2,i)) baseq(3,i) = baseq(2,i)
end do

Baseflow输入输出文件

输入文件主要是参数文件file.lst、流量序列文件xxxxxxxx.prn。

对于file.lst,文件内容如下,对于第2-4行的变量,程序不要求数字位于该行的某个位置。但是,数字必须是行上的第一个数字,后面必须有一个空格,以将其与行上写的任何其他内容隔开。
在这里插入图片描述
文件变量格式为
在这里插入图片描述
NDMIN,用于计算地下水衰退方程中 alpha 值的最小天数。NDMIN 的默认设置为 10。
NDMAX,用于计算地下水衰退方程中 alpha 值的最大天数。NDMAX 的默认设置为 300。
IPRINT, 该变量控制每日数据的打印。0 不打印每日值,1 打印每日数值如果 IPRINT 设置为 1,则必须定义输出文件名 FLWFILE_OUT。 IPRINT 的默认设置为 0。
FLWFILE,包含每日流量数据的文件的名称。 文件名最多可包含 15 个字符。 可以同时处理多个的流量数据文件。
FLWFILE_OUT,每日过滤器结果写入的文件的名称。 仅当 IPRINT = 1 时才需要。文件名最多可包含 15 个字符。 必须为每个流数据文件指定不同的每日输出文件名。

对于xxxxxxxx.prn,
baseflow 程序以空格分隔数据,第一列为时间YYYYMMDD,第二列为流量,
除了转换制表符之外,还必须删除 USGS 放置在数据文件顶部的所有标题信息。 基流程序假定文件中的第一行用于标头信息。 所有其他行应包含日期和每日流量值。

输出文件主要为baseflow.dat,xxxxxxxx.out(当IPRINT为1时),baseflow.dat各指标为
Baseflow Fr1,由第一通道估计的基流贡献系数。
Baseflow Fr2 由第二通道估计的基流贡献系数。
Baseflow Fr3 由第三通道估计的基流贡献系数。
NPR 用于计算主衰退曲线的单个基流衰退数量。
Alpha Factor 基流衰退常数
Baseflow days 基流衰退在一个对数周期内下降的天数。

xxxxxxxx.out中各列为:
Streamflow 流量数据文件中的逐日流量, m 3 / s m^3/s m3/s
Bflow Pass1 第一通道估计的逐日基流, m 3 / s m^3/s m3/s
Bflow Pass2 第二通道估计的逐日基流, m 3 / s m^3/s m3/s
Bflow Pass3 第三通道估计的逐日基流, m 3 / s m^3/s m3/s

Lyne-Hollick滤波法Python代码

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as npdef hollickLyneFilter(data, beta=0.925, invert=True):"""Calculate baseflow from a given discharge timeseries using the digital filter method proposed by Hollick and Lyne (1979).Definition----------def hollickLyneFilter(data,beta=0.925,invert=True)Input-----data   : numpy.ndarray 1DOptional Input--------------beta   : float -> dimensionless filter parameter. The default value was proposed by Nathan and McMahon (1990)invert : True  -> add a backward filter pass: False -> no backward filterpass, will result in a phase shiftOutput------numpy.ndarray 1DLiterature----------Lyne, V. & Hollick, M. 1979, “Stochastic time-variable rainfall-runoff modelling”, Proceedings of the Hydrology and Water Resources Symposium, Perth, 10-12 September, Institution of Engineers National Conference Publication, No. 79/10, pp. 89-92. Nathan, R. J. & McMahon, T. A. 1990a, “Evaluation of automated techniques for base flow and recession analysis”, Water Resources Research , Vol. 26, pp. 1465-1473. """out = data.copy()for i in range(1, len(data)):bflow = beta * out[i-1] + (1 - beta) * .5 * (data[i]+data[i-1])out[i] = min(bflow, data[i])if invert:out = hollickLyneFilter(out[::-1], beta, invert=False)[::-1]return out[1:]if __name__ == "__main__":data = np.array([368.500, 408.100, 493.600, 502.500, 453.100, 439.600, 408.100,430.600, 417.100, 412.600, 390.100, 381.300, 360.300, 340.000,293.100, 276.600, 283.100, 279.800, 270.200, 263.900, 239.800])bflow = hollickLyneFilter(data)print("", bflow)blow = hollickLyneFilter(data, invert=False)print("", bflow)blow = hollickLyneFilter(data, .8)print("", bflow)

grwat中的基流分割方法

grwat实现了几种基流滤波方法,包括Lyne和Hollick(1979)、Chapman(1991)、Boughton(1993)、Jakeman和Hornberger(1993)以及Chapman and Maxwell(1996)的方法。

hdata = spas %>%mutate(lynehollick = gr_baseflow(Q, method = 'lynehollick', a = 0.9),boughton = gr_baseflow(Q, method = 'boughton', k = 0.9),jakeman = gr_baseflow(Q, method = 'jakeman', k = 0.9),maxwell = gr_baseflow(Q, method = 'maxwell', k = 0.9)) %>% pivot_longer(lynehollick:maxwell, names_to = 'Method', values_to = 'Qbase')ggplot(hdata) +geom_area(aes(Date, Q), fill = 'steelblue', color = 'black') +geom_area(aes(Date, Qbase), fill = 'orangered', color = 'black') +scale_x_date(limits = c(ymd(19810101), ymd(19811231))) +facet_wrap(~Method)
#> Warning: Removed 93508 rows containing non-finite values (`stat_align()`).
#> Removed 93508 rows containing non-finite values (`stat_align()`).

在这里插入图片描述

参考文献

李芳等,黄河源区白河基流分割方法适用性分析
胡胜等,基于数字滤波法和SWAT模型的灞河流域基流时空变化特征研究
Baseflow filtering

相关文章:

【Hydro】部分基流分割方法及程序代码说明

目录 说明一、数字滤波法单参数数字滤波Lyne-Hollick滤波法Chapman滤波法Chapman-Maxwell滤波法Boughton-Chapman滤波法 双参数滤波法Eckhardt滤波法 二、其他基流分割方法基流指数&#xff08;BFI&#xff09;法时间步长&#xff08;HYSEP&#xff09;法PART法加里宁-阿里巴扬…...

C#Regex正则表达式(Regular Expression)

在C#中&#xff0c;Regex是正则表达式&#xff08;Regular Expression&#xff09;的缩写&#xff0c;它是一种强大的文本匹配和处理工具。正则表达式是一种用于描述模式的字符串&#xff0c;它可以用来在文本中查找、替换和提取满足特定模式的内容。 在C#中&#xff0c;你可以…...

Wi-Fi还可以做什么?柯南解释IOT应用

大会报告&#xff1a;无线人工智能技术正在改变世界 Wi-Fi还可以做什么&#xff1f;随着带宽的提升&#xff0c;无线终端可以识别出更多的多径&#xff0c;每条多径都可以视作一个虚拟传感器&#xff0c;以感知周边环境。基于此&#xff0c;越来越多的无线感知产品应运而生。20…...

centos部署java程序

后台启动java程序 nohup java -jar -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/data/app1/logs/ /data/app1.jar --spring.config.location/data/app1/config/application.properties,/data/app1/config/application-dev.properties > /data/app1/logs 2>&1…...

Sqoop导入到Hive,Hive使用 HA

Sqoop写入Hive卡在连接Hive的JDBC上不执行 Sqoop访问 启用 HA模式的Hive 找到Hive的安装根目录&#xff1a;$HIVE_HOME/conf 创建一个新的配置文件&#xff1a;beeline-hs2-connection.xml <?xml version"1.0"?> <?xml-stylesheet type"text/xsl…...

[笔记] %的含义

取模 不赘述。 引导符 重点说一下在printf("%d", n);中的意思。 这里的意思是&#xff1a;将""外对应位置的结果返回给引导符所在的位置&#xff0c; %后面跟着的是结果对应的数据类型&#xff0c; 只有数据类型匹配才能正确输出结果。...

FRI及相关SNARKs的Fiat-Shamir安全

1. 引言 本文主要参考&#xff1a; Alexander R. Block 2023年论文 Fiat-Shamir Security of FRI and Related SNARKsAlbert Garreta 2023年9月在ZK Summit 10上分享 ZK10: Fiat-Shamir security of FRI and related SNARKs - Albert Garreta (Nethermind) 评估参数用的Sage…...

TensorFlow案例学习:使用 YAMNet 进行迁移学习,对音频进行识别

前言 上一篇文章 TensorFlow案例学习&#xff1a;简单的音频识别 我们简单学习了音频识别。这次我们继续学习如何使用成熟的语音分类模型来进行迁移学习 官方教程&#xff1a; 使用 YAMNet 进行迁移学习&#xff0c;用于环境声音分类 模型下载地址&#xff08;需要科学上网&…...

MySQL CHAR 和 VARCHAR 的区别

文章目录 1.区别1.1 存储方式不同1.2 最大长度不同1.3 尾随空格处理方式不同1.4 读写效率不同 2.小结参考文献 在 MySQL 中&#xff0c;CHAR 和 VARCHAR 是两种不同的文本数据类型&#xff0c;CHAR 和 VARCHAR 类型声明时需要指定一个长度&#xff0c;该长度指示您希望存储的最…...

虚拟机 ping: www.baidu.com:未知的名称或服务

1、打开ifcfg-ens33文件 vi /etc/sysconfig/network-scripts/ifcfg-ens332、如下&#xff0c;加上网关和dns就行了&#xff0c;紫色部分&#xff0c;也就是DNS1“114.114.114.114” TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTP…...

第二章 Python字符串处理

系列文章目录 第一章 Python 基础知识 第二章 python 字符串处理 第三章 python 数据类型 第四章 python 运算符与流程控制 第五章 python 文件操作 第六章 python 函数 第七章 python 常用内建函数 第八章 python 类(面向对象编程) 第九章 python 异常处理 第十章 python 自定…...

混合编程 ATPCS规范及案例(汇编调用C、C调用汇编、内联汇编)

1.混合编程的规范 2.汇编调用C 2.C调用汇编 3.内联汇编 例子&#xff1a;...

使用Gorm进行CRUD操作指南

使用GORM在Go中创建、读取、更新和删除记录的逐步教程 在数据库管理中&#xff0c;CRUD操作是应用程序的支柱&#xff0c;它们使数据的创建、检索、更新和删除成为可能。强大的Go对象关系映射库GORM通过抽象SQL语句的复杂性&#xff0c;使这些操作变得轻松。本文将作为您全面指…...

Linux0.11内核源码解析-exec.c

主要实现对二进制可执行文件和shell文件的加载和执行&#xff0c;其中主要的函数是do_execve(),它是系统中断调用int 0x80的功能号__NR_execve()调用&#xff0c;是exec()函数的主要实现以下几点功能&#xff1a; 1.执行对参数和环境参数空间页面的初始化操作&#xff0c;初始…...

百度竞价排名推广对比自然排名哪一个更具优势-华媒舍

在搜索引擎结论网页页面&#xff08;SERP&#xff09;中&#xff0c;我们经常会看到一些网站链接及其广告栏。这种连接一般分为两种类型&#xff1a;百度竞价推广排名推广与自然排名。究竟哪个更有优势&#xff1f;本文将对这几种排名形式进行科谱详细介绍。 什么叫百度竞价推广…...

python第一课 变量

1.离线的情况下首选txt文档 2.有道云笔记 3.思维导图 xmind mindmaster 4.博客 5.wps流程图 # 变量的命名规则 1.变量名只能由数字字母下划线组成 2.变量名不能以数字开头 3.变量名不能与关键字重名 快捷键 撤销&#xff1a;Ctrl/Command Z 新建&#xff1a;Ctrl/Com…...

shell之netstat的用法

shell之netstat的用法 所有参数应用举例 所有参数 1&#xff09;-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。 2&#xff09;-i 显示所有网络接口的信息。 3&#xff09;-r 显示路由表的信息。 4&#xff09;-s 显示按各个协议的统计信息。 5&am…...

MSQL系列(十二) Mysql实战-为什么索引要建立在被驱动表上

Mysql实战-为什么索引要建立在被驱动表上 前面我们讲解了BTree的索引结构&#xff0c;也详细讲解下 left Join的底层驱动表 选择原理&#xff0c;那么今天我们来看看到底如何用以及如何建立索引和索引优化 开始之前我们先提一个问题&#xff0c; 为什么索引要建立在被驱动表上…...

C语言,数据结构指针,结构构体操作符 •,->,*的区别,看这篇就够了

在朋友们学习指针和数据结构这一章的时候&#xff0c;对各种操作符云里雾里。当你看到这么文章之后你就会明白了。 一 • 和 ->运算符 • 运算符&#xff1a;是结构变量访问结构体成员时用的操作符 -> 运算符&#xff1a;这是结构体指针访问结构体成员时调用的运算符。 …...

axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式

前言&#xff1a; 在开发中&#xff0c;有可能遇到每部分的功能的需要调用另一台服务器的地址。这个时候就需要设置不同的请求前缀首先代理到不同的服务器地址。 一、axios封装实例以及代理&#xff1a;(不是完整的封装实例&#xff0c;重点在于baseURL的区别) 文件路径&…...

Diango项目-简易个人博客项目

项目实现功能 在admin后台自定义添加上传文档。对展示在首页的文章分页显示。在首页点击文章的阅读全文按钮可进入该文章全文详情页进行浏览。对文章实现了内容分类何以发布时间进行归档分类。使用django的whoose搜索引擎对全文实现内容的搜索。 项目涉及技术 Mysql Djan…...

思维训练3

题目描述1 Problem - A - Codeforces 题目分析 样例1解释&#xff1a; 对于此题&#xff0c;我们采用贪心的想法&#xff0c;从1到n块数越少越好&#xff0c;故刚好符合最少的块数即可&#xff0c;由于第1块与第n块是我们必须要走的路&#xff0c;所以我们可以根据这两块砖的…...

初识FFmpeg

前言 无意间见到群里的小伙伴展示视频工具。功能比较多&#xff0c;包括视频编码修改&#xff0c;画质处理&#xff0c;比例处理、名称提取&#xff0c;剪辑、标题拆解。因此开始了FFmpeg学习。以下摘自百度百科的解释。 FFmpeg是一套可以用来记录、转换数字音频、视频&#xf…...

分布式多主关系数据库的底线业务优势

当今的应用程序&#xff08;包括企业应用程序&#xff09;需要始终开启且始终可用&#xff0c;并且通常必须为全球用户提供服务&#xff0c;这些用户无论身在何处都希望获得几乎即时的响应时间。 应对这些挑战不仅仅意味着让用户更满意&#xff1a;每个能够解决低延迟和超高可…...

JMM讲解

一&#xff1a;为什么要有JMM&#xff0c;它为什么出现&#xff1f; CPU的运行并不是直接操作内存而是先把内存里面的数据读到缓存&#xff0c;而内存的读和写操作的时候会造成不一致的问题。JVM规范中试图定义一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异&…...

小程序获取头像和昵称的思路

小程序获取头像和昵称的基本方法是调用小程序自带的API wx.getUserProfile()&#xff0c;这也是小程序官方目前最推荐的做法。成功获取用户名头像之后&#xff0c;小程序允许保存调用的结果&#xff0c;以便下一次打开页面的时候自动显示头像和名字。保存用户名和头像并不是保存…...

关于docker网络实践中遇到的问题

1.禁用docker自动修改iptables规则 查看docker.service文件/usr/lib/systemd/system/docker.service 默认在宿主机部署容器&#xff0c;映射了端口的话&#xff0c;docker能自己修改iptables规则&#xff0c;把这些端口暴露到公网。 如果要求这些端口不能暴露到公网&#xf…...

C#完成XML文档节点的自动计算功能

一个项目涉及XML文档中节点的自动计算&#xff0c;就是XML文档的每个节点都参与运算&#xff0c;要求&#xff1a; ⑴如果节点有计算公式则按照计算公式进行&#xff1b; ⑵如果节点没有计算公式则该节点的值就是所有子节点的值之和&#xff1b; ⑶节点有4种类型&#xff0c;计…...

体验SOLIDWORKS旋转反侧切除增强 硕迪科技

大家在设计中经常使用的旋转切除命令在solidworks2024版本中迎来了新的增强&#xff0c;添加了旋转反侧切除选项。在设计过程中不必修改复杂的草图即可切除掉我们不需要的部分。使设计工作更加方便快捷。 打开零部件后&#xff0c;点击键盘上的S键并输入旋转切除以搜索该命令&a…...

分布式ID系统设计(3)

分布式ID系统设计第三集 id-service-SnowFlake方案 第二集说了id-service-Segment-DB可以生成趋势递增的ID,但是ID号是可以计算的。不太适用于一些订单ID生成的场景。因为存在数据暴露的风险 比如我可以对比两天的订单ID号来大致计算出公司一天的订单量。这个有点危险。 所以…...