XPLMWeather API

This provides access to the X-Plane 12 enhanced weather system.

WEATHER ACCESS

XPLMWeatherInfoWinds_t

typedef struct {
     // Altitude MSL, meters
     float                     alt_msl;
     // Wind speed, meters/sec
     float                     speed;
     // Direction (true)
     float                     direction;
     // Gust speed, meters/sec
     float                     gust_speed;
     // Shear arc, degrees i.e. 50% of this arc in either direction from base
     float                     shear;
     // Clear-air turbulence ratio
     float                     turbulence;
} XPLMWeatherInfoWinds_t;

XPLMWeatherInfoClouds_t

typedef struct {
     // Cloud type, float enum
     float                     cloud_type;
     // Coverage ratio
     float                     coverage;
     // Altitude MSL, meters
     float                     alt_top;
     // Altitude MSL, meters
     float                     alt_base;
} XPLMWeatherInfoClouds_t;

XPLMWeatherInfo_t

Basic weather conditions at a specific point.

typedef struct {
     // The size of the struct.
     int                       structSize;
     // Temperature at the given altitude in Celsius
     float                     temperature_alt;
     // Dewpoint at the given altitude in Celsius
     float                     dewpoint_alt;
     // Pressure at the given altitude in Pascals
     float                     pressure_alt;
     // Precipitation rate at the given altitude
     float                     precip_rate_alt;
     // Wind direction at the given altitude
     float                     wind_dir_alt;
     // Wind speed at the given altitude, meters/sec
     float                     wind_spd_alt;
     // Turbulence ratio at the given altitude
     float                     turbulence_alt;
     // Height of water waves in meters
     float                     wave_height;
     // Length of water waves in meters
     float                     wave_length;
     // Direction from which water waves are coming
     int                       wave_dir;
     // Speed of wave advance in meters/sec
     float                     wave_speed;
     // Base visibility at 0 altitude, meters
     float                     visibility;
     // Base precipitation ratio at 0 altitude
     float                     precip_rate;
     // Climb rate due to thermals, meters/sec
     float                     thermal_climb;
     // Pressure at 0 altitude in Pascals
     float                     pressure_sl;
     // Defined wind layers. Not all layers are always defined.
     XPLMWeatherInfoWinds_t    wind_layers[13];
     // Defined cloud layers. Not all layers are always defined.
     XPLMWeatherInfoClouds_t   cloud_layers[3];
} XPLMWeatherInfo_t;

XPLMGetMETARForAirport

XPLM_API void       XPLMGetMETARForAirport(
                         const char *         airport_id,
                         XPLMFixedString150_t * outMETAR);

Get the last-downloaded METAR report for an airport by ICAO code. Note that the actual weather at that airport may have evolved significantly since the last downloaded METAR. outMETAR must point to a char buffer of at least 150 characters. This call is not intended to be used per-frame. This call does not return the current weather at the airport, and returns an empty string if the system is not in real-weather mode.

XPLMGetWeatherAtLocation

XPLM_API int        XPLMGetWeatherAtLocation(
                         double               latitude,
                         double               longitude,
                         double               altitude_m,
                         XPLMWeatherInfo_t *  out_info);

Get the current weather conditions at a given location. Note that this does not work world-wide, only within the surrounding region. Return 1 if detailed weather (i.e. an airport-specific METAR) was found, 0 if not. In both cases, the structure will contain the best data available. This call is not intended to be used per-frame.