Program Listing for File osi_environment.proto¶
↰ Return to documentation for file (osi-documentation/osi-validation/open-simulation-interface/osi_environment.proto)
syntax = "proto2";
option optimize_for = SPEED;
package osi3;
//
// \brief The conditions of the environment.
//
// Definition of light, weather conditions and other environmental conditions.
//
// \note These conditions apply locally around the host vehicle.
//
message EnvironmentalConditions
{
// The ambient illumination of the environment.
//
optional AmbientIllumination ambient_illumination = 1;
// The time of day at the host vehicles location.
//
optional TimeOfDay time_of_day = 2;
// The Unix epoch (or Unix time or POSIX time or Unix timestamp) is
// the number of seconds that have elapsed since January 1, 1970
// (midnight UTC/GMT), not counting leap seconds
// (in ISO 8601: 1970-01-01T00:00:00Z). Literally speaking the epoch
// is Unix time 0 (midnight 1/1/1970), but 'epoch' is often used as
// a synonym for 'Unix time'. Many Unix systems store epoch dates as
// a signed 32-bit integer, which might cause problems on January 19,
// 2038 (known as the Year 2038 problem or Y2038).
//
// \note You can convert the timestamp using the following [routines
// sorted by languages](https://www.epochconverter.com/#code)
//
// \par References:
// - [1] [Epoch & Unix Timestamp Conversion Tools](https://www.epochconverter.com/)
// - [2] [Wikipedia: Coordinated Universal Time] (https://en.wikipedia.org/wiki/Coordinated_Universal_Time)
//
optional int64 unix_timestamp = 8;
// Atmospheric pressure in Pascal at z=0.0 in world frame (about 101325
// [Pa]).
//
// Unit: [Pa]
//
optional double atmospheric_pressure = 3;
// Temperature in Kelvin at z=0.0 in world frame.
//
// Unit: [K]
//
optional double temperature = 4;
// Relative humidity in at z=0.0 in world frame.
//
// Note that physically more relevant measures, like absolute or specific
// humidity can be easily derived from relative_humidity, given that the
// temperature and atmospheric_pressure are known.
//
// Unit: [%]
optional double relative_humidity = 5;
// Description of the precipitation.
//
optional Precipitation precipitation = 6;
// Description of the fog.
//
optional Fog fog = 7;
// Definition of discretized precipitation states according to [1].
// (I = Intensity of precipitation in mm per hour [mm/h])
//
// \par References:
// - [1] PAULAT, Marcus, et al. A gridded dataset of hourly precipitation
// in Germany: Its construction, climatology and application.
// Meteorologische Zeitschrift, 2008, 17. Jg. Nr. 6, S. 719-732.
//
enum Precipitation
{
// Intensity of precipitation is unknown (must not be used in ground
// truth).
//
PRECIPITATION_UNKNOWN = 0;
// Other (unspecified but known) intensity of precipitation.
//
PRECIPITATION_OTHER = 1;
// No precipitation, when I in [0,0.1[ [mm/h]
//
PRECIPITATION_NONE = 2;
// Very light intensity of precipitation, when I in [0.1,0.5[ [mm/h]
//
PRECIPITATION_VERY_LIGHT = 3;
// Light intensity of precipitation, when I in [0.5,1.9[ [mm/h]
//
PRECIPITATION_LIGHT = 4;
// Moderate intensity of precipitation, when I in [1.9,8.1[ [mm/h]
//
PRECIPITATION_MODERATE = 5;
// Heavy intensity of precipitation, when I in [8.1,34[ [mm/h]
//
PRECIPITATION_HEAVY = 6;
// Very heavy intensity of precipitation, when I in [34,149[ [mm/h]
//
PRECIPITATION_VERY_HEAVY = 7;
// Extreme intensity of precipitation, when I in [149,infinity[ [mm/h]
//
PRECIPITATION_EXTREME = 8;
}
// Definition of discretized fog states according to [2].
// The bandwidth of thick and dense fog was adjusted to fit the German StVO
// regarding rear fog lights [3].
// (V = Visibility in meters [m])
//
// Visibility is defined as the length of the atmosphere over which a beam
// of light travels before its luminous flux is reduced to 5% of its
// original value (definition used by the Meteorological Office [4]).
// This is approximately equivalent to visibility measured in terms of the
// contrast of a distant object against its background.
//
// \par References:
// - [2] SHEPARD, Frank D. Reduced visibility due to fog on the highway.
// Transportation Research Board, 1996.
// - [3] [StVO 17 chapter
// 3](https://www.stvo.de/strassenverkehrsordnung/101-17-beleuchtung)
// - [4] [Homepage of the Meteorological
// Office](http://www.metoffice.gov.uk/guide/weather/observations-guide/how-we-measure-visibility)
//
enum Fog
{
// Visibility is unknown (must not be used in ground truth).
//
FOG_UNKNOWN = 0;
// Other (unspecified but known) fog intensity.
//
FOG_OTHER = 1;
// Excellent visibility, when V in [40000,infinity[ [m]
//
FOG_EXCELLENT_VISIBILITY = 2;
// Good visibility, when V in [10000,40000[ [m]
//
FOG_GOOD_VISIBILITY = 3;
// Moderate visibility, when V in [4000,10000[ [m]
//
FOG_MODERATE_VISIBILITY = 4;
// Poor visibility, when V in [2000,4000[ [m]
//
FOG_POOR_VISIBILITY = 5;
// Mist, when V in [1000,2000[ [m]
//
FOG_MIST = 6;
// Fog, when V in [200,1000[ [m]
//
FOG_LIGHT = 7;
// Thick fog, when V in [50,200[ [m]
//
FOG_THICK = 8;
// Dense fog, when V in [0,50[ [m]
// (allowed to use rear fog light according to [3])
//
FOG_DENSE = 9;
}
// Definition of discretized ambient illumination states:
// Ambient light is any light in the vehicle's environment that is not
// emitted by the vehicle itself. It can include sun/moon light, light from
// other cars, street lights etc.
//
// Lux [lx] is the SI unit of luminance or illumination of an area of exact
// one square meter, which is equal to one lumen per square meter 1 [lx] =
// 1 [lm/m^2] [5].
// The lumen [lm] is the SI derived unit of luminous flux and a measure of
// the total quantity of visible light emitted by a source. The lumen is
// defined in relation to the candela [cd] as 1 [lm] =1 [cd sr] where [sr]
// denotes steradian, the unit of solid angle used in 3D geometry analogous
// to the radian.
//
// Categorization is done based on natural day/night time illuminance levels
// [6] and standards for required lighting levels on roads [6, 7, 8, 9].
//
// \par References:
// - [5] [The NIST Reference on Constants, Units, and
// Uncertainty](https://physics.nist.gov/cuu/Units/units.html)
// - [6] [National Optical Astronomy
// Observatory](https://www.noao.edu/education/QLTkit/ACTIVITY_Documents/Safety/LightLevels_outdoor+indoor.pdf)
// - [7] [Standards for required street lighting in the
// USA](http://www.wsdot.wa.gov/research/reports/fullreports/847.1.pdf)
// - [8] [Canadian IES-RP-8 standards for road lighting - municipality of
// Saint-Gedeon-de-.
// Beauce](http://sslnet.ca/wp-content/uploads/2011/10/LTE-RT-2011-0076-Anglais.pdf)
// - [9] [European standards for road
// lighting](http://courtneystrong.com/wp-content/uploads/2017/07/css-sl1-class-and-quality-of-street-lighting.pdf)
//
enum AmbientIllumination
{
// Ambient illumination is unknown (must not be used in ground truth).
//
AMBIENT_ILLUMINATION_UNKNOWN = 0;
// Other (unspecified but known) ambient illumination.
//
AMBIENT_ILLUMINATION_OTHER = 1;
// Level 1 illumination in ]0.001, 0.01[ [lx]
// E.g. Night with no artificial light.
//
// \note Use \c #AMBIENT_ILLUMINATION_LEVEL1 if illumination is less
// than 0.001 [lx]
//
AMBIENT_ILLUMINATION_LEVEL1 = 2;
// Level 2 illumination in [0.01, 1[ [lx]
// E.g. Night full moon / Deep twilight.
//
AMBIENT_ILLUMINATION_LEVEL2 = 3;
// Level 3 illumination in [1, 3[ [lx]
// E.g. Deep to average twilight / Minimum lighting on local low
// pedestrian conflict roads.
//
AMBIENT_ILLUMINATION_LEVEL3 = 4;
// Level 4 illumination in [3, 10[ [lx]
// E.g. Average to full twilight / Minimum lighting on collector roads /
// Minimum lighting on major and expressway roads with low to average
// pedestrian conflict.
//
AMBIENT_ILLUMINATION_LEVEL4 = 5;
// Level 5 illumination in [10, 20[ [lx]
// E.g. Minimum lighting on major and expressway roads with high
// pedestrian conflict.
//
AMBIENT_ILLUMINATION_LEVEL5 = 6;
// Level 6 illumination in [20, 400[ [lx]
// E.g. Roads with more lighting / Very dark overcast day to sunrise or
// sunset on a clear day.
//
AMBIENT_ILLUMINATION_LEVEL6 = 7;
// Level 7 illumination in [400, 1000[ [lx]
// E.g. Sunrise or sunset on a clear day / Overcast day.
//
AMBIENT_ILLUMINATION_LEVEL7 = 8;
// Level 8 illumination in [1000, 10000[ [lx]
// E.g. Average to full daylight.
//
AMBIENT_ILLUMINATION_LEVEL8 = 9;
// Level 9 illumination in [10000, 120000[ [lx]
// E.g. Full daylight to intense sunlight.
//
// \note Use \c #AMBIENT_ILLUMINATION_LEVEL9 if illumination is more
// than 120000 [lx]
//
AMBIENT_ILLUMINATION_LEVEL9 = 10;
}
//
// \brief The time of day at a specified location.
//
// \note In general the global position of the parent frame should be
// obtainable in order to derive the local time.
// This information can be calculated from the \c #unix_timestamp in
// combination with \c #osi3::GroundTruth::proj_string and the position of
// the corresponding \c #osi3::BaseStationary or \c #osi3::BaseMoving .
//
message TimeOfDay
{
// The number of seconds [s] that have passed since midnight local time.
// Used e.g. for determining the current state of the circadian rhythm
// of a driver.
//
// \note No changes of daylight saving time or time zones are
// considered.
//
optional uint32 seconds_since_midnight = 1;
}
}