#!#! #! #!#! #!#! #!#! #!#! #!#! #!#! #!

Output:


C1-VALUES_1 C1-VALUES_2 C2-VALUES_1 C2-VALUES_2 C3-VALUES_1 C3-VALUES_2
11 22 33 44 55 66

" POSITION="2412.5241252412529 -353.12847977519561" TOP_LEFT="2412.5241252412529 -353.12847977519561" BOTTOM_RIGHT="4725.0472504725058 -583.13047979519581" BOUNDING_RECT="2412.5241252412529 -353.12847977519561 2312.5231252312524 230.0020000200002" ORDER="500000000000026" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="0">
#!

Input:

CODE VALUE_1 VALUE_2

C1 11 22

C2 33 44

C3 55 66

" POSITION="2412.5241252412529 -21.875218752187806" TOP_LEFT="2412.5241252412529 -21.875218752187806" BOTTOM_RIGHT="3725.0372503725039 -339.37809378093812" BOUNDING_RECT="2412.5241252412529 -21.875218752187806 1312.5131251312512 317.50287502875028" ORDER="500000000000027" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="0">
#!
#! #!#! #!#! #! #!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!ValueCODE-Value_attr_name FIELD_VALUE SET_TO Value_attr_value">#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!0.FIELD_NAME SET_TO Value_list0.FIELD_VALUE">#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#! #!#! #!#! #!#!
FME_PYTHON_VERSION 27 # !START_HEADER # !START_WB_HEADER READER_TYPE MULTI_READER WRITER_TYPE NULL WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET NULL #!END_WB_HEADER # !START_WB_HEADER # !END_WB_HEADER # !END_HEADER LOG_FILENAME " $ (FME_MF_DIR) Table_Transpose.log“LOG_APPEND没有LOG_FILTER_MASK 1 LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE汽车FME_GEOMETRY_HANDLING增强FME_STROKE_MAX_DEVIATION 0 # -------------------------------------------------------------------------MULTI_READER_CONTINUE_ON_READER_FAILURE没有 # ------------------------------------------------------------------------- 宏WORKSPACE_NAME Table_Transpose宏观FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- 包括(如果{[信息存在env (FME_TEMP) & &(文件isdirectory env (FME_TEMP)美元)}{set gVisualizerTemp $env(FME_TEMP)} elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]} {$tcl_platform(platform) == "unix"} {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:};regsub - {[ ,&]} {$( } {_} wsname WORKSPACE_NAME); set gVisualizerTemp $gVisualizerTemp/${wsname}_[clock format [clock seconds] -format %H%M%S]; puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp"; MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.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; set FME_CoordSys {}; } MACRO Creator_XML NOT_ACTIVATED MACRO Creator_CLASSIC NOT_ACTIVATED MACRO Creator_2D3D 2D_GEOMETRY MACRO Creator_COORDS 包括[if{{Geometry Object}==={Geometry Object}}{puts{MACRO Creator_XML*}}]包括[if{Geometry Object}=={2D坐标列表}{puts{MACRO Creator_2D3D 2D_Geometry};puts{MACRO Creator_CLASSIC*}]包括[if{{{Geometry Object}==={3D坐标列表}{puts{Creator MACRO_2D3D_3D_Geometry};puts}{MACRO Creator_CLASSIC*}]包括[if{{Geometry Object}={2D Min/Max Box}{set comment{我们需要将minX minY maxX maxY坐标转换为完整的多边形坐标列表};设置splitCoords[split[string trim]{ }]];if{[llength$splitCoords]>4}{set trimmedCoords{};foreach item$splitCoords{if{$item!={}}{lappend trimmedCoords$item};set splitCoords$trimmedCoords;};if{[llength$splitCoords]!=4}{错误{创建者:坐标列表应该是一个由四个数字组成的空格分隔列表,如“minx miny maxx maxy”-` ' 是无效的};};集其minX [LINDEX $ splitCoords 0];集MINY [LINDEX $ splitCoords 1];集maxX的[LINDEX $ splitCoords 2];集MAXY [LINDEX $ splitCoords 3];看跌期权 “MACRO Creator_COORDS $ $了minX $ MINY $其minX美星$ maxX的$ $美星$ maxX的$ MINY $了minX MINY”;放{MACRO Creator_2D3D 2D_GEOMETRY};看跌期权{MACRO Creator_CLASSIC *}}] FACTORY_DEF $(Creator_XML)CreationFactory FACTORY_NAME Creator_XML_Creator CREATE_AT_END没有输出FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING, ?XML 版本= 1 编码= US_ASCII 独立= ? 几何学 尺寸= 2. 无效的 几何学 ) FACTORY_DEF $(Creator_CLASSIC) CreationFactory FACTORY_NAME Creator_CLASSIC_Creator $(Creator_2D3D) $(Creator_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME creator_clone INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 1 OUTPUT FEATURE_TYPECreator_CREATED fme_feature_type Creator FACTORY_DEF * TeeFactory FACTORY_NAME "Creator CREATED Splitter" INPUT FEATURE_TYPE Creator_CREATED OUTPUT FEATURE_TYPE Creator_CREATED_0_GJAgmIF9G6c= OUTPUT FEATURE_TYPE Creator_CREATED_1_Exx7idfjvCA= OUTPUT FEATURE_TYPE Creator_CREATED_2_goANeUpBIDA= FACTORY_DEF * BranchingFactory FACTORY_NAME“Creator_CREATED_0_GJAgmIF9G6c =布兰凯尔1 30”输入FEATURE_TYPE Creator_CREATED_0_GJAgmIF9G6c = TARGET_FACTORY " $ (WB_CURRENT_CONTEXT) _CREATOR_BRANCH_TARGET“MAXIMUM_COUNT没有输出通过FEATURE_TYPE * FACTORY_DEF * BranchingFactory FACTORY_NAME“Creator_CREATED_1_Exx7idfjvCA =布兰凯尔1 29”输入FEATURE_TYPE Creator_CREATED_1_Exx7idfjvCA =TARGET_FACTORY " $ (WB_CURRENT_CONTEXT) _CREATOR_BRANCH_TARGET“MAXIMUM_COUNT没有输出通过FEATURE_TYPE * FACTORY_DEF * BranchingFactory FACTORY_NAME“Creator_CREATED_2_goANeUpBIDA =布兰凯尔1 28”输入FEATURE_TYPE Creator_CREATED_2_goANeUpBIDA = TARGET_FACTORY " $ (WB_CURRENT_CONTEXT) _CREATOR_BRANCH_TARGET“MAXIMUM_COUNT没有输出了FEATURE_TYPE * # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME " $ (WB_CURRENT_CONTEXT) _CREATOR_BRANCH_TARGET“输入输出FEATURE_TYPE FEATURE_TYPE * * # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAMEAttributeCreator COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE Creator_CREATED_2_goANeUpBIDA = MULTI_FEATURE_MODE没有NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION{”““代码”“SET_TO”“C1”}ATTR_ACTION{”““VALUE_1”“SET_TO”“十一”}ATTR_ACTION{”““VALUE_2”“SET_TO”“22”}FEATURE_TYPE输出输出AttributeCreator_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_3 COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE Creator_CREATED_1_Exx7idfjvCA = MULTI_FEATURE_MODE没有NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIVATTR_ACTION{”““代码”“SET_TO”“C3”}ATTR_ACTION{”““VALUE_1”“SET_TO”“55”}ATTR_ACTION{”““VALUE_2”“SET_TO”“66”}输出输出FEATURE_TYPE AttributeCreator_3_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_2 COMMAND_PARM_EVALUATIONSINGLE_PASS输入FEATURE_TYPE Creator_CREATED_0_GJAgmIF9G6c = MULTI_FEATURE_MODE没有NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION{”““代码”“SET_TO”“C2”}ATTR_ACTION{”““VALUE_1”“SET_TO”“33”}ATTR_ACTION{”““VALUE_2”“SET_TO”“44”}输出输出FEATURE_TYPE AttributeCreator_2_OUTPUT #------------------------------------------------------------------------- FACTORY_DEF * SortFactory FACTORY_NAME排序器输入FEATURE_TYPE AttributeCreator_3_OUTPUT INPUT FEATURE_TYPE AttributeCreator_OUTPUT INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT SORT_BY CODE NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_SORTED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME ListBuilder_fme_type_remover INPUT FEATURE_TYPE Sorter_SORTED OUTPUT FEATURE_TYPE ListBuilder_no_fme_type @RemoveAttributes(fme_type,fme_geometry) FACTORY_DEF {*} ListFactory FACTORY_NAME ListBuilder INPUT FEATURE_TYPE ListBuilder_no_fme_type LIST_NAME "_listCount{}" LIST_ATTRS_TO_INCLUDE { VALUE_1 VALUE_2 } LIST_ATTRS_TO_INCLUDE_MODE SELECTED GROUP_BY { CODE } ORDERED_BY_GROUP No OUTPUT LIST FEATURE_TYPE ListBuilder_OUTPUT # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Global} == {Local} } { set domainPrefix [FME_EncodeText {Counter_}]; }; puts "MACRO Counter_FULL_DOMAIN ${domainPrefix}counter"; ] FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE ListBuilder_OUTPUT FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_FULL_DOMAIN),"1") RESULT_ATTRIBUTE "_attr_count" OUTPUT COMPLETE FEATURE_TYPE Counter_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_ DEFAULT_MACRO _WB_BYPASS_TERMINATION没有FACTORY_DEF * TeeFactory FACTORY_NAME Counter_ INPUT FEATURE_TYPE Counter_ 输出失败FEATURE_TYPE * @Abort(ENCODED, Counter 输出 一种 拒绝了 特征。 持续 翻译 特性 拒绝 改变 工作区 参数 翻译 拒绝了 功能 处理 持续 翻译 )#------------------------------------------------------------------------- FACTORY_DEF * AttributeFactory FACTORY_NAME AttributeExploder INPUT FEATURE_TYPE Counter_OUTPUT ATTR_NAME_LABEL "_attr_name" ATTR_VALUE_LABEL "_attr_value" KEEP_GEOMETRY No KEEP_ATTRIBUTES Yes EXPLODING_TYPE EXPLODE_AS_FEATURES LIST_NAME " {}“输出分解特征”\u类型属性exploder\u输出”\u35;----------------------------------------------------------------工厂定义*测试工厂工厂名称测试仪输入特征\u类型属性exploder\u输出大小写不敏感\u测试@EvaluateExpression(FDIV,字符串编码, 价值 _属性名称 (,Tester) BEGINS_WITH fme_ ENCODED BOOLEAN_OPERATOR OR OUTPUT FAILED FEATURE_TYPE test_failed # ------------------------------------------------------------------------- FACTORY_DEF * SortFactory FACTORY_NAME Sorter_2 INPUT FEATURE_TYPE test_failed SORT_BY _attr_value NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_2_SORTED # .(测试器类型------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME Tester_2输入FEATURE_TYPE Sorter_2_SORTED CASE_INSENSITIVE_TEST @EvaluateExpression (FDIV STRING_ENCODED, 价值 _属性名称 ,Tester_2)以_listCount编码的布尔运算符或输出传递特性开始_typetester_2_传递的特性(u TYPE Tester_2)(u PASSED)-------------------------------------------------------------------宏casemac INCLUDE[if{{{NO}=={NO}{put{MACRO casemac-nocase}}]Tcl2 proc StringReplacer_9d319e3b7daf4ec9_b19594d5283e72135}{findText-replaceText-invalidValue}{set-attrs[split\“_-attr_-name\”{,}set-findValue[FME_-DecodeText$findText];set-replaceValue[FME_-DecodeText$replaceText];foreach-attr$attrVal{set-attrVal[FME_-GetAttribute$attr];set-noMatch-true;如果{{否}=={YES}{}{set-newAttrVal[FME_-ReplaceRegregex$(casemac)$ReplaceVal)$AttrFindVal];}else{set newAttrVal[string map$(casemac)[list$findValue$replaceValue]$attrVal];};if{$newAttrVal ne$attrVal}{set noMatch false;FME_SetAttribute$attr$newAttrVal;};if{$noMatch}{if{$invalidValue={FME_NULL_VALUE}}{FME_SetAttributeNull$attr;}elseif{$invalidValue!{[FME_DecodeText$invalidValue];};};};}工厂定义*TeeFactory工厂名称StringReplacer输入特性\u类型测试仪\u 2 \u传递输出特性\u类型StringReplacer\u输出@Tcl2(“StringReplacer\u 9d319e3b\u 7daf\u 4ec9\u b195\u 94d25283e72135\u replacer\u listCount 0 .}{FME\u NO_OP{})----------------------------------------------------------------包括[设置宏行“宏属性移动器列表”EXP;foreach attr[split”“]{set attr[FME\u DecodeText$attr];设置attr[regsub{}$“$attr”{}.];设置attr[regsub-所有“{}”$attr”\\\{[0-9\+\\\\\\\\}];追加宏行“,^$attr$”};puts$macroLine;]FACTORY_DEF{*}TeeFactory_NAME AttributeRemover输入功能_TYPE StringReplacer_输出{FEATURE_TYPE AttributeRemover_输出@RemoveAttributes(fme_编码,attr_计数)@RemoveAttributes(fme_pcre_匹配“$(AttributeRemover_LIST_EXP)”)—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————" " 价值 代码 - 价值 _属性名称 “} {ATTR_ACTION ”“ ”FIELD_VALUE“ ”SET_TO“” 价值 _属性值 “}输出输出特性\u TYPE AttributeCreator\u 5\u OUTPUT \----------------------------------------------------------------包括[set macroLine”MACRO AttributeRemover\u 2\u LIST\u EXP;foreach attr[split”“]{set attr[FME\u DecodeText$attr];set attr[regsub{}$“$attr{}.*];set attr[regsub-all”{}“$attr”\\\\{0-9\+\}];append macroLine“,^$attr$”;};puts$macroLine;]工厂定义{*}工厂名称属性移动器输入特征类型属性创建器5输出输出特征类型属性移动器2输出@移动属性(fme_编码,列表计数 0 .VALUE_1,_attr_name,_listCount 0 .VALUE_2,_attr_VALUE)@RemoveAttributes(fme_pcre_match“$(AttributeRemover_2_LIST_EXP)”)}FACTORY_DEF*TeeFactory_NAME“AttributeRemover_2输出拆分器”输入功能\u类型属性移动器\u 2\u输出输出功能\u类型属性移动器\u 2\u输出\u 0\u iNGlrgK260E=输出功能\u类型属性移动器\u 2\u输出\u 1\u fKCmDr4zCWY=#-----------------------------------------------------------------------------------------------假设已经设置并创建了工作区临时目录。请参阅controldefs.cpp-controldefs::writeVisualizerTempDir默认值\u宏工作区\u临时目录包括[set-safeName”[regsub-all{[^a-zA-Z0-9]}{AttributeRemover\u 2\u Output}}\uuu[expr round(rand()*1000000)]\uu[时钟点击-毫秒]“放置”宏安全名称$safeName“]FACTORY\u DEF*{InspectorFactory亚搏在线\u NAME AttributeRemover\u 2\u Output\u Prepper COMMAND\u PARM\u EVALUATION SINGLE\u PASS INPUT FEATURE\u TYPE AttributeRemover\u 2\u Output\u 1\u fKCmDr4zCWY=GROUP\u ATTRIBUTE\u inspector\u FEATURE\u TYPE\u attr\u GROUP\u BY{}GROUP\u AttributeRemover\u 2\u Output}光栅减少或减少点减少不减少输出结果特征类型现在将所有特征路由到记录器中,将其特征类型更改为转换器名称,以便它们可以很好地查看默认的宏可视化工具特征文件$(工作空间临时目录)/$(安全名称).ffs DEFAULT_MACRO VISUALIZER_CREATE_space_INDEX NO#[PR#45549]数据检查器将限制在WIN32上读取的最大功能数,因此我们将相应地限制使用MAX#u features#u TO#u record指令在此处记录的#功能数。工厂定义*RecorderFactory工厂名称属性移动器2输出记录器命令参数评估单次通过输入功能类型查看功能终止功能是功能类型输入功能类型删除属性(\uuu inspector\u feature\u type\u attr\uuuuu)feature\u FILE“$(可视化工具\u feature\u FILE)”存储扫描的\u模式是创建空间索引“$(可视化工具\u创建空间索引)”inspector“$(可视化工具\u创建空间索引)”FSC\u模式字段名称,varchar 255 、FIELD_VALUE varchar 255 ,代码,varchar 255 模式记录存储\u扫描\u元数据记录\u直接\u到磁盘是的最大功能\u到记录WIN32 2000000----------------------------------------------------------------工厂\u定义*TeeFactory工厂\u名称列表生成器\u 2\u fme\u类型\u移除器输入功能\u类型属性移动器\u 2\u输出\u 0\u iNGlrgK260E=输出功能\u类型列表生成器\u 2\u否\u fme\u类型e@RemoveAttribute(fme_类型,fme_几何体)工厂{*}列表工厂{*}名称列表生成器_2输入功能_类型列表生成器_2_否_fme_类型列表_名称{}列表_属性_包括{ } LIST_ATTRS_TO_INCLUDE_MODE ALL ORDERED_BY_GROUP无输出列表FEATURE_TYPE ListBuilder_2_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME “ListBuilder_2输出分配器” INPUT FEATURE_TYPE ListBuilder_2_OUTPUT输出FEATURE_TYPE ListBuilder_2_OUTPUT_0_oOOMQCt24oM =输出FEATURE_TYPE ListBuilder_2_OUTPUT_1_kOgKp7rOj1A =#-------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "ListPivot ListPivot_INPUT Input Collector" INPUT FEATURE_TYPE ListBuilder_2_OUTPUT_1_kOgKp7rOj1A= OUTPUT FEATURE_TYPE ListPivot_ListPivot_INPUT MACRO ListPivot_WORKSPACE_NAME ListPivot MACRO $(ListPivot_WORKSPACE_NAME)_XFORMER_NAME ListPivot MACRO $(ListPivot_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(ListPivot_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(ListPivot_WORKSPACE_NAME)_LIST_ATTR _list{} INCLUDE_CUSTOM_TRANSFORMER_VER ListPivot:1 FACTORY_DEF * TeeFactory FACTORY_NAME "ListPivot OUTPUT Output Renamer/Nuker" INPUT FEATURE_TYPE ListPivot_OUTPUT OUTPUT FEATURE_TYPE ListPivot_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]} {ListPivot_OUTPUT} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME ListPivot_OUTPUT_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE ListPivot_OUTPUT GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { ListPivot_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 ListPivot_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 _fields,varchar 255 ,_col,VARCHAR 255 、_element_count varchar 255 ,currentIndex,varchar 255 ,FIELD_NAME,VARCHAR 255 、FIELD_VALUE varchar 255 ,代码,varchar 255 ,_result,VARCHAR 255 模式记录STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是的MAX_FEATURES_TO_RECORD WIN32 2000000 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME”AttributeCreator_4(残疾人)核”输入FEATURE_TYPE ListBuilder_2_OUTPUT_0_oOOMQCt24oM = #------------------------------------------------------------------------- # 假设是工作区临时dir已经设置和创建。参见ControlDefs .cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [set sa亚搏在线feName "[regsub -all {[^a-zA-Z0-9]} {AttributeCreator_4_Output} _]_[expr round(rand() * 1000000)]_[clock click -milliseconds]";MACRO SAFE_F亚搏在线FS_NAME $safeName;] FACTORY_DEF {*} InspectorFactory FACTORY_NAME AttributeCreator_4_Output_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE AttributeCreator_4_OUTPUT GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY {} GROUP_ATTRIBUTE_PREFIX {AttributeCreator_4_OUTPUT} RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING输出RESULT FEATURE_TYPE __viewme__ #现在将所有的特性路由到记录器中,将它们的# feature类型更改为转换器名称,以便它们很好地查看DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME)。亚搏在线数据检查器将限制它在WIN32上读取的最大特性数量,因此我们将相应地限制使用MAX_FEATURES_TO_RECORD指令记录的#特性数量。FACTORY_DEF * RecorderFactory FACTORY_NAME AttributeCreator_4_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 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES 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 FACTORY_NAME VisualizerProcessor 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 FACTORY_NAME VisualizerCleaner INPUT FEATURE_TYPE __NUKEME__