前言

首先说下地图风场的实现方式:

  1. 下载全球GFS数据
    https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p25.pl

  2. GFS风场数据解析
    https://github.com/cambecc/grib2json

  3. GFS风场展示
    https://github.com/Esri/wind-js

效果如下

问题描述

如果用全球风场是没有问题的,但是如果是下载的是区域GFS数据,风场显示的时候就会乱掉,比如下载的是中国区域的GFS,整个风场效果就变乱掉:


不仅坐标和中国区域没对上,仔细看风的方向也是正好相反的。

分析

仔细看Grib2JSON转换后的json文件,发现scanMode这个参数全球和区域是不一样的,全球时是0,表示从北到南,从东到西;区域时是64,表示从南到北,从东到西。
再看windy.js中buildGrid方法中也只是考虑到了Scan mode为0的情况:

  var buildGrid = function(data, callback) {var builder = createBuilder(data);var header = builder.header;var λ0 = header.lo1, φ0 = header.la1;  // the grid's origin (e.g., 0.0E, 90.0N)var Δλ = header.dx, Δφ = header.dy;    // distance between grid points (e.g., 2.5 deg lon, 2.5 deg lat)var ni = header.nx, nj = header.ny;    // number of grid points W-E and N-S (e.g., 144 x 73)var date = new Date(header.refTime);date.setHours(date.getHours() + header.forecastTime);// Scan mode 0 assumed. Longitude increases from λ0, and latitude decreases from φ0.// http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_table3-4.shtmlvar grid = [], p = 0;var isContinuous = Math.floor(ni * Δλ) >= 360;for (var j = 0; j < nj; j++) {var row = [];for (var i = 0; i < ni; i++, p++) {row[i] = builder.data(p);}if (isContinuous) {// For wrapped grids, duplicate first column as last column to simplify interpolation logicrow.push(row[0]);}grid[j] = row;}

解决

知道了以上的原因,其实将windy.js稍微改动下即可

  • 修改最大纬度的获取
var λ0 = header.lo1, φ0 = header.scanMode == 0 ? header.la1 : header.la2;
  • 修改grid的填充顺序
 if (header.scanMode == 0) {grid[j] = row;} else {grid[nj - j] = row;}

效果:

Grib2Json解析

如果不知道怎么用Grib2Json的,可以查看另外一篇博客:
JAVA在线调用Grib2Json

其他可能需要参考的网站

wgrib2: wgrib for GRIB-2
GRIB tools examples
NCEP WMO GRIB2 Documentation
Scripting grib_filter on NCEP’s nomads server

GFS 区域风场解析问题相关推荐

  1. 反向区域DNS解析服务

    前期准备:反向解析的tree结构是从根往下数,第二级为arpa,第三级为in-addr,第四级为IP,表示出来是:254.58.168.192.in-addr.apra. 1.建立反向解析区域: [r ...

  2. JUNOS ISIS区域拓扑解析

    典型的ISIS拓扑类型: 参考AREA 49.0001  R1( L1 only)和R2(L1/L2),R3(L2 only) 需要配置同样的区域地址,而R3和R4(L2 之间)邻接路由器则要配置不同 ...

  3. 学习笔记之dns正反向解析区域,主从服务,子域授权,安全

    一.配置解析一个正向区域: 以bucktan.com域为例: 1.1 定义区域 在主配置文件中(/etc/named.conf)或主配置文件辅助配置文件(/etc/named.rfc1912.zone ...

  4. 搭建DNS服务器,完成正向解析、反向解析、主从dns服务器完全区域传送和增量区域传送、批量解析

    一.因特网的域名结构 (1)国家顶级域名:采用ISO3166的规定.如:cn代表中国,us代表美国,uk代表英国,等等.国家域名又常记为ccTLD(cc表示国家代码contry-code). (2)通 ...

  5. DNS服务器全面解析--转

    引用地址:http://pangge.blog.51cto.com/6013757/1273087 基础认知篇 DNS服务的概述 DNS是Domain Name System 的缩写,即域名系统.DN ...

  6. 中国家用中央空调行业发展动态解析及规划趋向预测报告2022-2028年版

    [报告目录]:  第1章:家用中央空调行业概念界定及发展环境剖析1.1 家用中央空调的概念界定及统计说明 1.1.1 家用中央空调的概念界定及产品分类 (1)中央空调的分类及组成 (2)家用中央空调的 ...

  7. linux 配置DNS正反区域,Linux基础服务_DNS原理以及正反向DNS配置

    DNS服务的原理介绍: dns(Domain Name Service,域名解析服务)    为c/s架构的服务 通常默认的监听的端口为:53/tcp     53/udp 将dns服务实现的应用程序 ...

  8. DNS 学习笔记之5- DNS区域详解

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  现在我们基本 ...

  9. 管理站点复制 【Windows Server 2019】活动目录(Acitve Directory)——在同一区域安装多台域控制器

    [Windows Server 2019]活动目录(Acitve Directory)--在同一区域安装多台域控制器 https://blog.csdn.net/nowshut/article/det ...

最新文章

  1. python在线翻译脚本_用Python抓取百度翻译内容并打造自己的翻译脚本!
  2. r语言 图形一览_R语言实战(第2版):第三章 图形初阶(01)
  3. python字符串代码对象_Python源码剖析 - Python中的字符串对象
  4. 【Eclipse】Eclipse中tomcat的Server配置(解决修改代码不断的重启服务器)以及设置tomcat文件发布位置与JSP编译位置查看...
  5. 洛谷P1238 走迷宫
  6. 数据结构-第10周作业(二叉树的创建和遍历算法)
  7. 玩游戏时弹出计算机内存不足,Win7系统玩游戏内存不足怎么办 win7玩游戏时显示内存不足如何解决...
  8. Arduino学习笔记
  9. [Step By Step]SAP HANA PAL 数据处理四分位间距检测Inter-quartile Range Test范例IQRTEST
  10. 邮箱每日发送有上限吗?各大邮箱每天限制发信数量多少?
  11. SAP中标准价和移动平均价的学习笔记
  12. 如何免费获得15G的 Google Drive 账号
  13. C语言中指针的介绍(终极版!!!)
  14. php用css改变字体,css怎么设置字体立体
  15. 19【1】商品、广告推广投放:CPA、CPC、CPM、CVR、CTR和ROI
  16. STEM图像模拟软件QSTEM入门教程-测试狗
  17. Python 爬虫 基金排行 基金评级 基金经理 等核心基金数据爬虫
  18. 零基础数据分析师视频教程考证课1到3spss/R语言/Python3/CDA网课
  19. CentOS Hive安装详细步骤
  20. java实现人脸识别登录教程【含效果图】——前台+后台整合

热门文章

  1. 有关mean iou 言简意赅的介绍 及python 代码实现
  2. 平稳性检验和白噪声检验
  3. opencv(三)对图像进行简单算术运算(加减乘除)
  4. 从ARM处理器,看“贵云黔芯”国产自主安全解决方案
  5. windos找不到文件:打开fla文件时候报错!
  6. linux执行lsof命令_linux系统 lsof命令详解
  7. 如何将macbook触摸板和外接鼠标的滚轮设置相反方向
  8. Android开发指南
  9. 组成计算机cpu的两大软件是,交换机和计算机一样,也由硬件和软件两部分组成,硬件包括CPU...
  10. android 24节气及节日,iOS -- 获取24节气和节日