Wondering what’s next for npm?Check out our public roadmap! »

    mars-insight-weather-node

    0.6.0 • Public • Published

    A simple NodeJS interface to NASA Mars InSight Mission weather API.

    Installation

    Using npm:

    $ npm install --save mars-insight-weather-node
    

    If you don't have or don't want to use npm:

    $ cd ~/.node_modules
    $ git clone git://github.com/gab.lau/mars-insight-weather-node.git
    

    Documentation

    Constructor

    MarsInsightWeather(temperatureUnit, pressureUnit, windSpeedUnit)

    Methods

    request(callback)

    Make the call to the API to take the data, the call is cached and reused for all other methods, there is an hour limit between two API calls to not overload the service. Requires a parameter for a callback function, see examples

    getRawData()

    Returns raw API result without units conversion

    getConvertedRawData()

    Returns raw API result with units conversion

    getSolKeys()

    Returns all sol keys available

    getLatestSolKey()

    Returns latest sol key available

    getSol(sol_key)

    Returns sol by sol_key

    getLatestSol()

    Returns latest sol

    Units of measurement

    Default units: 'C', 'Pa', 'm/s'
    
    Temperature: 'C', 'F', 'K', 'R'
    Pressure: 'Pa', 'hPa', 'kPa', 'MPa', 'bar', 'torr', 'psi', 'ksi'
    Wind speed: 'm/s', 'km/h', 'm/h', 'knot', 'ft/s'
    

    Usage

    Example use:

    var MarsInsightWeather = require('mars-insight-weather-node');
    var marsweather = new MarsInsightWeather();
    
    marsweather.request(function(err, response){
        console.log ("Temperature ", this.getLatestSol().AT);
        console.log ("Pressure ", this.getLatestSol().PRE);
        console.log ("Wind speed ", this.getLatestSol().HWS);
    });

    Example use with different units of measurement:

    var MarsInsightWeather = require('mars-insight-weather-node');
    var marsweather = new MarsInsightWeather('F', 'bar', 'km/h');
    
    marsweather.request(function(err, response){
        console.log ("Temperature ", this.getLatestSol().AT);
        console.log ("Pressure ", this.getLatestSol().PRE);
        console.log ("Wind speed ", this.getLatestSol().HWS);
    });

    Example single sol structure:

      {
        "First_UTC": "2019-02-20T12:36:11Z", 
        "Last_UTC": "2019-02-21T13:15:46Z", 
        "Season": "winter", 
        "AT": { // Air temperature
          "av": -63.807, 
          "ct": 17754, 
          "mn": -95.101, 
          "mx": -13.177
        }, 
        "HWS": { // Wind speed
          "av": 4.138, 
          "ct": 8160, 
          "mn": 0.182, 
          "mx": 10.818
        }, 
        "PRE": { // Pressure
          "av": 720.716, 
          "ct": 177468, 
          "mn": 693.681, 
          "mx": 743.525
        }, 
        "WD": { // wind direction
          "0": {
            "compass_degrees": 0.0, 
            "compass_point": "N", 
            "compass_right": 0.0, 
            "compass_up": 1.0, 
            "ct": 150
          }, 
          "1": {
            "compass_degrees": 22.5, 
            "compass_point": "NNE", 
            "compass_right": 0.382683432365, 
            "compass_up": 0.923879532511, 
            "ct": 65
          }, 
          //...other...
          "most_common": {
            "compass_degrees": 225.0, 
            "compass_point": "SW", 
            "compass_right": -0.707106781187, 
            "compass_up": -0.707106781187, 
            "ct": 2497
          }
        }
      }, 
    

    Running Unit Tests and Code coverage

    Then simply run test this command: npm run test

    For code coverage run this command: npm run coverage


    Credits

    All data provided by: NASA/JPL-Caltech/

    License

    MIT © Gabriele Lauricella

    Install

    npm i mars-insight-weather-node

    DownloadsWeekly Downloads

    60

    Version

    0.6.0

    License

    MIT

    Unpacked Size

    18 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar