WebGIS在应急灾害中对村庄、风景区、机场的影响范围应用-以日喀则市定日县地震为例

news2025/1/12 22:02:41

目录

前言

一、关于影响范围

1、震中距离5公里

2、震中20公里范围

3、20到80公里范围

二、空间查询知识

1、相关数据介绍

2、空间数据查询

三、前后端数据查询以及web可视化实现

1、后台API实现

2、WebGIS前端实现

四、Web成果展示

1、空间位置分析

2、包含风景区数据展示

五、总结


前言

        随着全球气候变化的加剧以及人类活动的不断扩张,自然灾害和人为灾害的频率与强度呈现出上升趋势。这些灾害对人类社会的各个方面,尤其是对村庄、风景区和机场等关键区域的影响日益显著。在灾害应急响应中,准确评估灾害影响范围是制定有效救援计划和资源分配策略的关键因素。WebGIS(Web Geographic Information System)作为一种基于网络的地理信息系统,为灾害影响范围的快速评估和可视化提供了强大的工具。

        WebGIS技术结合了地理信息系统(GIS)的空间分析能力和互联网的广泛接入优势,使得灾害信息能够实时更新和共享。在村庄遭受洪水、地震等灾害时,WebGIS可以迅速整合地理数据,如地形、建筑分布和人口密度等,通过空间分析模型计算出受影响的区域范围。这不仅有助于救援队伍确定优先救助的村庄,还能为物资分配和人员疏散提供科学依据。

        对于风景区而言,WebGIS的应用同样至关重要。风景区通常具有独特的自然景观和生态系统,灾害可能会对其造成严重的破坏。通过WebGIS,管理者可以实时监测灾害对景区内自然资源和基础设施的影响,及时调整游客路线和救援策略,减少灾害对风景区的长期损害。

        机场作为重要的交通枢纽,在灾害发生时,其运营状态直接关系到救援物资的运输和人员的疏散效率。WebGIS能够实时显示机场周边的灾害情况,包括洪水淹没范围、地震烈度分布等,帮助机场管理部门评估机场的运行安全和可能的关闭时间。此外,WebGIS还可以与航班管理系统相结合,为航班调整和应急疏散提供决策支持。

        本文以近日发生在日喀则市定日县的6.8级地震灾害为例重点讲解如何结合距离来进行影响范围评估。通过关联震中附近的村庄、风景区、机场等重要居民点和公共交通点,这些场所都是人员高度聚居的场所,通过这些数据来进行辅助分析。完整首先讲解如何在空间数据库中进行三种空间数据的关联和查询,然后使用SpringBoot讲解如何进行使用影响范围查询开发,通过构建5公里高风险区和20公里中风险区以及80公里低风险区,最后结合Leaflet等前端组件对相关数据进行可视化,为相关的领导和救援人员提供时空位置展示,制定科学的救援计划提供数据服务。本文暂时结合震中距离来评估自然灾害的影响,暂不考虑地质情况与房屋建筑情况,后面如果有相关的数据,可以进行更一步的挖掘与探索。

一、关于影响范围

        地震最为一种破坏性极强的自然灾害,而且如果发生在夜晚的自然灾害对人类的影响也将十分巨大。地震的直接影响范围取决于多种因素,包括震级、震源深度、地质构造、地表条件等。众所周知,在地震的震中位置,越靠近震中位置的地方,受到的影响就越大。因此,将距离震中的不同范围进行一个合理的划分,对于研究地震的影响范围有很大的意义。当然,关于影响范围不是一个固定的值,这里采用一些固定的范围,伴随着范围的扩大,地震的影响会显著的降低。因此这里我们将研究的空间距离范围进行一点的限制。

1、震中距离5公里

  • 破坏程度:震中5公里范围内的破坏通常最为严重。建筑物可能会遭受重大损坏或倒塌,基础设施如道路、桥梁等可能无法使用。例如,在西藏日喀则市定日县的6.8级地震中,震中5公里范围内的村庄如塘仁村、雪珠村等受到了显著影响。
  • 人口影响:震中5公里范围内的人口密度和建筑物密集度决定了人员伤亡和财产损失的程度。例如,宁夏银川市永宁县4.8级地震震中5公里范围内平均海拔约1113米

        因此,震中附近5公里范围内的影响是非常巨大的。这也意味着,在进行救援计划的指定时,需要重点考虑5公里范围的居民点、机场、风景区等。可以结合这些地区的人口密度、地址构造情况、建筑建成情况等进行综合评估。

2、震中20公里范围

  • 破坏程度:在震中20公里范围内,建筑物和基础设施的损害程度进一步减轻,但仍可能有轻微的破坏,如墙皮脱落、窗户破碎等。例如,在西藏日喀则市定日县的6.8级地震中,震中20公里范围内的乡镇如措果乡、曲洛乡受到了影响。
  • 人口影响:震中20公里范围内的人口数量可能更大,因此可能有更多的人员感受到地震的影响,但伤亡和损失相对较小

        从5公里到20公里的范围内,影响程度会随着距离的增加而衰减,但依然会有一定的破坏性,而建筑的倒塌情况也会伴随着距离有很大的改善,因此可以随着这个距离的扩大在制定救援计划时将这类地区依据距离进行优先级排序。

3、20到80公里范围

        对于超过20公里的地震影响,会更小。这里之所以研究80公里范围内,是因为想查看80公里范围的飞机场位置,飞机作为一种快速机动的救援方式,在争分夺秒的抢救中发挥了非常重要的作用。因此,飞机场不仅是评估影响的重要因素,也是评估救援方案的一种重要因素。物资可以通过飞机快速的运抵灾区。

二、空间查询知识

        在介绍了前面的影响范围之后,本节将介绍如何将居民点、飞机场、风景区的信息进行整合查询,通过影响半径的划定来进行空间信息查询。通过本节,大家可以掌握如何实现对这三类信息进行关联过滤查询。

1、相关数据介绍

        这里提到的居民点、飞机场、风景区等数据,在个人博客中的均有提及,在进行实际的灾害分析时,还可以结合AOI数据,不仅是包含居民点,还包括学校、医院、养老院、办公楼等重要场所进行完整的空间分析。本文仅展示一种空间影响范围的分析。这三类数据分别存储在三张表中,这三张表的主要字段信息如下图所示:

2、空间数据查询

         要实现查询指定范围内的不同标识地点,需要借助空间数据库中的空间查询函数st_dwithin(geography,geography)和距离求解函数st_distance(geography,geography)以及根据geometry求解经度和纬度的函数st_x(geometry)和st_y(geometry)。同时为了同时将这三张表的数据集中汇总到一起,然后与地震信息进行关联,这里需要使用数据库中的高级查询With查询,数据查询sql语句如下:

with bp as (
	select bce.geom from biz_ceic_earthquake bce where bce.pk_id = 1876603675057643521
)
select ta.* from (
select t.id pk_id,t.name,'scenicspot' as type,st_x(t.geom) lon,st_y(t.geom) lat, 
st_distance(t.geom :: geography, bp.geom :: geography) dist from biz_scenic_spot t,bp 
where st_dwithin(t.geom :: geography,bp.geom :: geography,20000 )
union
select t.pk_id,t.name_zh as name,'airport' as type,t.lon_wgs84 lon,t.lat_wgs84 lat, 
st_distance(t.geom :: geography, bp.geom :: geography) dist from biz_global_airport_info t,bp
where st_dwithin(t.geom :: geography,bp.geom :: geography,80000 )
union 
select t.id pk_id,t.village_name as name,'village' as type,st_x(t.geom) lon,st_y(t.geom) lat, 
st_distance(t.geom :: geography, bp.geom :: geography) dist from biz_village t,bp 
where st_dwithin(t.geom :: geography,bp.geom :: geography,20000 )
) ta order by ta.dist ;

        在navicat的客户端中执行上述的SQL之后,可以得到以下的查询结果:

        在上面的SQL中,我们使用的距离计算都需要先转成geography,这样的求解结果单位就是米,可以在后续的条件中输入以米为计算单位的距离。 在最开始的时候,将地震的结果一次性查出来,在后面的查询过程中就不需要单个关联,这样就大大的提升了查询效率。

三、前后端数据查询以及web可视化实现

        在掌握了空间数据表的空间查询方法之后,下面我们就可以基于这个空间函数查询进行WebGIS的开发。后台设计的程序比较简单,主要是将上面的SQL语句写入到Mybatis_Plus当中,然后让控制层进行调用和执行。

1、后台API实现

        当前端输入一个地震的主键值之后,后台可以通过控制层调用业务层,而业务层调用数据访问层,然后实现空间数据的访问。这里将后台API控制层的方法展示出来,如果有问题,可以在评论区留言指出。

/**
 *- 获取地震影响信息列表,用post
 * @param pkId
 * @return
*/
@PostMapping("/effect/{pkId}")
@ResponseBody
public AjaxResult effect(@PathVariable("pkId")Long pkId){
   AjaxResult ar = AjaxResult.success();
   List<EarthQuakeEffectVo> dataList = ceicEarthQuakeService.findEffectList(pkId, 20000, 80000, 20000);
   ar.put("data", dataList);
   return ar;
}

2、WebGIS前端实现

        后端提供好了对应的接口之后,前端就可以调用这个接口传入地震的主键ID,然后将ID对应的空间范围内的居民点、机场、风景区进行查询及展示。前端使用Leaflet对这些位置点进行渲染,同时标注具体的距离信息。为相关部门决策提供依据和基础。

function showDistance(){
   $.ajax({  
		type:"post",  
		url:prefix + "/effect/" + [[${pkId + ''}]],  
		dataType:"json",  
		cache:false,
		processData:false,
		success:function(result){
		   if(result.code == web_status.SUCCESS){
		        var strokeStyleSet = "green";
		        for(var i=0;i<result.data.length;i++){
		        	var dataInfo = result.data[i];
		        	var dist = dataInfo.dist;
		        	var zindex = 3;//排序号很重要,会优先展示
		        	if(parseFloat(dist) <= 5000){
		    			strokeStyleSet = "red";
		    		}
		        	if(parseFloat(dist) > 5000 && parseFloat(dist) <= 20000 ){
		    			strokeStyleSet = "orange";
		    			zindex = 2;
		    		}
		        	if(parseFloat(dist) >= 20000){
		        		strokeStyleSet = "green";
		        		zindex = 1;
		        	}
		        	var _dist = parseFloat(dataInfo.dist / 1000).toFixed(2);
		    		var content = "<strong>影响地点:</strong>"+dataInfo.name + "<br/><strong>震中位置:</strong>"+ cityInfo;
		    		content += "<br/><strong>距离(千米):</strong>"+_dist;
	    			var type = "村庄";
   			        if(dataInfo.type == "scenicspot"){
   			        	 type = "风景区";
   			        }
   			        if(dataInfo.type == "airport"){
			        	 type = "机场";
			        }
	    			var marker = L.circleMarker(new L.LatLng(dataInfo.lat, dataInfo.lon), {radius: 8,
		    		labelStyle: {
			    			text: type + ":"+ (i + 1 )+  dataInfo.name + "(" + _dist + "千米)",
			    			rotation: 0,
			    			zIndex: zindex,
			    			strokeStyle :strokeStyleSet
			    	},
			    	color : strokeStyleSet
			    	}).addTo(mymap);
		    		marker.bindPopup(content);  
		        			
		    		L.polyline(
	   					[
	   					   [
	   					    	[lat, lon],[dataInfo.lat, dataInfo.lon]]], {
	   					      labelStyle: {
	   					        //text: cityInfo + ">" +dataInfo.name + ":"  + _dist + "千米",
	   					        //text: _dist + "千米",
	   					        zIndex: 0,
	   					        collisionFlg: false,
	   					        textAlign:'center',
	   					     	strokeStyle :strokeStyleSet
	   					      },
	   					  color : strokeStyleSet
	   					}).addTo(mymap);
		        	}
		      }
		      mymap.setZoom(9);//再次缩放到9级
		  },
		  error:function(){
		       $.modal.alertWarning("获取信息失败");
		  }
	});
}

        需要注意到是,这里的图例生成与目标点的marker标定时,为了让震中5公里范围的的marker标记可以快速的展示出来,我们对标记的zindex进行设置。同时按照不同的影响范围点类型,将居民点、风景区、机场等进行分别的追加标注。

四、Web成果展示

        本节结合具体的地震信息,将实现震中地震的WebGIS影响范围评估,通过5公里范围、20公里影响范围,80公里影响范围及其包含的空间点位置信息,让大家看到地震的实际影响范围。地震信息来源于国家地震台网。这也是为什么选择WebGIS来实现这个需求,传统的C/S的桌面制图,耗时费力,使用WebGIS的方式来实现,把主要的数据源固化之后,剩下的展示工作就比较简单了。这里以定日县地震为例重点讲解地震影响范围。

1、空间位置分析

        首先在地震台网信息展示列表中可以看到以下信息:

        这是同步过来的数据,点击操作按钮栏中的最后一个按钮即“震中影响”,在新打开的影响评估窗口中可以看到这三类点位数据以及列表数据。

        首先通过红、黄、绿灯三色标识来进行不同风险级别的标注。表示5公里、5-20公里、20-80公里影响范围点位信息。在上面的地图界面中,我们可以很清晰的看到,本次定日县的地震,对机场的影响较小,两者的直线距离相差63.62千米。本次地震震中附近20公里范围内无旅游景区,但是居民点还是比较多的。将地图进一步的放大,查看受灾严重的5公里范围内点位。

        可以看到,距离震中位置5公里范围的乡村,在空间位置上都是位于震中的东南角。 更详细的距离名单,可以看表格的右边。最近的是塘日村,距离2.56千米。这距离相当近了,需要重点关注。5公里范围的乡村信息如下:

名称类型距离(千米)
1、塘日村村庄2.56
2、雪珠村村庄2.59
3、嘎热果吉村村庄2.61
4、美朵村村庄3.68
5、吉翁村村庄4.89
6、吉定村村庄4.90

2、包含风景区数据展示

        在前面的地震数据展示中,并没有风景区的数据,机场的数据是有的,只是因为距离的原因,排在了最后面。这里来看一下包含风景区的数据。以2017年四川阿坝州九寨沟县7.0地震为例,来看一其对风景区的影响范围。

        可以看到,距离震中仅10公里内就有5A级景区九寨沟风景名胜区以及距离8公里的爱琴海景区。 同时可以看到震中位置距离九寨沟黄龙机场仅有40公里。

五、总结

        以上就是本文的主要内容,本文以近日发生在日喀则市定日县的6.8级地震灾害为例重点讲解如何结合距离来进行影响范围评估。通过关联震中附近的村庄、风景区、机场等重要居民点和公共交通点,这些场所都是人员高度聚居的场所,通过这些数据来进行辅助分析。完整首先讲解如何在空间数据库中进行三种空间数据的关联和查询,然后使用SpringBoot讲解如何进行使用影响范围查询开发,通过构建5公里高风险区和20公里中风险区以及80公里低风险区,最后结合Leaflet等前端组件对相关数据进行可视化,为相关的领导和救援人员提供时空位置展示,制定科学的救援计划提供数据服务。本文暂时结合震中距离来评估自然灾害的影响,暂不考虑地质情况与房屋建筑情况,后面如果有相关的数据,可以进行更一步的挖掘与探索。

        尽管WebGIS在灾害应急中的应用前景广阔,但仍面临着数据准确性、实时性和用户界面友好性等挑战。为了充分发挥WebGIS在灾害影响范围评估中的作用,需要进一步加强数据采集和更新机制,优化空间分析算法,并提高系统的易用性。本文旨在探讨WebGIS在应急灾害中对村庄、风景区和机场影响范围的具体应用,分析其优势与局限,并提出相应的改进策略,以期为灾害应急管理和决策提供科学依据和技术支持。行文仓促,定有许多不足之处,如有不足,还恳请各位专家博主在评论区留言指出,不胜感激。

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

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

相关文章

使用网页版Jupyter Notebook和VScode打开.ipynb文件

目录 正文 1、网页版Jupyter Notebook查看 2、VScode查看 因为总是忘记查看文件的网址&#xff0c;收藏了但分类众多每次都找不到……当个记录吧&#xff08;/捂脸哭&#xff09;&#xff01; 正文 此处以gitub中的某个仓库为例&#xff1a; https://github.com/INM-6/mu…

景联文科技提供高质量多模态数据处理服务,驱动AI新时代

在当今快速发展的AI时代&#xff0c;多模态数据标注成为推动人工智能技术进步的关键环节。景联文科技作为行业领先的AI数据服务提供商&#xff0c;专注于为客户提供高质量、高精度的多模态数据标注服务&#xff0c;涵盖图像、语音、文本、视频及3D点云等多种类型的数据。通过专…

Python在Excel工作表中创建数据透视表

在数据处理和分析工作中&#xff0c;Excel作为一个广泛使用的工具&#xff0c;提供了强大的功能来管理和解析数据。当面对大量复杂的数据集时&#xff0c;为了更高效地总结、分析和展示数据&#xff0c;创建数据透视表成为一种不可或缺的方法。通过使用Python这样的编程语言与E…

django基于Python的电影推荐系统

Django 基于 Python 的电影推荐系统 一、系统概述 Django 基于 Python 的电影推荐系统是一款利用 Django 框架开发的智能化应用程序&#xff0c;旨在为电影爱好者提供个性化的电影推荐服务。该系统通过收集和分析用户的观影历史、评分数据、电影的属性信息&#xff08;如类型…

GPT-SoVITS学习01

1.什么是TTS TTS&#xff08;Text-To-Speech&#xff09;这是一种文字转语音的语音合成。类似的还有SVC&#xff08;歌声转换&#xff09;、SVS&#xff08;歌声合成&#xff09;等。 2.配置要求 GPT-SoVITS对电脑配置有较高的要求。 训练&#xff1a;对于Windows电脑&#…

计算机网络 (36)TCP可靠传输的实现

前言 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通过多种机制实现可靠传输&#xff0c;这些机制主要包括连接管理、序列号和确认应答机制、重传机制、流量控制、拥塞控制等。 一、连接管理 TCP使用三次握手&#xff0…

视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp

文章链接&#xff1a;https://arxiv.org/pdf/2412.19761 项目链接&#xff1a;https://genprop.github.io 亮点直击 定义了一个新的生成视频传播问题&#xff0c;目标是利用 I2V 模型的生成能力&#xff0c;将视频第一帧的各种变化传播到整个视频中。 精心设计了模型 GenProp&…

make工程管理器与Makefile

目录 一、介绍 1、make工程管理器 2、Makefile 二、Makefile语法规则 1、Makefile语法格式 2、Makefile中特殊处理与伪目标 3、变量、规则与函数 (1)自定义变量使用示例 (2)自动变量使用示例 一、介绍 1、make工程管理器 定义&#xff1a; make是一个命令工具&…

【git】-2 分支管理

目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 ​​​​​​【git】-初始gi…

3DGabor滤波器实现人脸特征提取

import cv2 import numpy as np# 定义 Gabor 滤波器的参数 kSize 31 # 滤波器核的大小 g_sigma 3.0 # 高斯包络的标准差 g_theta np.pi / 4 # Gabor 函数的方向 g_lambda 10.0 # 正弦波的波长 g_gamma 0.5 # 空间纵横比 g_psi np.pi / 2 # 相位偏移# 生成 Gabor 滤…

接口项目架构流程图-thinkphp6-rabbitmq

一、整个系统流程 第一步&#xff1a;平台在创建好后开启消息队列&#xff1b; 第二步&#xff1a;平台为需要服务的客户开好账号并传输对应的公私钥文件&#xff1b; 第三步&#xff1a;客户通过平台分享的接口连接地址采用开户时的手机号查看&#xff1b; 第四步&#xff1a;…

Vue3初学之组件通信

一起进行学习&#xff1a; 在 Vue 3 中&#xff0c;组件通信是一个非常重要的概念&#xff0c;它决定了如何在父子组件之间、兄弟组件之间以及跨层级组件之间传递数据和事件。以下是 Vue 3 中常见的组件通信方式&#xff1a; 父子组件通信 1.1 父组件向子组件传递数据&#x…

2025年第三届“华数杯”国际大学生数学建模竞赛【A题】Problem A: Can He Swim Faster

问题1&#xff1a;运动员的出色比赛表现通常得益于艰苦且持续的专业训练&#xff0c;这不仅提升了游泳技能&#xff0c;也增强了生理储备。比赛中&#xff0c;科学控制游泳速度是关键&#xff0c;包括保持个人节奏、寻求最佳身体状态节奏和合理分配体力。针对自由泳项目&#x…

【计算机网络】lab4 Ipv4(IPV4的研究)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;计算机网络_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…

ELFK日志采集实战

一、日志分析概述 日志分析是运维工程师解决系统故障&#xff0c;发现问题的主要手段 日志主要包括系统日志、应用程序日志和安全日志 系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因 经常分析日志可以了解服务器的负荷&#x…

辅助--Inspector

辅助–Inspector 1.Introduction This manual explains how to use the Inspector. 1.1.Overview Inspector is a Qt-based library that provides functionality to interactively inspect low-level content of the OCAF data model, OCCT viewer and Modeling Data. Thi…

如何播放视频文件

文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节3. 示例代码4. 内容总结我们在上一章回中介绍了"如何获取文件类型"相关的内容,本章回中将介绍如何播放视频.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用的功能,不过Flutter官方…

R数据分析:多分类问题预测模型的ROC做法及解释

有同学做了个多分类的预测模型,结局有三个类别,做的模型包括多分类逻辑回归、随机森林和决策树,多分类逻辑回归是用ROC曲线并报告AUC作为模型评估的,后面两种模型报告了混淆矩阵,审稿人就提出要统一模型评估指标。那么肯定是统一成ROC了,刚好借这个机会给大家讲讲ROC在多…

【数据库】四、数据库管理与维护

文章目录 四、数据库管理与维护1 安全性管理2 事务概述3 并发控制4 备份与恢复管理 四、数据库管理与维护 1 安全性管理 安全性管理是指保护数据库&#xff0c;以避免非法用户进行窃取数据、篡改数据、删除数据和破坏数据库结构等操作 三个级别认证&#xff1a; 服务器级别…

C语言gdb调试

目录 1.gdb介绍 2.设置断点 2.1.测试代码 2.2.设置函数断点 2.3.设置文件行号断点 2.4.设置条件断点 2.5.多线程调试 3.删除断点 3.1.删除指定断点 3.2.删除全部断点 4.查看变量信息 4.1.p命令 4.2.display命令 4.3.watch命令 5.coredump日志 6.总结 1.gdb介绍…