SCHEMA Umfeldmessstelle;

REFERENCE FROM Strassennetz (oertliche_Zuordnung);

REFERENCE FROM Administration (verwaltungstechn_Zuordnung);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (Zentimeter, Lux, Meter, Millimeter, Millimeter_pro_Stunde, Meter_pro_Sekunde, Grad, Grad_Celsius, Prozent, Hektopascal, Datum);

ENTITY Umfeldmessstelle
ABSTRACT SUPERTYPE OF (ONEOF(VBA_Wetterstation , SWIS_GMA_Messstelle ))
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Nummer: INTEGER;
    Messeinricht_Schadstoffimmiss: OPTIONAL SET [1: ?] OF STRING(99);
--- Relationen :
    hat_verwaltungstechn_Zuordnung: verwaltungstechn_Zuordnung_UM;
    hat_oertliche_Zuordnung: oertliche_Zuordnung_UM;
    hat_Messdaten: SET [1: ?] OF Messdaten;
    hat_Erfassungsmodalitaeten: Erfassungsmodalitaeten;
    hat_Detektoren_Umfelddatenerfg: SET [1: ?] OF Detektoren_Umfelddatenerfassg;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY VBA_Wetterstation
SUBTYPE OF (Umfeldmessstelle);
--- Attribute :
    Nutzungsart: OPTIONAL STRING(50);
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY SWIS_GMA_Messstelle
SUBTYPE OF (Umfeldmessstelle);
--- Attribute :
    Nutzungsart: OPTIONAL STRING(30);
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Messdaten;
--- Attribute :
--- Relationen :
    hat_Umfang_Umfelddaten: OPTIONAL SET [1: ?] OF Umfang_Umfelddaten;
    hat_Zaehlintervalllaenge: OPTIONAL SET [1: ?] OF Zaehlintervalllaenge;
INVERSE
    von_Umfeldmessstelle: SET [0: ?] OF Umfeldmessstelle FOR hat_Messdaten;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Erfassungsmodalitaeten;
--- Attribute :
--- Relationen :
    hat_Erfassungsbereich: Erfassungsbereich;
    hat_Zaehlzeitraum: Zaehlzeitraum;
INVERSE
    von_Umfeldmessstelle: SET [0: ?] OF Umfeldmessstelle FOR hat_Erfassungsmodalitaeten;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Lage_der_Sensoren;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'in der Fahrbahn')
   (2,'neben der Fahrbahn')
   (3,'in und neben der Fahrbahn')
   (4,'außerhalb des Straßenbereichs')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Erfassungsbereich;
--- Attribute :
    von_Netzknoten: INTEGER;
    nach_Netzknoten: INTEGER;
    Lage_der_Sensoren: Lage_der_Sensoren;
--- Relationen :
INVERSE
    von_Erfassungsmodalitaeten: SET [0: ?] OF Erfassungsmodalitaeten FOR hat_Erfassungsbereich;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Zaehlzeitraum;
--- Attribute :
    Beginn_Erfassung: Datum;
    Ende_Erfassung: OPTIONAL Datum;
--- Relationen :
INVERSE
    von_Erfassungsmodalitaeten: SET [0: ?] OF Erfassungsmodalitaeten FOR hat_Zaehlzeitraum;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Detektoren_Umfelddatenerfassg;
--- Attribute :
    zugehoerige_EAKs: SET [1: ?] OF STRING(99);
    Einsatzzeit: SET [1: ?] OF STRING(50);
    Betriebszeit: SET [1: ?] OF STRING(50);
--- Relationen :
INVERSE
    von_Umfeldmessstelle: SET [0: ?] OF Umfeldmessstelle FOR hat_Detektoren_Umfelddatenerfg;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Umfang_Umfelddaten;
--- Attribute :
    erfasste_Daten: SET [1: ?] OF INTEGER;
    Ermittlung_Schadstoffimmiss: OPTIONAL SET [1: ?] OF STRING(99);
--- Relationen :
    hat_Witterungsdaten: SET [1: 8] OF Witterungsdaten;
    hat_Umfelddaten: OPTIONAL SET [1: 2] OF Umfelddaten;
    hat_witterungsbed_Strassenzust: SET [1: 10] OF witterungsbed_Strassenzustand;
INVERSE
    von_Messdaten: SET [0: ?] OF Messdaten FOR hat_Umfang_Umfelddaten;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Witterungsdaten;
--- Attribute :
    Luftdruck: OPTIONAL Hektopascal;
    relative_Luftfeuchte: OPTIONAL Prozent;
    Lufttemperatur: OPTIONAL Grad_Celsius;
    Windrichtung: OPTIONAL Grad;
    mittlere_Windgeschwindigkeit: OPTIONAL Meter_pro_Sekunde;
    Spitzenwindgeschwindigkeit: OPTIONAL Meter_pro_Sekunde;
    Niederschlagsart: OPTIONAL INTEGER;
    Niederschlagsintensitaet: OPTIONAL Millimeter_pro_Stunde;
    Niederschlagsmenge: OPTIONAL Millimeter;
--- Relationen :
INVERSE
    von_Umfang_Umfelddaten: SET [0: ?] OF Umfang_Umfelddaten FOR hat_Witterungsdaten;
WHERE
    Niederschlagsintensit_sinnvoll: Niederschlagsintensitaet<=200;
    Spitzenwindgeschwind_sinnvoll: Spitzenwindgeschwindigkeit<=60;
    mittlere_Windgeschw_sinnvoll: mittlere_Windgeschwindigkeit<=60;
    Lufttemperatur_sinnvoll: { -30<=Lufttemperatur<=60};
    relative_Luftfeuchte_sinnvoll: { 10<=relative_Luftfeuchte<=100};
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Umfelddaten;
--- Attribute :
    Sichtweite: OPTIONAL Meter;
    Helligkeit: OPTIONAL Lux;
--- Relationen :
INVERSE
    von_Umfang_Umfelddaten: SET [0: ?] OF Umfang_Umfelddaten FOR hat_Umfelddaten;
WHERE
    Helligkeit_sinnvoll: { 0<=Helligkeit<=60000};
    Sichtweite_sinnvoll: { 10<=Sichtweite<=1000};
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY witterungsbed_Strassenzustand;
--- Attribute :
    Zustand_Fahrbahnoberflaeche: OPTIONAL INTEGER;
    Wasserfilmdicke: OPTIONAL Millimeter;
    Fahrbahnoberflaechentemperatur: OPTIONAL Grad_Celsius;
    Taupunkttemperatur: OPTIONAL Grad_Celsius;
    Gefrierpunkttemperatur: OPTIONAL Grad_Celsius;
    Restsalzgehalt: OPTIONAL Prozent;
    Schneehoehe: OPTIONAL Zentimeter;
    Bodentemperatur_in_Tiefe_1: OPTIONAL Grad_Celsius;
    Bodentemperatur_in_Tiefe_2: OPTIONAL Grad_Celsius;
    Bodentemperatur_in_Tiefe_3: OPTIONAL Grad_Celsius;
--- Relationen :
INVERSE
    von_Umfang_Umfelddaten: SET [0: ?] OF Umfang_Umfelddaten FOR hat_witterungsbed_Strassenzust;
WHERE
    Bodentemp_in_Tiefe_3_sinnvoll: { -30<=Bodentemperatur_in_Tiefe_3<=80};
    Bodentemp_in_Tiefe_2_sinnvoll: { -30<=Bodentemperatur_in_Tiefe_2<=80};
    Bodentemp_in_Tiefe_1_sinnvoll: { -30<=Bodentemperatur_in_Tiefe_1<=80};
    Schneehoehe_sinnvoll: { 0<=Schneehoehe<=200};
    Restsalzgehalt_sinnvoll: { 0<=Restsalzgehalt<=100};
    Gefrierpunkttemp_sinnvoll: { -30<=Gefrie rpunkttemperatur<=0};
    Taupunkttemperatur_sinnvoll: { -30<=Taupunkttemperatur<=60};
    Fahrbahnoberfltemp_sinnvoll: { -30<=Fahrbahnoberflaechentemperatur<=80};
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY verwaltungstechn_Zuordnung_UM
SUBTYPE OF (verwaltungstechn_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
    von_Umfeldmessstelle: SET [0: ?] OF Umfeldmessstelle FOR hat_verwaltungstechn_Zuordnung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY oertliche_Zuordnung_UM
SUBTYPE OF (oertliche_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
    von_Umfeldmessstelle: SET [0: ?] OF Umfeldmessstelle FOR hat_oertliche_Zuordnung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION <<

ENTITY Zaehlintervalllaenge;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'60 min')
   (2,'30 min')
   (3,'15 min')
   (4,'1 min')
   (5,'5 min')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION <<

END_SCHEMA; -- Umfeldmessstelle