... | ... | @@ -4,6 +4,20 @@ |
|
|
|
|
|
This example shows how to add an attribute (here: year_of_construction) to an existing CityGML document using FME.
|
|
|
|
|
|
Method 1: Using feature merger and attribute creator
|
|
|
|
|
|
With this method you first add an additional reader to the workbench (here: CSV). Then in the feature merger transformer, you connect port from "CityGML Building" to requestor port and, CSV to supplier port. Inside feature merger mapping on gml_ID is done. The output port "Merged" is then connected to the attribute creator transformer. Within attribute creator, select "citygml_year_of_construction" under new attribute and the CSV field containing year of construction values under attribute value. Connect the output port to the writer port of "CityGML Building" and run the workbench.
|
|
|
|
|
|
An example workbench is available here.
|
|
|
|
|
|
Method 2: Using database joiner and attribute manager
|
|
|
|
|
|
In this method, instead of adding an additional reader database joiner transformer is used to connect datasets based on gml_id or any primary key. Here you connect port from "CityGML Building" to the input port of database joiner transformer. Inside the transformer you select your database (here: CSV), select the CSV table and the map you gml_id from the CityGML file to gml_id from the CSV file. Under "Fields to Add", the field containing year of construction values is selected (here: construction ). Also make sure to set cardinality to either 1:1 or 1:0..1. This will prevent unmatched gml_id from giving you an error and terminating the workbench. Next connect the joined port of database joiner to attribute manager input port. Inside attribute manager, in front of the "citygml_year_of_construction" assign value "construction ". Join the output port to the writer port of "CityGML Building" and run the workbench.
|
|
|
|
|
|
An example workbench is available here.
|
|
|
|
|
|
The difference between using database joiner and CSV as a reader, is that CSV reader with cache all the data from the CSV file on your local machine. This is not good if you are working with a large dataset. With a database joiner, the transformer will read your database on the run and hence will not cache any data on your local machine. This saves time, memory and disk space.
|
|
|
|
|
|
FME workbench is in the repository
|
|
|
|
|
|
## Convert land use shapefile to Cesium
|
... | ... | |