【WRF教程第3.1期】预处理系统 WPS 详解:以4.5版本为例

news2024/12/22 14:08:48

预处理系统 WPS 详解:以4.5版本为例

  • 每个 WPS 程序的功能
    • 程序1:geogrid
    • 程序2:ungrib
    • 程序3:metgrid
  • WPS运行(Running the WPS)
    • 步骤1:Define model domains with geogrid
    • 步骤2:Extracting Meteorological Fields from GRIB Files with Ungrib
    • 步骤3:Horizontally interpolating meteorological data with metgrid
  • 参考

本系列专栏针对WRF4.5版本教程,详细理解教程每一步操作。
前期内容可参见博客-【WRF教程第一期】WRF模型概述:以4.5版本为例。

【WRF教程第二期】WRF编译全过程:以4.5版本为例

本博客继续针对WPS预处理模块进行详细介绍,具体参考-The WRF Preprocessing System (WPS)。

WRF 预处理系统 (WPS) 是一组三个程序,它们的共同作用是为真实数据模拟准备真实程序的输入。每个程序执行一个准备阶段:

  • geogrid 定义模型域并将静态地理数据插入网格
  • ungrib 从 GRIB 格式的文件中提取气象场
  • metgrid 将 ungrib 提取的气象场水平插入 geogrid 定义的模型网格

将气象场垂直插入 WRF eta 级别的工作在 真实程序(real) 中执行。
在这里插入图片描述
上图显示了 WPS 程序之间的数据流。每个程序都从公共名称列表文件 (namelist.wps) 读取参数,该文件包含代表每个程序的单独名称列表记录,以及定义多个 WPS 程序使用的参数的共享名称列表记录。图中未显示各个程序使用的附加表文件。这些表提供了对程序操作的额外控制(通常不需要修改)。本章后面将介绍 GEOGRID.TBL、METGRID.TBL 和 Vtable 文件。

WPS 的构建机制与 WRF 模型使用的构建机制非常相似,它提供了在各种平台上编译 WPS 的选项。当有 MPI 库和合适的编译器时,metgrid 和 geogrid 程序可以编译为分布式内存执行,从而允许在更短的时间内处理大型模型域。ungrib 程序执行的工作不适合并行化,因此 ungrib 只能在单个处理器上运行。

每个 WPS 程序的功能

WPS 由三个独立的程序组成:geogrid、ungrib 和 metgrid。
WPS 中还包括几个实用程序,这些程序在 WPS 实用程序部分进行了描述。下面对三个主要程序分别进行了简要说明,后续部分将介绍更多详细信息。

程序1:geogrid

地理网格(geogrid) 的目的是定义模拟域,并将各种陆地数据集插入到模型网格中。这些域是使用用户在 WPS 名称列表文件 (namelist.wps) 的地理网格名称列表记录 (&geogrid) 中指定的信息定义的。除了计算每个网格点的纬度、经度和地图比例因子外,地理网格还默认将土壤类别、土地利用类别、地形高度、年平均深层土壤温度、月植被分数、月反照率、最大雪反照率和坡度类别插入到模型网格中。每个字段的全局数据集均通过 WPS 地理静态数据下载页面提供,由于这些数据是时不变的,因此只需下载一次。一些数据集仅提供一种分辨率,但其他数据集则以“全分辨率”下载和“低分辨率”下载提供。通常,静态字段的低分辨率源仅适用于代码测试和教育目的,任何需要关注模型准确性的应用都应使用全分辨率地理数据集。

除了插入默认的陆地字段外,geogrid 程序还足够通用,可以将大多数连续和分类字段插入到模拟域中。可以使用表文件 GEOGRID.TBL 将新数据集或附加数据集插入到模拟域中。GEOGRID.TBL 文件定义了 geogrid 将生成的每个字段;它描述了要用于字段的插值方法,以及该字段的数据集在文件系统中的位置。

geogrid 的输出以 WRF I/O API 格式写入,因此,通过选择 netCDF I/O 格式,geogrid 可以将其输出写入 netCDF,以便使用外部软件包(包括 ncview、NCL 和 RIP4)轻松进行可视化。

ncview工具的使用可参见另一博客-【WRF工具】WRF 模型输出可视化工具 ncview。

程序2:ungrib

ungrib 程序读取 GRIB 文件,“分解”数据,并将数据写入一种称为中间格式的简单格式(有关格式的详细信息,请参阅“将气象数据写入中间格式”一节)。GRIB 文件包含随时间变化的气象场,通常来自另一个区域或全球模型,例如 NCEP 的 NAM 或 GFS 模型。ungrib 程序可以读取 GRIB 版本 1,如果使用“GRIB2”选项编译,还可以读取 GRIB 版本 2 文件。

GRIB 文件通常包含比初始化 WRF 所需的更多字段。两种版本的 GRIB 格式都使用各种代码来识别 GRIB 文件中的变量和级别。Ungrib 使用这些代码的表(称为 Vtables,即“变量表”)来定义从 GRIB 文件中提取哪些字段并写入中间格式。有关代码的详细信息,请参阅 WMO GRIB 文档和原始中心的文档。

ungrib 软件提供了以下用于常见 GRIB 模型输出文件的 Vtable(位于 ungrib/Variable_Tables):
在这里插入图片描述
用户可以使用任何 Vtable 作为模板为其他模型输出创建自己的 Vtable;有关 Vtable 中字段含义的更多详细信息,请参阅“创建和编辑 Vtable”部分。

Ungrib 可以以三种用户可选格式中的任意一种格式写入中间数据文件:

  • WPS - 包含对下游程序有用的附加信息的格式;
  • SI - WRF 系统的较旧中间格式;
  • 以及 MM5 格式,此处包含该格式,以便 ungrib 可用于向 MM5 建模系统提供 GRIB2 输入。

WPS 可以使用其中任何一种格式来初始化 WRF,但建议使用 WPS 格式。

程序3:metgrid

metgrid 程序将 ungrib 程序提取的中间格式气象数据水平插入 geogrid 程序定义的模拟域。然后,WRF real 程序可以获取插入的 metgrid 输出。metgrid 将插入的日期范围在 namelist.wps 中的 &share namelist 记录中定义,其中必须为每个模拟域指定日期范围。由于 metgrid 程序的工作与 ungrib 程序一样,与时间相关,因此每次初始化新模拟时都会运行 metgrid。

METGRID.TBL 文件控制每个气象场的插值方式。它为每个字段提供一个部分,并且在一个部分中,可以指定要用于该字段的插值方法、用作掩码插值的掩码的字段以及字段要插入到的网格交错(例如,ARW 中的 U、V;NMM 中的 H、V)。

metgrid 的输出以 WRF I/O API 格式写入,因此,通过选择 netCDF I/O 格式,metgrid 可以将其输出写入 netCDF,以便使用外部软件包(包括新版本的 RIP4)轻松进行可视化。

WPS运行(Running the WPS)

运行 WRF 预处理系统有三个主要步骤。
1、使用 geogrid 定义模型粗域和任何嵌套域。
2、使用 ungrib 从 GRIB 数据集中提取模拟期间的气象场。
3、使用 metgrid 将气象场水平插入到模型域中。

当要对同一模型域运行多个模拟时,只需执行 第一步(geogrid) 一次;此后,只需使用第二步和第三步为每个模拟处理 随时间变化的数据。同样,如果使用同一气象数据源在同一时间段运行多个模型域,则无需为每个模拟单独运行 ungrib。下面将详细说明这三个步骤。

如果成功安装了 WPS 软件,则 WPS 目录结构的根目录中应该存在指向 geogrid.exe、ungrib.exe 和 metgrid.exe 程序的符号链接。除了这三个链接之外,还应该存在 namelist.wps 文件。因此,WPS 根目录中的列表应如下所示:

ls -ls

drwxr-xr-x 2   4096 arch
-rwxr-xr-x 1   1765 clean
-rwxr-xr-x 1   4795 compile
-rw-r--r-- 1 118862 compile.log
-rwxr-xr-x 1  16613 configure
-rw-r--r-- 1   3424 configure.wps
drwxr-xr-x 4   4096 geogrid
lrwxrwxrwx 1     23 geogrid.exe -> geogrid/src/geogrid.exe
-rwxr-xr-x 1   1331 link_grib.csh
drwxr-xr-x 3   4096 metgrid
lrwxrwxrwx 1     23 metgrid.exe -> metgrid/src/metgrid.exe
-rw-r--r-- 1    705 namelist.wps
-rw-r--r-- 1   2749 namelist.wps.all_options
-rw-r--r-- 1   1637 namelist.wps.global
-rw-r--r-- 1   6232 README
drwxr-xr-x 4   4096 ungrib
lrwxrwxrwx 1     21 ungrib.exe -> ungrib/src/ungrib.exe
drwxr-xr-x 3   4096 util

步骤1:Define model domains with geogrid

模型粗域和任何嵌套域均在 namelist.wps 文件的 &geogrid 记录中定义,此外,还需要设置 &share namelist 记录中的参数。下面给出了这两个 namelist 记录的示例(有关每个变量的用途和选项的更多信息,请参阅 WPS Namelist 变量)。

&share
  wrf_core = 'ARW',
  max_dom = 2,
  start_date = '2019-09-04_12:00:00','2019-09-04_12:00:00',
  end_date   = '2019-09-06_18:00:00','2019-09-04_12:00:00',
  interval_seconds = 10800,
  io_form_geogrid = 2
/

&geogrid
  parent_id         =   1,   1,
  parent_grid_ratio =   1,   3,
  i_parent_start    =   1,  53,
  j_parent_start    =   1,  25,
  e_we              =  150, 220,
  e_sn              =  130, 214,
  geog_data_res     = 'default','default',
  dx = 15000,
  dy = 15000,
  map_proj = 'lambert',
  ref_lat   =  33.00,
  ref_lon   = -79.00,
  truelat1  =  30.0,
  truelat2  =  60.0,
  stand_lon = -79.0.,
  geog_data_path = '/glade/work/wrfhelp/WPS_GEOG/'
/

总结与 geogrid 相关的 &share 名称列表记录的一组典型变化,

  • wrf_core:WRF 动态核心。如果 WPS 正在运行 ARW 模拟,则应将 wrf_core 设置为“ARW”,如果正在运行 NMM 模拟,则应将其设置为“NMM”。
  • max_dom:域的总数(对于 ARW)或嵌套级别(对于 NMM)
  • io_form_geogrid:geogrid 生成的文件的输出格式(geo_em*)

注意:由于 geogrid 仅生成与时间无关的数据,因此 geogrid 会忽略 start_date、end_date 和 interval_seconds 变量。可选地,可以使用 opt_output_from_geogrid_path 变量指示域文件应写入的位置(如果不是默认位置,则为当前工作目录)

在 &geogrid namelist 记录中,定义了模拟域的投影,以及所有模型网格的大小和位置。地图投影由 map_proj 变量指定。地图投影的详细介绍可参见另一博客-【WRF理论第六期】研究区设置技巧及投影介绍。
在这里插入图片描述

除了设置与模型域的投影、位置和覆盖范围相关的变量外,还必须使用 geog_data_path 变量指定静态地理数据集的路径。设置 geog_data_res 会告诉 geogrid 从哪个静态数据分辨率进行插值,并且该值应与 GEOGRID.TBL 中的数据分辨率之一匹配。

根据 wrf_core 名称列表变量的值,必须将适当的 GEOGRID.TBL 文件与 geogrid 一起使用,因为 WPS 插值的网格交错在动态核心之间有所不同。

  • 对于 ARW,应使用 GEOGRID.TBL.ARW 文件
  • 对于 NMM,应使用 GEOGRID.TBL.NMM 文件

通过将正确的文件链接到 geogrid 目录中的 GEOGRID.TBL(或 opt_geogrid_tbl_path 指定的目录中,如果此变量在名称列表中设置)来选择适当的 GEOGRID.TBL。

ls -ls geogrid/GEOGRID.TBL

lrwxrwxrwx  1         15  GEOGRID.TBL -> GEOGRID.TBL.ARW

在 namelist.wps 中适当定义模拟粗域和嵌套域后,可以运行 geogrid.exe 可执行文件来生成域文件。

  • 对于 ARW 域,域文件命名为 geo_em.d0N.nc,其中 N 是每个文件中定义的嵌套数。
  • 当针对 NMM 域运行时,geogrid 会为粗域生成文件 geo_nmm.d01.nc,并为每个嵌套级别 N 生成 geo_nmm_nest.l0N.nc 文件。

另请注意,文件后缀将根据所选的 io_form_geogrid 而有所不同。要运行 geogrid,请发出以下命令:

./geogrid.exe

当 geogrid.exe 完成运行时,将显示以下消息

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  Successful completion of geogrid.        !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

并且 WPS 根目录(或 opt_output_from_geogrid_path 指定的目录,如果设置了此变量)的列表应显示域文件。如果没有,请查阅 geogrid.log 文件以确定失败的可能原因。有关详细信息,请参阅检查 WPS 输出。

ls -ls

-rw-r--r-- 1  1957004 geo_em.d01.nc
-rw-r--r-- 1  4745324 geo_em.d02.nc
-rw-r--r-- 1    11169 geogrid.log

步骤2:Extracting Meteorological Fields from GRIB Files with Ungrib

已经下载了 GRIB 格式的气象数据,将字段提取为中间格式的第一步是编辑 namelist.wps 文件的 share 和 ungrib 名称列表记录 - 该文件与用于定义模拟域的文件相同。下面给出了两个名称列表记录的示例。

&share
  wrf_core = 'ARW',
  max_dom = 2,
  start_date = '2019-09-04_12:00:00','2019-09-04_12:00:00',
  end_date   = '2019-09-04_18:00:00','2019-09-04_12:00:00',
  interval_seconds = 10800,
  io_form_geogrid = 2
/

&ungrib
  out_format = 'WPS',
  prefix     = 'FILE'
/

共享名称列表(share) 记录中,与 ungrib 相关的变量是粗域的开始和结束时间(start_date 和 end_date;或者 start_year、start_month、start_day、start_hour、end_year、end_month、end_day 和 end_hour)以及气象数据文件之间的间隔(interval_seconds)。

在 ungrib 名称列表记录中,变量 out_format 用于选择 ungrib 将写入的中间数据格式;metgrid 程序可以读取 ungrib 支持的任何格式(“WPS”、“SI”和“MM5”- 建议值为“WPS”)。
用户还可以使用前缀变量为中间文件指定路径和前缀。例如,如果前缀设置为“GFS”,则 ungrib 生成的中间文件将根据 GFS:YYYY-MM-DD_HH 命名,其中 YYYY-MM-DD_HH 是文件中数据的有效时间。

在适当修改 namelist.wps 后,必须提供 Vtable,并且必须将 GRIB 文件链接(或复制)到 ungrib 所需的文件名。WPS 为许多气象数据源提供了 Vtable 文件,并且适当的 Vtable 可以符号链接到文件 Vtable,这是 ungrib 所需的 Vtable 名称。

例如,如果 GRIB 数据来自 GFS 模型:

ln -s ungrib/Variable_Tables/Vtable.GFS Vtable

Ungrib 将尝试读取名为 GRIBFILE.AAA、GRIBFILE.AAB、…、GRIBFILE.ZZZ 的 GRIB 文件。

为了将 GRIB 文件链接到这些文件名,提供了一个 shell 脚本 link_grib.csh。link_grib.csh 脚本将要链接的 GRIB 文件列表作为命令行参数。例如,如果 GRIB 数据已下载到目录 /data/gfs,则文件将通过 link_grib.csh 链接,如下所示:

ls -ls /data/gfs

-rw-r--r-- 1  42728372 gfs_20190904_12_00
-rw-r--r-- 1  48218303 gfs_20190904_12_03
-rw-r--r-- 1  48218303 gfs_20190904_12_06

./link_grib.csh /data/gfs/gfs*

链接 GRIB 文件和 Vtable 后,WPS 目录列表应显示链接的 GRIBFILE* 文件及其链接路径。

ls -ls

lrwxrwxrwx 1       38 GRIBFILE.AAA -> /data/gfs/gfs_20190904_12_00
lrwxrwxrwx 1       38 GRIBFILE.AAA -> /data/gfs/gfs_20190904_12_03
lrwxrwxrwx 1       38 GRIBFILE.AAB -> /data/gfs/gfs_20190904_12_06

编辑 namelist.wps 并链接相应的 Vtable 和 GRIB 文件后,运行 ungrib.exe 可执行文件以生成中间格式的气象数据文件。要运行 ungrib,请输入以下内容:

./ungrib.exe

如果 ungrib.exe 成功运行,则会出现以下消息

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  Successful completion of ungrib.         !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

将被写入 ungrib.output 文件的末尾,中间文件应出现在当前工作目录中。
ungrib 写入的中间文件的名称将采用 FILE:YYYY-MM-DD_HH 格式(当然,除非前缀变量设置为 FILE 以外的前缀)。

ls -ls

-rw-r--r-- 1  154946888 FILE:2019-09-04_12
-rw-r--r-- 1  154946888 FILE:2019-09-04_15
-rw-r--r-- 1  154946888 FILE:2019-09-04_18

步骤3:Horizontally interpolating meteorological data with metgrid

在运行 WPS 的最后一步,将 ungrib 提取的气象数据水平插入到 geogrid 定义的模拟网格中。为了运行 metgrid,必须编辑 namelist.wps 文件的 share 和 metgrid namelist 记录。这些记录的示例如下所示。

&share
  wrf_core = 'ARW',
  max_dom = 2,
  start_date = '2019-09-04_12:00:00','2019-09-04_12:00:00',
  end_date   = '2019-09-04_18:00:00','2019-09-04_12:00:00',
  interval_seconds = 10800,
  io_form_geogrid = 2
/

&metgrid
  fg_name                      = 'FILE',
  io_form_metgrid              = 2,
/

到目前为止,通常不需要更改共享名称列表(share)记录中的任何变量,因为这些变量应该已经在前面的步骤中进行了适当设置。但是,如果在运行 geogrid 和 ungrib 时未编辑共享名称列表,则必须在共享名称列表记录中设置 WRF 动态核心、域数、开始和结束时间、气象数据之间的间隔以及静态域文件的路径,如运行 geogrid 和 ungrib 的步骤中所述。

在 metgrid 名称列表记录中,必须使用 fg_name 给出中间气象数据文件的路径和前缀,可以使用 constants_name 变量指定任何包含常量字段的中间文件的完整路径和文件名,可以使用 io_form_metgrid 变量指定水平插值文件的输出格式。 metgrid 名称列表记录中的其他变量,即 opt_output_from_metgrid_path 和 opt_metgrid_tbl_path,允许指定 metgrid 应写入插值数据文件的位置以及可以找到 METGRID.TBL 文件的位置。

与 geogrid 和 GEOGRID.TBL 文件一样,适用于 WRF 核心的 METGRID.TBL 文件必须链接到 metgrid 目录中(或 opt_metgrid_tbl_path 指定的目录中,如果设置了此变量)。如果使用 ARW 核心,默认情况下,以下内容已设置。

ls -ls metgrid/METGRID.TBL

lrwxrwxrwx 1      15 METGRID.TBL -> METGRID.TBL.ARW

在适当编辑 namelist.wps 并验证将使用正确的 METGRID.TBL 后,通过发出命令运行 metgrid

./metgrid.exe

如果 metgrid 成功运行,则消息

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  Successful completion of metgrid.        !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

被打印出来,metgrid 输出文件应该出现在 WPS 根目录中(或者在 opt_output_from_metgrid_path 指定的目录中,如果设置了此变量)。

  • 这些文件将在 ARW 域的情况下命名为 met_em.d0N.YYYY-MM-DD_HH:mm:ss.nc,其中 N 是数据驻留在文件中的嵌套编号
  • 或者在 NMM 域的情况下命名为 met_nmm.d01.YYYY-MM-DD_HH:mm:ss.nc。这里,YYYY-MM-DD_HH:mm:ss 指的是每个文件中插入数据的日期。

如果在共享名称列表记录中给出的范围内的每个时间都不存在这些文件,请查阅 metgrid.log 文件以确定运行 metgrid 时的问题。

ls -ls

-rw-r--r-- 1    5217648 met_em.d01.2008-03-24_12:00:00.nc
-rw-r--r-- 1    5217648 met_em.d01.2008-03-24_18:00:00.nc
-rw-r--r-- 1   12658200 met_em.d02.2008-03-24_12:00:00.nc
-rw-r--r-- 1      65970 metgrid.log

参考

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

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

相关文章

Flutter组件————FloatingActionButton

FloatingActionButton 是Flutter中的一个组件,通常用于显示一个圆形的按钮,它悬浮在内容之上,旨在吸引用户的注意力,并代表屏幕上的主要动作。这种按钮是Material Design的一部分,通常放置在页面的右下角,但…

在Windows11上编译C#的实现Mono的步骤

在Windows11上编译Mono的步骤 1、 在win11打开开发者模式,在更新和安全选项里,如下图: 2、下载并安装64位的cygwin, 下载网站:www.cygwin.com 3、 安装 Visual Studio 2015 or later 的社区版本。 4、 下载Mono的windows最新版本。 5、 在cmd.exe里运行下面的命令来安…

[HNCTF 2022 Week1]你想学密码吗?

下载附件用记事本打开 把这些代码放在pytho中 # encode utf-8 # python3 # pycryptodemo 3.12.0import Crypto.PublicKey as pk from hashlib import md5 from functools import reducea sum([len(str(i)) for i in pk.__dict__]) funcs list(pk.__dict__.keys()) b reduc…

【记录50】uniapp安装uview插件,样式引入失败分析及解决

SassError: Undefined variable: "$u-border-color". 表示样式变量$u-border-color没定义&#xff0c;实际是定义的 首先确保安装了scss/sass 其次&#xff0c;根目录下 app.vue中是否全局引入 <style lang"scss">import /uni_modules/uview-ui/in…

如何写申请essay

俗话说&#xff1a;万事开头难。英国留学申请essay也是如此。申请essay怎么写呢&#xff1f;一篇essay的开头是否精彩直接关系到导师能否被你的文字吸引。一把而言&#xff0c;招生官每天阅读的essay在200封以上&#xff0c;每篇阅读在12分钟以内&#xff0c;所以你的essay开头…

14-zookeeper环境搭建

0、环境 java&#xff1a;1.8zookeeper&#xff1a;3.5.6 1、下载 zookeeper下载点击这里。 2、安装 下载完成后解压&#xff0c;放到你想放的目录里。先看一下zookeeper的目录结构&#xff0c;如下图&#xff1a; 进入conf目录&#xff0c;复制zoo_sample.cfg&#xff0…

【UE5】pmx导入UE5,套动作。(防止“气球人”现象。

参考视频&#xff1a;UE5Animation 16: MMD模型與動作導入 (繁中自動字幕) 问题所在&#xff1a; 做法记录&#xff08;自用&#xff09; 1.导入pmx&#xff0c;删除这两个。 2.转换给blender&#xff0c;清理节点。 3.导出时&#xff0c;内嵌贴图&#xff0c;选“复制”。 …

yolo 视频流播放并进行目标识别

根据视频流&#xff0c;实时的进行目标识别 一、下载 [lal](https://github.com/q191201771/lal/releases/tag/v0.37.4)二、安装 [FFmpeg](https://ffmpeg.org/)三、完整代码演示 需要前置了解YOLO的完整操作 使用labelImg标注&#xff0c;YOLO进行目标训练 一、下载 lal 下载…

分类模型的预测概率解读:3D概率分布可视化的直观呈现

背景 在分类模型中&#xff0c;预测概率不仅是结果&#xff0c;更是模型决策的关键依据。为了更直观地理解这些概率分布&#xff0c;3D可视化提供了一种生动的展示方式&#xff0c;本文通过3D概率分布图&#xff0c;直观展示分类模型的预测概率 代码实现 基于时间序列的3D分…

【Spring】获取Bean对象需要哪些注解

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;Service&#xff08;服务存储&#xff09; 1&#xff1a;存储bean的代码 2&#xff1…

【C++】哈希表实现

目录 一、哈希概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因子 1.4 将关键字转为整数 二、哈希函数 2.1 除法散列法/除留余数法 2.2 乘法散列图&#xff08;了解即可&#xff09; 2.3 全域散列法&#xff08;了解即可&#xff09; ​编辑 三、处理哈希冲突 3.1 开放…

Android-相对布局RelativeLayout

相对布局在摆放子视图位置时&#xff0c;按照指定的参考系来摆放子视图的位置&#xff0c;默认以屏幕左上角(0,0)位置作为参考系摆放位置 了解一下接下来都会以代码的方式可视化出来 属性 可选值 说明 layout_alignParentTop true/false 是否让控件相对于父容器顶部对齐 …

Intellij配置scala运行环境

文章目录 Intellij配置scala运行环境下载地址安装插件设置sdk与scala scala项目创建安装可能出现的错误 Intellij配置scala运行环境 下载地址 在centos7上安装intellij https://www.jetbrains.com/idea/download/other.html解压后进入文件夹启动打开ide ./idea-IC-232.1033…

【批量生成WORD和PDF文件】根据表格内容和模板文件批量创建word文件,一次性生成多个word文档和批量创建PDF文件

如何按照Word模板和表格的数据快速制作5000个word文档 &#xff1f; 在与客户的合作的中需要创建大量的合同&#xff0c;这些合同的模板大概都是一致的&#xff0c;是不是每次我们都需要填充不一样的数据来完成&#xff1f; 今天用表格数据完成合同模板的填充&#xff0c;批量…

深度网络结构中的梯度消失与爆炸原理分析

原理 梯度消失的定义 在深度神经网络中&#xff0c;梯度消失是指在误差反向传播过程中&#xff0c;接近输入层的层次上梯度趋近于零的现象。这导致网络权重的更新非常缓慢&#xff0c;甚至停止&#xff0c;使得训练过程变得极其困难。主要发生在使用Sigmoid或Tanh等饱和激活函…

请求go web后端接口 java安卓端播放视频

前端代码 添加gradle依赖 implementation com.squareup.retrofit2:retrofit:2.9.0 implementation com.squareup.retrofit2:converter-gson:2.9.0 添加访问网络权限 <uses-permission android:name"android.permission.INTERNET" />允许http 请求请求 andro…

乐凡信息智能安全管控方案:助力油气田行业安全管控多方位升级

我国油田地域广阔&#xff0c;分布着大量各种油井&#xff0c;油井开采设备的连续稳定运行是保证石油开采的首要条件。然而&#xff0c;由于油田多位于特殊地理环境中&#xff0c;因而实现油井之间的通信首要问题就是要克服地理环境所带来的限制&#xff0c;传统通信系统的建设…

编辑, 抽成组件

问题 错误思路&#xff1a; 1 dept不能修改&#xff0c; 用watch监听一下&#xff1a;赋值给新的变量进行修改&#xff0c; 问题&#xff1a; currentDept 发生改变&#xff0c; depth也发生了改变&#xff0c;因为是浅拷贝&#xff0c; 用了json.pase(json.stringify(value…

<项目代码>YOLO Visdrone航拍目标识别<目标检测>

项目代码下载链接 &#xff1c;项目代码&#xff1e;YOLO Visdrone航拍目标识别&#xff1c;目标检测&#xff1e;https://download.csdn.net/download/qq_53332949/90163918YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一…

如何从全局视角规划项目与战略决策(“精准接送”案例、技术架构设计与选型、业务逻辑及产品商业模式探讨)

文章目录 1. 引言2. 项目背景与需求分析2.1 业务背景&#xff08;5W分析法&#xff09;2.2 需求概述功能需求非功能需求 2.3 典型挑战 3. 技术架构设计与选型3.1 技术选型扩展表3.2 架构设计的深度思考3.2.1 核心架构原则3.2.2 实际架构实践 4. 业务逻辑及产品商业模式探讨4.1 …