: Public <<FeatureType>> Class
Created: 2/05/2012 11:47:09 AM
Modified: 22/06/2015 1:22:06 AM
Project:
Advanced:
An Aerodrome Forecast (TAF) report is a routine aerodrome forecast intended for distribution beyond an aerodrome.  TAF reports report base forecast conditions, and modifications to those conditions throughout the valid period.<br /></p><p><br /></p><p>TAF reports include similar information to a METAR/SPECI trend forecast. However, TAF forecast information includes additional detail.<br /></p><p><br /></p><p>Aerodromes can issue both METAR/SPECI and TAF reports on a routine basis, but TAFs are not issued by every METAR-reporting aerodrome.<br /></p><p><br /></p><p>The issuance of a new forecast by a meteorological office, such as a TAF, cancels any forecast of the same type previously issued for the same place and for the same period of validity or part thereof.<br /></p><p><br /></p><p>Prevailing conditions and forecast changes differ in that the prevailing conditions can include temperatures, base conditions do not include a change indicator, and that forecast changes may report no significant weather (NSW). Rather than have two class hierarchies, constraints are present ensuring that each (base and forecast conditions) only include relevant information<br /></p>
Attribute
Public TAFReportStatus
  status
Details:
sequenceNumber=1
xsdAsAttribute=true
Notes: The status of this report, including amended, cancelled, normal, or corrected.  #lt;br /#gt;#lt;/p#gt;#lt;p#gt;#lt;br /#gt;#lt;/p#gt;#lt;p#gt;Missing reports indicate that a report was not issued from the responsible reporting party as expected.  Missing reports are typically issued by third parties that were expecting a report.#lt;br /#gt;#lt;/p#gt;
Public TM_Instant
  issueTime
Details:
sequenceNumber=2
Notes: The time at which this report was issued.  Note that this should be identical to the resultTime of each MeteorologicalAerodromeForecast, whose results are made available at the same time as this report.  TAF reports have an issueTime to assist in discovery and to provide unambiguous semantics at the report level.
Public TM_Period
  validTime
Details:
sequenceNumber=3
Notes: The time frame at which this report is valid.  All forecast elements should be valid within this period
Public MeteorologicalAerodromeForecast
  baseForecast
Details:
sequenceNumber=4
Notes: The prevailing conditions.  Mandatory in all cases except missing or cancelled reports
Public MeteorologicalAerodromeForecast
  changeForecast
Details:
sequenceNumber=5
Notes: Forecast that modifies the base forecast.  While there is no maximum number of forecasts, this should normally not exceed five in number.#lt;br /#gt;#lt;/p#gt;#lt;p#gt;#lt;b#gt;#lt;u#gt;#lt;br /#gt;#lt;/p#gt;#lt;p#gt;#lt;/u#gt;#lt;/b#gt;ICAO Annex 3 / WMO No. 49-2:#lt;br /#gt;#lt;/p#gt;#lt;p#gt;Section 1.5: "The number of change and probability groups should be kept to a minimum and should not normally exceed five groups".#lt;br /#gt;#lt;/p#gt;
Public Aerodrome
  previousReportAerodrome
Details:
sequenceNumber=6
Notes: The aerodrome of the previously-issued report being amended or cancelled
Public TM_Period
  previousReportValidPeriod
Details:
sequenceNumber=7
Notes: The valid time period for the previously amended and/or cancelled report
Tag Value
byValuePropertyType false
Details:
Values: false
Default: false
Description: Create a property type that requires that the instance is encoded inline (applies to ISO 19136:2007 encoding rule). Always set to false in INSPIRE.
isCollection false
Details:
Values: true | false
Default: false
Description: Identifies the feature type as a feature collection.
noPropertyType false
Details:
Values: false
Default: false
Description: Surpress creation of a standard property type that supports inline or by-reference encoding (applies to ISO 19136:2007 encoding rule). Always set to false in INSPIRE.
Constraint Type Status
forAll( self.forecastConditions.temperature == null ) Invariant Approved
Details:
Forecast conditions cannot include temperature information.  They are otherwise identical to the prevailing conditions
if( status == NORMAL ) previousReportValidPeriod == null Invariant Approved
Details:
previousReportValidPeriod must be null unless this cancels, corrects or amends a previous report
if( status == AMENDED ) previousReportValidPeriod != null Invariant Approved
Details:
An amended report must also include the valid time of the amended report
if( status == CANCELLED ) previousReportValidPeriod != null Invariant Approved
Details:
A cancelled report must also include the valid time of the cancelled report
if( status == CORRECTION ) previousReportValidPeriod != null Invariant Approved
Details:
A corrected report must reference
self.changeForecasts.forAll( self.baseForecast.resultTime == self.resultTime ) Invariant Approved
Details:
resultTime for the baseForecast and the changeForecasts must match
self.issueTime == baseForecast.resultTIme Invariant Approved
Details:
TAF issue time must match the baseForecast resultTime
self.baseForecast.changeIndicator == null Invariant Approved
Details:
Base conditions may not have a change indicator
if( status == MISSING ) baseForecast.result includes nilReason AND validTime == NULL AND previousReportValidPeriod == NULL AND changeForecast == NULL Invariant Approved
Details:
Missing TAF reports only include aerodrome information and issue time information
let exclTerm : Set(String) = Set{'FROM', 'BECOMING'} in self.changeForecast->asSequence()->forAll(cf | self.changeForecast->asSequence()->indexOf(cf) > 1 implies cf.changeIndicator.substring(1, 11) = 'PROBABILITY' implies exclTerm->exclude Invariant Approved
Details:
PROB30/PROB40 never follows a FROM or BECOMING group
if(status != MISSING) validTime != NULL Invariant Approved
Details: