24-timmarsseglingarna / dry24

Tactical simulator for the 24 hours yachting rally (24-timmarsseglingarna)
0 stars 1 forks source link

Bättre väder #36

Open carlmod opened 9 years ago

carlmod commented 9 years ago

Just nu är vädret detsamma oavsett var man är. Den enda faktorn som styr vindrikting och styrka är tid efter start. Det är suboptimalt eftersom det inte lär ut att undvika Dalarö och andra ställem med notoriskt lite vind.

En bättre ansats är att använda grib-filer från smhi. Diverse modelldata med olika uplösningar beroende på hur gammal datan är finns att ladda ner. Mer info på http://opendata-download-grid-archive.smhi.se/explore/?modeltype=5.

Riktigt var i koden som data skall hämtas från gribfilerna är lite oklart. Spontant tänker jag nu att det är hos crew klassen. Anledningen är att logiken för att beräkna hastighet är där, samt att en crew i vilket fall som helst måste veta var de är och när de är vid varje givet tillfälle.

carlmod commented 9 years ago

Efter att ha tittat lite mer så verkar det finnas tre olika data som är relevanta.

Rådatan från gribfilerna är förhållandevis stor, men det är lätt att filtrera bort stora delar av datan innan den överförs till webservern. Min idé är att försöka implementera Mesanvädret och sedan linjärinterpolera mellan tid och gridpunkter.

En sidlängd på 11 km betyder i Stockholms skärgård att det på de flesta ställena kommer att finnas en punkt över land, en eller över skärgård och sedan havspunkter.

brstp commented 9 years ago

Låter vettigt.

Har du någon idé om hur datat ska filtreras? Rake-skript (på skrivbordsdator eller i Heroku)?

carlmod commented 9 years ago

Det beror lite på. Vilken databas postgesdatabas är det på Heroku, den gratis med 10k rader eller den med 10M rader? Jag antar nästan 10M, eftersom inte distanstabellen får plats på 10k rader (1k punkter och 10k sträckor)

Om vi har 10M punkter så skulle jag (i alla fall initialt) föreslå att stoppa in vädret i databasen. Filtreringen gör man i så fall på skrivbordsdator med grib-api (https://software.ecmwf.int/wiki/display/GRIB/Home) via rake.

Alternativet är annars att se till att gribfilerna finns accessbara från Heroku, men det verkar som att rubybiblioteken för grib filer mest är wrappers runt grib-api, som är ett c-bibliotek. För att få upp det på Heroku så behöver man bygga ett "custom buildpack" https://devcenter.heroku.com/articles/buildpacks. Det torde inte vara något större problem att göra det, men jag skulle föredra att ha ett fungerande väder system innan man gör det.

brstp commented 9 years ago

Japp. Databasen är Postgres:Hobby:Basic med max 10M rader. Just nu ca 12k använda.

Håller med om att först ha ett fungerande väder, sedan förbättra och göra flexiblare import.