了解 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.將已...