Giter Site home page Giter Site logo

dr-altimeter's Introduction

DR-Altimeter

logo

Altitude 'Dead Reckoning' for Casio Triple Sensor v.3

DR-Altimeter predicts how much the indicated altitude will deviate due to changing weather in the vicinity of a Wunderground.com station. By subtracting the predicted altitude change, to remove its influence, one can greatly improve the accuracy of the Casio Pro Trek wristwatch altimeter. Depending on the accuracy of the weather forecast, the indicated altitude can follow true altitude well within a ± 5 meters error margin.

Some features

  • Fully configurable with an .ini file
  • Predictions both produced in graphical and text format
  • Adaptive multilingual interface. English [en] and français [fr], so far
  • Text results can be automatically posted to a Slack chat room, therefore to a smartphone
  • Command line options, useful notably to create shortcuts and scheduled tasks (Windows equivalent of a cron job)
  • Graphical User Interface (GUI) with zoom and pan functions, to export portions of the graph that interests you specifically
Figure 1: Graphical output

graphical output

Measuring altitudes based on changes in atmospheric pressure

The altimeter determines the altitude at your current location based on accumulated atmospheric pressure changes measured by the pressure sensor. Setting the altimeter at a location where you know the precise altitude before starting your ascent enables it to take even more precise altitude measurements.

Sea level measurement

Setting the altimeter at a location where you know the precise altitude enables you to determine the elevation of your current position with respect to sea level. If you come across a marker indicating 400 meters above sea level while hiking or climbing, for example, simply set the altimeter at 400 meters. This enables you to obtain more accurate readings with respect to sea.

Vertical Dead Reckoning

Dead Reckoning is the process of calculating one's current position by using a previously determined position, or fix, and advancing that position based upon known or estimated speeds over elapsed time and course.

Altitude dead reckoning uses the same principle as dead reckoning but applies it to the vertical plane. Whilst standing still at a fixed altitude, you'll notice that the altimeter perceives atmospheric pressure variations due to weather changes as altitude changes as if you climbed or descended. DR Altimeter displays in brackets [] the expected contribution of weather changes to the indicated altitude.

Example of use

Figure 2: Text output
  H      PRESSURE       ALT     ALT/hr                                         
===============================================================================
13h05   1019.98 hPa                      13h12[fix], 13h29[1], 13h56[2]        
-------------------------------------------------------------------------------
 14h    1019.80 hPa      1.5m     1.5m   14h20[3], 14h43[4]                    
-------------------------------------------------------------------------------
 15h    1019.50 hPa      4.0m     2.5m   15h07[5], 15h33[6]                    
-------------------------------------------------------------------------------
 16h    1019.20 hPa      6.5m     2.5m   16h05[7]                              
-------------------------------------------------------------------------------
 17h    1019.00 hPa      8.1m     1.7m   17h04[8], 17h35[7]                    
-------------------------------------------------------------------------------
 18h    1019.10 hPa      7.3m    -0.8m   18h34[6]                              
-------------------------------------------------------------------------------
 19h    1019.40 hPa      4.8m    -2.5m   19h05[5], 19h30[4], 19h52[3]          
-------------------------------------------------------------------------------
 20h    1019.61 hPa      3.1m    -1.7m   20h14[2], 20h35[1], 20h57[0]          
-------------------------------------------------------------------------------
 21h    1019.87 hPa      0.9m    -2.2m   21h21[-1], 21h52[-2]                  
-------------------------------------------------------------------------------
 22h    1020.20 hPa     -1.8m    -2.7m                                                                           
Simple Example

At 13h12, you determine that you are at a known altitude of 450 meters above mean sea level. This is your reference or initial [fix].

  13h12[fix] = 450m ASL 

Later, at 13h56, your watch indicates an altitude of 476 meters. And since, between 13h12 and 13h56, the expected contribution of weather is 2 meters (see Figure 2), you can estimate your true altitude to be 476 - 2 = 474 meters above sea level.

  13h56[I] = 476m, indicated
  13h56[DR] = 476m - 13h12[2] = 474m ASL, compensated for forecasted weather
More Advanced Example

On the same trek (see above), at 19h52, you reach a point of known altitude (523m ASL). You recalibrate your watch to match this known altitude. Here and on after, this new [fix] becomes your new reference.

  19h52[fix @ 3] = 523m ASL

Later that evening, at 20h22, your watch indicates an altitude of 478 meters. Since your last fix was taken at the [3] compensation level (19h52[3]) and you are current at the [2] compensation level (20h22 ≈ 20h14[2]), your deduced altitude is 478 + @[3] - [2] = 479 meters.

  20h22[I] = 478m, indicated
  20h22[DR] = (478m + @ 19h52[3]) - 20h14[2]
            = 481 - 2
            = 479m ASL, compensated for forecasted weather 

Installation

See INSTALL.md

Configuration

See CONFIG.md

Command Line Options

See COMMAND.md

Author

License

This project is licensed under the MIT License - see the LICENSE.md file for details

dr-altimeter's People

Contributors

wlodarski avatar

Watchers

 avatar  avatar

dr-altimeter's Issues

Wunderground skips an hour at the hour

Another bug related to #4 and #6 Wunderground, at the hour, skips the hourly prediction, making DR-Altimeter confused and outputting the wrong text table.

Wrong output :

===============================================================================
6h55    1010.84 hPa                      6h05[7], 6h11[6], 6h17[5], 6h24[4],   
                                         6h30[3], 6h37[2], 6h44[1], 6h51[0],   
                                         6h58[-1]                              
-------------------------------------------------------------------------------
 7h     1011.80 hPa     -8.0m    -8.0m   7h03[fix], 7h05[-2], 7h13[-3],      
                                         7h21[-4], 7h30[-5], 7h38[-6],         
                                         7h47[-7], 7h57[-8]                    
-------------------------------------------------------------------------------
 8h     1012.40 hPa    -13.0m    -5.0m   8h07[-9], 8h18[-10], 8h29[-11],       
                                         8h41[-12], 8h54[-13]                  
-------------------------------------------------------------------------------

It should be :

===============================================================================
6h55    1010.84 hPa                      6h05[7], 6h11[6], 6h17[5], 6h24[4],   
                                         6h30[3], 6h37[2], 6h44[1], 6h51[0],   
                                         6h58[-1]                              
-------------------------------------------------------------------------------
 7h                                      7h03[fix], 7h05[-2], 7h13[-3],      
                                         7h21[-4], 7h30[-5], 7h38[-6],         
                                         7h47[-7], 7h57[-8]                    
-------------------------------------------------------------------------------
 8h     1011.80 hPa     -8.0m    -8.0m   8h07[-9], 8h18[-10], 8h29[-11],       
                                         8h41[-12], 8h54[-13]                  
-------------------------------------------------------------------------------

First solution that comes in mind is to keep constantly in mind that index is not always synonymous with dhour.

Wrong observation time

In the last hour of the day, between 23h and midnight, the current atmospheric pressure at the weather station coming from Wunderground is recorded as if the observation time is the next day, possibly because Wunderground shows the next day predictions even though the day isn't finished yet.

Smooth Piecewise Polynomial Regression (SPPR)

The curve is partitioned into intervals and a separate polynomial is fit to each interval. The constraints of the optimization are twofold:

  1. Two adjacent polynomial regressions should have the same value at the boundary (the function must be continuous)
  2. Two adjacent polynomial regressions should have the same slope at the boundary (the derivative must be continuous)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.