webGis 气象站点数据解析渲染

news2024/12/26 19:24:21

1.站点数据说明

1.1 数据来源

站点数据来源多样。

1.2数据传输

实现前端的展示,数据传输的方式有:

  1. json
  2. 等等

1.2数据格式

let arr = [{
lat:1,//经纬度
lng:1,
value:2//值
},{},...]

1.3站点数据转格点数据

  • turf.interpolate
  • 克里金插值
  • qgis等IDE工具
  • 其他

1.4数据渲染(二三维)

  • kriging.js直接训练,然后x渲染成canvas,三维渲染的话贴图。
        let points = [];
        demodata.data.forEach((item) => {
          points.push(turf.point([item[0], item[1]], { value: item[2] }));
        });
        var collection = turf.featureCollection(points, {});

        var canvas = document.getElementById("canvasMap");
        canvas.width = 2000;
        canvas.height = 2000;

        var n = collection.features.length;
        var t = [];
        var x = [];
        var y = [];
        for (var i = 0; i < n; i++) {
          t.push(collection.features[i].properties.value); // 权重值
          x.push(collection.features[i].geometry.coordinates[0]); // x
          y.push(collection.features[i].geometry.coordinates[1]); // y
        }
        var variogram = kriging.train(t, x, y, "exponential", 0, 10);
        console.log(t, x, y, variogram);

        var grid = kriging.grid(
          [
            [
              [123.337734306, 41.826277622],
              [123.37805956, 41.826204534],
              [123.378038616, 41.802883463],
              [123.337713376, 41.802956548],
              [123.337734306, 41.826277622],
            ],
          ],
          variogram,
          0.0001
        );

        console.log(grid);

        let colors = [
          "#00A600",
          "#01A600",
          "#03A700",
          "#04A700",
          "#05A800",
          "#07A800",
          "#08A900",
          "#09A900",
          "#0BAA00",
          "#0CAA00",
          "#0DAB00",
          "#0FAB00",
          "#10AC00",
          "#12AC00",
          "#13AD00",
          "#14AD00",
          "#16AE00",
          "#17AE00",
          "#19AF00",
          "#1AAF00",
          "#1CB000",
          "#1DB000",
          "#1FB100",
          "#20B100",
          "#22B200",
          "#23B200",
          "#25B300",
          "#26B300",
          "#28B400",
          "#29B400",
          "#2BB500",
          "#2CB500",
          "#2EB600",
          "#2FB600",
          "#31B700",
          "#33B700",
          "#34B800",
          "#36B800",
          "#37B900",
          "#39B900",
          "#3BBA00",
          "#3CBA00",
          "#3EBB00",
          "#3FBB00",
          "#41BC00",
          "#43BC00",
          "#44BD00",
          "#46BD00",
          "#48BE00",
          "#49BE00",
          "#4BBF00",
          "#4DBF00",
          "#4FC000",
          "#50C000",
          "#52C100",
          "#54C100",
          "#55C200",
          "#57C200",
          "#59C300",
          "#5BC300",
          "#5DC400",
          "#5EC400",
          "#60C500",
          "#62C500",
          "#64C600",
          "#66C600",
          "#67C700",
          "#69C700",
          "#6BC800",
          "#6DC800",
          "#6FC900",
          "#71C900",
          "#72CA00",
          "#74CA00",
          "#76CB00",
          "#78CB00",
          "#7ACC00",
          "#7CCC00",
          "#7ECD00",
          "#80CD00",
          "#82CE00",
          "#84CE00",
          "#86CF00",
          "#88CF00",
          "#8AD000",
          "#8BD000",
          "#8DD100",
          "#8FD100",
          "#91D200",
          "#93D200",
          "#95D300",
          "#97D300",
          "#9AD400",
          "#9CD400",
          "#9ED500",
          "#A0D500",
          "#A2D600",
          "#A4D600",
          "#A6D700",
          "#A8D700",
          "#AAD800",
          "#ACD800",
          "#AED900",
          "#B0D900",
          "#B2DA00",
          "#B5DA00",
          "#B7DB00",
          "#B9DB00",
          "#BBDC00",
          "#BDDC00",
          "#BFDD00",
          "#C2DD00",
          "#C4DE00",
          "#C6DE00",
          "#C8DF00",
          "#CADF00",
          "#CDE000",
          "#CFE000",
          "#D1E100",
          "#D3E100",
          "#D6E200",
          "#D8E200",
          "#DAE300",
          "#DCE300",
          "#DFE400",
          "#E1E400",
          "#E3E500",
          "#E6E600",
          "#E6E402",
          "#E6E204",
          "#E6E105",
          "#E6DF07",
          "#E6DD09",
          "#E6DC0B",
          "#E6DA0D",
          "#E6D90E",
          "#E6D710",
          "#E6D612",
          "#E7D414",
          "#E7D316",
          "#E7D217",
          "#E7D019",
          "#E7CF1B",
          "#E7CE1D",
          "#E7CD1F",
          "#E7CB21",
          "#E7CA22",
          "#E7C924",
          "#E8C826",
          "#E8C728",
          "#E8C62A",
          "#E8C52B",
          "#E8C42D",
          "#E8C32F",
          "#E8C231",
          "#E8C133",
          "#E8C035",
          "#E8BF36",
          "#E9BE38",
          "#E9BD3A",
          "#E9BC3C",
          "#E9BB3E",
          "#E9BB40",
          "#E9BA42",
          "#E9B943",
          "#E9B945",
          "#E9B847",
          "#E9B749",
          "#EAB74B",
          "#EAB64D",
          "#EAB64F",
          "#EAB550",
          "#EAB552",
          "#EAB454",
          "#EAB456",
          "#EAB358",
          "#EAB35A",
          "#EAB35C",
          "#EBB25D",
          "#EBB25F",
          "#EBB261",
          "#EBB263",
          "#EBB165",
          "#EBB167",
          "#EBB169",
          "#EBB16B",
          "#EBB16C",
          "#EBB16E",
          "#ECB170",
          "#ECB172",
          "#ECB174",
          "#ECB176",
          "#ECB178",
          "#ECB17A",
          "#ECB17C",
          "#ECB17E",
          "#ECB27F",
          "#ECB281",
          "#EDB283",
          "#EDB285",
          "#EDB387",
          "#EDB389",
          "#EDB38B",
          "#EDB48D",
          "#EDB48F",
          "#EDB591",
          "#EDB593",
          "#EDB694",
          "#EEB696",
          "#EEB798",
          "#EEB89A",
          "#EEB89C",
          "#EEB99E",
          "#EEBAA0",
          "#EEBAA2",
          "#EEBBA4",
          "#EEBCA6",
          "#EEBDA8",
          "#EFBEAA",
          "#EFBEAC",
          "#EFBFAD",
          "#EFC0AF",
          "#EFC1B1",
          "#EFC2B3",
          "#EFC3B5",
          "#EFC4B7",
          "#EFC5B9",
          "#EFC7BB",
          "#F0C8BD",
          "#F0C9BF",
          "#F0CAC1",
          "#F0CBC3",
          "#F0CDC5",
          "#F0CEC7",
          "#F0CFC9",
          "#F0D1CB",
          "#F0D2CD",
          "#F0D3CF",
          "#F1D5D1",
          "#F1D6D3",
          "#F1D8D5",
          "#F1D9D7",
          "#F1DBD8",
          "#F1DDDA",
          "#F1DEDC",
          "#F1E0DE",
          "#F1E2E0",
          "#F1E3E2",
          "#F2E5E4",
          "#F2E7E6",
          "#F2E9E8",
          "#F2EBEA",
          "#F2ECEC",
          "#F2EEEE",
          "#F2F0F0",
          "#F2F2F2",
        ];

        kriging.plot(canvas, grid, grid.xlim, grid.ylim, colors);


      function returnImgae() {
        var mycanvas = document.getElementById("canvasMap");
        return mycanvas.toDataURL("image/png");
      }

      let coords = [
        [123.337734306, 41.826277622],
        [123.37805956, 41.826204534],
        [123.378038616, 41.802883463],
        [123.337713376, 41.802956548],
      ];
      let arr = [];
      for (let item of coords) {
        arr.push(...item);
      }
      // console.log(arr);

      var temptureLayer = viewer.entities.add({
        polygon: {
          hierarchy: {
            positions: Cesium.Cartesian3.fromDegreesArray([...arr]),
          },
          // material: new Cesium.ColorMaterialProperty(
          //   Cesium.Color.CORNSILK.withAlpha(1)
          // ),
          material: new Cesium.ImageMaterialProperty({
            image: returnImgae(), //使用贴图的方式将结果贴到面上
          }),
        },
      });

  • turf.interpolate 转为格点数据后使用格点数据渲染,另一章文章中有。
var points = turf.randomPoint(30, { bbox: [50, 30, 70, 50] });

// add a random property to each point
turf.featureEach(points, function (point) {
  point.properties.solRad = Math.random() * 50;
});
var options = { gridType: "points", property: "solRad", units: "miles" };
var grid = turf.interpolate(points, 100, options);
  • 其他方式,以后补充

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

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

相关文章

理解字母形状,从而获得含义

英文字母&#xff0c;都是象形符号&#xff0c;所以&#xff0c;理解其形象&#xff0c;所象之形&#xff0c;是一项重要的工作&#xff0c;和非常有意义事情。也是我们快速记住大量单词&#xff0c;将单词从底层逻辑开始理清&#xff0c;融会贯通扩展记忆容量的重要办法之一。…

新型大语言模型的预训练与后训练范式,阿里Qwen

前言&#xff1a;大型语言模型&#xff08;LLMs&#xff09;的发展历程可以说是非常长&#xff0c;从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初&#xff0c;LLM的训练过程只关注预训练&#xff0c;但后来逐步扩展到了包括预训练和后训练在内的完整…

爬虫专栏第一篇:深入探索爬虫世界:基础原理、类型特点与规范要点全解析

本专栏会对爬虫进行从0开始的讲解,每一步都十分的细致,如果你感兴趣希望多多点赞收藏关注支持 简介:文章对爬虫展开多方面剖析。起始于爬虫的基本概念,即依特定规则在网络抓取信息的程序或脚本,在搜索引擎信息提取上作用显著。阐述其于大数据背景下可助力获取并处理分析数…

LocalDateTime序列化(跟redis有关)

使用过 没成功&#xff0c;序列化后是[2024 11 10 17 22 20]差不多是这样&#xff0c; 反序列化后就是&#xff1a; [ 2024 11 10.... ] 可能是我漏了什么 这是序列化后的&#xff1a; 反序列化后&#xff1a; 方法&#xff08;加序列化和反序列化注解&#xff09;&…

UE5 打包报错 Unknown structure 的解决方法

在虚幻引擎5.5 打包报错如下&#xff1a; UATHelper: 打包 (Windows): LogInit: Display: LogProperty: Error: FStructProperty::Serialize Loading: Property ‘StructProperty /Game/Components/HitReactionComponent/Blueprints/BI_ReactionInterface.BI_ReactionInterface…

webrtc ios h264 硬编解码

webrtc ios h264 硬编解码 一 ios 系统支持 从ios8开始&#xff0c;苹果公司开放了硬解码和硬编码API&#xff08;即 VideoToolbox.framework API&#xff09; 二 主要api 1 主要解码函数 VTDecompressionSessionCreate // 创建解码 session VTDecompressionSession…

【大模型】深度解析 NLP 模型5大评估指标及 应用案例:从 BLEU、ROUGE、PPL 到METEOR、BERTScore

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;无论是机器翻译、文本生成&#xff0c;还是问答系统开发&#xff0c;模型性能评估指标始终是开发者绕不开的工具。BLEU、ROUGE、PPL&#xff08;困惑度&#xff09;、METEOR 和 BERTScore 是五个最具代表性的指标&am…

idea 自动导包,并且禁止自动导 *(java.io.*)

自动导包配置 进入 idea 设置&#xff0c;可以按下图所示寻找位置&#xff0c;也可以直接输入 auto import 快速定位到配置。 Add unambiguous imports on the fly&#xff1a;自动帮我们优化导入的包Optimize imports on the fly&#xff1a;自动去掉一些没有用到的包 禁止导…

Mac安装及合规无限使用Beyond Compare

文章目录 Beyond CompareBeyond Compare简介Beyond Compare安装Beyond Compare到期后继续免费使用 Beyond Compare Beyond Compare简介 Beyond Compare 是一款由 Scooter Software 开发的文件和文件夹比较工具。它主要用于对比两个文件或文件夹之间的差异&#xff0c;并支持文…

Navcat连接sqlserver报错:[IM002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0)

Navcat连接sqlserver报错&#xff1a;[IM002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) 原因&#xff1a;navicat没有找到sqlserver驱动 解决&#xff1a;安装sqlserver驱动&#xff0c;下载后双击安装&#xff0c;安装完重新连接就可以了…

IDEA Maven 打包找不到程序包错误或找不到符号,报错“程序包不存在“

参考文章&#xff1a;https://blog.csdn.net/yueeryuanyi/article/details/14211090 问题&#xff1a;IDEA Maven 打包找不到程序包错误或找不到符号,报错“程序包不存在“编译都没问题 解决思路 – >【清除缓存】 1. 强制刷新Maven缓存 选择 Maven 标签&#xff0c;Exe…

微信小游戏/抖音小游戏SDK接入踩坑记录

文章目录 前言问题记录1、用是否存在 wx 这个 API 来判断是微小平台还是抖小平台不生效2、微小支付的参数如何获取?3、iOS 平台不支持虚拟支付怎么办?微小 iOS 端支付时序图:抖小 iOS 端支付:4、展示广告时多次回调 onClose5、在使用单例时 this 引起的 bug6、使用 fetch 或…

vue 2 父组件根据注册事件,控制相关按钮显隐

目标效果 我不注册事件&#xff0c;那么就不显示相关的按钮 注册了事件&#xff0c;才会显示相关内容 实现思路 组件在 mounted 的时候可以拿到父组件注册监听的方法 拿到这个就可以做事情了 mounted() {console.log(this.$listeners, this.$listeners);this.show.search !…

服务熔断-熔断器设计

文章目录 服务为什么需要熔断熔断器设计思想熔断器代码实现 服务为什么需要熔断 对于服务端采用的保护机制为服务限流。 对于服务调用端是否存在保护机制&#xff1f; 假如要发布一个服务 B&#xff0c;而服务 B 又依赖服务 C&#xff0c;当一个服务 A 来调用服务 B 时&#x…

【Maven】依赖冲突如何解决?

准备工作 1、创建一个空工程 maven_dependency_conflict_demo&#xff0c;在 maven_dependency_conflict_demo 创建不同的 Maven 工程模块&#xff0c;用于演示本文的一些点。 什么是依赖冲突&#xff1f; 当引入同一个依赖的多个不同版本时&#xff0c;就会发生依赖冲突。…

代理IP地址的含义与设置指南‌

在数字化时代&#xff0c;互联网已经成为我们日常生活不可或缺的一部分。然而&#xff0c;在享受互联网带来的便利的同时&#xff0c;我们也面临着隐私泄露、访问限制等问题。代理IP地址作为一种有效的网络工具&#xff0c;能够帮助我们解决这些问题。本文将详细介绍代理IP地址…

【MyBatis】验证多级缓存及 Cache Aside 模式的应用

文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口&#xff0c; 采用 Redis 会引入什么问题&#xff1f;万一遇到需强一致场景&#x…

组播基础实验

当需要同时发给多个接受者或者接收者ip未知时使用组播 一、组播IP地址 1、组播IP地址范围 组播地址属于D类地址&#xff1a;224.0.0.0/4&#xff08;224.0.0.0-239.255.255.255&#xff09; 2、分类 &#xff08;1&#xff09;链路本地地址&#xff08;link-local&#xf…

智慧银行反欺诈大数据管控平台方案(二)

智慧银行反欺诈大数据管控平台建设方案&#xff0c;通过系统性整合多元化数据源&#xff0c;融合先进的大数据处理与机器学习技术&#xff0c;构建一个具备实时性、智能性和高度集成能力的反欺诈系统框架。该方案以提升银行风险管理效率与精度为目标&#xff0c;创新性地采用多…

(免费送源码)计算机毕业设计原创定制:Java+ssm+JSP+Ajax SSM棕榈校园论坛的开发

摘要 随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品&#xff0c;从而也带动了一系列与此相关产业&#xff0c;是人们的生活发生了翻天覆地的变化&#xff0c;而网络化的出现也在改变着人们传统的生活方式&#xff0c;包括工作&#xff0c;学习&#xff0c;社交…