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

一维河流污染持续排放模拟(水污染扩散)

一、处理河道转换为geojson数据

以淮河为例处理示例数据:

{"type": "FeatureCollection","features": [{"geometry": {"coordinates": [[[115.5803,34.4982],[115.5922,34.498],[115.6061,34.4994],[115.6203,34.5009],[115.6295,34.4931],[115.6364,34.4929],[115.6442,34.4913],[115.649,34.4792],[115.6512,34.4655],[115.659,34.457],[115.6666,34.4486],[115.6639,34.4346],[115.6673,34.422],[115.6734,34.4044],[115.6882,34.3928],[115.7007,34.3795],[115.7063,34.3637],[115.7036,34.349],[115.7051,34.3291],[115.7137,34.3104],[115.7105,34.2973],[115.7069,34.2794],[115.7156,34.2629],[115.7278,34.2426],[115.7254,34.2336],[115.7241,34.2217],[115.7352,34.206],[115.7358,34.1952],[115.7452,34.1796],[115.7577,34.1749],[115.774,34.1719],[115.7892,34.1635],[115.7948,34.1493],[115.8023,34.1338],[115.8142,34.1242],[115.8275,34.1182],[115.8306,34.1052],[115.8326,34.0793],[115.8503,34.0502],[115.8622,34.0441],[115.8691,34.034],[115.8678,34.0194],[115.8701,33.999],[115.8841,33.9864],[115.8855,33.9814]]],"type": "MultiLineString"},"id": "huaiheSq.1","type": "Feature","properties": {"Shape_Le_1": 0,"Shape_Le_2": 0,"Shape_Le_3": 0,"Shape_Le_4": 0,"NAME": "包河","Shape_Leng": 0,"OBJECTID": 0,"SHAPE_STLe": 0,"UserID": 0,"User_LEVEL": 0,"RL_CODE": "1113130","Lev": 0,"RL_NAME": "包河"}}]
}

二、后端模拟程序接口编写

1、调用接口效果

2、部分接口代码实现 

 //riverCode:河道编号//http://localhost:8945/api/WaterPollutionDiffuse/WaterPollutionDiffusePointVec?riverCode=huaiheSq&polluteC=300&d=0.8&deltX=500@ApiOperation(value = "WaterPollutionDiffuse")@GetMapping(value = "/WaterPollutionDiffusePointVec")
//    @Scheduled(cron = "0 10 * * * ?")public String WaterPollutionDiffusePointVec(String riverCode,double polluteC,double d,double deltX) {
//        String riverGeojson = FileFormat.shape2Geojson("D:\\gis\\huaiheriver\\" + riverCode + ".shp");String riverGeojson = null;try {riverGeojson = new String(Files.readAllBytes(Paths.get(riverCode + ".json")), "utf-8");} catch (IOException e) {e.printStackTrace();}JSONObject obj = JSON.parseObject(riverGeojson);JSONArray datalist = (JSONArray)obj.get("features");String geoStr=((com.alibaba.fastjson.JSONObject)datalist.get(0)).get("geometry").toString();JSONObject objGeo = JSON.parseObject(geoStr);JSONArray coords = (JSONArray)objGeo.get("coordinates");int rSize=0;for(int i = 0; i < 1; i++){JSONArray coordsi=(JSONArray)coords.get(i);rSize += coordsi.size();}double[][] trainData = new double[rSize][3];int rSize1=0;for(int i = 0; i < 1; i++){JSONArray coordsi=(JSONArray)coords.get(i);
//            if(i>0){
//                rSize1 += ((JSONArray)coords.get(i-1)).size();
//            }for (int j = 0; j < coordsi.size(); j++) {//            StationWithData data = datalist.get(i);trainData[rSize1+j][0] = TransferDouble(((JSONArray)coordsi.get(j)).get(0).toString());trainData[rSize1+j][1] = TransferDouble(((JSONArray)coordsi.get(j)).get(1).toString());trainData[rSize1+j][2] = 0;};}String strJson = InterpolationWaterUtils.calWaterPollutionDiffusePointsFick(trainData,polluteC,d,deltX);return strJson.replaceAll("NaN","0");}

三、前端配置可视化展示

ShangQiuRegion: {layerCode:'ShangQiuRegion',isRLayerPanel: true,sourceType:'GeoVector',url:'/static/geojson/henan/shangqiu/shangqiu.json',title:'商丘',style:Layersymbols.areaRegionSymbol,format: new GeoJSON(),wrapX: false,opacity: 1,location: {longitude: 115.783878, latitude: 34.308761, level: 8},visible:true
},
geoJsonFeLine: {layerCode: 'geoJsonFeLine',isRLayerPanel: true,sourceType: 'Vector',title: '淮河',url: '/static/geojson/huaihe.json',dataPath:'',// labelField: 'NAME',geoType: 'geojson',maxZoom: Infinity,minZoom: -Infinity,wrapX: false,opacity: 1,location: {longitude: 116.11704458402367, latitude: 34.25804927841997, level: 9.808516864898834},visible: true
},
point1: {layerCode: 'point1',isRLayerPanel: true,sourceType: 'Vector',title: '排污口',url: '/static/geojson/station1.json',dataPath: 'data/stationList/list',dataLongitudeField: 'longitude',dataLatitudeField: 'latitude',dataIdField: 'stationId',geoType: 'point',maxZoom: Infinity,minZoom: 7,wrapX: false,opacity: 1,location: {longitude: 116.11704458402367, latitude: 34.25804927841997, level: 9.808516864898834},visible: true
},
geoJsonFeP: {layerCode: 'geoJsonFeP',isRLayerPanel: true,sourceType: 'Vector',title: '污染河道节点',url: '/api/WaterPollutionDiffuse/WaterPollutionDiffusePointVec?riverCode=huaiheSq&polluteC=300&d=0.8&deltX=500',dataPath:'',floatLabelInfo: {floatLabelField: 'val', offsetX: 8, offsetY: -16},geoType: 'geojson',maxZoom: Infinity,minZoom: -Infinity,wrapX: false,opacity: 1,location: {longitude: 116.11704458402367, latitude: 34.25804927841997, level: 9.808516864898834},visible: true
}

四、实现模拟计算组件

<template><div><div id="map" style="width: 100%;"><popHover :popHoverInfo="popHoverInfo" :popHoverScreenPoint="popHoverScreenPoint" :popHoverVisible="popHoverVisible"></popHover><popClick :popAspect="popAspect" :popClickScreenPoint="popClickScreenPoint" :popClickVisible="popClickVisible" :popClickTitleInfo="popClickTitleInfo" :popClickContentInfo="popClickContentInfo"></popClick></div><div id="gisToolPopoup"><GisTool :sMap="smap" @tdtSwitchBase="tdtSwitchBase"></GisTool></div><div id="layersPanel"><layerPanel :layersInfo="layersInfo" @setLayerVisible="setLayerVisible" @setLayerOpacity="setLayerOpacity" @zoomToC="zoomToC"></layerPanel></div><div id="GaussPlumeCalculate"><simWaterPanel :startLonLat="startLonLat" @zoomToC="zoomToC" @WaterDiffSimulation="WaterDiffSimulation"></simWaterPanel></div></div>
</template>

五、可视化运行展示效果

 

 

 如果对您有帮助

 感谢支持技术分享,请点赞支持:

技术合作交流qq:2401315930

相关文章:

一维河流污染持续排放模拟(水污染扩散)

一、处理河道转换为geojson数据 以淮河为例处理示例数据&#xff1a; {"type": "FeatureCollection","features": [{"geometry": {"coordinates": [[[115.5803,34.4982],[115.5922,34.498],[115.6061,34.4994],[115.6203,…...

数据优化 | CnOpenDataA股上市公司招聘数据

就业是经济的“晴雨表”&#xff0c;更是社会的“稳定器”。稳定和扩大就业一直是国家宏观调控的重要目标&#xff0c;2021年中央经济工作会议八次提到“就业”这一关键词。在新冠肺炎疫情蔓延、世界经济下行及人口老龄化加快等多重因素的叠加之下&#xff0c;稳就业保民生成为…...

nacos和eureka的区别

nacos和eureka的区别 Eureka是什么 Eureka详解Nacos是什么 Nacos详解Nacos和Eureka的区别 CAP理论连接方式服务异常剔除操作实例方式自我保护机制 Eureka是什么 Eureka 是Spring Cloud 微服务框架默认的也是推荐的服务注册中心,由Netflix公司与2012将其开源出来,Eureka基于RE…...

canvas.toDataURL生成图片报错的解决方案

问题原因&#xff1a; toDataURL方法存在跨域限制&#xff0c;如果执行时dom内含有跨域的图片则浏览器执行时会报错。 这个根据不同的系统有不同的表现&#xff0c;例如&#xff1a;生成完毕但控制台有warning类型的警告&#xff0c;或者直接异常报error。 解决思路&#xff…...

电容笔和Apple pencil的区别是什么?好用电容笔推荐

Apple Pencil与目前市场上常见的电容笔最大的不同之处在于&#xff0c;普通电容笔并不具备苹果Pencil特有的重力压感&#xff0c;而仅仅是一种倾斜的压感。不过&#xff0c;其在其它方面的表现也很出色&#xff0c;与Apple Pencil相似&#xff0c;而且价格仅为200元。现在&…...

关于onnx 转ncnn 的问题

文章目录修改模型Detect层设计转换后处理优质文章由于有些操作是没法支持的 如5维的操作&#xff1a; Unsupported slice axes ! Unsupported slice axes ! Unsupported slice axes ! Unsupported slice axes ! Unsupported slice axes ! Unsupported slice axes !参考&#…...

设计模式之《责任链模式》

------《责任链模式》责任链模式的概念为什么用责任链模式工作中用在哪里设计思路代码实现总结责任链模式的概念 责任链模式是一种行为型设计模式&#xff0c;它允许你将请求沿着处理链传递&#xff0c;直到有一个处理者能够处理该请求为止。 在责任链模式中&#xff0c;每个…...

Android Studio实现多功能日记本

项目目录一、项目概述二、系统特点三、开发环境四、详细设计1、E-R图2、数据库3、系统设置五、运行演示一、项目概述 本次实现了功能实用且齐全的日记本&#xff0c;界面友好&#xff0c;使用便捷&#xff0c;采用MVC架构设计。使用SQLite数据库存储数据&#xff0c;数据表有主…...

只依赖Tensorrt和opencv的yolov5源代码

simple_yolo.hpp #ifndef SIMPLE_YOLO_HPP #define SIMPLE_YOLO_HPP/*简单的yolo接口&#xff0c;容易集成但是高性能 */#include <vector> #include <memory> #include <string> #include <future> #include <opencv2/opencv.hpp>namespace Si…...

多路I/O转接 poll(了解)

poll() 的机制与 select() 类似&#xff0c;与 select() 在本质上没有多大差别&#xff0c;管理多个描述符也是进行轮询&#xff0c;根据描述符的状态进行处理&#xff0c;但是 poll() 没有最大文件描述符数量的限制&#xff08;但是数量过大后性能也是会下降&#xff09;。 p…...

听说你也在为配置tomcat server而烦恼,看我这一篇,让你醍醐灌顶!

一.通过maven创建项目 二.下载tomcat服务器 我们一般在tomcat官网中进行tomcat的下载 Apache Tomcat - Welcome! 三.添加配置&#xff1a;我们点击下图中的文件配置 四.测试配置的tomcat 我们在文件的body中输入 测试内容&#xff1a; 在控制台中显式tomcat运行的信息&#…...

【从零开始学Skynet】工具篇(二):虚拟机文件的复制粘贴

大家在Linux系统下开发的时候肯定会遇到虚拟机与主机间无法复制粘贴的问题&#xff0c;现在我们就来解决这样的问题&#xff0c;方便我们的开发。 1、打开设置 我们可以系统界面的菜单栏点击“控制”&#xff0c;然后打开“设置”&#xff1b; 也可以在VirtualBox界面打开“设…...

全球自动驾驶竞争力最新排行榜,4家中国企业上榜

发展至今&#xff0c;自动驾驶技术不仅是汽车行业的一个主战场&#xff0c;更是全球科技领域中备受关注和充满竞争的一个重要领域。近年来&#xff0c;各大汽车制造商和科技公司都在投入大量财力物力人力进行自动驾驶技术的研发&#xff0c;并进一步争夺市场份额。 当然&#…...

APP启动流程分析

1、要分析的问题 1、与正常trace比对&#xff0c;确认过耗时在哪个步骤&#xff08;am create/pause/stop/start/doframe)&#xff1f; 2、与正常trace比对&#xff0c;确认过耗时在哪个cpu state(Running/Runnable/Sleep/Uninterruptible Sleep)&#xff1f; 2、启动分析 …...

IIR数字滤波器简介与实现

一、简介&#xff1a; IIR是一种数字滤波器&#xff0c;其输出是输入信号和过去输出的某些加权和。IIR滤波器由反馈和前馈组成&#xff0c;可以用于滤除或增强信号的特定频率成分。 IIR滤波器的输出表示为&#xff1a; y[n] b0 * x[n] b1 * x[n-1] b2 * x[n-2] … - a1 * …...

3.5 函数的极值与最大值和最小值

学习目标&#xff1a; 我要学习函数的极值、最大值和最小值&#xff0c;我会采取以下几个步骤&#xff1a; 理解基本概念&#xff1a;首先&#xff0c;我会理解函数的极值、最大值和最小值的概念。例如&#xff0c;我会学习函数在特定区间内的最高点和最低点&#xff0c;并且理…...

第五十八天打卡

第五十八天打卡 739. 每日温度 提示 中等 1.5K company 亚马逊 company Facebook company 字节跳动 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在…...

双一流大学计算机专业月薪拿2000?网友:我裂开

**“计算机不行了”“求求不要再学计算机”……**这样的言论时不时就会在网上掀起一番热议&#xff0c;知了姐看得不少。尤其最近有则新闻&#xff0c;更是给计算机专业盖上“不值钱”的帽子。 某985、211大学校招会上&#xff0c;有企业招聘计算机相关岗位时&#xff0c;提出…...

ChatGPT的“N宗罪”?|AI百态(上篇)

序&#xff1a; AI诞生伊始&#xff0c;那是人人欣喜若狂的科技曙光&#xff0c;深埋于哲学、想象和虚构中的古老的梦&#xff0c;终于成真&#xff0c;一个个肉眼可见的智能机器人&#xff0c;在复刻、模仿和服务着他们的造物主——人类。 但科技树的点亮&#xff0c;总会遇到…...

48.现有移动端开源框架及其特点—MDL(mobile-deep-learning)

48.1 功能特点 一键部署,脚本参数就可以切换ios或者android支持iOS gpu运行MobileNet、squeezenet模型已经测试过可以稳定运行MobileNet、GoogLeNet v1、squeezenet、ResNet-50模型体积极小,无任何第三方依赖。纯手工打造。提供量化函数,对32位float转8位uint直接支持,模型…...

4.9--计算机网络之TCP篇之TCP Keepalive 和 HTTP Keep-Alive --(复习+大总结)---沉淀ing

HTTP 的 Keep-Alive&#xff0c;是由应用层&#xff08;用户态&#xff09; 实现的&#xff0c;称为 HTTP 长连接&#xff1b; TCP 的 Keepalive&#xff0c;是由 TCP 层&#xff08;内核态&#xff09; 实现的&#xff0c;称为 TCP 保活机制 HTTP 的 Keep-Alive HTTP 是基于…...

qt完善登录界面(2023-4-6)

点击登录按钮后&#xff0c;判断账号和密码是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两个按钮ok和cancel&#xff0c;点击ok后&#xff0c;会清除密码框中的内容&#xf…...

104.(cesium篇)cesium卫星轨道模拟

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <html lang="en"> <...

Linux shell编程

Shell脚本入门 touch helloWorld.sh 【创建脚本文件】 vim helloWorld.sh 【编辑文件】 以#!/bin/bash开头 echo "helloWorld" 调用脚本 方式一&#xff1a;bash 【绝对路径|相对路径】 方式二&#xff1a;chomd x helloWorld.sh 绝对…...

Rasa 3.x 学习系列-Rasa [3.5.4] -2023-04-05新版本发布

Rasa 3.x 学习系列-Rasa [3.5.4] -2023-04-05新版本发布 Rasa Pro 3.5 中引入的两项新功能将帮助您更好地测试和保护您的 AI 助手:端到端测试和机密管理。 端到端测试 通过全面的验收和集成测试评估 AI 助手的性能。我们易于更新的端到端测试可以设置为运行每个流程和集成,…...

进程和线程

1.实现多线程 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源 线程&#xff1a;是进程中的单个顺序控制流&#xff0c;是一条执行路径 单线程&#xff1a;一个进程如果只有一条执行路径&#xff0c;则称为单线…...

ps 备忘清单_开发速查表分享

ps 命令速查备忘清单 Linux我们提供了一个名为 ps 的实用程序&#xff0c;用于查看与系统上的进程相关的信息&#xff0c;它是 Process Status 的缩写这份 ps 命令备忘清单的快速参考列表&#xff0c;包含常用选项和示例。入门&#xff0c;为开发人员分享快速参考备忘单。 开…...

【ROS】基于WIFI网络实现图像消息跨机实时传输

【开发背景】 研究机器人目标检测算法的时候&#xff0c;常常需要把推理图像实时展示出来&#xff0c;以供观摩。而ROS1提供的跨机通信方法&#xff0c;要么是配置单Master&#xff0c;要么是配置多Master&#xff1b;一方面配置麻烦&#xff0c;另一方面传输效率低下&#xf…...

一次性说清楚 JAVA的 ThreadPoolExecutor 、newFixedThreadPool 和newCachedThreadPool 等

目录 1、Executors.newCachedThreadPool() 与 Executors.newFixedThreadPool(n) 的区别是什么&#xff1f; 2、Executors.newCachedThreadPool() 与 Executors.newFixedThreadPool(n) 可以调参吗&#xff0c;比如线程大小&#xff0c;线程等待时间 等等 3、newCachedThreadP…...

Android双目三维重建:Android双目摄像头实现双目测距

Android双目三维重建&#xff1a;Android双目摄像头实现双目测距 目录 Android双目三维重建&#xff1a;Android双目摄像头实现双目测距 1.开发版本 2.Android双目摄像头 3.双目相机标定 (1)双目相机标定-Python版 (2)双目相机标定-Matlab版 4.相机参数配置 5.Android 双…...

ps制作网站首页面教程/如何优化网站推广

之前谈到免货运&#xff0c;真的很难&#xff0c;你想如果是你在网上购买食品&#xff0c;你一般会购买多少&#xff1f;有的人会说&#xff0c;我会很多&#xff0c;但是你在看看食品的价格是多少&#xff0c;也许你购买了一大袋食品价格也许不会超过100块&#xff0c;但是从重…...

手机网站建设万网/电商网站入口

java 生成4位随机数 验证码刘振兴代码分享2015年11月16日8166暂无评论public static String yzm(){String str "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";String str2[] str.split(",");//将字符串以,分割Random rand…...

网站建设谈业务要知道什么/网络推广费用计入什么科目

js删除网页中图片width 和 height 一段代码轻松搞定 适用于&#xff1a; 电脑端网页带图片属性导致移动网页显示错位/错误 备注&#xff1a; 需搭配jquery.min.js (注&#xff01;jquery-2.0以上版本不再支持IE 6/7/8) 并不是最新的版本就最好的&#xff0c;而是根据您项目…...

北京住房建设部网站/网建

我在多线程应用程序中使用本地时间我必须用一个线程安全的版本来替换它&#xff0c;我知道这个版本叫做Localtime但是&#xff0c;在执行此操作时&#xff0c;由于链接失败&#xff0c;我无法完成生成我甚至不知道从哪里开始寻找解决方案我的系统组件是:我假设(虽然我不确定)这…...

电商网站制作/百度指数大数据

没有顺序关系&#xff0c;可前可后。...

个人域名可以做网站吗/百度怎么推广自己的视频

原文参考&#xff1a; https://blog.csdn.net/u014568921/article/details/52816578人脸检测长文干货&#xff01;走近人脸检测&#xff1a;从 VJ 到深度学习&#xff08;上&#xff09;长文干货&#xff01;走近人脸检测&#xff1a;从VJ到深度学习&#xff08;下&#xff09;…...