wmo-im / iwxxm

XML schema and Schematron for aviation weather data exchange
https://old.wmo.int/wiswiki/tiki-index.php%3Fpage=TT-AvXML
49 stars 22 forks source link

Volcanic Ash Advisory "NO VA EXP" issue #94

Closed mgoberfield closed 6 years ago

mgoberfield commented 6 years ago

From TAC-to-XML Guidance document:

'NO VA EXP' When no volcanic ash is expected it shall be indicated with a nil "ashCloudExtent" and a nil reason of "http://codes.wmo.int/common/nil/nothingOfOperationalSignificance"

results in a validation error.

Aaron writes:

I looked into this and it appears to be a limitation built in to how AIXM defines their AirspaceVolumePropertyType, it is starting to look like they don't use the standard nilReason construct.

braeckel commented 6 years ago

As mentioned above this appears to be a limitation of the AIXM AirspaceVolumePropertyType, which restricts the nilReason contents. The ready solution would be to create our own PropertyType for the rest of the AIXM types, including AirspaceVolumePropertyType.

blchoy commented 6 years ago

These are the differences:

image

image

As mentioned by Aaron our current solution is to short-circuit the reference to the AIXM Property Type to one defined in common.xsd which includes gml:AssociationAttributeGroup that has the default gml:NilReason definitions.

mgoberfield commented 6 years ago

Should we contact Eddy to consider adding to their nilReason attributes in AIXM? For now, I understand the need for workarounds but for the long-term, patches and 'short-circuits' of many AIXM types are probably not desirable.

blchoy commented 6 years ago

I remember Aaron had already brought this to the attention of the AIXM folks some time ago. This is a matter of design philosophy, but we are not too sure why they choose to deviate from the default GML nilReason serialization. In fact, from the ISO 19136 standard:

image

gml:NilReasonEnumeration has never been used alone but always in union with anyURI.

braeckel commented 6 years ago

I submitted an issue to the AIXM CCB to add support for PropertyTypes for more AIXM types (in IWXXM 2 we only used one of their PropertyTypes because that is all that was available) but they are not aware of this particular issue yet with nilReason. I should augment the existing AIXM issue with this new information.

jkorosi commented 6 years ago

I think the va-advisory-A2-1.xml example should be corrected. As Mark mentioned there is rule in TAC-to-XML-Guidance.txt

'NO VA EXP' When no volcanic ash is expected it shall be indicated with a "ashCloudExtent" with a nilReason of "http://codes.wmo.int/common/nil/nothingOfOperationalSignificance" but the last forecast +18 HR is translated as

<iwxxm:analysis>
    <iwxxm:VolcanicAshConditions gml:id="uuid.e453c86f-6912-47f0-9649-19d656b1bd1f">
        <iwxxm:phenomenonTime>
            <gml:TimeInstant gml:id="uuid.9b7632de-7591-4c3a-a876-99304e3d9d51">
                <gml:timePosition>2008-09-23T19:00:00Z</gml:timePosition>
            </gml:TimeInstant>
        </iwxxm:phenomenonTime>
        <iwxxm:ashCloud nilReason="http://codes.wmo.int/common/nil/nothingOfOperationalSignificance"/>
    </iwxxm:VolcanicAshConditions>
</iwxxm:analysis>.

I believe it should be

<iwxxm:analysis>
    <iwxxm:VolcanicAshConditions gml:id="uuid.e453c86f-6912-47f0-9649-19d656b1bd1f">
        <iwxxm:phenomenonTime>
            <gml:TimeInstant gml:id="uuid.9b7632de-7591-4c3a-a876-99304e3d9d51">
                <gml:timePosition>2008-09-23T19:00:00Z</gml:timePosition>
            </gml:TimeInstant>
        </iwxxm:phenomenonTime>
        <iwxxm:ashCloud>
            <iwxxm:VolcanicAshCloud gml:id="uuid.bcc01180-95c0-4ac1-8f13-53bbbfa430b7">
                <iwxxm:ashCloudExtent nilReason="http://codes.wmo.int/common/nil/nothingOfOperationalSignificance">
            </iwxxm:VolcanicAshCloud>
        </iwxxm:ashCloud>
    </iwxxm:VolcanicAshConditions>
</iwxxm:analysis>
blchoy commented 6 years ago

Thanks Jan for pointing out. In IWXXM 3.0.0RC2, iwxxm:ashCloud should be absent under VA NOT EXP condition:

    <!-- 23/1900Z NO VA EXP -->
    <iwxxm:forecast>
        <iwxxm:VolcanicAshForecastConditions gml:id="uuid.e453c86f-6912-47f0-9649-19d656b1bd1f" status="NO_VOLCANIC_ASH_EXPECTED">
            <iwxxm:phenomenonTime>
                <gml:TimeInstant gml:id="uuid.9b7632de-7591-4c3a-a876-99304e3d9d51">
                    <gml:timePosition>2008-09-23T19:00:00Z</gml:timePosition>
                </gml:TimeInstant>
            </iwxxm:phenomenonTime>
        </iwxxm:VolcanicAshForecastConditions>
    </iwxxm:forecast>

I have also marked your finding in the 'Know Issue' section of the Wiki of this repository.