【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 原理
多模式道路网构建主要涉及以下几个关键步骤:
-
数据收集与预处理:
- 道路数据:获取详细的道路网络数据,包括道路类型、长度、宽度、限速等信息。
- 交通模式数据:获取不同交通模式(如公共交通路线、站点、时刻表、自行车道、人行道等)的数据。
- 地理信息数据:获取地理信息系统(GIS)数据以便进行空间分析和匹配。
-
网络建模:
- 节点与边的定义:在道路网络中定义节点(如交叉口、站点)和边(道路段、轨道段等),并为不同交通模式创建相应的节点和边。
- 模式间转换节点:定义不同交通模式之间的转换节点(如公交站点、自行车租赁点、停车场等),以便用户可以在不同模式之间切换。
-
网络集成:
- 网络合并:将不同交通模式的网络合并到一个综合的网络中,确保各模式之间的节点和边能够正确连接。
- 权重和成本分配:为每条边分配相应的权重或成本(如时间、距离、费用等),并考虑不同模式之间的转换成本。
-
路径规划与分析:
- 多模式路径规划:使用图算法(如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)…...
深度学习基础及技巧
机器学习中的监督学习 监督学习是通过对数据进行分析,找到数据的表达模型,对新输入的数据套用该模型做决策 主要分为训练和预测两个阶段 训练阶段:根据原始数据进行特征提取,然后使用决策树、随机森林等模型算法分析数据之间的特…...

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专题…...

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

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系统上一切皆文件 计算机中包含大量外设,操作系统想要管理好这些外设,就必须对这些外设进行先描述再组织,…...

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 文件…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...