Question

How can I test CityGML attribute's value?

  • 3 January 2016
  • 2 replies
  • 3 views

I have a CityGML dataset that I want to test if its value is not in a range of values (codelist). There are generic attributes that are easy to test with the Tester transformer. These look like this:

<gen:stringAttribute name="DatenquelleDachhoehe">

 

<gen:value>1000</gen:value>

 

</gen:stringAttribute>

 

<gen:stringAttribute name="DatenquelleLage">

 

<gen:value>1000</gen:value>

 

</gen:stringAttribute>

 

Others look like this:

<bldg:roofType>3100</bldg:roofType>

 

<bldg:measuredHeight uom="urn:adv:uom:m">7.808</bldg:measuredHeight>

 

<bldg:storeysAboveGround>2</bldg:storeysAboveGround>

How can I test these attributes? Thx


2 replies

Userlevel 2
Badge +12

I would create code lists in for example XLS or CSV.

Then read both the code lists and the CityGML into a FME Workspace and use the FeatureMerger transformer to merge both datasets.

All not merged features from the CityGML dataset will have a value for the tested attribute that is not in the code list.

Hope this helps.

 

@erik_jan Thanks for the hint. I have done it now with a Tester. I can only test the attributes which look like name="DatenquelleDachhoehe"> and value>1000<. Does anybody know how I can test this attribute <bldg:roofType>3100</bldg:roofType>? Normally I need a name and a value to use the Tester. I need a workflow that replaces the value for roofType when the values is not in "1000,2100,2200,3100,3200,3300,3400,3500,3600,3700,3800,3900,4000,5000,9999" with "values is incorrect". Does anyone have any idea?

Reply