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

get size

" POSITION="244.75268752687543 -719.38284382843858" TOP_LEFT="244.75268752687543 -719.38284382843858" BOTTOM_RIGHT="674.75268752687543 -718.38284382843858" BOUNDING_RECT="244.75268752687543 -719.38284382843858 430 -1" ORDER="500000000000024" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="21">
#!

get corner

" POSITION="263.84534420686703 -1429.1930241220221" TOP_LEFT="263.84534420686703 -1429.1930241220221" BOTTOM_RIGHT="693.84534420686703 -1428.1930241220221" BOUNDING_RECT="263.84534420686703 -1429.1930241220221 430 -1" ORDER="500000000000025" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="8">
#!

to create sample

" POSITION="806.10247910698217 -1042.7165566176211" TOP_LEFT="806.10247910698217 -1042.7165566176211" BOTTOM_RIGHT="1236.1024791069822 -1041.7165566176211" BOUNDING_RECT="806.10247910698217 -1042.7165566176211 430 -1" ORDER="500000000000026" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="6">
#!
#! #!#! #!#! #! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!EvaluateLength">#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#! #!#! #! #! #!#! #!#!#!#!#!#!#! #!#! #! #!#! #!#! #!#!#! #! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!" 270">#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #! #!#! #!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#! #!#!#!#! #!#!
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)xyscalebox.log”log_append no log_max_features 200 log_max_recorded_features 200 fme_reproimper_enmap_reproimper_mode auto fme_geometry_handling增强fme_stroke_max_deviation 0 log_filter_mask -1#---a------------------------------------------------------------------MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME XYscaleBox 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 -all {[ ,&]} {$(WORKSPACE_NAME)} {_} wsname; 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 INCLUDE [如果{{几何对象} == {几何对象}} {{放MACRO Creator_XML *}}] INCLUDE [如果{{几何对象} == {2D坐标列表}} {{放MACRO Creator_2D3D 2D_GEOMETRY};放{MACRO Creator_CLASSIC *}}] INCLUDE [如果{{几何对象} == {三维坐标列表}} {{放MACRO Creator_2D3D 3D_GEOMETRY};看跌期权{MACRO Creator_CLASSIC *}}]有[如果{{几何对象} == {2D最小/最大框}} {集评论{我们需要把它们了minX MINY maxX的美星的COORDS为坐标的完整列表多边形};集splitCoords [分裂[字符串装饰{ }]];如果{[llength $splitCoords] > 4} {set trimmedCoords {};foreach item $splitCoords {if {$item != {}} {lappend trimmedCoords $item}};设置splitCoords trimmedCoords美元;};如果{[llength $splitCoords] != 4} {error {Creator:坐标列表应该是一个以空格分隔的列表,包含4个数字,如'minx miny maxx max ' - ' 的是无效的};};设置minX [lindex $splitCoords 0];set minY [lindex $splitCoords 1]; / /设置lindex $splitCoords 1set maxX [lindex $splitCoords 2]; / /设置索引set maxY [lindex $splitCoords 3]; / /设置maxY"MACRO creatator_coords $minX $minY $minX $max $maxX $max $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 no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING, ?XML. 版本= 1 编码= US_ASCII 独立的= 还是 几何学 多边形 线 x= 0 y = 0 x= 4 y = 0 x= 4 y = 7 x= 0 y = 7 x= 0 y = 0 线 多边形 几何学 )工厂定义$(Creator\u CLASSIC)创建工厂工厂名称创建者\u CLASSIC\u Creator$(Creator\u 2D3D)$(Creator\u COORDS)创建\u结尾无输出功能\u类型\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu复制\u编号\u属性“\u创建\u实例”输出功能\u类型创建者\u创建的fme\u功能\u类型创建者”@EvaluateExpression(属性创建\u表达式传播\u缺少\u FDIV,新建 宽度,5,新 长度,9,feature_type)“factory_def * branchingfactory factory_name”creator_createfactor -1 24“输入feature_type creator_created target_factory”$(wb_current_context)_creator_branch_target“maximum_count none输出传递Feature_type *#---------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * # ------------------------------------------------------------------------- # check if we have to do the min bounding box calculation INCLUDE [ if { {BB} == {MINBB} } { puts {MACRO BoundingBoxReplacer_BBFunc @Bounds(MIN_BOUNDING,ss,ls)}; } else { puts {MACRO BoundingBoxReplacer_BBFunc @Bounds(BOUNDING_BOX_AXIS_ALIGNED,ss,ls)}; } ] FACTORY_DEF * TeeFactory FACTORY_NAME BoundingBoxReplacer INPUT FEATURE_TYPE Creator_CREATED OUTPUT FEATURE_TYPE BoundingBoxReplacer_BOX @Force2D() $(BoundingBoxReplacer_BBFunc) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory INPUT FEATURE_TYPE BoundingBoxReplacer_BOX TEST "Specify Coordinate" == "All Coordinates" OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_PASSED OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_FAILED FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_PASSED INPUT FEATURE_TYPE CoordinateExtractor_PASSED TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_OUTPUT @ZValue("") @Coordinate(x,ALL," “{} .x,flatten_aggregate,是)@coorde(y,全部,” “{} .Y,FLATTEN_AGGREGATE,NO)@Coordinate(Z,ALL,” “{} .z,flatten_aggregate,no)@dimension(2)输出失败feature_type conryextractor_output @coorder(x,全部,” “{} .x,flatten_aggregate,是)@coorde(y,全部,” “{} .Y,FLATTEN_AGGREGATE,NO)@Coordinate(Z,ALL,” “{} .z,flatten_aggregate,no)factory_def * testfactory factory_name connessextractor_failed输入feature_type contentextractor_failed test @dimension()== 2输出传递Feature_type connordextractor_failed_pa​​ssed输出失败feature_type conordeExtractor_output”_x“@coords(x,”0“,flatten_aggregate,flatten_aggregate,flatten_aggregate“_y”@coorder(y,“0”,flatten_aggregate,no)factory_def * testfactory factory_name connessextractor_failed_pa​​ssed输入feature_type contentextractor_failed_pa​​ssed test“”==“”输出传递Feature_type comenteExtractor_output“_x”@coords(x,“0”,flatten_aggregate,flatten_aggregate)“_y”@coorde(y,“0”,flatten_aggregate,no)输出失败feature_type conryenteExtractor_output“_x”@coords(x,“0”,flatten_aggregate,是)“_y”@coorde(y,“0”,flatten_aggregate,不) # - - - - - - - - - - - - - - - - - - - - - - --------------------------FACTORY_DEF * TeeFactory FACTORY_NAME Rotator_Rotator INPUT FEATURE_TYPE CoordinateExtractor_OUTPUT OUTPUT FEATURE_TYPE ___TOREJECTOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) @Rotate2D(REJECTABLE,ALLOW_NULLS,"25","@EvaluateExpression(FDIV,FLOAT, 价值 ,旋转器)“,”@评估表格(FDIV,Float, 价值 _y吗 ") FACTORY_DEF * TestFactory FACTORY_NAME Rotator_Rejector INPUT FEATURE_TYPE __torejector___ TEST @Value(fme_rejection_code) != "" OUTPUT PASSED FEATURE_TYPE Rotator_ . @RemoveAttribute(\uuuuuuuu fme\u rejection\u code\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu_ 输入FEATURE_TYPE Rotator_ 输出失败FEATURE_TYPE * @Abort(编码肩 输出 一种 拒绝了 特征。 继续 翻译 特征 拒绝 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 )#-----------------------------------------------------------------------FACTORY_DEF * GQueryFactory FACTORY_NAME GeometryCoercer INPUT FEATURE_TYPE Rotator_ROTATED GQUERY "@EvaluateExpression(FDIV,STRING_ENCODED,for 几何学 几何学 在哪里 几何学 数数 父::几何 = 0 返回 数量 几何学 fme_id. ,GeometryCoercer)”动作COERCE_GEOMETRY参数fme_line输出结果FEATURE_TYPE GeometryCoercer_COERCED#----------------------------------------------------------------------- FACTORY_DEF * ChoppingFactory FACTORY_NAME Chopper INPUT FEATURE_TYPE GeometryCoercer_COERCED MODE VERTEX MAX_VERTICES "2" APPROX_LENGTH " " REMNANT_ATTRIBUTE "_remnant" chop_polygon REJECT_INVALID_GEOM Yes DEAGGREGATE_INPUT解集输出剁碎FEATURE_TYPE剁碎输出拒绝FEATURE_TYPE剁碎 factory_def * teefactory factory_name“砍刀切碎分配器”输入Feature_type Chopper_Chopped输出功能_type chopper_chopped_0_nx + w4 + a7ndm =输出feature_type chopper_chopped_1_wh4tmndh / oy = default_macro _wb_bypass_termination no factory_def * teefactory factory_name chopper_ INPUT FEATURE_TYPE Chopper_ 输出失败feature_type * @abort(编码,斩波器 输出 一种 拒绝了 特征。 继续 翻译 特征 拒绝 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 )#-----------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "AzimuthCalculator LINE Input Collector" INPUT FEATURE_TYPE Chopper_CHOPPED_0_Nx+W4+A7ndM= OUTPUT FEATURE_TYPE AzimuthCalculator_LINE MACRO AzimuthCalculator_WORKSPACE_NAME AzimuthCalculator MACRO $(AzimuthCalculator_WORKSPACE_NAME)_XFORMER_NAME AzimuthCalculator MACRO $(AzimuthCalculator_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(AzimuthCalculator_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(AzimuthCalculator_WORKSPACE_NAME)_SUB_DOC_NAME AzimuthCalculator DEFAULT_MACRO AzimuthCalculator_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(AzimuthCalculator_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(AzimuthCalculator_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(AzimuthCalculator_WORKSPACE_NAME)_LINE1550077055 Input Splitter" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LINE" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LINE" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Splitter INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LINE" OUTPUT FEATURE_TYPE ___TOFILTER___ FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Pointer INPUT FEATURE_TYPE ___TOFILTER___ fme_type fme_point OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_POINT" FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Liner INPUT FEATURE_TYPE ___TOFILTER___ fme_type fme_line OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_LINE" FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Arear INPUT FEATURE_TYPE ___TOFILTER___ fme_type fme_area OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_AREA" FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Arcer INPUT FEATURE_TYPE ___TOFILTER___ fme_type fme_arc OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_ARC" FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Texter INPUT FEATURE_TYPE ___TOFILTER___ fme_type fme_text OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_TEXT" FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Ellipser INPUT FEATURE_TYPE ___TOFILTER___ fme_type fme_ellipse OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_ELLIPSE" FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_Nuller INPUT FEATURE_TYPE ___TOFILTER___ fme_type fme_no_geom OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_NULL" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter LINE Input Collector" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_LINE" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_LINE" MACRO LoopFilter_WORKSPACE_NAME $(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter MACRO $(LoopFilter_WORKSPACE_NAME)_XFORMER_NAME $(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter MACRO $(LoopFilter_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(LoopFilter_WORKSPACE_NAME)___COMPOUND_PARAMETERS INCLUDE_CUSTOM_TRANSFORMER_VER LoopFilter:1 FACTORY_DEF * TeeFactory FACTORY_NAME "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter PASSED Output Renamer/Nuker" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_PASSED" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_PASSED" FACTORY_DEF * TeeFactory FACTORY_NAME "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter FAILED Output Renamer/Nuker" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_FAILED" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_FAILED" FACTORY_DEF * TeeFactory FACTORY_NAME "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter NON-LINEAR Output Renamer/Nuker" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_NON-LINEAR" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_FAILED" TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER_OUTPUT" "acX1" @Coordinate(x,"0",FLATTEN_AGGREGATE) "acY1" @Coordinate(y,"0",FLATTEN_AGGREGATE) @SupplyAttributes("acZ1",-9999) OUTPUT FAILED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER_OUTPUT" "acX1" @Coordinate(x,"0",FLATTEN_AGGREGATE) "acY1" @Coordinate(y,"0",FLATTEN_AGGREGATE) "acZ1" @Coordinate(z,"0",FLATTEN_AGGREGATE) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER_2 INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER_OUTPUT" TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER_2_OUTPUT" "acX2" @Coordinate(x,"-1",FLATTEN_AGGREGATE) "acY2" @Coordinate(y,"-1",FLATTEN_AGGREGATE) @SupplyAttributes("acZ2",-9999) OUTPUT FAILED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER_2_OUTPUT" "acX2" @Coordinate(x,"-1",FLATTEN_AGGREGATE) "acY2" @Coordinate(y,"-1",FLATTEN_AGGREGATE) "acZ2" @Coordinate(z,"-1",FLATTEN_AGGREGATE) # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_2 INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_COORDINATEFETCHER_2_OUTPUT" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_2_OUTPUT" "acAngle" @Evaluate("acos((&acX2-&acX1)/sqrt(pow((&acY2-&acY1),2) + pow((&acX2-&acX1),2)))* (180/3.1415926535897932)") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_6 INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_2_OUTPUT" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_6_OUTPUT" "acAngle" @Evaluate("((&acY2-&acY1)<0)?(360-&acAngle):(&acAngle)") # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_TESTER INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_6_OUTPUT" TEST "&acAngle" > "90" BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_PASSED" OUTPUT FAILED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_FAILED" # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_TESTER_2 INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_PASSED" TEST "&acAngle" > "270" BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_2_PASSED" OUTPUT FAILED FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_2_FAILED" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_3 INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_FAILED" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_2_FAILED" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_3_OUTPUT" "acAzimuth" @Evaluate("90 - &acAngle") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_5 INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_TESTER_2_PASSED" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_5_OUTPUT" "acAzimuth" @Evaluate("450 - &acAngle") # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO $(AzimuthCalculator_WORKSPACE_NAME)_ATTRIBUTEREMOVER_LIST_EXP "; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "{\[0-9\]+}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_ATTRIBUTEREMOVER INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_3_OUTPUT" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_EXPRESSIONEVALUATOR_5_OUTPUT" OUTPUT { FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_ATTRIBUTEREMOVER_OUTPUT" @RemoveAttributes(acX1,acX2,acY1,acY2,acZ1,acZ2) @RemoveAttributes(fme_regexp_match"$($(AzimuthCalculator_WORKSPACE_NAME)_ATTRIBUTEREMOVER_LIST_EXP)") } # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_LOGGER_2_Logger INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_LoopFilter_PASSED" OUTPUT FEATURE_TYPE * @Log("Feature is a loop",3,20) @FeatureType(__NUKE_LOGGED__) FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_LOGGER_2_Nuker INPUT FEATURE_TYPE __NUKE_LOGGED__ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_LOGGER_Logger INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_POINT" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_ARC" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_AREA" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_ELLIPSE" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_TEXT" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_GEOMETRYFILTER_NULL" OUTPUT FEATURE_TYPE * @Log("Feature is not a line",3,20) @FeatureType(__NUKE_LOGGED__) FACTORY_DEF * TeeFactory FACTORY_NAME $(AzimuthCalculator_WORKSPACE_NAME)_LOGGER_Nuker INPUT FEATURE_TYPE __NUKE_LOGGED__ FACTORY_DEF * TeeFactory FACTORY_NAME "$(AzimuthCalculator_WORKSPACE_NAME)_AZIMUTH1550077055 Output Collector" INPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_ATTRIBUTEREMOVER_OUTPUT" OUTPUT FEATURE_TYPE "$(AzimuthCalculator_WORKSPACE_NAME)_AZIMUTH" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(AzimuthCalculator_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "AzimuthCalculator AZIMUTH Output Renamer/Nuker" INPUT FEATURE_TYPE AzimuthCalculator_AZIMUTH OUTPUT FEATURE_TYPE AzimuthCalculator_AZIMUTH # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator INPUT FEATURE_TYPE AzimuthCalculator_AZIMUTH MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "length" "SET_TO" " 评估 长度 “}输出输出特性\类型属性创建器\输出特性\---------------------------------------工厂\定义*分拣工厂\名称分拣器输入特性\类型属性创建器\输出按长度排序\数值升序输出排序特性\类型分拣器\排序”-------------------------------------------------------------------------#如果我们做最后N个特征,则乘数为0。#如果我们做第一个N,乘数为-1。#对于随机,我们需要将最后N视为第一个N(即,有一个-1)#这就是为什么:在利率乘数中不存在。包括[如果{-1}=={0}&&{ORIGINAL}=={ORIGINAL}}{puts“宏实数模式最后”;将“宏观实际利率1”;}否则{将“宏实模式”置于原始状态;将“宏观实际利率[expr 1*(-1-1 : -1 ) ]"; } ] 工厂定义{*}采样工厂名称采样器命令\u参数\u评估单次通过采样率$(真实率)采样顺序$(真实模式)输入特征\u类型分类器\u排序输出采样特征\u类型\u采样\u输出非采样特征\u类型采样器\u 2\u非采样#此采样器是必需的,因为如果使用它,采样器仍将输出特征没有指定输出子句。#这样,即使变压器上没有输出连接,我们也能表现良好。请参阅PR#28886.FACTORY(定义)tee FACTORY(名称)采样器(输入特征)采样(类型)输出特征(输出特征)采样器(输出特征)(类型)(采样器)(采样(类型))()类型)采样器())(),我们需要将最后一个N视为第一个N(即a-1)#这是什么?:在利率乘数中不存在。包括[如果{{1}=={0}&&{ORIGINAL}=={ORIGINAL}}{puts“宏实数模式最后”;将“宏观实际利率3”;}否则{将“宏实模式”置于原始状态;将“宏观实际利率[expr 3*(1?1 : -1 ) ]"; } ] 工厂定义{*}采样工厂名称采样器\u 3命令\u参数\u评估单次通过采样率$(实数率)采样顺序$(实数模式)输入特征\u类型采样器\u 2\u非采样输出采样特征\u类型\u采样\uuuu35;之所以需要此工厂,是因为采样器在没有指定输出子句的情况下仍将输出特征。#这样,即使变压器上没有输出连接,我们也能表现良好。参见PR#28886.FACTORY#DEF*TeeFactory#u NAME Sampler#u 3#u Sampled INPUT FEATURE#u TYPE#u采样#u输出FEATURE#u TYPE Sampler#u 3#u Sampled#---------------------------------------------包括[if{{POLAR}=={CARTESIAN}{puts{MACRO offseter#u 3#u OFFSET@OFFSET(可拒绝,” "," "," ”)};} elseif {{POLAR} == {POLAR}} {puts {MACRO Offsetter_3_OFFSET @Offset(REJECTABLE,"POLAR","@EvaluateExpression(FDIV,FLOAT, 价值 新的 宽度 - 价值 SS. Offsetter_3)”、“@EvaluateExpression (FDIV浮动, 价值 acAngle + 90, Offsetter_3)”)};} elseif {{POLAR} == {SPHERICAL}} {puts {MACRO Offsetter_3_OFFSET @Offset(REJECTABLE,"POLAR"," "," "," “)};}其他{{放MACRO Offsetter_3_OFFSET @Offset(不合格” "," "," “)};}] FACTORY_DEF * TeeFactory FACTORY_NAME Offsetter_3_OffsetterInput INPUT FEATURE_TYPE Sampler_3_SAMPLED OUTPUT FEATURE_TYPE ___TOOFFSETTER___ FACTORY_DEF * TeeFactory FACTORY_NAME Offsetter_3_Offsetter INPUT FEATURE_TYPE ___TOOFFSETTER___ @RenameAttributes(FME_STRICT,___ fme_rejection_code ___,fme_rejection_code)OUTPUT FEATURE_TYPE ___TOREJECTOR___ $(Offsetter_3_OFFSET)FACTORY_DEF * TestFactory中FACTORY_NAME Offsetter_3_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST@Value(fme_reimpe_code)!=“”输出传递feature_type offsetter_3_ @RemoveAttributes(___ fme_rejection_code___)OUTPUT失败FEATURE_TYPE Offsetter_3_Offset @RenameAttributes(FME_STRICT,fme_rejection_code,___ fme_rejection_code___)FACTORY_DEF * TestFactory中FACTORY_NAME Offsetter_3_PointCloudOffsetter INPUT FEATURE_TYPE Offsetter_3_Offset测试与fme_type == “fme_point_cloud” TEST “”!= “” BOOLEAN_OPERATOR和输出PASSED FEATURE_TYPE Offsetter_3_OFFSET @TransformPointCloud(OFFSET,)OUTPUT FAILED FEATURE_TYPE Offsetter_3_OFFSET FACTORY_DEF * TeeFactory FACTORY_NAME “Offsetter_3 OFFSET分配器” INPUT FEATURE_TYPE Offsetter_3_OFFSET OUTPUT FEATURE_TYPE Offsetter_3_OFFSET_0_yfbNNeM9hGk = OUTPUT FEATURE_TYPE Offsetter_3_OFFSET_1_LnNMNyuXNyo = DEFAULT_MACRO _WB_BYPASS_TERMINATION否FACTORY_DEF * TeeFactory FACTORY_NAME Offsetter_3_ 输入FEATURE_TYPE Offsetter_3_ 输出失败feature_type * @abort(编码,offsetter_3 输出 一种 拒绝了 特征。 继续 翻译 特征 拒绝 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 ) # ------------------------------------------------------------------------- FACTORY_DEF * ExtensionFactory FACTORY_NAME LineExtender_2输入FEATURE_TYPE Offsetter_3_OFFSET_0_yfbNNeM9hGk = EXTENSION_LENGTH @EvaluateExpression (FDIV、浮点数、 价值 新的 长度 - 价值 LS. ,LineExtender_2)” REJECT_INVALID_GEOM是开始输出FEATURE_TYPE LineExtender_2_BEGINNING OUTPUT拒绝的FEATURE_TYPE LineExtender_2_ 默认\u宏\u WB\u旁路\u终端无工厂\u DEF*t工厂\u名称LineExtender\u 2_ 输入FEATURE_TYPE LineExtender_2_ 输出失败FEATURE_TYPE * @Abort(ENCODED, LineExtender_2 输出 一种 拒绝了 特征。 继续 翻译 特征 拒绝 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 )#-------------------------------------------------------------包括[if{{POLAR}=={CARTESIAN}}{put{MACRO offseter_OFFSET@OFFSET(可拒绝) "," "," “)};} elseif的{{POLAR} == {POLAR}} {{放MACRO Offsetter_OFFSET @Offset(不合格,” 极性 “” @ EvaluateExpression(FDIV,FLOAT, 价值 新的 长度 - 价值 LS. ,offsetter)“,”@ evaluateExpression(FDIV,Float, 价值 acAngle +90,偏移量“)};}elseif{{POLAR}=={spheremic}{put{MACRO offseter_OFFSET@OFFSET(可拒绝,“POLAR”,” "," "," ”)};} else {{MACRO Offsetter_OFFSET @Offset(REJECTABLE,")} "," "," “)};}] FACTORY_DEF * TeeFactory FACTORY_NAME Offsetter_OffsetterInput INPUT FEATURE_TYPE Sampler_2_SAMPLED OUTPUT FEATURE_TYPE ___TOOFFSETTER___ FACTORY_DEF * TeeFactory FACTORY_NAME Offsetter_Offsetter INPUT FEATURE_TYPE ___TOOFFSETTER___ @RenameAttributes(FME_STRICT,___ fme_rejection_code ___,fme_rejection_code)OUTPUT FEATURE_TYPE ___TOREJECTOR___ $(Offsetter_OFFSET)FACTORY_DEF * TestFactory中FACTORY_NAME Offsetter_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST@Value(fme_reimpe_code)!=“”输出传递Feature_type offsetter_ @RemoveAttributes(uuuuu fme_uRejection_uuu代码)输出失败的功能类型Offseter_uOffset@RenameAttributes(fme严格,fme_uRejection_u代码,fme_uuuRejection_uuu代码)工厂定义*测试工厂名称Offseter_pointCloudOffseter输入功能类型Offseter_uOffseter_uOffset测试和fme_u类型=“fme_uPoint_cloud”测试!“布尔运算符和输出传递特征类型偏移器偏移@TransformPointCloud(偏移,)输出失败的功能\u类型偏移器\u偏移工厂\u定义*T工厂\u名称“偏移器偏移拆分器”输入功能\u类型偏移器\u偏移输出功能\u类型偏移器\u偏移量\u 0\u W5NRx4Ntgk0=输出功能\u类型偏移器\u偏移量\u 1\u wI9Izqc5xFA=默认\u宏\u WB\u旁路\u终止无工厂\u定义*T工厂\u名称偏移器_ 输入FEATURE_TYPE Offsetter_ 输出失败FEATURE_TYPE * @Abort(编码Offsetter 输出 一种 拒绝了 特征。 继续 翻译 特征 拒绝 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 ) # ------------------------------------------------------------------------- FACTORY_DEF * ExtensionFactory FACTORY_NAME LineExtender输入FEATURE_TYPE Offsetter_OFFSET_0_W5NRx4Ntgk0 = EXTENSION_LENGTH @EvaluateExpression (FDIV、浮点数、 价值 新的 宽度 - 价值 SS. LineExtender)”REJECT_INVALID_GEOM Yes OUTPUT END FEATURE_TYPE LineExtender_END OUTPUT REJECTED FEATURE_TYPE LineExtender_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * tefactory FACTORY_NAME LineExtender_ . DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * tefactory FACTORY_NAME LineExtender_ . DEFAULT_MACRO _WB_BYPASS_TERMINATION 输入feature_type lineextender_ 输出失败的功能\u TYPE*@Abort(编码,LineExtender 输出 一种 拒绝了 特征。 继续 翻译 特征 拒绝 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 ) # ------------------------------------------------------------------------- DEFAULT_MACRO Aggregator_BREAK_ATTR FACTORY_DEF {*} AggregateFactory FACTORY_NAME Aggregator INPUT FEATURE_TYPE LineExtender_END INPUT FEATURE_TYPE LineExtender_2_BEGINNING INPUT FEATURE_TYPE Offsetter_OFFSET_1_wI9Izqc5xFA= INPUT FEATURE_TYPEOffsetter_3_OFFSET_1_LnNMNyuXNyo= INPUT FEATURE_TYPE Chopper_CHOPPED_1_wh4tmndh/OY= MODE ONE_LEVEL $(Aggregator_BREAK_ATTR) REMOVE_GEOMETRY NO ACCUMULATE_ATTRIBUTES One LIST_ATTRS_TO_INCLUDE { list_attrs_to_include_mode. 分隔器 PRODUCE_MULTIS是的输出总FEATURE_TYPE Aggregator_AGGREGATE # ------------------------------------------------------------------------- # 检查是否我们要做最小边界框计算包括(如果{{MINBB} = = {MINBB}}{把{宏BoundingBoxReplacer_2_BBFunc @Bounds (MIN_BOUNDING,)};} else {{MACRO BoundingBoxReplacer_2_BBFunc @Bounds(BOUNDING_BOX_AXIS_ALIGNED,,)};}] FACTORY_DEF * TeeFactory FACTORY_NAME BoundingBoxReplacer_2输入FEATURE_TYPE Aggregator_AGGREGATE输出FEATURE_TYPE BoundingBoxReplacer_2_BOX @Force2D () $ (BoundingBoxReplacer_2_BBFunc ) # ------------------------------------------------------------------------- # 假设是工作区临时dir已经设置和创建。参见ControlDefs .cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [set sa亚搏在线feName "[regsub -all {[^a-zA-Z0-9]} {BoundingBoxReplacer_2_Box} _]_[expr round(rand() * 1000000)]_[clock click -milliseconds]";MACRO SAFE_F亚搏在线FS_NAME $safeName;] FACTORY_DEF {*} InspectorFactory FACTORY_NAME BoundingBoxReplacer_2_Box_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE BoundingBoxReplacer_2_BOX GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY {} GROUP_ATTRIBUTE_PREFIX {BoundingBoxReplacer_2_BOX} 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 BoundingBoxReplacer_2_Box_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 length,varchar 255. ,\u创建\u实例,varchar 255. 、新 宽度、varchar 255. 、新 长度,VARCHAR 255. ,ls,varchar 255. 党卫军,varchar 255. 值,varchar 255. 是的,瓦查尔 255. ,_remnant,VARCHAR 255. ,_isloop,varchar 255. 、acAngle varchar 255. ,acazimuth,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__