该变压器接受任何功能,但不具备区域几何要素将不被使用。
每天产生的点会举行由包含点空间的输入区域特征举行属性。
如果点是在同一组包含在由两个或更多个区域(即的区域被重叠),则属性将从它们中的任何一个被迁移。
注意:
这是一个实验变压器。将它添加到您的工作区之前,检查不够的实施是否适合你的目的。
实施已经被这个线程FME社区答案启发。亚搏国际在线官网
在FME分层随机点
http://fmepedia.亚搏在线safe.亚搏国际在线官网com/CommunityAnswers?id=906a0000000d3suAAA
#!DOC_EXTENTS = “ ”!#DOC_DYNAMIC_INPUT_ATTRS =“ 0" 7206 2113” #DOC_TOP_LEFT =! “ - ”!#FME_DOCUMENT_GUID = “1425 -1553 f43efd25-5719-4db2-abd9-7f56543c38fb”!#FME_DOCUMENT_PRIORGUID =“f8108d54-3033-47f9-8884-2d177ad47848" #! FME_PROCESS_COUNT="NO_PARALLELISM" #! FME_PROCESS_GROUPS_ORDERED="No" #! FME_PROCESS_GROUP_BY="" #! FMX_ATTRIBUTE_PROPOGATION_MODE="AUTO" #! HISTORY="2014-09-20,Takashi参数
通过...分组:
应该用来组输入功能,选择属性。
点数:
指定的点数将被创建。
如果指定了“集团通过”参数,这个参数是指每一个组的点数。
否则,就意味着要创建点的总数。
! “!#USE_MARKDOWN =””#VIEW_POSITION = “ - 300.003 584.381” #XFORM_DEPRECATED = “否” #ZOOM_SCALE = “100” #>#!!!属于同一组的每个盒子的点密度将近似相同。
“#!位置=” 294 -686" #!= TOP_LEFT “294 -686” #!BOTTOM_RIGHT = “1195 -794” #!BOUNDING_RECT = “294 901 -686 108” #!ORDER = “5000000亿” #!FOLLOW_ANCHOR =“真” #!INFO_NODE = “假” #!COLOR = “1,1,0.78431372549019607,0.19215686274509805” #!SIZE_POLICY = “10” #!ANCHORED_NODE = “0” #!/>#!随机点生成器.分组依据拉彭德 价值观 口蹄疫 属性 返回 参加 价值观 _ 宏复印机@tcl2(“”)include[if{[string length{}==0}{puts{macro copier 1}}}宏输出ttr“randompointgenerator.group\u id”include[if{[string length{randompointgenerator.group\u id}==0}{puts{macro outputtr}factory\u def*teefactory factory\u name$(randompointgenerator\u workspace)tclu调用方输入功能“$(randompointgenerator_workspace_name)_parameterfetcher_output”份数$(copier)输出功能_type“$(randompointgenerator_workspace_name)_tccaller_output”$(outputtr)@tcl2(“concatgroupbyattributevalues”)——$(randompointgenerator_workspace_name)_sorter input feature_type“$(randompointgenerator_workspace_name)_tccaller_output“sort_by randompointgenerator.group_id alpha升序输出sorted feature_type”$(randompointgenerator_workspace_name)_sorter“factory_def*teefactory factory_name”$(randompointgenerator_workspace_name)_sorter排序拆分器“input feature_type”$(randompointgenerator_workspace_name)_sorted“output feature_type”$(randompointgenerator_workspace_name)_sorted_0_xvks7a8ajxe=“output feature_type”$(randompointgenerator_workspace_name)_sorted_sorted_1_+dzoi37hm=”(randompointgenerator_workspace_name)_sorted---包括[设置宏行“宏$(randompointgenerator\u workspace\u name)\u attributeremover\u list\u exp”;foreach公司 attr[split”“]{设置attr[fme_decodetext$attr];设置attr[regsub{}$“$attr{}.*”];设置attr[regsub-all”{}“$attr”{\[0-9\]+}“];追加宏行“,^$attr$”;};放入$macroline;]工厂定义{*}teefactory工厂名称$(randompointgenerator工作区名称)_attributeremover输入特性_type“$(randompointgenerator工作区名称)_sorter _1_u+dzrsoi37hm=”输出{feature _type“$(randompointgenerator工作区名称)_attributeremove输出“@removettributes(randompointgenerator.group_by)@移除属性(fme_regexp_match“$($(randomPointGenerator_workspace_name)_attributeRemover_list_exp)”))}-----------------------------包括[设置宏行”宏$(randomPointGenerator_workspace_name)_attributeKeeper_4bf665a2_3179_4d7e_95d7_81f69b9c64ab17_list_exp);foreach公司 attr[split”“]{设置attr[fme_decodetext$attr];设置attr[regsub{}$“$attr{}.*”];设置attr[regsub-all”{}“$attr”{\[0-9\]+}“];追加宏行“,^$attr$”;};放入$macroline;]工厂定义{*}teefactory工厂名称$(randompointgenerator工作区名称)_attributekeeper input feature_type“$(randompointgenerator工作区名称)_sorted_0_xvks7a8ajxe=”output{feature_type“$(randompointgenerator工作区名称)_attributekeeper_output“@keepattributes(randompointgenerator.group_id,fme_regexp_match,“^fme$($(randompointgenerator_workspace_name)_attributekeeper_4bf665a2_3179_4d7e_95d7_81f69b9c64ab17_list_exp)”)}` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `“$(randompointgenerator_workspace_name)_attributekeeper_output”attr_accum_mode“handle_conflict”attr_conflict_res“incoming_conflict”incoming_if_conflict“incoming_prefix” “递归是SPLIT_COMPOSITES无INSTANTIATE_GEOMETRY_INSTANCES_NEW没有SET_FME_TYPE是输出点FEATURE_TYPE ”$(RandomPointGenerator_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED“ 输出线路FEATURE_TYPE ”$(RandomPointGenerator_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED“ 输出面FEATURE_TYPE ”$(RandomPointGenerator_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED“ 输出DONUT FEATURE_TYPE ”$(RandomPointGenerator_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED“ OUTPUT AGGREGATE FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED" # ------------------------------------------------------------------------- FACTORY_DEF * TransformFact:3:AreaOnAreaOverlayer FACTORY_NAME "$(RandomPointGenerator_WORKSPACE_NAME)_AreaOnAreaOverlayer" FACTORY_META_PARAMS TRANSFORMER_NAME:"$(RandomPointGenerator_WORKSPACE_NAME)_AreaOnAreaOverlayer" TRANSFORMER_PARAMS:XFORMER_NAME,$(RandomPointGenerator_WORKSPACE_NAME)_AreaOnAreaOverlayer,TRANSFORMER_GROUP,,PARAMETERS_GROUP,,GRP_BY,randompointgenerator.group_id,OVC_ATTR,,LIST_NAME, PROCESS_GROUP_BY randompointgenerator.group_id MULTI_PROCESS "NO_PARALLELISM" GROUPS_ARE_ORDERED Yes INPUT AREA FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_Deaggregator_DEAGGREGATED" OUTPUT AREA FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_AreaOnAreaOverlayer_AREA" # ------------------------------------------------------------------------- INCLUDE [ if { ({Plane Area} == {Sloped Area}) } { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_func @Area(REJECTABLE,SLOPED_AREAS,"1")}; } else { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_func @Area(REJECTABLE,"1")}; } ] FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_AreaOnAreaOverlayer_AREA" @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "_area1" $($(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_func) FACTORY_DEF * TestFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT FAILED FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_OUTPUT" @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) # ------------------------------------------------------------------------- # check if we have to do the min bounding box calculation INCLUDE [ if { {BB} == {MINBB} } { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_BBFunc @Bounds(MIN_BOUNDING,,)}; } else { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_BBFunc @Bounds(___MINX,___MAXX,___MINY,___MAXY,___MINZ,___MAXZ,GEOMETRIC) @Tcl2($(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_3b70c597_eb62_483b_ade4_e7f9ad09641e17_set_geom_and_type)}; } ] Tcl2 proc $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_3b70c597_eb62_483b_ade4_e7f9ad09641e17_set_geom_and_type {} { if {[FME_Coordinates numCoords] > 0} { FME_Execute RemoveGeometry; set minX [FME_GetAttribute ___MINX]; set minY [FME_GetAttribute ___MINY]; set maxX [FME_GetAttribute ___MAXX]; set maxY [FME_GetAttribute ___MAXY]; if { [string is double $minX] && [string is double $maxX] } { set xSame [expr $minX == $maxX] } else { set xSame [string equal $minX $maxX] }; if { [string is double $minY] && [string is double $maxY] } { set ySame [expr $minY == $maxY] } else { set ySame [string equal $minY $maxY] }; FME_Coordinates addCoord $minX $minY; if {$xSame && $ySame} { FME_Execute GeometryType fme_point; FME_SetAttribute fme_type fme_point } elseif {$xSame || $ySame} { FME_Coordinates addCoord $maxX $maxY; FME_Execute GeometryType fme_line; FME_SetAttribute fme_type fme_line } else { FME_Coordinates addCoord $minX $maxY; FME_Coordinates addCoord $maxX $maxY; FME_Coordinates addCoord $maxX $minY; FME_Coordinates addCoord $minX $minY; FME_Execute GeometryType fme_polygon; FME_SetAttribute fme_type fme_area }; FME_UnsetAttributes ___MINX ___MAXX ___MINY ___MAXY ___MINZ ___MAXZ; set width [expr $maxX - $minX]; set length [expr $maxY - $minY]; if {$width > $length} { set temp $length; set length $width; set width $temp; }; if { {} != {} } { FME_SetAttribute {""} $width; }; if { {} != {} } { FME_SetAttribute {""} $length; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_OUTPUT" OUTPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_BOX" @Force2D() $($(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_BBFunc) # ------------------------------------------------------------------------- FACTORY_DEF * TransformFact:11:Dissolver FACTORY_NAME "$(RandomPointGenerator_WORKSPACE_NAME)_Dissolver" FACTORY_META_PARAMS TRANSFORMER_NAME:"$(RandomPointGenerator_WORKSPACE_NAME)_Dissolver" TRANSFORMER_PARAMS:XFORMER_NAME,$(RandomPointGenerator_WORKSPACE_NAME)_Dissolver,TRANSFORMER_GROUP,,GROUP_BY,randompointgenerator.group_id,PARAMETERS_GROUP,,DIS_ATTR,,ATTR_ACCUM_GROUP,,ACCUM_INPUT_ATTRS,No,SUM,_area1,AV,,WEIGHT,,LIST_NAME,,PARAMETERS_GROUP_ADVANCED,,NO_OVRLP,No PROCESS_GROUP_BY randompointgenerator.group_id MULTI_PROCESS "NO_PARALLELISM" GROUPS_ARE_ORDERED Yes INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_BOX" OUTPUT AREA FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_Dissolver_AREA" # ------------------------------------------------------------------------- # check if we have to do the min bounding box calculation INCLUDE [ if { {BB} == {MINBB} } { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2_BBFunc @Bounds(MIN_BOUNDING,,)}; } else { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2_BBFunc @Bounds(___MINX,___MAXX,___MINY,___MAXY,___MINZ,___MAXZ,GEOMETRIC) @Tcl2($(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2_c4ed665e_8a05_497b_9106_7bd2ada2aac117_set_geom_and_type)}; } ] Tcl2 proc $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2_c4ed665e_8a05_497b_9106_7bd2ada2aac117_set_geom_and_type {} { if {[FME_Coordinates numCoords] > 0} { FME_Execute RemoveGeometry; set minX [FME_GetAttribute ___MINX]; set minY [FME_GetAttribute ___MINY]; set maxX [FME_GetAttribute ___MAXX]; set maxY [FME_GetAttribute ___MAXY]; if { [string is double $minX] && [string is double $maxX] } { set xSame [expr $minX == $maxX] } else { set xSame [string equal $minX $maxX] }; if { [string is double $minY] && [string is double $maxY] } { set ySame [expr $minY == $maxY] } else { set ySame [string equal $minY $maxY] }; FME_Coordinates addCoord $minX $minY; if {$xSame && $ySame} { FME_Execute GeometryType fme_point; FME_SetAttribute fme_type fme_point } elseif {$xSame || $ySame} { FME_Coordinates addCoord $maxX $maxY; FME_Execute GeometryType fme_line; FME_SetAttribute fme_type fme_line } else { FME_Coordinates addCoord $minX $maxY; FME_Coordinates addCoord $maxX $maxY; FME_Coordinates addCoord $maxX $minY; FME_Coordinates addCoord $minX $minY; FME_Execute GeometryType fme_polygon; FME_SetAttribute fme_type fme_area }; FME_UnsetAttributes ___MINX ___MAXX ___MINY ___MAXY ___MINZ ___MAXZ; set width [expr $maxX - $minX]; set length [expr $maxY - $minY]; if {$width > $length} { set temp $length; set length $width; set width $temp; }; if { {} != {} } { FME_SetAttribute {""} $width; }; if { {} != {} } { FME_SetAttribute {""} $length; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2 INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_Dissolver_AREA" OUTPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2_BOX" @Force2D() $($(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2_BBFunc) # ------------------------------------------------------------------------- INCLUDE [ if { ({Plane Area} == {Sloped Area}) } { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_2_func @Area(REJECTABLE,SLOPED_AREAS,"1")}; } else { puts {MACRO $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_2_func @Area(REJECTABLE,"1")}; } ] FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_2 INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_BoundingBoxReplacer_2_BOX" @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "_area2" $($(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_2_func) FACTORY_DEF * TestFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_2_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT FAILED FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_2_OUTPUT" @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) # ------------------------------------------------------------------------- DEFAULT_MACRO __$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_0f0e3a3d_e16d_42d6_bdd5_950d5381999417_GROUP_BY MACRO __$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_0f0e3a3d_e16d_42d6_bdd5_950d5381999417_GROUP_BY randompointgenerator.group_id DYNAMIC_FUNCTION_CONFIGURATION Python FMEOBJECTS DYNAMIC_FUNCTION_CONFIGURATION Python import StatisticsCalculator DYNAMIC_FUNCTION_CONFIGURATION Python "StatisticsCalculator.connectTransformer( '$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator',{ 'GROUP_BY_MACRO':'__$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_0f0e3a3d_e16d_42d6_bdd5_950d5381999417_GROUP_BY', 'GROUP_BY':'randompointgenerator.group_id', 'STATS_ATTRS':'_area1 _area2', 'SUM_ATTR':'_sum', 'COMPUTE_HISTOGRAM':'NO', 'HISTO_ATTR':' ”, 'PREPEND_ATTR_NAME': '是的',无:无})” FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_InputProcessor INPUT FEATURE_TYPE “$(RandomPointGenerator_WORKSPACE_NAME)_AreaCalculator_2_OUTPUT” 输出FEATURE_TYPE __ORIGINAL__ @Python(StatisticsCalculator.recordFeature,$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator) FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_UnneededInputNuker INPUT FEATURE_TYPE __ORIGINAL__ OUTPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE" FACTORY_DEF * SortFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_CompleteOutputter INPUT FEATURE_TYPE __UNUSED_INPUT_TO_GUARANTEE_FACTORY_DOESNT_CONSUME_EVERYTHING__ INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE" OUTPUT SORTED FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE" @Python(StatisticsCalculator.summarizeStatistics,$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator,__ORIGINAL__) FACTORY_DEF * CreationFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_SummaryCreator CREATE_AT_END NUMBER_TO_CREATE 1 FACTORY_DEF * ElementFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_SummaryExploder LIST_NAME $(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_stats{} MODE LEAN_AND_MEAN CLONE_GEOMETRY no INPUT FEATURE_TYPE __UNUSED_INPUT_TO_GUARANTEE_FACTORY_DOESNT_CONSUME_EVERYTHING__ # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_BoundsExtractor INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE" OUTPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_BoundsExtractor_OUTPUT" @Bounds(_xmin,_xmax,_ymin,_ymax,,,GEOMETRIC) # ------------------------------------------------------------------------- FACTORY_DEF * AttrSetFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_AttributeCreator_2 ATTRSET_PROPAGATE_MISSING YES INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_BoundsExtractor_OUTPUT" ATTR _num_group FME_CONDITIONAL:DEFAULT_VALUE' 评估 1.0 * $($(RandomPointGenerator_WORKSPACE_NAME)_NUM_POINTS $编码)* 值 _area2._sum 值 _区域1.总和 '布尔运算;或;复合运算; ;测试 评估 1.0 * $($(RandomPointGenerator_WORKSPACE_NAME)_NUM_POINTS $编码)* 值 _area2._sum 值 _区域1.总和 <$($(RandomPointGenerator_WORKSPACE_NAME)_MIN_NUM) '$($(RandomPointGenerator_WORKSPACE_NAME)_MIN_NUM)' FME_NUM_CONDITIONS2 ___ ATTR _ratio 评估 双重的 值 _区域2 值 _area2._sum ATTR _width 评估 值 _ x最大值 - 值 _圣诞节 ATTR _height 评估 值 _ Ymax公司 - 值 _伊敏 输出输出FEATURE_TYPE “$(RandomPointGenerator_WORKSPACE_NAME)_AttributeCreator_2_OUTPUT” #------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_ExpressionEvaluator INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_AttributeCreator_2_OUTPUT" OUTPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" "_num" "@EvaluateExpression(FLOAT, INT 小区 $($(RandomPointGenerator_WORKSPACE_NAME)_DENSIFY_FACTOR $编码)* 值 _num_group * 值 _比 ,$(RandomPointGenerator_WORKSPACE_NAME)_ExpressionEvaluator)”#------------------------------------------------------------------------- FACTORY_DEF * VertexCreatorFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_VertexCreator INPUT FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" MODE REPLACE INDEX 0 CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FLOAT, 值 _圣诞节 ,$(RandomPointGenerator_WORKSPACE_NAME)_VertexCreator) “利用yval” @EvaluateExpression(FLOAT, 值 _伊敏 我是说,$(randompointgenerator_workspace_name)_vertexator)“输出特性_type”$(randompointgenerator_workspace_name)_vertexator_output“”--包括[设置宏行”宏(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator工作区名称)$(RandomPointGenerator MacroLine工作区名称);(App放入$macroline;]工厂定义{*}teefactory工厂名称$(randompointgenerator工作区名称)_attributekeeper_2输入功能_type“$(randompointgenerator工作区名称)_vertepacator_output“输出{feature_type”$(randompointgenerator工作区名称)_attributekeepertibutes(randompointgenerator.group_id,_width,_height,_num,FME_regexp_匹配,“^fme”($(randompointergenerator_workspace_name)u attributekeeper_2_63e70ba1_909c_4708_b89d_257409;f8d1c417_list_exp)”)}` ` ` ` ` `,工厂定义*测试工厂名称$(randompointergenerator_workspace_name)_cloner_checkcopies输入功能_type”“$(randompointgenerator_workspace_name)_attributekeeper_2_output”test“@evaluateexpression(float, 值 _数字 ,$(randompointgenerator_workspace_name)_cloner)“type int编码的输出传递特性_type_u tooutput_uu factory_u name$(randompointgenerator_workspace_u name)_cloner输入特性_type_u tooutput_u copies”@evaluateexpression(float, 值 _数字 我是说,$(randompointgenerator_workspace_name)_cloner)“输出功能_type”$(randompointgenerator_workspace_name)_cloner_copy”——“$(randompointgenerator_workspace_name)_cloner_copy”输出功能_type$(randompointgenerator_workspace_name)_offsetter_offset@offset(“@evaluateexpression(float, 兰特 * 值 _宽度 ,$(randomPointGenerator_workspace_name)_offsetter)“,”@evaluateExpression(float, 兰特 * 值 _高度 ,$(randompointgenerator_workspace_name)“,”0“)工厂定义*测试工厂工厂名称$(randompointgenerator_workspace_name)_offsetter_pointcloudoffetter输入功能$(randompointgenerator_workspace_name)_offsetter测试&fme_type==”fme_point_cloud“测试”!=“”布尔运算符和输出传递的特征类型“$(randompointgenerator_workspace_name)_offsetter_offset”@transformpointcloud(offset,)输出失败的功能“u type”$(randomPointGenerator_workspace_name)_offseter_offset”-----------------------------------包括[set macroline”宏$(randomPointGenerator_workspace_name)_attributeKeeper_3_4fae0479_9004_4517_8cdd_8c97a8790fe217_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;]工厂定义{*}teefactory工厂名称$(randompointgenerator工作区名称)_attributekeeper_3输入特征_type“$(randompointgenerator工作区名称)_offsetter偏移量“输出{feature_type”$(randompointgenerator工作区名称)_attributekeeper_3_输出”@keepattributes(randompointgenerator.group_id,fme_regexp_match,“^fme”($(randompointgenerator_workspace_name)_attributekeeper_3_4fae0479_9004_4517_8cdd_8c97a8790fe217_list_exp)”)}` ` ` ` `,工厂定义{*}空间过滤器工厂名称$(randompointgenerator_workspace_name)_spatialfilter input base feature_type“$(randompointgenerator_workspace_name)_attributeremover_output”输入候选特征_type“$(randompointgenerator_workspace_name)_attributekeeper_3_output”谓词“相交”使用_bounding_box no multiple_base yes merge_base_attr yes boolean_运算符或维度2 group_by{randompointgenerator.group_id}curve_boundary_ru规则”endpoints_mod2 output passed feature_type“$(randompointgenerator_workspace_name)_spatialfilter_passed”-----------------------------------factory_def*teefactory factory_name$(randompointgenerator_workspace_name)_expressionevaluator_2 input feature_type“$(randompointgenerator_workspace_name)_spacealfilter_passed”output feature_type“$(randompointgenerator_workspace_name)_expressionevaluator_2_output”“randompointgenerator.rand”“@evaluateexpression(float, 兰特 我是说,$(randompointgenerator_workspace_name)_expressionevaluator_2)“”------------------------------工厂定义*排序工厂工厂名称$(randompointgenerator_workspace_name)_sorter_2输入功能_type”$(randompointgenerator_workspace_name)_expressionevaluator_2_output“排序依据”randompointgenerator.group_id alpha ascending randompointgenerator.rand数值升序输出排序功能_type“$(randompointgenerator_workspace_name)_sorter”_2_sorted“$(randompointgenerator_workspace_name)貅——]工厂定义{*}采样工厂工厂名称$(randompointgenerator工作区名称)}采样率$(实数率)按{randompointgenerator.group id}输入功能类型“$(randompointgenerator工作区名称)}排序的组“输出采样功能类型采样”;需要此teefactory,因为采样器仍将输出采样如果未指定输出子句,则为特征。#这样,即使变压器上没有输出连接,我们也会表现得很好。见PR 28886。工厂名称$(随机点生成器工作区名称)$(采样点生成器工作区名称)$(随机点生成器工作区名称)$(随机点生成器工作区名称)$(采样点生成器工作区名称)$(采样点生成器工作区名称)$(采样点生成器工作区名称)$(采样点生成器工作区名称)$(工厂名称)$(randompointgenerator_workspace_name)_bulkattributeremover input feature_type“$(randompointgenerator_workspace_name)_sampler_sampled”output feature_type“$(randompointgenerator_workspace_name)_bulkattributeremover_output”@removeattributes(fme_regexp_match,randompointgenerator.)factory_def*teefactory factory_name“$(randompointgenerator_workspace_name)_point1550264756 output collector“input feature_type”$(randompointgenerator_workspace_name)_bulkattributeremover_output“output feature_type”$(randompointgenerator_workspace_name)_point”include[放置宏wb_current_context$(wb_old_context_$(randompointgenerator_workspace_name))})factory_def*teefactory factory_name“randompointgenerator point output renamer/nuker”输入功能_type randompointgenerator_point output feature_type randompointgenerator_point创建此变压器将使用。#因为@count本身将对表达式求值以计算域,所以我们不需要在tcl中对每个特性执行任何操作,包括[set domainprefix{};如果{global}={local}{{set domainprefix[fme编码文本{counter};};将“宏计数器{full}域${domainprefix}计数器”;]factory_def*executeFunctionFactory_name counter_rejector input feature_type randompointgenerator_point function_definition@count(带_标志的可拒绝的,fme_编码的,$(counter_full_domain),“0”)result_attribute“point_id”output complete feature_type counter_output rejected feature_type counter_ 工厂名称“计数器 变压器输出核”输入特性计数器_ #如果存在,则从特征中删除坐标系。tcl2过程csmapreprojector_2_2_2_2;coordsysremover{}{全局fme_6 coordsys;设置fme_coordsys{};}宏csmapreprojector_2_remove_cs macro csmapreprojector_2_transformation仅当选择了源坐标系时传递转换包括[如果{{}!={}{放置{宏csmapreprojector_2_2_6 remove_6 cs@tcl2(csmapreprojector_2_6 coordsysremover)};将{macro csmapreprojector_2_转换' “};};]factory_def*teefactory factory_name csmapreprojector_2 input feature_type counter_output feature_type csmapreprojector_2_reprojected$(csmapreprojector_2_remove_cs)@reproject(fme,”,“epsg:4326”,2d,” ”,$(CsmapReprojector_2_TRANSFORMATION), - ,最近邻,PreserveCells,RASTER_TOLERANCE,0.0)FACTORY_DEF * TeeFactory FACTORY_NAME “CsmapReprojector_2重新投影分配器” INPUT FEATURE_TYPE CsmapReprojector_2_REPROJECTED OUTPUT FEATURE_TYPE CsmapReprojector_2_REPROJECTED_0_rTHp8RvgJo4 = OUTPUT FEATURE_TYPE CsmapReprojector_2_REPROJECTED_1_73Ec6s6ObMc =#------------------------------------------------------------------------- FACTORY_DEF * SWCircleReplacerFactory FACTORY_NAME SWCircleReplacer_3 INPUT FEATURE_TYPE CsmapReprojector_2_REPROJECTED_0_rTHp8RvgJo4= SITE_X_ATTR "" SITE_Y_ATTR "" RADII_ATTR "0.1" DISTANCE_UNIT "Miles" OUTPUT CIRCLE FEATURE_TYPE SWCircleReplacer_3_CIRCLE # ------------------------------------------------------------------------- FACTORY_DEF {*} OverlayFactory FACTORY_NAME PointOnAreaOverlayer_2 INPUT POINT FEATURE_TYPE CsmapReprojector_2_REPROJECTED_1_73Ec6s6ObMc= INPUT POLYGON FEATURE_TYPE SWCircleReplacer_3_CIRCLE OVERLAP_COUNT_ATTRIBUTE "_overlaps" DEAGGREGATE_INPUT Yes MERGE_ATTRS "NO" ATTR_ACCUM_MODE " “ATTR_CONFLICT_RES” “INCOMING_PREFIX” “ 列表名称 ” “LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE CANDIDATE_LIST_NAME “点” CANDIDATE_LIST_ATTRS_TO_INCLUDE { } CANDIDATE_LIST_ATTRS_TO_INCLUDE_MODE ALL模式完成OVERLAY_TYPE POINT_ON_AREA POLYS_FIRST “否” REJECT_INVALID_GEOM YES输出面FEATURE_TYPE PointOnAreaOverlayer_2_AREA#------------------------------------------------------------------------- FACTORY_DEF * SortFactory FACTORY_NAME分拣机输入FEATURE_TYPE PointOnAreaOverlayer_2_AREA SORT_BY _overlaps NUMERIC DESCENDING OUTPUT SORTED FEATURE_TYPE Sorter_SORTED # ------------------------------------------------------------------------- # If we're doing LAST N features, then the multiplier comes in as 0.#如果我们正在做的第一N,乘数为-1。#随机,我们需要把最后N,如果它是第N(即有-1)#这就是什么?:确实在速度倍增。INCLUDE [如果{{-1} == {0} && {原始} == {原始}} {把 “MACRO REAL_MODE LAST”;把 “宏REAL_RATE 1”;} {其他看跌期权 “MACRO REAL_MODE ORIGINAL”;把 “宏REAL_RATE [EXPR 1 *(-1 -1:α-1)]”;}] FACTORY_DEF {*} SamplingFactory FACTORY_NAME采样COMMAND_PARM_EVALUATION SINGLE_PASS SAMPLE_RATE $(REAL_RATE)SAMPLE_ORDER $(REAL_MODE)输入FEATURE_TYPE Sorter_SORTED输出端取样FEATURE_TYPE ___SAMPLED___#,因为采样器仍将输出功能,如果它没有OUTPUT子句指定需要此TeeFactory。#这样,我们表现得很好,即使有变压器无输出连接。见PR#28886。FACTORY_DEF * TeeFactory FACTORY_NAME Sampler_Sampled INPUT FEATURE_TYPE ___SAMPLED___输出FEATURE_TYPE Sampler_SAMPLED#------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME ListExploder_2 INPUT FEATURE_TYPE Sampler_SAMPLED LIST_NAME "Points{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "INCOMING_IF_CONFLICT" INCOMING_PREFIX " “输出元件FEATURE_TYPE ListExploder_2_ELEMENTS @RemoveAttributes(ElementFactory.baseCloned)#------------------------------------------------------------------------- DEFAULT_MACRO WB_CURRENT_CONTEXT MACRO VariableSetter_VAR @EvaluateExpression(FDIV,STRING_ENCODED, 值 Point_ID ,VariableSetter)有[如果{{}全球== {本地}} {{放MACRO VariableSetter_VAR $(WB_CURRENT_CONTEXT)_ @ EvaluateExpression(FDIV,STRING_ENCODED, 值 Point_ID ,VariableSetter)};}] FACTORY_DEF * TeeFactory FACTORY_NAME VariableSetter INPUT FEATURE_TYPE ListExploder_2_ELEMENTS OUTPUT FEATURE_TYPE VariableSetter_OUTPUT @GlobalVariable(fme_encoded,$(VariableSetter_VAR), “1”)FACTORY_DEF * TeeFactory FACTORY_NAME “VariableSetter输出变压器输出Nuker” INPUT FEATURE_TYPE VariableSetter_OUTPUT#------------------------------------------------------------------------- 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__