風場視覺化 風場資料

2022-09-22 04:24:07 字數 1706 閱讀 1549

了解 webgl 基礎之後,接著去看獲取解析風場資料的邏輯,又遇到問題。

在文章示例源庫的說明中,首先要安裝 eccodes ,嘗試使用 homebrew 但不行。於是就按照 eccodes 源庫的介紹本地進行編譯安裝。

在進行第 4 步的時候,碰到了問題:

no cmake_fortran_compiler could be found.

查詢資料說是缺少gfortran,可以使用命令檢視是否已安裝:

which gfortran
解決這個問題後按照指導繼續,編譯安裝成功,版本是 2.23.0 。

grib_set: command not found grib_dump: command not found

但在前面安裝的資料夾的bin目錄下是找到了 grib_set 的執行檔案。推斷是沒有註冊到全域性路徑中。

檢視 eccodes 安裝路徑是否註冊到全域性路徑中:

echo $path
這裡碰到的問題是沒有註冊到全域性路徑中,設定方式可參考這裡。

修改示例:

vim ./.bash_profile
export eccode_home=/xx/xx/xx/xx/eccodesbuild/bin

export path=$path:$eccode_home

儲存後,使其生效

source ./.bash_profile
想知道是否生效了,試試指令grib_set -h,如果發現沒有效果,有可能跟使用的 shell 端有關,可參看這裡。

指令碼可以正常執行了,但生成的資料不對:

undefined:1

檢視源庫的 issues ,裡面也有人提這個問題,試了裡面的一些方法,發現這個 pull 的修改可以正常的執行。於是就 fork 了一下把這個修改的內容弄過來了,改了些資料,見 xxholic/webgl-wind 。

download.sh指令碼中,獲取資料解析後,生成可讀檔案tmp.json,來看看這個檔案中主要結構和部分資料:

,,,

,,]]

},"v":,,,

,]]}}

看到這些可能會有些疑惑,大氣中的氣流既有速度也有方向,在數學上可以用乙個向量表示。在氣象學中,如果知道風的方向和大小,就可以得到表示風的向量,u 分量和 v 分量:

// ws 風力大小 θ 風在數學上的方向描述

u = ws * cos(θ)

v = ws * sin(θ)

更加詳細的介紹見 wind: u and v components 。

接著在prepare.js中使用到風資料中的key有:

for (let y = 0; y < height; y++) 

}

back to top

風場視覺化 隨機重置

在繪製軌跡的效果中,過一段時間就會發現,最後只剩下固定的幾條軌跡,原文中也提到了這種現象,也提供了解決思路,個人還是想結合原始碼再看看。隨著時間推移,有些粒子產生的偏移超過了範圍就會消失,所以需要隨機重置消失的風粒子。需要考慮的問題有 在繪製軌跡中,我們知道了產生的偏移是在最後更新粒子紋理資訊階段,...

arcgis js 4 風場視覺化

當我們做洋流或者風場 視覺化時候 echart 雖然也能用 但是資料量過大會很卡 資料呼叫是這個樣子 我們需要兩個類 import esriloader from esri loader export const animatedenvironmentlayer animatedenvironmen...

leaflet實現風場流動

概述 本文基於 openlayer4中風場的實現 一文,使用leaflet實現流動風場的效果。廢話不多說,下面貼上 1 wind演算法及擴充套件 1 2 author 3 date 4 1.計算矩形4個角的canvas座標x y,初始化該區域所有網格點,間距可根據map index設定 5 2.將已...