java实现大气无风环境污染物扩散模拟
一、扩散公式整理
二、编写java代码实现
String strJson = InterpolationUtils.calGaussPlumePoints0(z,height,q,lon,lat, size,scale,airStable); return strJson.replaceAll("NaN","0").replaceAll("Infinity",String.valueOf(q));
String strJson = InterpolationUtils.calGaussPlumeEquiSurface(z,height,u ,q,wd,lon,lat, dataInterval,size,scale,airStable); return strJson;
三、前端openlayers调用代码
geoJsonFe:{renderType:"level",renderField:"hvalue",FieldScope:[{min:-1,max:29.9,symbol:Layersymbols.screenVecSymbol1},{min:29.9,max:49.9,symbol:Layersymbols.screenVecSymbol2},{min:49.9,max:69.9,symbol:Layersymbols.screenVecSymbol3},{min:69.9,max:89.0,symbol:Layersymbols.screenVecSymbol4},{min:89.9,max:149.9,symbol:Layersymbols.screenVecSymbol5},{min:149.9,max:999999,symbol:Layersymbols.screenVecSymbol6}] }, geoJsonFeP:{renderType:"level",renderField:"val",FieldScope:[{min:-1,max:30,symbol:Layersymbols.aqiSymbol1},{min:30,max:50,symbol:Layersymbols.aqiSymbol2},{min:50,max:70,symbol:Layersymbols.aqiSymbol3},{min:70,max:90,symbol:Layersymbols.aqiSymbol4},{min:90,max:150,symbol:Layersymbols.aqiSymbol5},{min:150,max:999999,symbol:Layersymbols.aqiSymbol6}] }
screenVecSymbol1:new Style({stroke: new Stroke({color: 'rgba(0, 206, 0, 0.1)',width: 1,}),fill: new Fill({color: 'rgba(0, 206, 0, 0.6)',}), }), screenVecSymbol2:new Style({stroke: new Stroke({color: 'rgba(254, 255, 3, 0.1)',width: 1,}),fill: new Fill({color: 'rgba(254, 255, 3, 0.6)',}), }), screenVecSymbol3:new Style({stroke: new Stroke({color: 'rgba(255, 101, 0, 0.1)',width: 1,}),fill: new Fill({color: 'rgba(255, 101, 0, 0.6)',}), }), screenVecSymbol4:new Style({stroke: new Stroke({color: 'rgba(254, 0, 0, 0.1)',width: 1,}),fill: new Fill({color: 'rgba(254, 0, 0, 0.6)',}), }), screenVecSymbol5:new Style({stroke: new Stroke({color: 'rgba(129, 0, 127, 0.1)',width: 1,}),fill: new Fill({color: 'rgba(129, 0, 127, 0.6)',}), }), screenVecSymbol6:new Style({stroke: new Stroke({color: 'rgba(128, 0, 0, 0.1)',width: 1,}),fill: new Fill({color: 'rgba(128, 0, 0, 0.6)',}), }), aqiSymbol1: new Style({image: new Circle({radius: 6,stroke: new Stroke({color: '#62B8FF',}),fill: new Fill({color: 'rgba(0, 206, 0, 1)'})}) }), aqiSymbol2: new Style({image: new Circle({radius: 6,stroke: new Stroke({color: '#62B8FF',}),fill: new Fill({color: 'rgba(254, 255, 3, 1)'})}) }), aqiSymbol3: new Style({image: new Circle({radius: 6,stroke: new Stroke({color: '#62B8FF',}),fill: new Fill({color: 'rgba(255, 101, 0, 1)'})}) }), aqiSymbol4: new Style({image: new Circle({radius: 6,stroke: new Stroke({color: '#62B8FF',}),fill: new Fill({color: 'rgba(254, 0, 0, 1)'})}) }), aqiSymbol5: new Style({image: new Circle({radius: 6,stroke: new Stroke({color: '#62B8FF',}),fill: new Fill({color: 'rgba(129, 0, 127, 1)'})}) }), aqiSymbol6: new Style({image: new Circle({radius: 6,stroke: new Stroke({color: '#62B8FF',}),fill: new Fill({color: 'rgba(128, 0, 0, 1)'})}) })
//通用创建geojson要素 export function commonCreateGeojsonFeatures (map, layerKey, LayersRenderSet, geo, labelField) {if (Object.keys(geo).length == 0 && geo.features.length == 0) return;let features = geo.features;for (let i in features) {let areaFeature = {};if (features[i].geometry.type == "MultiPolygon") {areaFeature = new Feature({geometry: new MultiPolygon(features[i].geometry.coordinates),});} else if (features[i].geometry.type == "Polygon") {areaFeature = new Feature({geometry: new Polygon(features[i].geometry.coordinates),});}else if (features[i].geometry.type == "MultiLineString") {areaFeature = new Feature({geometry: new MultiLineString(features[i].geometry.coordinates),});}else if (features[i].geometry.type == "LineString") {areaFeature = new Feature({geometry: new LineString(features[i].geometry.coordinates),});}else if (features[i].geometry.type == "Point") {areaFeature = new Feature({geometry: new Point(features[i].geometry.coordinates),});}let featureStyle = getLyaerRenderSymbol(LayersRenderSet, layerKey, features[i].properties).clone()areaFeature.setStyle(featureStyle)areaFeature.setProperties(features[i].properties);areaFeature.values_.values_=features[i].propertiesgetLayerByCode(map,layerKey).getSource().addFeature(areaFeature);if (features[i].properties[labelField] != undefined && labelField != '') {setFeatureLabel(areaFeature,features[i].properties[labelField].toString())}} }
四、模拟效果展示
有风模拟参照:高斯羽烟gis应用java实现模型计算_兴诚的博客-CSDN博客
如果对您有所帮助请点赞打赏支持!
技术合作交流qq:2401315930
java实现大气无风环境污染物扩散模拟相关推荐
- python元胞自动机模拟交通_基于立体网格的放射性污染物扩散过程模拟与表达
作 者 信 息 施加松1,余接情2,常芸芬1,童晓冲3 (1.防化研究院,北京 102205:2.中国矿业大学 环境与测绘学院,江苏 徐州 221116:3.信息工程大学,河南 郑州 450001) ...
- Lakes Environmental ARTM View v1.4.2 1CD放射物扩散模拟模型
Lakes Environmental ARTM View v1.4.2 1CD放射物扩散模拟模型 Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包 ARTM(Atmosph ...
- 环境污染物如何通过影响肠脑轴而影响心理健康
谷禾健康 在这个充满压力.紧张和焦虑的快节奏世界中,人人都容易患上许多身心疾病. 根据世界卫生组织 (WHO) 的数据,世界上每 8 人中就有 1 人患有精神障碍,其中焦虑症和抑郁症最为常见.尤其经历 ...
- 飞桨AI4S污染物扩散快速预测模型,亮相全国数据驱动计算力学研讨会
5月19-21日,第一届全国数据驱动计算力学研讨会在大连召开.本次研讨会由中国力学学会主办,大连理工大学运载工程与力学学部承办,北京理工大学先进结构技术研究院协办. 会议共吸引了400多位来自全国各地 ...
- MyEclipse搭建java Web项目开发环境
MyEclipse搭建java Web项目开发环境 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成,只要在安装配置成功之后才可以进入下面的java Web项目开发环境的搭 ...
- Java及Android开发环境搭建
前言 自从接触java以来,配置环境变量折腾了好几次,也几次被搞得晕头转向,后来常常是上网查阅相关资料才解决.但是过一段时间后一些细节就会记不清了,当要在其他机子上配置时又得上网查或者查阅相关书籍,如 ...
- 大气波导计算MATLAB,基于抛物方程的大气波导环境下电波传播的研究rbedacv8.ppt
基于抛物方程的大气波导环境下电波传播的研究姓 名: 刘玉敬 学 号:S313080029 指导教师:于蕾 副教授 基于抛物方程的大气波导环境下电波传播的研究 目录 背景介绍 大气折射与大气波导 抛物方 ...
- java applet配置_配置Java Applet的运行环境
Java小程序,也就是Java Applet,可以在Web浏览器中运行.Java Applet必须以脚本的形式嵌入到HTML页面中,才能在web浏览器中运行. 之前总以为本地安装了JDK,指定好JAV ...
- Java开发和运行环境的搭建(详细教程)
对JDK.JRE.Java 的认识 JDK 是Java Development Kit的缩写,即Java开发工具集.JDK是整个Java的核心,包括了Java运行环境(JRE).Java开发工具和Ja ...
最新文章
- java三大特性:封装、继承、多态
- IO之阻塞与非阻塞比较
- 苹果mp3软件_神技能!!!音视频制作软件
- Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
- c 语言五子棋游戏代码,C语言案例:控制台版本的五子棋游戏【代码】
- 他回国后对学生说,玩会这12个游戏就能掌握python基础,其实不难
- c++获得cpu厂商_使用Visual C++编程取得CPU信息
- [转]基于Storm的实时数据处理方案
- lua 获取网络时间_Lua脚本引擎教程:学习路线
- java spring 数据库_JAVA - SpringBoot项目引用MyBatis操作数据库
- PTA——堆中的路径
- SQL Server2008官方下载地址
- 无需代码,图文并茂详解EEGLAB中的ERPs数据分析方法
- 【查找资料】冰点文档下载免费下载百度、豆丁、丁香、畅享、MBALib、道客巴巴、Book118等文库文档
- HTML5前端知识图谱
- 如何制作基于beaglebone的设备通知Texter ?---凯利讯半导体
- 大牛揭秘:如何快速在阿里云搭建视频直播平台
- bilibili缓存视频的位置
- 5G 网络架构(核心网)总结
- Substrate 基础 -- 教程(Tutorials)