Download presentation
Presentation is loading. Please wait.
Published byDarcy Burns Modified over 9 years ago
1
Sep. 21-22, 2006 v Tcl and Mapping Files – Best Practices Peter Laulund, National Survey and Cadastre, Denmark FME Worldwide User Conference - Vancouver
2
FME and TCL 2 Agenda Tcl plays a big role in my mapping files. It is used for batch processing dynamically writing part of the mapping file processing the features and pre and post processing the data. In this presentation I will discuss different aspects of how I structure a mapping file, with special focus on TCL.
3
FME and TCL 3 Demo Mapping File Structure FmeViewer game.csv PARAM.FME MAIN.FME SPIL.FMI fme.exe MAIN.FME INIT.FMI MAIN.FME FLYT.FMI *.ffs fme.exe
4
FME and TCL 4 Structure of Mapping File Complex Build by modules Placed in a common structure ‘Metadata’ in tables ‘Transformation’ attributes with common prefix ex. kms_ kms_feature_type, kms_feature_code
5
FME and TCL 5 Different Levels of Tcl in FME FME_BEGIN/END_TCL fmeObjects tcl INCLUDE [ script ] Tcl2 source … Tcl2( proc ) fme.exe script.tcl
6
FME and TCL 6 Command Line Syntaks - Fme.exe script.tcl Used for batch processing and chaining together more than one process together proc spil::flyt {} { global header fil lappend cmd fme.exe MAIN.FME --Modul FLYT …….. lappend cmd --from [ FME_GetAttribute from ] lappend cmd --to [ FME_GetAttribute to ] eval exec $cmd 2> NUL: eval exec fmeview.exe /ownffs ${::gsParth2App}spil/$fil & } proc spil::flyt {} { global header fil lappend cmd fme.exe MAIN.FME --Modul FLYT …….. lappend cmd --from [ FME_GetAttribute from ] lappend cmd --to [ FME_GetAttribute to ] eval exec $cmd 2> NUL: eval exec fmeview.exe /ownffs ${::gsParth2App}spil/$fil & }
7
FME and TCL 7 INCLUDE [.. script …] Used to initiate the mapping file putting in MACRO pairs Lookup tables _DEF lines INCLUDING Factory’s or modules INCLUDE [ switch -- $(Modul) { \ SPIL { puts "MACRO SourceFormat TEXTLINE" } \ INIT { puts "MACRO DestFormat FFS" } \ FLYT { puts "MACRO SourceFormat FFS" ; \ puts "MACRO DestFormat FFS" }}] INCLUDE [ switch -- $(Modul) { \ SPIL { puts "MACRO SourceFormat TEXTLINE" } \ INIT { puts "MACRO DestFormat FFS" } \ FLYT { puts "MACRO SourceFormat FFS" ; \ puts "MACRO DestFormat FFS" }}]
8
FME and TCL 8 Tcl2 and @Tcl() Work on the feature and ‘dataset’ level Has a global namespace proc init::tilpasBrik {id} { variable brikPos FME_Execute Bounds xmin xmax ymin ymax FME_Execute Offset [expr $brikPos($id,x) - [FME_GetAttribute xmax] + … ] [expr $brikPos($id,y) - [FME_GetAttribute ymin] + … ] FME_UnsetAttributes xmin xmax ymin ymax skak_font fme_text_size fme_text_string } proc init::tilpasBrik {id} { variable brikPos FME_Execute Bounds xmin xmax ymin ymax FME_Execute Offset [expr $brikPos($id,x) - [FME_GetAttribute xmax] + … ] [expr $brikPos($id,y) - [FME_GetAttribute ymin] + … ] FME_UnsetAttributes xmin xmax ymin ymax skak_font fme_text_size fme_text_string } Tcl2 set gsParth2App $(mf_root) ; \ set gx0 $(x0); set gy0 $(y0); set gdxy $(dxy) ; \ source $(FME_MF_DIR_UNIX)/TCL/$(Modul).TCL ; Tcl2 set gsParth2App $(mf_root) ; \ set gx0 $(x0); set gy0 $(y0); set gdxy $(dxy) ; \ source $(FME_MF_DIR_UNIX)/TCL/$(Modul).TCL ;
9
FME and TCL 9 Tcl Log file Felter R. PiepelineW. PiepelineWriter Tcl script Reader
10
FME and TCL 10 FME_BEGIN/END_TCL Used to pre- and post-processing the translation creating directory’s and copying documentation to dataset zipping the dataset emailing copying the data to a FTP server logging the translation to a database or file
11
FME and TCL 11 Conclusion Tcl works on many levels in the mapping file It gives a dynamic dimension to mapping files You can manipulate both attributes and geometry The global namespace means that Tcl is more than just a new function It can integrate FME with other programs
12
FME and TCL 12 Links http://wiki.tcl.tk/ http://wiki.tcl.tk/ Wiki about tcl and tk with many examples http://jamesthornton.com/tcl/8.4.2/ http://jamesthornton.com/tcl/8.4.2/ tcl and tk documentation
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.