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

沙尘传输模拟教程(基于wrf-chem)

沙尘传输模拟教程(基于wrf-chem)

文章目录

  • 沙尘传输模拟教程(基于wrf-chem)
    • 简介
      • 实验目的
      • wrf-chem简介
    • 软件准备
      • wps、wrf-chem安装
      • conda安装
      • ncl安装
      • ncap安装
    • 数据准备
      • 气象数据准备
      • 下垫面数据准备
    • WPS数据预处理
    • namelist.wps的设置
      • geogrid.exe下垫面处理
      • ungrib.exe气象数据预处理
      • metgrid.exe气象插值
    • WRF模型运行
      • 参数设置
      • 沙尘模式选择
      • real.exe生成气象场
    • wrf-chem进行沙尘侵蚀和传输模拟
    • 后处理与结果展示
      • 数据后处理
      • 结果图
    • 参考

简介

实验目的

本实验的目的是使用 WRF-Chem 模拟和分析地表(沙漠)区域产生的沙尘的侵蚀和传输过程。通过构建一个包含沙尘侵蚀图的 WRF 域domain,研究沙尘在大气中的输送和扩散情况。

我们的实验区域为中国黄河附近的沙漠,研究时间为2024年7月11日-7月16日,最后得到这段时间的沙尘侵蚀和传输情况。

wrf-chem简介

WRF(Weather Research and Forecasting Model)是一个用于大气研究和天气预报的数值模型。

WRF-Chem 是 WRF 模型的一个扩展版本,它集成了大气化学和气溶胶过程的模拟功能。WRF-Chem可用于:

  • 化学过程模拟:包括气态污染物、气溶胶和化学反应。
  • 气溶胶过程:模拟气溶胶的生成、增长、凝结、沉降和输送。
  • 污染物传输:模拟污染物在大气中的水平和垂直输送过程。
  • 反馈机制:化学成分和气溶胶对气象过程的反馈,如辐射和云微物理过程。

软件准备

wps、wrf-chem安装

本教程这是官方例子(https://ruc.noaa.gov/wrf/wrf-chem/tutorialexercises.htm)的扩充,我们使用官方推荐的wrf 3.9和wps 3.9版本,熟悉这个过程后,可以切换为WRF V4版本。

前往网站:https://www2.mmm.ucar.edu/wrf/users/download/get_sources.html下载。

参考网站:https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compilation_tutorial.php

按照网站给出的8个步骤,依次进行测试、安装好netcdf、mpich等包,最后再安装wps和wrf。

安装注意事项:

(1)WPS安装

安装wps3.9版本在configure后,会有一个configure.wps文件,需要手动修改WRF_DIR参数,改为wrf安装目录的相对路径

(2)wrf-chem安装

安装wrf时,打开bashrc设置安装过程中编译wrf-chem(wrf默认是不安装的,需要手动开启)

#先打开环境变量
vim ~/.bashrc

然后在环境变量中添加以下参数,开启wrf-chem:

# 启用WRF-Chem
export WRF_EM_CORE=1
export EM_CORE=1
export NMM_CORE=0
export WRF_CHEM=1
export EM_CORE=1

这样wrf安装完毕后wrf-chem也同时编译完成了。

conda安装

在Linux系统中安装conda,前往网站:https://docs.anaconda.com/miniconda/ 下载miniconda,

安装过程参考官网,可以选择离线和在线两种安装方式,安装完成后,新建一个环境:

conda create -n nco_ncl_env
conda activate nco_ncl_env

设置频道优先级,优先使用 conda-forge 提供的包:

conda config --add channels conda-forge
conda config --set channel_priority strict

ncl安装

NCL(The NCAR Command Language)是由美国国家大气研究中心(NCAR)开发的一种专门用于气象数据展示的一门语言。有多种方式可以安装,我们选择最方便的conda进行安装。

conda install -c conda-forge ncl

ncap安装

我们后面还需要用到ncap处理wrfout数据(把不同颗粒大小的沙尘汇总)。

ncap 是 NCO (NetCDF Operators) 工具包中的一个命令行工具,用于处理 NetCDF 文件中的变量及其数据。这里我们依然可以偷懒,使用conda快速安装。

conda install -c conda-forge nco

数据准备

气象数据准备

前往FNL数据的官网:https://rda.ucar.edu/datasets/ds083.2/,选择Complete File List全气象要素(包含70多种气象要素)。

选择时间下载气象数据:

这里我下载了2024.07.11到2024.07.16的气象数据,请按照你的时间要求下载。

下垫面数据准备

前往网站:https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog_V3.html,下载wrf v3的下垫面数据:

这个下垫面数据包含有全球的地表特征,包括地形高度、土地利用、土壤类型、植被指数、水体覆盖和地表反照率等,也有我们这次实验需要模拟的沙尘侵蚀erodibility数据。下垫面数据大概是3G,解压后大概是20个G。

WPS数据预处理

namelist.wps的设置

可以根据自己的区域和时间段进行调整,下面是我的设置:

&sharewrf_core = 'ARW',max_dom = 1,start_date = '2024-07-11_00:00:00',end_date   = '2024-07-16_00:00:00',interval_seconds = 21600io_form_geogrid = 2,
/&geogridparent_id         =   1,  parent_grid_ratio =   1,  i_parent_start    =   1,  j_parent_start    =   1,  e_we              =  41, e_sn              =  41,  dx = 100000,dy = 100000,map_proj = 'lambert',ref_lat   =  38.00,ref_lon   =  104.00,truelat1  =  35.0,truelat2  =  45.0,stand_lon =  104.0,geog_data_path = '/WRF3_GEOG/geog'
/&ungribout_format = 'WPS',prefix = 'FILE',
/&metgridfg_name = 'FILE'io_form_metgrid = 2, 
/

geogrid.exe下垫面处理

cd geogridln -svf GEOGRID.TBL.ARW_CHEM GEOGRID.TBLcd .../geogrid.exe

文件夹中会多一个geo_em.d0*.nc 的文件,这个包含了研究区域的下垫面数据,

ungrib.exe气象数据预处理

使用ungrib.exe处理数据:

metgrid.exe气象插值

WRF模型运行

参数设置

namelist的具体参数可以参考官方说明,由于太多,这里不做说明,可查看官方网站的说明:https://www2.mmm.ucar.edu/wrf/users/namelist_best_prac_wrf.html

&time_controlrun_days                            = 2,run_hours                           = 0,run_minutes                         = 0,run_seconds                         = 0,start_year                          = 2024,start_month                         = 07,start_day                           = 13,start_hour                          = 00,start_minute                        = 00,start_second                        = 00,end_year                            = 2024,end_month                           = 07,end_day                             = 15,end_hour                            = 00,end_minute                          = 00,end_second                          = 00,interval_seconds                    = 21600,input_from_file                     = .true.,history_interval                    = 60,frames_per_outfile                  = 72,restart                             = .false.,restart_interval                    =    0,io_form_history                     = 2,io_form_restart                     = 2,io_form_input                       = 2,io_form_boundary                    = 2,auxinput6_inname                    = 'wrfbiochemi_d01',auxinput7_inname                    = 'wrffirechemi_d<domain>',auxinput8_inname                    = 'wrfchemi_gocart_bg_d<domain>',auxinput12_inname                   = 'wrf_chem_input',auxinput5_interval_m                = 86400,auxinput7_interval_m                = 86400,auxinput8_interval_m                = 86400,io_form_auxinput2                   = 2,io_form_auxinput5                   = 0,io_form_auxinput6                   = 0,io_form_auxinput7                   = 0,io_form_auxinput8                   = 0,io_form_auxinput12                  = 0,debug_level                         = 0,auxinput1_inname                    = "met_em.d<domain>.<date>",
/auxinput13_inname                   = 'wrfchemv_d<domain>',auxinput13_interval_m               = 86400,io_form_auxinput13                  = 0,&dfi_control
/&domainstime_step                           = 600,time_step_fract_num                 = 0,time_step_fract_den                 = 1,max_dom                             = 1,s_we                                =   1,e_we                                = 41,s_sn                                =   1,e_sn                                = 41,e_vert                              = 31,num_metgrid_levels                  = 42,num_metgrid_soil_levels             = 4,dx                                  = 100000,dy                                  = 100000,grid_id                             = 1,parent_id                           = 0,i_parent_start                      = 1,j_parent_start                      = 1,parent_grid_ratio                   = 1,parent_time_step_ratio              = 1,p_top_requested                     = 5000,feedback                            = 1,smooth_option                       = 0,p_top_requested                     = 5000,zap_close_levels                    = 50,interp_type                         = 1,t_extrap_type                       = 2,force_sfc_in_vinterp                = 0,use_levels_below_ground             = .true.,use_surface                         = .true.,lagrange_order                      = 1,/sfcp_to_sfcp                        = .true.,&physicsnum_land_cat                        = 21,mp_physics                          = 4,progn                               = 0,ra_lw_physics                       = 1,ra_sw_physics                       = 2,radt                                = 30,sf_sfclay_physics                   = 1,sf_surface_physics                  = 2,bl_pbl_physics                      = 1,bldt                                = 0,cu_physics                          = 5,cu_diag                             = 1,cudt                                = 0,ishallow                            = 0,isfflx                              = 1,ifsnow                              = 1,icloud                              = 1,surface_input_source                = 1,num_soil_layers                     = 4,sf_urban_physics                    = 0,mp_zero_out                         = 2,mp_zero_out_thresh                  = 1.e-12,maxiens                             = 1,maxens                              = 3,maxens2                             = 3,maxens3                             = 16,ensdim                              = 144,cu_rad_feedback                     = .true.,/&fdda/&dynamicsrk_ord                              = 3,w_damping                           = 1,diff_opt                            = 1,km_opt                              = 4,diff_6th_opt                        = 0,diff_6th_factor                     = 0.12,base_temp                           = 290.damp_opt                            = 0,zdamp                               = 5000.,dampcoef                            = 0.01,khdif                               = 0,kvdif                               = 0,non_hydrostatic                     = .true.,moist_adv_opt                       = 2,scalar_adv_opt                      = 2,chem_adv_opt                        = 2,tke_adv_opt                         = 2,time_step_sound                     = 4,h_mom_adv_order                     = 5,v_mom_adv_order                     = 3,h_sca_adv_order                     = 5,v_sca_adv_order                     = 3,/&bdy_controlspec_bdy_width                      = 5,spec_zone                           = 1,relax_zone                          = 4,specified                           = .true.,nested                              = .false.,/&grib2/&namelist_quiltnio_tasks_per_group = 0,nio_groups = 1,/&chemkemit                               = 1,chem_opt                            = 401,bioemdt                             = 0,photdt                              = 0,chemdt                              = 10,io_style_emissions                  = 0,emiss_opt                           = 3,emiss_opt_vol                       = 0,emiss_ash_hgt                       = 20000.,chem_in_opt                         = 0,phot_opt                            = 0,gas_drydep_opt                      = 0,aer_drydep_opt                      = 1,bio_emiss_opt                       = 0,ne_area                             = 0,dust_opt                            = 1,dmsemis_opt                         = 0,seas_opt                            = 0,depo_fact                           = 0.25,gas_bc_opt                          = 0,gas_ic_opt                          = 0,aer_bc_opt                          = 1,aer_ic_opt                          = 1,gaschem_onoff                       = 0,aerchem_onoff                       = 1,wetscav_onoff                       = 0,cldchem_onoff                       = 0,vertmix_onoff                       = 1,chem_conv_tr                        = 0,conv_tr_wetscav                     = 0,conv_tr_aqchem                      = 0,biomass_burn_opt                    = 0,plumerisefire_frq                   = 30,have_bcs_chem                       = .false.,aer_ra_feedback                     = 0,aer_op_opt                          = 0,opt_pars_out                        = 0,diagnostic_chem                     = 0,/

沙尘模式选择

也可以试试其他沙尘传输模型,在namelist.input中修改,这里我选择的是dust_opt=1:

  1. GOCART 沙尘方案(dust_opt=1)
    • 使用 GOCART(Goddard Chemistry Aerosol Radiation and Transport)沙尘排放方案。
  2. AFWA 沙尘方案(dust_opt=3)
    • 使用 AFWA(Air Force Weather Agency)沙尘排放方案。
  3. UoC 沙尘方案(dust_opt=4)
    • 使用 UoC(University of Cologne)沙尘排放方案。

real.exe生成气象场

使用命令:

#使用mpich并行运行,并用nohup后台运行
nohup mpirun -np 8 ./real.exe >&realexe.log &
#或者直接run
./real.exe#查看进度
tail -f rsl.out.0000

如果计算量比较大,可以用sbatch提交到超算平台进行计算。

wrf-chem进行沙尘侵蚀和传输模拟

mpirun -np 8 ./wrf.exe
#wrf.exe也可以用sbatch提交作业到超算平台上
tail rsl.out.0000

运行完成。

后处理与结果展示

数据后处理

我们模拟的,不同大小的沙尘相加:

使用ncap2进行汇总:

ncap2 -v -s "total_dust=DUST_1+DUST_2+DUST_3+DUST_4+DUST_5" wrfout_d01_2024-07-13_00:00:00 dust1_all.nc

结果图

我们可以用ncl直接出图,也可以下载到本地用panoply查看。

(1)地中海区域的沙尘传输浓度图(2010年某时刻)

(1)部分中国区域的沙尘浓度分布情况(2024年7月某时刻)

自此,实验完毕

(由于我还在入门,难免有不周到之处,后续还会继续更新这方面的教程)。

参考

官方实验地址:https://ruc.noaa.gov/wrf/wrf-chem/tutorialexercises.htm

WRF/WPS V3版本:https://www2.mmm.ucar.edu/wrf/users/download/get_sources.html

WRF安装指南:https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compilation_tutorial.php

WPS的namelist制作与出图:https://zhuanlan.zhihu.com/p/705431890

下垫面数据:https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog_V3.html

conda下载地址:https://docs.anaconda.com/miniconda/

NCL出图:https://www.ncl.ucar.edu/Download/

namelist.wps的设置:https://www2.mmm.ucar.edu/wrf/users/namelist_best_prac_wps.html

namelist.input的设置:https://www2.mmm.ucar.edu/wrf/users/namelist_best_prac_wrf.html

相关文章:

沙尘传输模拟教程(基于wrf-chem)

沙尘传输模拟教程(基于wrf-chem) 文章目录 沙尘传输模拟教程(基于wrf-chem)简介实验目的wrf-chem简介 软件准备wps、wrf-chem安装conda安装ncl安装ncap安装 数据准备气象数据准备下垫面数据准备 WPS数据预处理namelist.wps的设置geogrid.exe下垫面处理ungrib.exe气象数据预处理…...

使用 Python 进行测试(8)纯净测试

原文&#xff1a;Testing with Python (part 8): purity test 总结 如果你要使用综合测试&#xff08;integrated tests&#xff09;&#xff1a; def test_add_new_item_to_cart(product, cart):new_product Product.objects.create(nameNew Product, price15.00)new_cart…...

python的tkinter、socket库开发tcp的客户端和服务端

一、tcp通讯流程和开发步骤 1、tcp客户端和服务端通讯流程图 套接字是通讯的利器&#xff0c;连接时要经过三次握手建立连接&#xff0c;断开连接要经过四次挥手断开连接。 2、客户端开发流程 1&#xff09;创建客户端套接字 2&#xff09;和服务端器端套接字建立连接 3&#x…...

Python面试题:Python中的异步编程:详细讲解asyncio库的使用

Python 的异步编程是实现高效并发处理的一种方法&#xff0c;它使得程序能够在等待 I/O 操作时继续执行其他任务。在 Python 中&#xff0c;asyncio 库是实现异步编程的主要工具。asyncio 提供了一种机制来编写可以在单线程内并发执行的代码&#xff0c;适用于 I/O 密集型任务。…...

【信号频率估计】MVDR算法及MATLAB仿真

目录 一、MVDR算法1.1 简介1.2 原理1.3 特点1.3.1 优点1.3.2 缺点 二、算法应用实例2.1 信号的频率估计2.2 MATLAB仿真代码 三、参考文献 一、MVDR算法 1.1 简介 最小方差无失真响应&#xff08;Mininum Variance Distortionless Response&#xff0c;MVDR&#xff09;算法最…...

HarmonyOS NEXT零基础入门到实战-第二部分

HarmonyOS NEXT零基础入门到实战-第二部分 Swiper 轮播组件 Swiper是一个 容器 组件&#xff0c;当设置了多个子组件后&#xff0c;可以对这些 子组件 进行轮播显示。&#xff08;文字、图片...&#xff09; 1、Swiper基本语法 2、Swiper常见属性 3、Swiper样式自定义 4、案例&…...

《小程序02:云开发之增删改查》

一、前置操作 // 一定要用这个符号包含里面的${}才会生效 wx.showToast({title: 获取数据成功&#xff1a;${colorLista}, })1.1&#xff1a;初始化介绍 **1、获取数据库引用&#xff1a;**在开始使用数据库 API 进行增删改查操作之前&#xff0c;需要先获取数据库的引用 cons…...

SQL执行流程、SQL执行计划、SQL优化

select查询语句 select查询语句中join连接是如何工作的&#xff1f; 1、INNER JOIN 返回两个表中的匹配行。 2、LEFT JOIN 返回左表中的所有记录以及右表中的匹配记录。 3、RIGHT JOIN 返回右表中的所有记录以及左表中的匹配记录。 4、FULL OUTER JOIN 返回左侧或右侧表中有匹…...

【前端】JavaScript入门及实战41-45

文章目录 41 嵌套的for循环42 for循环嵌套练习(1)43 for循环嵌套练习(2)44 break和continue45 质数练习补充 41 嵌套的for循环 <!DOCTYPE html> <html> <head> <title></title> <meta charset "utf-8"> <script type"…...

更加深入Mysql-04-MySQL 多表查询与事务的操作

文章目录 多表查询内连接隐式内连接显示内连接 外连接左外连接右外连接 子查询 事务事务隔离级别 多表查询 有时我们不仅需要一个表的数据&#xff0c;数据可能关联到俩个表或者三个表&#xff0c;这时我们就要进行夺标查询了。 数据准备&#xff1a; 创建一个部门表并且插入…...

基于最新版的flutter pointycastle: ^3.9.1的AES加密

基于最新版的flutter pointycastle: ^3.9.1的AES加密 自己添加pointycastle: ^3.9.1库config.dartaes_encrypt.dart 自己添加pointycastle: ^3.9.1库 config.dart import dart:convert; import dart:typed_data;class Config {static String password 成都推理计算科技; // …...

K8S内存资源配置

在 Kubernetes (k8s) 中&#xff0c;资源请求和限制用于管理容器的 CPU 和内存资源。配置 CPU 和内存资源时&#xff0c;使用特定的单位来表示资源的数量。 CPU 资源配置 CPU 单位&#xff1a;Kubernetes 中的 CPU 资源以 “核” (cores) 为单位。1 CPU 核心等于 1 vCPU/Core…...

【多任务YOLO】 A-YOLOM: You Only Look at Once for Real-Time and Generic Multi-Task

You Only Look at Once for Real-Time and Generic Multi-Task 论文链接&#xff1a;http://arxiv.org/abs/2310.01641 代码链接&#xff1a;https://github.com/JiayuanWang-JW/YOLOv8-multi-task 一、摘要 高精度、轻量级和实时响应性是实现自动驾驶的三个基本要求。本研究…...

数学建模--灰色关联分析法

目录 简介 基本原理 应用场景 优缺点 优点&#xff1a; 缺点&#xff1a; 延伸 灰色关联分析法在水质评价中的具体应用案例是什么&#xff1f; 如何克服灰色关联分析法在主观性强时的数据处理和改进方法&#xff1f; 灰色关联分析法与其他系统分析方法&#xff08;如A…...

NetSuite Saved Search迁移工具

我们需要在系统间迁移Saved Search&#xff0c;但是采用Copy To Account或者Bundle时&#xff0c;会有一些Translation不能迁移&#xff0c;或者很多莫名其妙的Dependency&#xff0c;导致迁移失败。因此&#xff0c;我们想另辟蹊径&#xff0c;借助代码完成Saved Search的迁移…...

Java IO模型深入解析:BIO、NIO与AIO

Java IO模型深入解析&#xff1a;BIO、NIO与AIO 一. 前言 在Java编程中&#xff0c;IO&#xff08;Input/Output&#xff09;操作是不可或缺的一部分&#xff0c;它涉及到文件读写、网络通信等方面。Java提供了多种类和API来支持这些操作。本文将从IO的基础知识讲起&#xff…...

《从C/C++到Java入门指南》- 9.字符和字符串

字符和字符串 字符类型 Java 中一个字符保存一个Unicode字符&#xff0c;所以一个中文和一个英文字母都占用两个字节。 // 计算1 .. 100 public class Hello {public static void main(String[] args) {char a A;char b 中;System.out.println(a);System.out.println(b)…...

Adobe国际认证详解-视频剪辑

在数字化时代&#xff0c;视频剪辑已成为创意表达和视觉传播的重要手段。随着技术的不断进步&#xff0c;熟练掌握视频剪辑技能的专业人才需求日益增长。在这个背景下&#xff0c;Adobe国际认证应运而生&#xff0c;成为全球创意设计领域的重要标杆。 Adobe国际认证是由Adobe公…...

昇思25天学习打卡营第19天|MindNLP ChatGLM-6B StreamChat

文章目录 昇思MindSpore应用实践ChatGML-6B简介基于MindNLP的ChatGLM-6B StreamChat Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 ChatGML-6B简介 ChatGLM-6B 是由清华大学和智谱AI联合研发的产品&#xff0c;是一个开源的、支持…...

.NET在游戏开发中有哪些成功的案例?

简述 在游戏开发的多彩世界中&#xff0c;技术的选择往往决定了作品的成败。.NET技术&#xff0c;以其跨平台的性能和强大的开发生态&#xff0c;逐渐成为游戏开发者的新宠。本文将带您探索那些利用.NET技术打造出的著名游戏案例&#xff0c;领略.NET在游戏开发中的卓越表现。 …...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...