Nachtvlinder schreef :
3Noreen: Zou je mij deze data willen sturen? Dan zal ik dit voorbeeld uitwerken.
Ik heb de data van 3Noreen gebruikt om zo'n "piecewise linear fit" te maken. In feite is dit niets meer dan een interpolatietabel. De gemeten bootsnelheid (door het water, BSP) gaat in de X-kolom van deze tabel en de Y-kolom bevat de waarde waarnaar de gemeten BSP wordt omgerekend. In de plotjes hier beneden heb ik die BSP_trans (van getransformeerd) genoemd.
De pilot-plot van 3Noreens sensor ziet er als volgt uit (de rode punten zijn de tabelwaarden, de lijn daartussen is wat je i70, racebox of RPi daaruit zal interpoleren).
De interpolatietabel ziet er hier als volgt uit:
| BSP_in | BSP_trans |
| 0.0 | 0.0 |
| 4.6 | 6.2 |
| 7.2 | 8.6 |
| 10.8 | 14 |
De plot hieronder laat zien hoe de gemeten SOG (hier de referentie) voorspeld zou worden indien de gemeten BSP gecorrigeerd wordt met deze piecewise lineare transformatie.
Je ziet dat je met slechts 3 lijnstukken een heel eind in de goede richting kunt komen.
Het voorbewerken van de data kost de meeste tijd.
3Noreen heeft mij laten weten dat deze data spotmetingen zijn, één sample per 30 s. Eigenlijk mag dat niet. Je hoort de binnenkomende 1s NMEA data traag te filteren, zodat je zeker weet dat zo'n 30s spotmeting de gemiddelde waarde over de afgelopen 30s weergeeft en niet een uitschieter is omdat je boot net van een golf af dondert bv.
Verder dient de data zoveel mogelijk stationair te zijn, constant. Dit omdat een GPS sneller of trager reageert dan het log. Als de boot bv aan het accelereren is kan het zijn dat het log de echte snelheid al meet, terwijl het GPS nog na-ijlt. De 2 datapunten die je dan weg schrijft horen niet bij elkaar.
Om deze beide redenen heb ik 3Noreens data moeten filteren. Wat je overhoudt zijn relatief stationaire gebieden.