All Projects → RaymanNg → 3d Wind Field

RaymanNg / 3d Wind Field

Licence: mit
Visualize wind field on Cesium

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to 3d Wind Field

Tin Terrain
A command-line tool for converting heightmaps in GeoTIFF format into tiled optimized meshes.
Stars: ✭ 392 (+104.17%)
Mutual labels:  cesium
Satvis
Satellite orbit visualization and pass prediction with Cesium.js
Stars: ✭ 68 (-64.58%)
Mutual labels:  cesium
Cesium demos
cesium样例库
Stars: ✭ 90 (-53.12%)
Mutual labels:  cesium
Iclient Javascript
Modern GIS Web Client for JavaScript, based on Leaflet\OpenLayers\MapboxGL-JS\Classic(iClient8C), enhanced with ECharts\D3\MapV etc. Contributed by SuperMap & community.
Stars: ✭ 593 (+208.85%)
Mutual labels:  cesium
Cesium
An open-source JavaScript library for world-class 3D globes and maps 🌎
Stars: ✭ 8,095 (+4116.15%)
Mutual labels:  cesium
Cesium Point Cloud Generator
A small Java-based tool for the generation of point cloud visualization datasets according to Cesium 3D Tiles.
Stars: ✭ 82 (-57.29%)
Mutual labels:  cesium
Flightairmap
Open source project displaying live aircrafts, ships or trackers on 2D/3D map. Browse through the data based on a particular aircraft, airline, airport, tracker or vessel to search through the database or see extensive statistics. Can use ADS-B in SBS1 format (dump1090, Radarcape,...), VRS, VA (VATSIM, IVAO whazzup.txt, phpvms,...), ACARS (acarsdec, acarsdeco2), APRS, AIS as datasource.
Stars: ✭ 366 (+90.63%)
Mutual labels:  cesium
Cesiumjs Tutorial
CesiumJS中文基础教程 http://cesiumcn.org/ | http://cesium.coinidea.com/
Stars: ✭ 148 (-22.92%)
Mutual labels:  cesium
Pts
Quantized Mesh Terrain Data Generator and Server for CesiumJS Library
Stars: ✭ 36 (-81.25%)
Mutual labels:  cesium
Webclient Javascript
MapGIS Client for JavaScript, is a cloud GIS network client development platform. It makes a perfect fusion of traditional WebGIS and cloud GIS; also integrates four mainstream map open source frameworks and visualization libraries such as Echarts, MapV, and D3, etc.. Therefore, highly-efficient visual expression and analysis of big data and real-time streaming data have been further enhanced.
Stars: ✭ 88 (-54.17%)
Mutual labels:  cesium
Ol Cesium
OpenLayers - Cesium integration
Stars: ✭ 660 (+243.75%)
Mutual labels:  cesium
Terriajs
A library for building rich, web-based geospatial data platforms.
Stars: ✭ 699 (+264.06%)
Mutual labels:  cesium
Cesium
cesium demo,cesium 研究过程中资料整理,包括: 1、示例,提供常规的cesium示例以及综合性的业务示例 2、工具,整理研究过程中写的一些数据获取、处理、分析的工具,例如网络3dtiles数据爬虫工具、b3dm 转 gltf工具 3、插件,根据研究过程中cesium感觉使用不方便的地方,添加插件,包括针对显示控件的汉化中文语言插件等
Stars: ✭ 84 (-56.25%)
Mutual labels:  cesium
Objto3d Tiles
Convert obj model file to 3d tiles
Stars: ✭ 480 (+150%)
Mutual labels:  cesium
Quantized Mesh
Specification for streaming massive terrain datasets for 3D visualization.
Stars: ✭ 139 (-27.6%)
Mutual labels:  cesium
Xbsjearthui
XbsjEarthUI是基于Cesium和EarthSDK的三维GIS/BIM的UI模板,可以基于此定制自己的三维App
Stars: ✭ 373 (+94.27%)
Mutual labels:  cesium
Cesium Google Earth Examples
Google Earth plugin API samples ported to Cesium
Stars: ✭ 73 (-61.98%)
Mutual labels:  cesium
Py3dtiles
⚠️ Project migrated to : https://gitlab.com/Oslandia/py3dtiles ⚠️
Stars: ✭ 152 (-20.83%)
Mutual labels:  cesium
Angular Cesium
JavaScript library for creating map based web apps using Cesium and Angular
Stars: ✭ 141 (-26.56%)
Mutual labels:  cesium
Cesium Map
Cesium 地图插件,用于添加国内各大地图厂商的地图🌎
Stars: ✭ 80 (-58.33%)
Mutual labels:  cesium

3D-Wind-Field Demo

Visualize the wind on earth, powered by Cesium JS.

More detail is in this blog post: GPU Powered Wind Visualization With Cesium

Q&A

How to start the application?

Just create a HTTP server for the "index.html" file in the "Cesium-3D-Wind" folder.

If you have VSCode installed, I recommend to intall the "liveserver" extension.

How to use my own NetCDF data?

The NetCDF file is in the "data" folder, it should contains below variables:

Note:

  • Don't forget to change the filename in the source code ("gui.js")
  • "lev", "lat", "lon" are names of dimensions, and "min", "max" are the attributes of the variable.
  • The order of dimensions matter
  • Use small (less than 100MB) NetCDF file if possible, or your browser may crash.

The layout of the NetCDF data: demo.nc

Note:

  • The range of longitude is [0,360], not [-180, 180]
  • netcdfjs will read the data row by row, so array(0) is (lon 0, lat -90)
  • You must use NetCDF version 3 (NOT 4, NOT other file types like HDF or GRIB) file

For more detail, use Panoply to read the "data/demo.nc" file

What to do if I want to use JSON file instead of NetCDF?

You can add a function for loading JSON data in the dataProcess.js, and call your JSON loading function in the exposed function loadData.

However, you should ensure that the data return from your JSON loading function should have the same structure as that of function loadNetCDF.

How do you generate the demo.nc file ?

The demo data is from NOAA Global Forecast System. The original data is in GRIB2 format and I used toolsUI to convert the GRIB2 file to a NetCDF V3 file.

After the conversion I used NetCDF Operator for further process of the NetCDF data. I wrote a PowerShell script(in the 'Util' folder) to extract and transform the data by making use of NetCDF Operator. You can also use this script once you setup the 'NCOPath' and 'fileToProcess' variables in the script.

What does the "particleHeight" mean?

"particleHeight" is the distance from the surface of earth. Particles lower than the terrain will be overlapped.

Why are some particles not overlapped by higher terrain?

Because sometimes the depth test for particles is not accurate enough. This problem is similar with Z-fighting, the cause is depth buffer does not have enough precision.

How customize the panel ?

The panel is made with dat.gui library, you can read its document and modify the gui.js as you need.

Troubleshoot

This demo does not work on my device

If possible, you should run this demo in Chrome on PC, because I did not test it in other browser or mobile device.

If you got into trouble on other device(for example, mobile phone), you can check your WebGL implementation in WebGL report. Check the "Supported Extensions" section, below extensions are at least required:

  • OES_texture_float
  • WEBGL_depth_texture extension
  • EXT_frag_depth

There is no particle or world terrian after starting the demo

Please check the speed of your network connection. Open the development tools in your browser and refresh the website, then check if your browser is downloading the data in a very slow speed.

World terrian can not be loaded

Cesium requires access token of Cesium ION to access the WorldTerrain data, you can register an account to acquire a valid token, and use it according to the document.

I adopt the WebGL code and the demo is not working now

Unfortunately, there is no easy way to debug WebGL code, and I can't find any debugging tool for setting breakpoints in WebGL. For the moment, I suggest to use Spector.js to figure out what is happening with your WebGL code. It can tell you the input and output of your code.

All WMS layers failed to display

Probably the WMS URL changed, you may check the latest WMS URL by accessing NOAA's TDS server of GFS Analysis. Click the data file of the date you want (mine is 20190916_0000_000), then the WMS URL for this file will be showed in the web page. After getting the latest URL, you can update the variable "WMS_URL" in gui.js to make WMS layer display work again.

Credits

This demo makes use of below repos:

This demo makes use of TDS server of NOAA GFS for WMS layer display

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].