# ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! 价值 基准 -2019年Maand2 SET_TO 评估 时钟 扫描 价值 基准 格式 % d - Y % b - % y4 SET_TO 评估 时钟 格式 价值 Maand2 格式 % m " / > # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! 价值 基准 -2019年Maand2 SET_TO 评估 时钟 扫描 价值 基准 格式 % d - Y % b - % y3 SET_TO 评估 时钟 格式 价值 Maand2 格式 % d % m " / > # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! 价值 基准 Maand2 SET_TO 评估 时钟 扫描 价值 基准 格式 % d - y % b - % y2 SET_TO 评估 时钟 格式 价值 Maand2 格式 % - % y " / > # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! FME_PYTHON_VERSION 27 # !START_HEADER # !WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET NULL #!END_WB_HEADER # !START_WB_HEADER # !END_WB_HEADER # !END_HEADER LOG_FILENAME”(FME_MF_DIR) DatumvariantenNaarDigits美元。log" LOG_APPEND NO LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 LOG_FILTER_MASK -1 # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME DatumvariantenNaarDigits MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- INCLUDE [ if {[info exists env(FME_TEMP)] && [file isdirectory $env(FME_TEMP)]} {set gVisualizerTemp $env(FME_TEMP)} elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]} {set gVisualizerTemp $env(TEMP)} elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:};regsub - {[,]} {$ (WORKSPACE_NAME)} {_} wsname;设置gVisualizerTemp $gVisualizerTemp/${wsname}_[时钟格式[时钟秒]-格式%H%M%S];设置“宏WORKSPACE_TEMP_DIR $gVisualizerTemp”;宏VISUALIZER_FEATURE_FILE $ (WORKSPACE_TEMP_DIR) /检查员。ffs MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- Tcl2 proc Creator_CoordSysRemover {} { global FME_CoordSys;设置FME_CoordSys {};宏创建器_classic NOT_ACTIVATED宏创建器_2d3d 2D_GEOMETRY宏创建器_coords {{几何对象}=={几何对象}}{放置{宏Creator_XML *}}}{宏Creator_CLASSIC *}}包括[if{{几何对象}== {3D坐标列表}}{宏Creator_2D3D 3D_GEOMETRY};{set comment {We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates} {{Geometry Object} == {2D Min/Max Box}} {set comment {We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates};设置splitcods [split]字符串修剪{ }]];如果{[llength $ splitcods] > 4} {set trimmedCoords {};如果{$item != {}} {lappend trimmedCoords $item}};设置splitCoords trimmedCoords美元;};如果{[llength $splitCoords] != 4} {error {Creator: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - ' 的是无效的};};设置minX [lindex $splitCoords 0];set minY [lindex $splitCoords 1];设置maxX [lindex $splitCoords 2];设置maxY [lindex $splitCoords 3];放“宏创建器_coords $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY”;放置{宏Creator_2D3D 2D_GEOMETRY};Creator_XML_Creator CREATE_AT_END无输出 xml ? version = 1.0 编码= US_ASCII 独立的= 没有 吗? 几何 尺寸= 2 几何 )FACTORY_DEF $ (Creator_CLASSIC) CreationFactory FACTORY_NAME Creator_CLASSIC_Creator (Creator_2D3D) (Creator_COORDS) CREATE_AT_END没有美元输出FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_Cloner输入FEATURE_TYPE _____CREATED______ @Tcl2 (Creator_CoordSysRemover) @CoordSys () NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE“_creation_instance”输出FEATURE_TYPE Creator_CREATED fme_feature_type创造者”@EvaluateExpression (ATTR_CREATE_EXPR_PROPAGATE_MISSING_FDIV、tt、2月 1月 1月10日 22-Feb 3月- 65 5 小君 7月 1月 12 1215 11日,FEATURE_TYPE)” FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_CREATED Brancher -1 4" INPUT FEATURE_TYPE Creator_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * # ------------------------------------------------------------------------- Tcl2 set AttributeSplitter_3b13daea_f73f_4444_a7a5_4d95e148e38628_splitDelim [FME_DecodeText { });{set AttributeSplitter_3b13daea_f73f_4444_a7a5_4d95e148e38628_splitDelim]]}} {set AttributeSplitter_3b13daea_f73f_4444_a7a5_4d95e148e38628_splitWidths [split [regsub -all {s$}} }{}]s];{全局AttributeSplitter_3b13daea_f73f_4444_a7a5_4d95e148e38628_splitWidths;设置源[FME_GetAttribute [FME_DecodeText {tt}];设置attrNum 0;设置listName [FME_DecodeText {_list}];设置attrPos 0;设置keepEmptyParts [string = {No} {No}];[set AttributeSplitter_3b13daea_f73f_4444_a7a5_4d95e148e38628_splitWidths]设置位[字符串范围$source $attrPos $endPos];设置部分[字符串修剪$bit];如果{$ keepEmptyParts || $part != \"\"} {FME_SetAttribute "$listName{$attrNum}" $part;增加attrNum;};增加美元attrPos宽度;};};{全局AttributeSplitter_3b13daea_f73f_4444_a7a5_4d95e148e38628_splitDelim;set AttributeSplitter_3b13daea_f73f_4444_a7a5_4d95e148e38628_splitDelim];设置delimLength[字符串长度$delim];设置源[FME_GetAttribute [FME_DecodeText {tt}];设置keepEmptyParts [string = {No} {No}];设置位{};设置startIndex 0;设置nextIndex [string first $delim $source $startIndex];{lappend bits [string range $source $startIndex [expr $nextIndex-1]];set startIndex [expr $nextIndex + $delimLength];设置nextIndex [string first $delim $source $startIndex];};[string range $source $startIndex end];设置listName [FME_DecodeText {_list}];设置attrNum 0;{set trimmedPart [string trim $bit];如果{$ keepEmptyParts || $trimmedPart != \"\"} {FME_SetAttribute "$listName{$attrNum}" $trimmedPart;增加attrNum;};}}}FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter输入FEATURE_TYPE Creator_CREATED输出FEATURE_TYPE AttributeSplitter_OUTPUT @Tcl2 (AttributeSplitter_doSplit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * ElementFactory FACTORY_NAME ListExploder输入FEATURE_TYPE AttributeSplitter_OUTPUT LIST_NAME _list“{}”ELEMENT_NUMBER_FIELD“_element_index CLONE_GEOMETRY ATTR_ACCUM_MODE ATTR_CONFLICT_RES“合并传入名单”“使用传入的名单”INCOMING_PREFIX” "输出元素FEATURE_TYPE list爆der_elements @RemoveAttributes(ElementFactory.baseCloned) @RemoveAttributes(ElementFactory.baseCloned 输入FEATURE_TYPE ListExploder_ 输出失败的FEATURE_TYPE * @Abort(已编码,list爆炸 输出 一个 拒绝了 特性。 继续 翻译 特性 拒绝了 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 )# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -包括[设置macroLine“宏观AttributeKeeper_4369eaec_c39c_4d28_ab7f_b96e7950f30921_LIST_EXP”;{set attr [FME_DecodeText $attr];set attr [regsub "{}$" $attr "{}.*"];设置attr (regsub——“{}”美元attr”\ \ {\ [0 - 9 \] + \ \} ");附加macroLine”^ attr美元”;};把macroLine美元;]FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeKeeper输入FEATURE_TYPE ListExploder_ELEMENTS输出{FEATURE_TYPE AttributeKeeper_OUTPUT @KeepAttributes (fme_encoded、_list fme_pcre_match,“^ fme_ $ (AttributeKeeper_4369eaec_c39c_4d28_ab7f_b96e7950f30921_LIST_EXP) ")} # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeRenamer输入FEATURE_TYPE AttributeKeeper_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIVATTR_ACTION {“_list”“数据”“RENAME_SET_DEFAULT”“}输出输出FEATURE_TYPE AttributeRenamer_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏casemac包括(如果{{没有}= ={没有}}{把{宏casemac查看nocase}}] Tcl2 proc StringSearcher_dc5e2d49_b14c_439e_9dae_5c10fb427f8f22_doGrep {stringToSearch regExp matchedChars匹配matchedParts}{设置submatch 1;设置匹配项[FME_DecodeText $matches];设置matchedParts [FME_DecodeText $matchedParts];设置结果[FME_GetRegex $(casemac)] [FME_DecodeText $regExp] [FME_DecodeText $stringToSearch];{set attrName [FME_DecodeText $matchedChars];FME_SetAttribute $attrName [lindex [lindex [lindex $results 0] 0];设置索引0;set parts [lindex $results 1];如果{[llength $matchedParts] > 0} {set attrName "$matchedParts{$index}.part";FME_SetAttribute $attrName [lindex $part 0];设置attrName“美元matchedParts{美元指数}.startIndex”;FME_SetAttribute $attrName [lindex $part 1];};增加指数;};设置索引0;设置regexMatches [lindex $results 0];如果{[llength $matches] > 0} {set attrName "$matches{$index}.match";FME_SetAttribute $attrName [lindex $part 0];设置attrName“${美元指数}.startIndex匹配”;FME_SetAttribute $attrName [lindex $part 1];};设置isFirstMatch 0;增加指数;};返回美元指数;};返回1;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 价值 基准 StringSearcher)} {^ a-zA-Z + }{_first_match}{}{}”) > 0输出通过FEATURE_TYPE StringSearcher_MATCHED输出失败FEATURE_TYPE StringSearcher_NOT_MATCHED # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏casemac包括(如果{{没有}= ={没有}}{把{宏casemac查看nocase}}] Tcl2 proc StringSearcher_2_ca6f1603_f2fd_4f81_8fa7_67b8f3e0101a16_doGrep {stringToSearch regExp matchedChars匹配matchedParts}{设置submatch 1;设置匹配项[FME_DecodeText $matches];set matchedParts [FME_DecodeText $matchedParts]; set results [FME_GetRegex $(casemac) [FME_DecodeText $regExp] [FME_DecodeText $stringToSearch]]; if {[llength [lindex $results 0]] > 0} { set attrName [FME_DecodeText $matchedChars]; FME_SetAttribute $attrName [lindex [lindex [lindex $results 0] 0] 0]; set index 0; set parts [lindex $results 1]; foreach part $parts { if {[llength $matchedParts] > 0} { set attrName "$matchedParts{$index}.part"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matchedParts{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; incr index; }; set index 0; set regexMatches [lindex $results 0]; foreach part $regexMatches { if {[llength $matches] > 0} { set attrName "$matches{$index}.match"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matches{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; set isFirstMatch 0; incr index; }; return $index; }; return -1; } FACTORY_DEF * TestFactory FACTORY_NAME StringSearcher_2 INPUT FEATURE_TYPE StringSearcher_NOT_MATCHED TEST @Tcl2("StringSearcher_2_ca6f1603_f2fd_4f81_8fa7_67b8f3e0101a16_doGrep {@EvaluateExpression(FDIV,STRING_ENCODED, 价值 基准 StringSearcher_2)} {^ d + } {_first_match} {} {}“)> 0 OUTPUT FAILED FEATURE_TYPE StringSearcher_2_NOT_MATCHED#------------------------------------------------------------------------- MACRO casemac INCLUDE [如果{{无} == {no} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringSearcher_3_0151c706_785d_405d_b1fb_8b9889d9aa5f15_doGrep { stringToSearch regExp matchedChars matches matchedParts } { set subMatches 1; set matches [FME_DecodeText $matches]; set matchedParts [FME_DecodeText $matchedParts]; set results [FME_GetRegex $(casemac) [FME_DecodeText $regExp] [FME_DecodeText $stringToSearch]]; if {[llength [lindex $results 0]] > 0} { set attrName [FME_DecodeText $matchedChars]; FME_SetAttribute $attrName [lindex [lindex [lindex $results 0] 0] 0]; set index 0; set parts [lindex $results 1]; foreach part $parts { if {[llength $matchedParts] > 0} { set attrName "$matchedParts{$index}.part"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matchedParts{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; incr index; }; set index 0; set regexMatches [lindex $results 0]; foreach part $regexMatches { if {[llength $matches] > 0} { set attrName "$matches{$index}.match"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matches{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; set isFirstMatch 0; incr index; }; return $index; }; return -1; } FACTORY_DEF * TestFactory FACTORY_NAME StringSearcher_3 INPUT FEATURE_TYPE StringSearcher_2_NOT_MATCHED TEST @Tcl2("StringSearcher_3_0151c706_785d_405d_b1fb_8b9889d9aa5f15_doGrep {@EvaluateExpression(FDIV,STRING_ENCODED, 价值 基准 ,StringSearcher_3)} {^ d + - a-zA-Z + } {_first_match} {} {}“)> 0 OUTPUT PASSED FEATURE_TYPE StringSearcher_3_MATCHED OUTPUT FAILED FEATURE_TYPE StringSearcher_3_NOT_MATCHED#------------------------------------------------------------------------- MACRO casemac INCLUDE [如果{ {no} == {no} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringSearcher_4_d4658e54_bd16_44dc_819d_1e74fe0ef1f114_doGrep { stringToSearch regExp matchedChars matches matchedParts } { set subMatches 1; set matches [FME_DecodeText $matches]; set matchedParts [FME_DecodeText $matchedParts]; set results [FME_GetRegex $(casemac) [FME_DecodeText $regExp] [FME_DecodeText $stringToSearch]]; if {[llength [lindex $results 0]] > 0} { set attrName [FME_DecodeText $matchedChars]; FME_SetAttribute $attrName [lindex [lindex [lindex $results 0] 0] 0]; set index 0; set parts [lindex $results 1]; foreach part $parts { if {[llength $matchedParts] > 0} { set attrName "$matchedParts{$index}.part"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matchedParts{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; incr index; }; set index 0; set regexMatches [lindex $results 0]; foreach part $regexMatches { if {[llength $matches] > 0} { set attrName "$matches{$index}.match"; FME_SetAttribute $attrName [lindex $part 0]; set attrName "$matches{$index}.startIndex"; FME_SetAttribute $attrName [lindex $part 1]; }; set isFirstMatch 0; incr index; }; return $index; }; return -1; } FACTORY_DEF * TestFactory FACTORY_NAME StringSearcher_4 INPUT FEATURE_TYPE StringSearcher_3_NOT_MATCHED TEST @Tcl2("StringSearcher_4_d4658e54_bd16_44dc_819d_1e74fe0ef1f114_doGrep {@EvaluateExpression(FDIV,STRING_ENCODED, 价值 基准 ,StringSearcher_4)} {^ a-zA-Z + - d + } {_first_match} {} {}“)> 0 OUTPUT PASSED FEATURE_TYPE StringSearcher_4_MATCHED#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_4 INPUT FEATURE_TYPE StringSearcher_4_MATCHED MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "Datum" "SET_TO" "01- 价值 基准 “} {ATTR_ACTION ”“ ”Maand2“ ”SET_TO“” 评估 时钟 扫描 价值 基准 格式 % d - y % b - % “} {ATTR_ACTION ”“ ”Y2“ ”SET_TO“” 评估 时钟 格式 价值 Maand2 格式 % - % y ”}输出输出FEATURE_TYPE AttributeCreator_4_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #假设是工作区临时dir已经设置和创建。See controldefs.cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {StringSearcher_4_Matched} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME StringSearcher_4_Matched_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeCreator_4_OUTPUT GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { StringSearcher_4_Matched } RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING OUTPUT RESULT FEATURE_TYPE __viewme__ # Now route all the features into the recorder, changing their # feature type to the transformer name so that they view nicely DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO # [PR#45549] The Data Inspector will limit the maximum number of features # it reads on WIN32, so we will correspondingly limit the number of # features we record here using the MAX_FEATURES_TO_RECORD directive. FACTORY_DEF * RecorderFactory FACTORY_NAME StringSearcher_4_Matched_Recorder COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType(@Value(__inspector_feature_type_attr__)) @RemoveAttributes(__inspector_feature_type_attr__) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" STORE_SCANNED_SCHEMA YES CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA Datum,varchar 255 、Maand2 varchar 255 、y2 varchar 255 、_first_match varchar 255 模式记录STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是的MAX_FEATURES_TO_RECORD WIN32 2000000 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_3输入FEATURE_TYPE StringSearcher_3_MATCHED MULTI_FEATURE_MODE没有NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION{”“数据”“SET_TO”“ 价值 基准 -2019年"}ATTR_ACTION {"" Maand2" "SET_TO" " 评估 时钟 扫描 价值 基准 格式 % d - Y % b - % "} ATTR_ACTION {"" y3" "SET_TO" " 评估 时钟 格式 价值 Maand2 格式 % d % m ”}输出输出FEATURE_TYPE AttributeCreator_3_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #假设是工作区临时dir已经设置和创建。See controldefs.cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {AttributeCreator_3_Output} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME AttributeCreator_3_Output_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeCreator_3_OUTPUT GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { AttributeCreator_3_Output } RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING OUTPUT RESULT FEATURE_TYPE __viewme__ # Now route all the features into the recorder, changing their # feature type to the transformer name so that they view nicely DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO # [PR#45549] The Data Inspector will limit the maximum number of features # it reads on WIN32, so we will correspondingly limit the number of # features we record here using the MAX_FEATURES_TO_RECORD directive. FACTORY_DEF * RecorderFactory FACTORY_NAME AttributeCreator_3_Output_Recorder COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType(@Value(__inspector_feature_type_attr__)) @RemoveAttributes(__inspector_feature_type_attr__) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" STORE_SCANNED_SCHEMA YES CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA Datum,varchar 255 、Maand2 varchar 255 、y3 varchar 255 、_first_match varchar 255 模式记录STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是的MAX_FEATURES_TO_RECORD WIN32 2000000 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -包括(如果{({选择属性}= ={所有属性})}{把{宏StringCaseChanger_func @RenameAttributes (fulltitle PERFORM_OPERATION价值。*,“_”)};}否则{{放MACRO StringCaseChanger_func @RenameAttributes(LIST_ATTR, “值”, “基准”,fulltitle, “-_”)};}] FACTORY_DEF * TeeFactory FACTORY_NAME StringCaseChanger INPUT FEATURE_TYPE StringSearcher_MATCHED输出FEATURE_TYPE StringCaseChanger_OUTPUT $(StringCaseChanger_func)#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_2 INPUT FEATURE_TYPE StringCaseChanger_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "Datum" "SET_TO" "01- 价值 基准 -2019年"}ATTR_ACTION {"" Maand2" "SET_TO" " 评估 时钟 扫描 价值 基准 格式 % d - Y % b - % “} {ATTR_ACTION ”“ ”Y4“ ”SET_TO“” 评估 时钟 格式 价值 Maand2 格式 % m “}输出输出FEATURE_TYPE AttributeCreator_2_OUTPUT#------------------------------------------------------------------------- # Assumption is that the workspace temp dir has been already set and created. See controldefs.cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {AttributeCreator_2_Output} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME AttributeCreator_2_Output_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { AttributeCreator_2_Output } RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING OUTPUT RESULT FEATURE_TYPE __viewme__ # Now route all the features into the recorder, changing their # feature type to the transformer name so that they view nicely DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO # [PR#45549] The Data Inspector will limit the maximum number of features # it reads on WIN32, so we will correspondingly limit the number of # features we record here using the MAX_FEATURES_TO_RECORD directive. FACTORY_DEF * RecorderFactory FACTORY_NAME AttributeCreator_2_Output_Recorder COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType(@Value(__inspector_feature_type_attr__)) @RemoveAttributes(__inspector_feature_type_attr__) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" STORE_SCANNED_SCHEMA YES CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA Datum,varchar 255 、Maand2 varchar 255 ,Y4,VARCHAR 255 、_first_match varchar 255 模式录制STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是MAX_FEATURES_TO_RECORD WIN32 2000000#------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__ OUTPUT ROUTED FEATURE_TYPE * OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__ # ------------------------------------------------------------------------- FACTORY_DEF * CreationFactory CREATE_AT_END OUTPUT FEATURE_TYPE __NUKEME__ @TCL("if [file exists {$(WORKSPACE_TEMP_DIR)}] {set files [glob -nocomplain -directory {$(WORKSPACE_TEMP_DIR)} -tails *.ffs]; if {[llength $files] == 1} { set theFile {$(WORKSPACE_TEMP_DIR)/}; append theFile [lindex $files 0]; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -f FFS \042$theFile\042 & \175; } elseif { [llength $files] == 0 } { catch { file delete -force {$(WORKSPACE_TEMP_DIR)} }; } else { set filesNoExt {}; set lastfile {}; foreach {fileName} [lsort $files] { set fileNoExt [string trimright $fileName {.ffs}]; if [regexp {(.*)_[0-9]*$} $fileNoExt wholething fileNoExtBase] { if { $fileNoExtBase == $lastfile } { continue } }; set lastfile $fileNoExt; lappend filesNoExt $fileNoExt }; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -d {$(WORKSPACE_TEMP_DIR)} -a ffs -f FFS $filesNoExt & \175; }; }; ") FACTORY_DEF * TeeFactory INPUT FEATURE_TYPE __NUKEME__