Skip to content
free & open source, "mobile first" weather radar + lightning visualisation for Central Europe.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Added onboarding screen library May 8, 2019
android Merge pull request #153 from v4lli/vandroid May 14, 2019
backend Merge branch 'master' of github.com:v4lli/meteocool May 12, 2019
doc Update technical documentation Apr 20, 2019
frontend
ios ios: always prompt for push permission when granting always permissions May 10, 2019
tileserver-gl-meteocool @ f4d7a10 Use new tileserver version May 4, 2019
tileserver add production tileserver config Aug 17, 2018
.dockerignore
.editorconfig frontend: uniform HTML indention Oct 27, 2018
.gitignore
.gitlab-ci.yml
.gitmodules
LICENSE
Makefile
README.md Update README.md May 11, 2019
docker-compose-dev.yml
docker-compose.yml faster docker-compose restarts May 4, 2019

README.md

meteocool

meteocool is a free GIS visualisation & aggregation platform with focus on thunderstorms. Optimized for mobile devices, you can use it to both chase or avoid upcoming weather - that's up to you.

An exemplary cloud formation with high reflectivity (aka thunderstorm)

meteocool currently uses radar data provided by DWD and realtime lightning information from the awesome blitzortung.org project.

Download on Apple Appstore Download on Google Play Store

Features

iOS Notifications

  • Automatic Map Updates: the biggest inconvenience with most weather radar visualisations is out-of-date data. Meteocool notifies its clients as soon as new radar data becomes available and the client tries to be transparent about the dataset age. Say goodbye to hammering F5!
  • Live Lightning Strikes: new lightning strikes are displayed instantly, giving you an even better feeling for the cloud formation's intensity, trajectory and speed.
  • Push Notifications: get notified about incoming rain up to 60 minutes in advance. Works in any modern browser and on iOS.
  • Dark Mode: great for HUD-like displays and general night time usage.
  • Progressive Web App: responsive, connectivity independent and app-like. Add a shortcut to your iOS or Android Home Screen to use meteocool in "app mode".
  • iOS & Android Apps: native iOS and Android apps provide battery-efficient background location services to allow for accurate rain notifications without user interaction.

Screenshot 2019-05-11 13 33 19

Development

UML Component Diagram

Use docker-compose (see below) for the backend. Run make dev to run the development build (the first one might take a while).

Use make dev devrestart to build and also start all containers on your local system. After that, go to https://127.0.0.1:8040 to access your development system.

  • Production build: make prod
  • Use feature branches!
  • docker-compose MUST be executed in the root-directory of the repository! Otherwise bind mounts for config files will not work and no error will be reported.
  • When the color mapping for dbZ-values (pixels) is changed, the legend needs to be regenerated. Because this happens very rarely, the script for that isn't dockerized. Use make legend inside backend/dwd/ to regenerate the legend PNG.
  • The database is initialized when the first entry is generated. Sadly this causes the push backend to hang until backend/app provides a first entry. As a work around, create a notification request via the web UI after the first startup. The databse is persistently kept on a docker volume.

Backend

Makefile targets in backend/dwd/:

  • make mbtiles: create PNG + tiles in tmp/
  • make update: fetch current radar date from DWD
  • make update mbtiles: both operations together

Frontend

For frontend development, use yarn && yarn start inside the frontend/ directory. This will compile the src/index.js application and start a development webserver on localhost. Note that for a complete local development setup you also need the other containers.

Install

docker-compose

install docker-compose and use make dev. For development purposes, use the docker-compose-dev.yml file.

Release builds can be built using make prod or manually:

  • docker-compose build
  • docker-compose up (debug)
  • docker-compose up -d (background)
You can’t perform that action at this time.