java+iClient Openlayers实现土壤墒情旱情灾害模拟预报预警分析

news2024/12/23 5:11:39

应用及软件实现效果图:

一、应用背景

作为一个农村长大的人,我非常关注自然灾害和气候变化对土地旱情墒情影响。近年来,干旱和洪涝灾害在很多地方频繁发生,给人们的生命财产安全带来了极大的威胁。因此,旱情和墒情模拟成为了一个非常重要的研究方向,旨在提高我们对气候变化的预测能力和应对能力。通过模拟旱情和墒情,我们可以更好地了解土壤湿度、植被覆盖、降水等因素对干旱和洪涝灾害的影响,从而更好地制定应对措施,保护人类和地球的生态环境。

旱情和墒情模拟在应对自然灾害方面有很多潜力。例如,可以帮助我们更快速、准确地预测自然灾害的发生和影响范围,从而提前采取应对措施,减少人员伤亡和财产损失。此外,还可以在自然灾害发生后,通过分析数据和图像,帮助灾区人民更快速地恢复生产和生活秩序。总之,对旱情灾害的模拟分析在保护人类和地球生态环境方面具有巨大的潜力,我们应该充分发挥其优势,为人类的未来做出更大的贡献。

尽管模拟分析在自然灾害和环境保护方面具有潜力,但我们也应该认识到,这仍然是一项新兴技术,需要不断完善和发展。我们应该加强对旱情模拟技术的研究和应用,同时注意遵守伦理和法律规定,确保技术的应用符合社会公正和人类价值观。相信在各方共同努力下,旱情墒情模拟将为我们创造更美好的未来。

土地质地和土地利用相关概念和知识基础:

 

 

二、应用场景

 

 三、软件实现关键参数率定代码

data () {
  return {
    layers: 11,
    isPanelShow: false,
    clayersInfo: [],
    soilTextureOptions: [{
      value: 0,
      p: 0.12,
      label: '粘土',
    }, {
      value: 1,
      p: 0.15,
      label: '粉粘土'
    }, {
      value: 2,
      p: 0.17,
      label: '粉粘壤土'
    }, {
      value: 3,
      p: 0.20,
      label: '砂粘土'
    }, {
      value: 4,
      p: 0.22,
      label: '砂粘壤土'
    }, {
      value: 5,
      p: 0.27,
      label: '粘壤土'
    },{
      value: 6,
      p: 0.31,
      label: '粉土'
    }, {
      value: 7,
      p: 0.32,
      label: '粉壤土'
    }, {
      value: 8,
      p: 0.33,
      label: '壤土'
    }, {
      value: 9,
      p: 0.42,
      label: '砂土'
    }, {
      value: 10,
      p: 0.37,
      label: '壤砂土'
    },{
      value: 11,
      p: 0.39,
      label: '砂壤土'
    }],
    uslsOptions: [{
      value: 0,
      p: 0.01,
      label: '水田'
    }, {
      value: 1,
      p: 0.3,
      label: '旱地'
    }, {
      value: 2,
      p: 0.2,
      label: '有林地'
    }, {
      value: 3,
      p: 0.2,
      label: '灌木林地'
    }, {
      value: 4,
      p: 0.23,
      label: '疏林地'
    }, {
      value: 5,
      p: 0.21,
      label: '其他林地'
    },{
      value: 6,
      p: 0.21,
      label: '高覆盖度草地'
    }, {
      value: 7,
      p: 0.26,
      label: '中覆盖度草地'
    }, {
      value: 8,
      p: 0.31,
      label: '低覆盖度草地'
    }, {
      value: 9,
      p: 0.01,
      label: '河渠'
    }, {
      value: 10,
      p: 0.01,
      label: '湖泊'
    },{
      value: 11,
      p: 0.01,
      label: '水库坑塘'
    }, {
      value: 12,
      p: 0.0,
      label: '永久性冰川雪地'
    }, {
      value: 13,
      p: 0.41,
      label: '滩涂'
    }, {
      p: 0.5,
      value: 14,
      label: '滩地'
    }, {
      value: 15,
      p: 0.21,
      label: '城镇'
    }, {
      value: 16,
      p: 0.21,
      label: '农村居民点'
    },{
      value: 17,
      p: 0.21,
      label: '其他建设用地'
    }, {
      value: 18,
      p: 0.51,
      label: '沙滩'
    }, {
      value: 19,
      p: 0.61,
      label: '戈壁'
    }, {
      value: 20,
      p: 0.31,
      label: '盐碱地'
    }, {
      value: 21,
      p: 0.01,
      label: '沼泽地'
    },{
      value: 22,
      p: 0.41,
      label: '裸土地'
    },{
      value: 23,
      p: 0.61,
      label: '裸岩石砾地'
    }],
    soilTextureValue: 0,
    uslsValue: 1,
    RainVal: 30,
    IntervalTime: 30,
    avgTemp: 20,
    avgWindSpeed: 2,
    avgAirHumidity:0.4,
    count: 0
  }
}

四、关键java代码实现模拟接口

//getAscGeoJsonByCIdxSim
//http://localhost:8145/api/soil/getAscGeoJsonByCIdxSim?rowInterval=714&rowIntervalIdxNum=0&crowIntervalIdx=0&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=30&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4
/**
 * 索引从0开始
 * @param rowInterval
 * @param rowIntervalIdxNum
 * @param crowIntervalIdx
 * @return
 */
@GetMapping("/getAscGeoJsonByCIdxSim")
public String getAscGeoJsonByCIdxSim(int rowInterval,int rowIntervalIdxNum,int crowIntervalIdx,double rainVal,double soilTextureValue,
                                     double uslsValue,
                                     double IntervalTime,
                                     double avgTemp,
                                     double avgWindSpeed,
                                     double avgAirHumidity) {
    String ascGeoJson = ascGeoSoil.getAscGeoJsonByCIdxSim(rowInterval,rowIntervalIdxNum,crowIntervalIdx,rainVal,soilTextureValue,uslsValue,IntervalTime,avgTemp,avgWindSpeed,avgAirHumidity);
    return ascGeoJson;
}

返回geojson的模拟计算成果数据

五、关键前端调用可视化代码配置实现

geoJsonFe0: {
  layerCode: 'geoJsonFe0',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water0',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=3&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe1: {
  layerCode: 'geoJsonFe1',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water1',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=6&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe2: {
  layerCode: 'geoJsonFe2',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water2',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=9&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe3: {
  layerCode: 'geoJsonFe3',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water3',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=12&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe4: {
  layerCode: 'geoJsonFe4',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water4',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=15&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe5: {
  layerCode: 'geoJsonFe5',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water5',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=18&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe6: {
  layerCode: 'geoJsonFe6',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water6',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=21&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe7: {
  layerCode: 'geoJsonFe7',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water7',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=24&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe8: {
  layerCode: 'geoJsonFe8',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water8',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=27&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=30&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: false
},
geoJsonFe9: {
  layerCode: 'geoJsonFe9',
  isRLayerPanel: true,
  sourceType: 'Vector',
  title: 'water9',
  url: '/api/soil/getAscGeoJsonByCIdxSim?rowInterval=178&rowIntervalIdxNum=4&crowIntervalIdx=1&rainVal=30&soilTextureValue=0.12&uslsValue=0.3&IntervalTime=30&avgTemp=20&avgWindSpeed=2&avgAirHumidity=4',
  dataPath:'',
  // labelField: 'NAME',
  geoType: 'geojson',
  maxZoom: Infinity,
  minZoom: -Infinity,
  wrapX: false,
  opacity: 1,
  location: {longitude: 112.68289694818532, latitude: 29.388637201081306, level: 12.411079407606836},
  visible: true
}

六、软件实现可视效果(调校参数进行模型训练,后续拓展融入更多参数率定调校模型,技术合作交流QQ:2401315930)

如果对您有所帮助,请点赞打赏支持! 非常感谢您的支持!

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

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

相关文章

在计算语义相似度中,我看网上说要加range,我不知道往哪里加?

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 行宫见月伤心色,夜雨闻铃肠断声。 大家好,我是皮皮。 一、前言 前几天在Python白银交流群【王王雪饼】问了一个Python处理语义相…

Python学习历程-元组的基本操作回顾

在学习元组之前,我们先再回过头看看之前写过的文章,看看列表的一些基本操作: Python中的列表介绍 记录我的Python学习历程-列表的基本操作, 接下来再快速回顾一下元组的一些重点: 列表属于可变序列,元组、字…

Powerlink协议使用极简入门教程

网上关于powerlink协议的知识太少,而且都太分散太零碎,容易让人一头扎进去摸不着头绪。新手看到demo源码可能都不知道有什么用途,怎么能联动的跑起来看到效果,有种无从下手的感觉。其实Powerlink协议的使用挺简单,特别…

STM32F4_光敏传感器

目录 1. 什么是光敏传感器、光敏电阻 2. 硬件分析 3. 实验程序 3.1 main.c 3.2 ADC3.c 3.3 ADC3.h 3.4 Lightsensor.c 3.5 Lightsensor.h 1. 什么是光敏传感器、光敏电阻 光敏传感器也称为光电传感器。是利用光电器件把光信号转换成电信号的一种传感器。它的敏感波长在…

opencv实践项目-多张图片拼接之stitcher

目录 1.简介2. 拼接算法流程3. 代码演示 1.简介 OpenCV从2.4.x版本之后多出来一个新的模型 图像拼接,该模块通过简单的高级API设置,可以获得比较好的图像拼接效果,OpenCV官方提供了一个高度集成的API函数 Stitcher,只要两行代码就…

SRE/DevOps不得不懂的:Prometheus的配置工程化!

原创不易,还请关注和转发~谢谢 背景 Prometheus有两个最基本的组件:一个是Prometheus程序,一个是Alertmanager程序。 它们的职责分工很明确: • Prometheus程序负责:定时拉取监控指标数据、存储指标数据、根…

谈谈IOC容器和AOP编程

Java发展的路途中,由刚开始的使用new创建对象,到使用抽象类,接口进行解耦,又到了提问时刻,什么是耦合度? 对于这个对象的关联和依赖关系,例如: 当一个对象要使用,但是&…

4.6k Star,SpringBoot+Vue+App+硬件实现的智能家居系统,一套带走

今天,推荐一个智能家居系统项目。这是我目前见过的最好的智能家居系统项目,功能完整,代码结构清晰。值得推荐。 4.6k Star,SpringBootVueApp硬件实现的智能家居系统,一套带走 简介 FastBee是一个简单易用的物联网平…

Cocos Shader实现HSL和RGB颜色模型

HSL和RGB是两种常见的颜色模型,被广泛应用于计算机图形学、数字图像处理、Web设计等领域。在进行颜色处理时,经常需要将HSL和RGB相互转换,本demo演示如何通过Cocos Creator 3.7游戏引擎,用HSL模型来调节图片颜色,并详细…

徐培:以数据智能技术助力制造型企业降本增效

导语 2023年4月7日,由中国DBA联盟(ACDU)和墨天轮社区联合主办的第十二届『数据技术嘉年华』(DTC 2023) 在北京新云南皇冠假日酒店盛大开启。次日,云和恩墨数据智能产品部总经理徐培博士在“智胜未来:数据技术创新应用”…

二、讲师管理接口开发总结

首先本项目将实体类单独放在model包中,方便后期集体的调用: 整个项目的建包结构都是在java包中建立com.lxl.ggkt包,方便后期包路径的扫描。 上述有三个包: enums包规定了一些状态规定,比如优惠券是否使用&#xff0c…

CVE-2017-7921漏洞复现

文章目录 漏洞描述 漏洞描述 0x01 CVE-2017-7921漏洞复现 许多HikvisionIP摄像机包含一个后门,允许未经身份验证的模拟任何配置的用户帐户。 0x02 漏洞复现: 利用工具发现漏洞(CVE-2017-7921): 利用路径&#xff…

“数字裂变”宇宙,华为云与和伙伴组成“银河护卫队”

最近,《银河护卫队3》正在上映,取得了豆瓣高分和全网好评。很多朋友走出电影院都感叹,真想有像银河护卫队一样的朋友和伙伴。 “伙伴”这个词,不仅是超级英雄电影的内核,更是云计算产业的“新贵”。关注云产业的朋友可…

Go项目组织:在单一repo中管理多个Go module指南

0. 单repo单module管理回顾 众所周知,Go在1.11版本中引入了go module[1],随着近几年Go module机制的逐渐成熟,它已经被Go团队确定为Go标准的依赖管理与构建方案,原先的GOPATH mode已经被彻底废弃。 在Go module模式下,…

C++——类和对象(5)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年5月8日 内容&#xff1a;C类和对象内容讲解 目录 前言&#xff1a; 1.操作符重载&#xff08;续&#xff09;&#xff1a; 前置和后置&#xff1a; 日期减日期&#xff1a; <<操作符&#xff1a; 结尾&#xff…

智能里既有技术也有艺术

智能不仅仅是技术方面的创新和应用&#xff0c;也是一种艺术的体现。智能技术需要融合多个学科和领域的知识&#xff0c;包括计算机科学、数学、心理学、哲学、人文艺术、宗教民俗等等&#xff0c;从而形成一个完整的系统。这个系统的设计和实现&#xff0c;需要技术人员具备深…

跟着我学 AI丨“Hey,Siri”的前生今世

Siri 是由苹果公司开发的一款智能语音助手&#xff0c;它可以通过语音识别和自然语言处理来回答用户的问题、执行任务、提供建议等等。Siri 可以在 iOS 和 macOS 设备上使用&#xff0c;它的出现极大地改变了人机交互的方式&#xff0c;让我们用语音成为了交互的媒介。 Siri 的…

轻松客观认识大模型系列:一

这是我关于《轻松客观认识大模型系列》第一篇 一、前言 这篇文章旨在为没有计算机科学背景的读者提供一些关于ChatGPT及其类似的人工智能系统&#xff08;如GPT-3、GPT-4、Bing Chat、Bard等&#xff09;如何工作的原理。ChatGPT是一种聊天机器人&#xff0c;建立在一个大型语…

AI 自动补全的这句日志能正常打印吗?

最近用上了 GitHub Copilot&#xff0c;它的能力不时让我惊叹&#xff0c;于是越来越多地面向 tab 编程&#xff0c;机械键盘的损耗都小了许多:-p 这天&#xff0c;它给我自动生成了一句像这样的日志打印代码&#xff1a; try {// ... } catch (Exception e) {log.error("…

Vue列表过滤与数据原理

目录 列表过滤 使用计算属性 使用watch监视属性 列表排序 Vue中数据原理 练习数据原理 Vue中数据原理总结 列表过滤 可以进行模糊搜索 使用计算属性 <!DOCTYPE html> <html lang"en" xmlns:v-model"http://www.w3.org/1999/xhtml"> <…