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

【ArcGIS Pro实操第三期】多模式道路网构建(Multi-model road network construction)原理及实操案例

ArcGIS Pro实操第三期:多模式道路网构建原理及实操案例

  • 1 概述
    • 1.1 原理
  • 2 GIS实操
    • 2.1 新建文件并导入数据
    • 2.2 创建网络数据集
    • 2.3 设置连接策略(Setting up connectivity policies)
    • 2.4 添加成本(Adding cost attributes)
      • 修改距离成本
      • 增加时间成本-DriveTime
      • 增加时间成本-PedestrianTime
      • 增加距离成本-DriveMeters
    • 2.5 添加限制和描述符(Adding restrictions)
    • 2.6 添加出行模式(Configuring travel modes)
      • 添加出行模式-Drive
      • 添加出行模式-Pedestrians
    • 2.7 配置方向(Configuring directions)
    • 2.8 创建和构建网络数据集(Creating and building the network dataset)
    • 2.9 基于多式联运网络寻找最快路线(Finding the quickest route based on the multimodal network)
    • 报错-ERROR 030024: Solve returned a failure.
  • 参考

多模式道路网构建(Multi-modal road network construction)是指在一个综合的交通网络中,同时考虑多种交通模式(如步行、骑行、公共交通和驾车等),并将它们集成到一个统一的道路网络模型中。这种方法旨在更好地反映真实世界中的复杂交通需求和行为,以便进行更准确的交通分析和规划。

1 概述

1.1 原理

多模式道路网构建主要涉及以下几个关键步骤:

  1. 数据收集与预处理

    • 道路数据:获取详细的道路网络数据,包括道路类型、长度、宽度、限速等信息。
    • 交通模式数据:获取不同交通模式(如公共交通路线、站点、时刻表、自行车道、人行道等)的数据。
    • 地理信息数据:获取地理信息系统(GIS)数据以便进行空间分析和匹配。
  2. 网络建模

    • 节点与边的定义:在道路网络中定义节点(如交叉口、站点)和边(道路段、轨道段等),并为不同交通模式创建相应的节点和边。
    • 模式间转换节点:定义不同交通模式之间的转换节点(如公交站点、自行车租赁点、停车场等),以便用户可以在不同模式之间切换。
  3. 网络集成

    • 网络合并:将不同交通模式的网络合并到一个综合的网络中,确保各模式之间的节点和边能够正确连接。
    • 权重和成本分配:为每条边分配相应的权重或成本(如时间、距离、费用等),并考虑不同模式之间的转换成本。
  4. 路径规划与分析

    • 多模式路径规划:使用图算法(如Dijkstra算法、A*算法等)进行多模式路径规划,计算从起点到终点的最优路径,可以考虑时间、距离、费用等多种因素。
    • 交通模拟与优化:进行交通模拟和优化分析,以评估和改进交通网络的性能。

多模式道路网构建可以帮助城市规划者和交通工程师更好地理解和优化城市交通系统,提高交通效率和便利性。

2 GIS实操

2.1 新建文件并导入数据

1、打开ArcGIS Pro,并新建文件(Start without a template):
在这里插入图片描述
新建地图(Create a new map),如下图:在这里插入图片描述
2、链接至已有数据,具体步骤如下:

2.1 在“视图”功能区的“Windows”组中,单击“编目窗格”以打开“编目”。
在这里插入图片描述
2.2 在Catalog中,右键单击Folders并选择Add Folder Connection
在这里插入图片描述
导航到包含数据的文件夹。强烈建议将所有数据存储在D:\驱动器中,以避免潜在的问题。
在目录中,展开Lab2 → Paris→Transport,界面如下:
在这里插入图片描述

或者,直接导入数据(Map→Add Data,将包含道路的数据直接导入至图层中)。
数据导入后,界面如下:
在这里插入图片描述
2.3 检查道路属性

在Contents窗格中,右键单击Streets图层,选择Attribute Table。

  • FT_Minutes、TF_Minutes、KPH和Meters等字段可用于设置成本属性,以告知网络数据集遍历每条边的成本。这些字段通常是双精度或浮点类型字段。
  • FUNC_CLASS字段是一个整数字段,用于为每条道路分配一个类别。此字段将用于在网络数据集上设置层次结构属性。同样,此字段和层次结构将在本教程的后续部分中介绍。
    在这里插入图片描述

检查完毕后,关闭属性表(Attribute Table)。

2.2 创建网络数据集

在Catalog中,右键单击Transport特征数据集,然后单击New → Network dataset。
在这里插入图片描述
打开“新建网络数据集(Create Network Dataset)”向导,如下:
在这里插入图片描述

  • 网络数据集重命名:ParisMultimodal_ND
  • 单击“全选”,选择网络中作为源参与的所有特征类。
  • 由于此数据集不存在高程数据,因此在elevation Model参数中选择No elevation。
    elevation字段在网络数据集中用于细化线端点的连通性。它们包含从参与网络的特征类的字段派生的高程信息。这与基于z-坐标值建立连接不同,在z-坐标值中,物理高程信息存储在特征的每个顶点上。高程场适用于边缘和接点源。使用高程字段的边缘特征源有两个字段来描述高程(一个用于线特征的每个端点)。
  • 单击窗格底部的Run。

设定完成后,界面如下:
在这里插入图片描述
运行完成后,网络数据集(ParisMultimodal_ND)将会添加至地图(Map)图层中。
在这里插入图片描述
右键单击Contents中的ParisMultimodal_ND层,选择Remove,将网络数据集层从地图中移除。

说明: 当网络数据集图层位于地图中时,无法编辑网络数据集属性。您必须从地图中移除该图层才能继续本教程的其余部分。

在这里插入图片描述

2.3 设置连接策略(Setting up connectivity policies)

ArcGIS Network Analyst扩展中的连接性从连接性组的定义开始。每个边缘源只分配给一个连接组,每个连接源可以分配给一个或多个连接组。连通性组可以包含任意数量的源。网络元素如何连接取决于元素所在的连接组。例如,从两个不同的源特征类创建的两条边可以连接,如果它们在相同的连接组中。如果它们在单独的连接组中,则除非它们被参与两个连接组的连接点连接,否则这些边不会连接。

操作步骤如下:
1、在目录(Catalog)窗格中,右键单击ParisMultimodal_ND网络数据集并选择 属性(Properties) 以打开网络数据集属性对话框。
在这里插入图片描述
2、单击“源设置(Source setting)” → “源(Source )”。

该页面显示当前参与网络数据集的所有源要素类

在这里插入图片描述
单击“源设置(Source setting)” → “(Group Connectivity )”,设置网络的连通性模型。
在这里插入图片描述
3、为Group Count输入2,将连接组的数量增加到2。在Groups中创建第二个连接组的列。

  • 连接性组1代表地铁系统(metro system)
  • 连接性组2代表街道网络(Street network)

在这里插入图片描述

4、单击Streets行并选中Groups第二列下的复选框,将Streets源移动到连接组2。

5、单击metro_entries行并选中Groups第二列下的复选框,以在组1和组2中包含源特性类。地铁入口是街道和通往地铁站的人行道之间的换乘点。
metro_entrance的每个特征都与街道特征类的一个顶点相一致。但是,streets特性类具有端点连接策略。由于地铁入口需要连接到重合顶点的街道,您必须设置metro_entries来覆盖街道的默认端点连接。
6、将地铁入口的策略从荣誉(Honor)改为覆盖(Override)
7、确认(OK)
在这里插入图片描述

2.4 添加成本(Adding cost attributes)

这个网络数据集的一个目标是对步行时间驾驶时间进行建模。当在网络上执行分析时,这允许您在两种时间成本之间进行选择。
例如,你可以选择回答这样一个问题:对于一个可以沿着街道走路和乘坐地铁的行人来说,从a点到B点最快的路线是什么?或者对于开车的人来说,最快的路线是什么?
要做到这一点,必须设置两个时间成本属性:行人时间(PedesstrianTime)和驾驶时间(DriveTime)。

操作步骤如下:
1、在“Catalog”窗格中,右键单击“ParisMultimodal_ND”网络数据集,选择“Properties”打开“network dataset Properties”对话框。
在这里插入图片描述
2、单击旅行属性(Travel Attributes)页,然后单击成本(Costs)选项卡。
在这里插入图片描述

修改距离成本

3、单击开销(Costs)的“距离(Distance)”部分中的“长度(Length)”属性。

4、在“属性”部分的“名称(Name)”文本框中输入“米(Meters)”,然后按enter键。单位应该是米。
在这里插入图片描述
在Evaluators部分中,您可以查看和编辑网络中每个源的评估器类型及其值。你可以看到结点和转弯源总是有一个相关的评估器,但是边缘源有两个:每个方向一个(沿和逆)。
在这里插入图片描述
5、在Evaluators部分,在Edges组中,对于Metro_Lines(Along)行,类型应该是字段脚本,并双击Metro_Lines(Along)的Value列,使字段脚本设置按钮可用。
然后单击字段脚本设置按钮
在这里插入图片描述
有许多类型的评估器,可以在成本、限制和描述符中使用。字段脚本求值器是最常用的,因为它们使用基于字段的单个字段或简单表达式来确定遍历边缘的成本。

6、在“结果”框中输入[METERS],单击“确定”。
在这里插入图片描述
7、对Streets (Along)行重复步骤5和6。
在这里插入图片描述
8、在Evaluators部分,在Edges组中,对于Transfer_Stations(Along)行,类型应该是字段脚本,双击Transfer_Stations(Along)的Value列,使字段脚本设置按钮可用,然后单击字段脚本设置按钮

9、在“结果”框中输入[SHAPE_LENGTH],单击“确定”
在这里插入图片描述
10、对Transfer_Street_Station(Along)行重复步骤8和9。
在这里插入图片描述

增加时间成本-DriveTime

接下来,继续增加时间成本(Add time costs)。

11、单击“菜单(Menu)”按钮并选择“新建(New)”
在这里插入图片描述
12、输入DriveTime作为新开销的名称。将单位改为分钟。将数据类型设置为Double,如下:
在这里插入图片描述
13、在Evaluators部分的Edges组中,对于Streets (Along)行,将Type从Same as Default更改为Field Script

14、双击“沿街Streets (Along)”的“值(Value)”列,使“字段脚本设置(Field Script Settings)”按钮可用,然后单击“字段脚本设置”按钮。
注意: 您可能有一个字段表示沿某条边沿任何方向移动的成本,该成本是通过将线的长度除以速度限制来计算的,该字段适用于顺方向和反方向。如果相同的字段可以用于两个方向的移动,则可以对Streets (Along)行使用字段脚本评估器。然后,不是为Streets (Against)方向设置字段脚本评估器,而是将评估器类型更改为Same As Along。
对于这个数据,有不同的字段来表示顺方向和反方向,因此您将设置两个方向

15、在“结果”框中输入[FT_MINUTES],单击“确定”。
在这里插入图片描述
16、重复步骤13和14的街道(对)(Streets (Against))行。

17、在“结果”框中输入[TF_MINUTES],单击“确定”。
在这里插入图片描述
18、对于Metro_Lines(Along)行,将Type从Same as Default更改为Constant。

19、在“Value”框中输入“-1”,按“enter”。

Network Analyst将成本值为-1的任何元素视为受限元素。因此,无论何时在网络分析中使用DriveTime属性作为阻抗,这些源都是不可遍历的。

在这里插入图片描述
20、对Transfer_Stations(Along)行重复步骤18和19。
21、对Transfer_Street_Station(Along)行重复步骤18和19。
在这里插入图片描述

22、在Evaluators部分的junction组中,对Metro_Stations行重复步骤18和19
在这里插入图片描述

增加时间成本-PedestrianTime

23、重复步骤11和12,创建一个名为 行人时间(PedestrianTime) 的新时间成本。
在这里插入图片描述
行人时间网络属性表示行人在网络上行走所需的时间。在接下来的步骤中,您将为可以乘坐地铁系统或沿着街道行走的行人分配适当的旅行时间。

24、在Evaluators部分,在Edges组中,对于Metro_Lines(Along)行,将Type从Same as Default更改为Field Script。
在这里插入图片描述
25、双击Metro_Lines的Value列,使字段脚本设置按钮可用,然后单击字段脚本设置按钮

26、在“结果”框中输入[TRANSITTIM]并单击“确定”。
在这里插入图片描述
27、对Transfer_Stations(Along)行重复步骤24-26。

28、对Transfer_Street_Station(Along)行重复步骤24-26
在这里插入图片描述
29、重复步骤24和25的街道(沿)行(Streets(Along) )。

对于Streets源,行人时间的值是步行时间。假设行人以3公里/小时的速度行走,则步行时间(分钟)为[米]* 60 / 3000,其中[米]是包含以米为单位的边缘长度的属性

30、在“结果”框中输入[METERS] * 60 / 3000,单击“确定”。
在这里插入图片描述
这个网络没有任何turn特性类,所以我们不改变Evaluators部分的turn组中的元素。

增加距离成本-DriveMeters

接下来,为开车的人增加新的距离成本。

31、单击“菜单(Menu)”按钮并选择“新建(New)”

32、为新开销的名称键入driveremeters。将单位改为米。将数据类型设置为Double。
在这里插入图片描述
33、在Evaluators部分的Edges组中,对于Streets (Along)行,将Type从Same as Default更改为Field Script。
34、双击“沿街”的“值”列,使“字段脚本设置”按钮可用,然后单击“字段脚本设置”按钮。
在这里插入图片描述
35、在“结果”框中输入[METERS],单击“确定”。
在这里插入图片描述
36、对于Metro_Lines(Along)行,将Type从Same as Default更改为Constant。

37、在“Value”框中输入“-1”,按“enter”。

说明: Network Analyst将成本值为-1的任何元素视为受限元素。因此,无论何时在网络分析中使用DriveMeters属性作为阻抗,这些源都是不可遍历的

在这里插入图片描述
38、对Transfer_Stations(Along)行重复步骤36和37。

39、对Transfer_Street_Station(Along)行重复步骤36和37。

40、在Evaluators部分的junction组中,对Metro_Stations行重复步骤36和37。
在这里插入图片描述

2.5 添加限制和描述符(Adding restrictions)

Oneway属性与DriveTime属性是松散关联的,因为它模拟了驾驶员需要遵循的单向交通限制。稍后,当您使用DriveTime作为代价执行分析时,您应该启用单向限制,以便生成的路由遵循单行道。另外,在建模行人的运动时,不应该使用单向限制,因为行人可以自由地朝他们选择的方向行走。

操作步骤如下:
1、在“Catalog”窗格中,右键单击“ParisMultimodal_ND”网络数据集,选择“Properties”打开“network dataset Properties”对话框。

2、单击旅行属性(Travel attributions)页,然后单击限制(Restrictions)选项卡。
在这里插入图片描述
3、单击Restrictions选项卡右上角的Menu按钮,然后选择New

4、输入Oneway作为新限制的名称

5、将“使用类型( Usage Type)”保留为“禁止(Prohibited)”
在这里插入图片描述
6、在Evaluators部分的Edges组中,对于Streets (Along)行,将Type从Same As Default更改为Field Script。

7、在“结果”框中输入受限制的类型,在“代码块”框中输入以下表达式:

restricted = False
Select Case UCase([Oneway])Case "N", "T": restricted = True
End Select

在这里插入图片描述
8、单击评估器设置对话框中的OK以接受更改。

9、对于Streets (Against),将评估器类型更改为Field Script。

10、现在打开街道(反对)(Streets (Against))行的评估器设置对话框:

11、在“结果”框中输入受限制的类型,在“代码块”框中输入以下表达式:

restricted = False
Select Case UCase([Oneway])Case "N", "F": restricted = True
End Select

在这里插入图片描述
12、单击评估器设置对话框中的OK以接受更改。
在这里插入图片描述
与地铁系统相关的源不需要单向限制。

13、单击“网络数据集属性”对话框中的“确定”,提交所做的更改并关闭对话框。

2.6 添加出行模式(Configuring travel modes)

传输模式由一组网络数据集设置组成,这些设置定义了网络上允许的操作以及如何执行这些操作。通过在网络数据集上配置一种或多种传输模式,可以简化以后的工作流程。在分析时,您可以选择想要使用的模式,而不是设置许多不同的属性。如果您对特定的旅行模式或车辆执行了许多分析,那么设置一个旅行模式可能是值得的。

操作步骤如下:
1、在“Catalog”窗格中,右键单击“ParisMultimodal_ND”网络数据集,选择“Properties”打开“network dataset Properties”对话框。

2、单击“旅行属性(Travel attributions)”页,然后单击“旅行模式(Travel Mode)”选项卡。
在这里插入图片描述
3、单击Travel Mode选项卡右上角的Menu按钮,然后选择New

添加出行模式-Drive

4、命名旅行模式驾驶时间(DriveTime)
5、将类型保留为Driving
6、在成本(Costs)部分,确保阻抗设置为驱动时间(分钟),距离成本可以是驱动里程(米)或米(米)。
7、在“限制(Restriction)”部分中,选中单向限制的复选框。
8、确保u型转弯设置为允许。
在这里插入图片描述
9、增加一个新的旅行模式(Travel Mode)叫驾驶距离(DrivingDistance)。
10、将阻抗更改为驱动仪表(仪表),将时间成本更改为驱动时间,并勾选单向限制框。
11、确保u型转弯设置为允许。
在这里插入图片描述

添加出行模式-Pedestrians

接下来,可以设置另一种旅行模式来模拟行人。

12、单击Travel Mode选项卡右上角的Menu按钮,然后选择New

13、命名出行模式为行人时间(Pedestrian Time)
14、选择类型为步行(Walking)。
15、在成本部分,确保阻抗设置为行人时间(分钟),距离成本应设置为米(米)。
16、在“限制”部分,取消选中单向限制的复选框。
行人可以去该网络上禁止车辆通行的地方,也可以在单行道上双向行走。
17、确保u型转弯设置为允许。
在这里插入图片描述
18、增加一个新的旅行模式(Travel Mode)叫做步行距离(Pedestrian Distance)。
19、选择类型为步行。
20、将阻抗改为米(米),时间成本改为行人时间(分钟)。
21、取消选中单向限制的复选框。
22、确保u型转弯设置为允许。
在这里插入图片描述
23、单击“网络数据集属性”对话框中的“确定”,提交所做的更改并关闭对话框

2.7 配置方向(Configuring directions)

当在您的网络数据集上计算路线时,您可以生成伴随结果的驾驶方向。网络数据集需要至少有一个带有文本属性(用于街道名称信息)和距离属性的边缘源,以显示在需要下一次相关操作之前它将有多远。

操作步骤如下:
1、在“Catalog”窗格中,右键单击“ParisMultimodal_ND”网络数据集,选择“Properties”打开“network dataset Properties”对话框。

2、单击“方向(Directions)”页,然后单击“常规(General)”选项卡。

3、选中“支持说明(Support Directions)”旁边的复选框。
在这里插入图片描述
“方向”页和“字段映射”选项卡将被标记为具有无效状态(红色虚线下划线)。现在不用担心这个。当您到达Field Mappings选项卡时,您将纠正这些问题。

4、单击“字段映射(Field Mappings)”选项卡。
可以为网络中的每个边缘源设置地铁线和街道名称字段。这些名字是用来报告方向的。

5、在Metro_Lines(Edge)部分,将Base Name从更改为Name。

6、在Streets (Edge)部分,将Base Name从更改为FULL_NAME。
在这里插入图片描述
7、单击“网络数据集属性”对话框中的“确定”,提交所做的更改并关闭对话框。

2.8 创建和构建网络数据集(Creating and building the network dataset)

设置好网络数据集的功能后,需要创建和构建它。

操作步骤如下:
1、在Analysis功能区的Geoprocessing组中,单击Tools以打开Geoprocessing窗格。

2、单击Geoprocessing窗格中的搜索栏并键入Build Network。

3、单击第一个结果以打开Build Network工具。

4、对于Input Network Dataset参数,单击Browse按钮并浏览到ParisMultimodal_ND网络数据集,然后单击OK。
在这里插入图片描述
5、单击底部的Run按钮。
运行完成后,结果如下:
在这里插入图片描述

2.9 基于多式联运网络寻找最快路线(Finding the quickest route based on the multimodal network)

在构建多模式网络后,您可以使用不同的交通方式(例如步行,开车,在本实验中乘坐地铁)找到任意点之间最快的路线。

操作步骤如下:
1、将已构建的多式联运网络(Paris.gdb\Transportation\ParisMultimodal_ND)拖到Contents中。

2、在Analysistab的“工作流(Workflows)”组中,单击“网络分析(Network analysis)→路线(Route)”
注意: 要查看或更改将用于创建网络分析层的网络数据源,在“分析”选项卡上,在“工作流”组中,您可以单击“网络分析”下拉菜单并查看“网络数据源”。
在这里插入图片描述
完成后,目录(Contents)中出现以下内容:
在这里插入图片描述
3、单击“网络分析(Network analysis)→路线(Route)→ “创建功能(Create Features)”按钮
在这里插入图片描述
4、在“路线(Route):站点(Stop)”下,单击“站点(Stop)”。
在这里插入图片描述
5、使用点工具在地图上网络数据集覆盖的区域创建几个站点。
在这里插入图片描述
6、在“路线(Route)”选项卡的“旅行设置(Travel Setting)”组中,选择“驾驶时间(Driving Time)”为“模型”,选择“顺序(Sequence)”为“最佳查找(Find Best)”
在这里插入图片描述
7、在“路线(Route)”页中,单击“运行(Run)”

8、在“路线(Route)”选项卡的“方向(Directions)”组中,单击“显示方向(Show Directions)”

报错-ERROR 030024: Solve returned a failure.

报错内容:The network dataset has no edge elements. It may be unbuilt. Failed to execute (Solve).
解决方案:“The network dataset has no edge elements. It may be unbuilt.”

错误原因:

  • The feature class that acts as a feature source for the edge element has a geometry problem. For a list of geometry problems, see the following document: Check Geometry用于边缘元素的特征类存在几何问题。有关几何问题的详细列表,请参阅以下文档:检查几何体。
  • The network dataset is not rebuilt after it is edited.编辑网络数据集后未重新生成。
    在这里插入图片描述

参考

1、ArcGIS Pro-创建网络数据集
2、ESRI-解决报错-错误:网络数据集没有边元素。 可能未构建

相关文章:

【ArcGIS Pro实操第三期】多模式道路网构建(Multi-model road network construction)原理及实操案例

ArcGIS Pro实操第三期:多模式道路网构建原理及实操案例 1 概述1.1 原理 2 GIS实操2.1 新建文件并导入数据2.2 创建网络数据集2.3 设置连接策略(Setting up connectivity policies)2.4 添加成本(Adding cost attributes&#xff09…...

深度学习基础及技巧

机器学习中的监督学习 监督学习是通过对数据进行分析,找到数据的表达模型,对新输入的数据套用该模型做决策 主要分为训练和预测两个阶段 训练阶段:根据原始数据进行特征提取,然后使用决策树、随机森林等模型算法分析数据之间的特…...

Unity 外描边简单实现(Shader Graph)

1:原理 将物体的模型空间的位置(也就是顶点数据)放大,作为一个单独的渲染通道单独渲染,这时候模型是已经发大过的,要想看到外描边的效果,需要将正面显示的东西给去掉,显示背面渲染的…...

text2sql方法:NatSQL和DIN-SQL

NatSQL NatSQL出自2021年9月的论文《Natural SQL: Making SQL Easier to Infer from Natural Language Specifications》(github),它是一种SQL 中间表征(SQL intermediate representation(IR))方法。 NatSQL作者认为Text2SQL的关键挑战是自然语言描述和其对应的SQ…...

【新闻转载】Storm-0501:勒索软件攻击扩展到混合云环境

icrosoft发出警告,勒索软件团伙Storm-0501近期调整了攻击策略,目前正将目标瞄准混合云环境,旨在全面破坏受害者的资产。 该威胁行为者自2021年首次露面,起初作为Sabbath勒索软件行动的分支。随后,他们开始分发来自Hive…...

RabbitMQ 队列之战:Classic 和 Quorum 的性能洞察

RabbitMQ 是一个功能强大且广泛使用的消息代理,它通过处理消息的传输、存储和交付来促进分布式应用程序之间的通信。作为消息代理,RabbitMQ 充当生产者(发送消息的应用程序)和使用者(接收消息的应用程序)之…...

Spring Boot 集成 MySQL 的详细指南

在现代软件开发中,Spring Boot 因其简单易用而成为构建 Java 应用程序的热门选择。结合 MySQL这一常用关系型数据库,开发者可以快速构建出功能完善的后端服务。本文将详细介绍如何将 Spring Boot 与 MySQL 集成,提供从环境搭建到代码实现的全…...

python格式化输入输出

以下是使用 format()、f-string 和百分号 % 运算符进行 Python 数据格式化输入输出的示例代码。 1. 使用 format() 方法进行格式化 # 使用 format() 方法格式化数据并输出到文件 name "Alice" age 25 score 92.5# 格式化字符串 formatted_string "Name: {…...

音视频入门基础:FLV专题(10)——Script Tag实例分析

一、引言 在《音视频入门基础:FLV专题(9)——Script Tag简介》中对FLV文件的Script Tag进行了简介。下面用一个具体的例子来对Script Tag进行分析。 二、Script Tag的Tag header实例分析 用notepad打开《音视频入门基础:FLV专题…...

国外问卷调查匠哥已经不带人了,但是还可以交流

国外问卷调查匠哥已经不带人了,但是还可以来和匠哥交流, 为啥不带人了呢? 从今年年初开始,匠哥在带学员的过程中发现: 跟往年同样的收费,同样的教学,甚至我付出的时间精力比以前还多&#xff…...

Linux 进程的基本概念及描述

目录 0.前言 1. 什么是进程 1.1 进程的定义与特性 1.2 进程与线程的区别 2.描述进程 2.1 PCB (进程控制块) 2.2 task_struct 3.查看进程 3.1 查看进程信息 3.1.1 /proc 文件系统 3.1.2 ps 命令 3.1.2 top 和 htop 命令 3.2 获取进程标识符 3.2.1使用命令获取PID 3.2.2 使用C语言…...

【C++】透过STL源代码深度剖析vector的底层

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 参考博客:【C】透过STL源…...

ubuntu 开启root

sudo passwd root#输入以下命令来给root账户设置密码 sudo passwd -u root#启用root账户 su - root#要登录root账户 root 开启远程访问: 小心不要改到这里了:sudo nano /etc/ssh/ssh_config 而是:/etc/ssh/sshd_config sudo nano /etc/ssh…...

使用 Llama 3.1 和 Qdrant 构建多语言医疗保健聊天机器人的步骤

长话短说: 准备好深入研究: 矢量存储的复杂性以及如何利用 Qdrant 进行高效数据摄取。掌握 Qdrant 中的集合管理以获得最佳性能。释放上下文感知响应的相似性搜索的潜力。精心设计复杂的 LangChain 工作流程以增强聊天机器人的功能。将革命性的 Llama …...

【Linux-基础IO】如何理解Linux下一切皆文件磁盘的介绍

目录 如何理解Linux系统上一切皆文件 1.物理角度认识磁盘 2.对磁盘的存储进行逻辑抽象 磁盘寻址 3.磁盘中的寄存器 如何理解Linux系统上一切皆文件 计算机中包含大量外设,操作系统想要管理好这些外设,就必须对这些外设进行先描述再组织&#xff0c…...

Golang | Leetcode Golang题解之第436题寻找右区间

题目: 题解: func findRightInterval(intervals [][]int) []int {n : len(intervals)type pair struct{ x, i int }starts : make([]pair, n)ends : make([]pair, n)for i, p : range intervals {starts[i] pair{p[0], i}ends[i] pair{p[1], i}}sort.…...

微服务SpringSession解析部署使用全流程

目录 1、SpringSession简介 2、实现session共享的三种方式 1、修改Tomcat配置文件 2、Nginx负载均衡策略 3、redis统一存储 0、准备工作 1、本地服务添加依赖 2、修改本地服务配置文件 3、添加application.properties文件 4、添加nacos - redis配置 5、修改本地项目…...

自动驾驶 3DGS 学习笔记

目录 street_gaussians gsplat依赖项 运行报错: python>3.9 SGD: Street View Synthesis with Gaussian Splatting and Diffusion Prior 差分高斯光栅化 diff-gaussian-rasterization street_gaussians https://github.com/zju3dv/street_gaussians gsp…...

【C++笔试强训】如何成为算法糕手Day5

学习编程就得循环渐进,扎实基础,勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 第一题:游游的you 思路: 第二题:腐烂的苹果 思路: 第三题:孩子们的游戏 思路&…...

【Qt】无IDE的Gui程序快速开始

Qt安装 在 Windows 上安装 Qt 的步骤如下: 下载 Qt 安装程序 访问 Qt 的官方网站:Qt Downloads。点击“Download”按钮,下载 Qt Online Installer(在线安装程序)。 运行安装程序 双击下载的 QtInstaller.exe 文件…...

Python编码系列—Python备忘录模式:掌握对象状态保存与恢复技术

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...

linux常用命令汇编(持续更新)

一、用户提示符 # root账号提示符 $ 普通用户提示符 二、关闭计算机 shutdown(安全有序地关闭计算机) 语法:shutdown [options] [time] [message] shutdown -h now #立即关机(--halt/终止) shutdown -r now #重…...

AI面试指南:AI工具总结评测,助力求职季

AI面试指南:AI工具总结评测,助力求职季 摘要: 在竞争激烈的AI领域秋招季,准备充分并借助高效工具是提升面试通过率的关键。本文主要介绍一些针对秋招的AI面试工具和学习资源,分为简历优化、面试助手、手撕代码练习三个…...

大二考核题解

大二考核题解 题号题目考察知识点A有意思的监考二分答案B海绵宝宝的数独DFSC走楼梯递推D碱基配对kmpE好简单的题啊,写它!最短路 写在前面: 整体难度不大,代码能力需要一些,正常来说至少要会3题以上 A 有意思的监考 …...

深入解析:Kubernetes 如何使用 etcd 作为配置中心和注册中心

在 Kubernetes 中,etcd 是核心的分布式存储组件,负责存储和管理集群的所有配置信息、状态数据以及服务注册信息。etcd 的高可用性和强一致性使得它成为 Kubernetes 的 “source of truth”,确保集群能够动态、高效地管理资源,并保…...

MQ高级:RabbitMQ小细节

在之前的学习中,我们只介绍了消息的发送,但是没有考虑到异常的情况,今天我们就介绍一些异常情况,和细节的部分。 目录 生产者可靠性 生产者重连 生产者确认 MQ可靠性 持久化 Lazy Queue 消费者可靠性 消费者确认机制 失…...

期权卖方怎么选择权利金高的品种,期货VIX高低对行情有什么影响

VIX指数——全称为芝加哥期权交易所市场波动率指数,俗称恐慌指数。 是衡量波动性的重要指标。VIX指数上升,预期未来市场波动性会增加。VIX指数下降,预期未来市场波动性会降低。 期货VIX指数最新价格排序 期权卖方尽量选择期货VIX指数在25以…...

内存对齐的原理和使用

1. 什么是内存对齐? 内存对齐是指将数据存储在内存中时,按照数据类型的大小,将数据放在特定的内存边界上。例如,4 字节的 int 通常放在能够被 4 整除的地址上,8 字节的 double 则放在能被 8 整除的地址上。 2. 为什么…...

搭建企业级私有仓库harbor

华子目录 harbor简介实验环境准备下载软件包安装docker-cehosts解析 实验步骤配置https加密传输解压进入解压目录,修改文件配置启动harbor 测试客户端配置harbor本地加速器注意 通过docker compose管理harbor harbor简介 harbor是由wmware公司开源的企业级docker r…...

互联网前后端分离的开发场景,一般会员和数据权限的判断是放在前端还是后端?

推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

什么网站做兼职靠谱吗/2022最近比较火的营销事件

身份证过期要到蓟县南所去办理 南所电话:022-29186230 南所地址:天津市蓟州区渔阳镇光明路44号文昌街派出所(不用进院内,瑞鑫轩东北菜旁边就是了) 办理时间:周一至周日8:30~16:30 办理费用&…...

网站访问量什么意思/最近新闻事件

请问唐氏筛查低风险人群,有必要做无创DNA吗?唐氏筛查低风险,有必要做无创DNA检查吗?这个问题问的好,如果单纯性的唐氏筛查低风险,那么根本没有必要再做无创DNA检查了。现实生活中还是存在很多唐氏筛查低风险…...

南宁企业免费建站/seo是什么部位

前文回顾:如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(1)如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(2)如何掌握openGauss数据库核心技术&#xff1f…...

广州天河区做网站/广告主平台

前一段一直处于装修和新的项目上手的时期,没有闲下来总结反思。长长有一种猴子掰玉米的感觉。从今天开始简单总结一下之前的东西。 今天暂时列一个提纲出来,之后会逐个章节补充上来: 1.流媒体基本知识---- RTSP RTP RTCP 2.开源的编解码框架 …...

梅陇做网站/百度热搜seo

这次写一下精灵创建的几种类型: 一、通过文件创建: 在原有的基础上加入例如以下代码: //一、通过文件创建精灵 CCSprite *bg CCSprite::create("map.png"); CCSize winSize CCDirector::sharedDirector()->getWinSize(); //得到屏幕的尺寸…...

计算机企业网站建设论文/广州网站seo推广

给你一个非空的字符串 ​​s​​​ 和一个整数 ​​k​​​ ,你要将这个字符串 ​​s​​ 中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离 至少 为 ​​k​​​ 。如果无法做到,请返回一个空字符串 ​​""​​。…...