Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Earth | 4,643 | a year ago | 84 | mit | JavaScript | |||||
a project to visualize global weather conditions | ||||||||||
Weather | 130 | 4 years ago | 1 | mit | Dart | |||||
A weather app built to learn how to use Canvas and Animation in Flutter. | ||||||||||
Animatedenvironmentlayer | 41 | 6 months ago | 6 | TypeScript | ||||||
A custom arcgis js api layer to display GRIB data formatted as json as animated particles on a canvas | ||||||||||
Wcss | 18 | 4 years ago | 26 | mit | JavaScript | |||||
It's really quite ridiculous. | ||||||||||
Fxmaster | 10 | 2 days ago | 26 | other | JavaScript | |||||
A module for Foundry Virtual Tabletop that adds various special effects. | ||||||||||
Vue Skycons | 9 | 1 | 2 months ago | 20 | March 19, 2022 | 1 | apache-2.0 | JavaScript | ||
A set of ten animated weather glyphs, procedurally generated by JavaScript using the HTML5 canvas tag. | ||||||||||
Weathericon | 5 | 10 years ago | other | JavaScript | ||||||
WeatherIcons is a free collection of weather vector icons for web created with JavaScript and HTML5 Canvas. | ||||||||||
Data Canvas | 4 | 9 years ago | JavaScript | |||||||
An app to display the data for the data-canvas project | ||||||||||
Albany_nullschool | 3 | 5 years ago | mit | JavaScript | ||||||
An offshoot of Cameron Beccario's earth.nullschool.net | ||||||||||
Canvas Plus | 3 | 4 years ago | JavaScript | |||||||
A collaborative Canvas application containing a lot of ready-to-use cool components |
NOTE: the location of dev-server.js
has changed from {repository}/server/
to {repository}/
"earth" is a project to visualize global weather conditions.
A customized instance of "earth" is available at http://earth.nullschool.net.
"earth" is a personal project I've used to learn javascript and browser programming, and is based on the earlier Tokyo Wind Map project. Feedback and contributions are welcome! ...especially those that clarify accepted best practices.
After installing node.js and npm, clone "earth" and install dependencies:
git clone https://github.com/cambecc/earth
cd earth
npm install
Next, launch the development web server:
node dev-server.js 8080
Finally, point your browser to:
http://localhost:8080
The server acts as a stand-in for static S3 bucket hosting and so contains almost no server-side logic. It
serves all files located in the earth/public
directory. See public/index.html
and public/libs/earth/*.js
for the main entry points. Data files are located in the public/data
directory, and there is one sample
weather layer located at data/weather/current
.
*For Ubuntu, Mint, and elementary OS, use nodejs
instead of node
instead due to a naming conflict.
Map data is provided by Natural Earth but must be converted to TopoJSON format. We make use of a couple different map scales: a simplified, larger scale for animation and a more detailed, smaller scale for static display. After installing GDAL and TopoJSON (see here), the following commands build these files:
curl "http://www.nacis.org/naturalearth/50m/physical/ne_50m_coastline.zip" -o ne_50m_coastline.zip
curl "http://www.nacis.org/naturalearth/50m/physical/ne_50m_lakes.zip" -o ne_50m_lakes.zip
curl "http://www.nacis.org/naturalearth/110m/physical/ne_110m_coastline.zip" -o ne_110m_coastline.zip
curl "http://www.nacis.org/naturalearth/110m/physical/ne_110m_lakes.zip" -o ne_110m_lakes.zip
unzip -o ne_\*.zip
ogr2ogr -f GeoJSON coastline_50m.json ne_50m_coastline.shp
ogr2ogr -f GeoJSON coastline_110m.json ne_110m_coastline.shp
ogr2ogr -f GeoJSON -where "scalerank < 4" lakes_50m.json ne_50m_lakes.shp
ogr2ogr -f GeoJSON -where "scalerank < 2 AND admin='admin-0'" lakes_110m.json ne_110m_lakes.shp
ogr2ogr -f GeoJSON -simplify 1 coastline_tiny.json ne_110m_coastline.shp
ogr2ogr -f GeoJSON -simplify 1 -where "scalerank < 2 AND admin='admin-0'" lakes_tiny.json ne_110m_lakes.shp
topojson -o earth-topo.json coastline_50m.json coastline_110m.json lakes_50m.json lakes_110m.json
topojson -o earth-topo-mobile.json coastline_110m.json coastline_tiny.json lakes_110m.json lakes_tiny.json
cp earth-topo*.json <earth-git-repository>/public/data/
Weather data is produced by the Global Forecast System (GFS), operated by the US National Weather Service. Forecasts are produced four times daily and made available for download from NOMADS. The files are in GRIB2 format and contain over 300 records. We need only a few of these records to visualize wind data at a particular isobar. The following commands download the 1000 hPa wind vectors and convert them to JSON format using the grib2json utility:
YYYYMMDD=<a date, for example: 20140101>
curl "http://nomads.ncep.noaa.gov/cgi-bin/filter_gfs.pl?file=gfs.t00z.pgrb2.1p00.f000&lev_10_m_above_ground=on&var_UGRD=on&var_VGRD=on&dir=%2Fgfs.${YYYYMMDD}00" -o gfs.t00z.pgrb2.1p00.f000
grib2json -d -n -o current-wind-surface-level-gfs-1.0.json gfs.t00z.pgrb2.1p00.f000
cp current-wind-surface-level-gfs-1.0.json <earth-git-repository>/public/data/weather/current
This project uses M+ FONTS. To reduce download size, a subset font is
constructed out of the unique characters utilized by the site. See the earth/server/font/findChars.js
script
for details. Font subsetting is performed by the M+Web FONTS Subsetter, and
the resulting font is placed in earth/public/styles
.
Mono Social Icons Font is used for scalable, social networking icons. This can be subsetted using Font Squirrel's WebFont Generator.
Building this project required solutions to some interesting problems. Here are a few:
The awesome hint.fm wind map and D3.js visualization library provided the main inspiration for this project.