#啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! 创建的整个输入功能区域内的随机点。

该变压器接受任何功能,但不具备区域几何要素将不被使用。

每天产生的点会举行由包含点空间的输入区域特征举行属性。

如果点是在同一组包含在由两个或更多个区域(即的区域被重叠),则属性将从它们中的任何一个被迁移。


注意:

这是一个实验变压器。将它添加到您的工作区之前,检查不够的实施是否适合你的目的。

实施已经被这个线程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 饭岛,原 “#!IS_VISIBLE = “实施假”!#LAST_SAVE_BUILD = “FME(R)听英语SP3(20140814 - 建立14391 - WIN32)” #LAST_SAVE_DATE =! “2014-09-20T19:53:29” #MARKDOWN_DESCRIPTION = “!” #! MARKDOWN_USAGE="" #! PYTHON_COMPATIBILITY="" #! SUPPRESS_UPGRADE="false" #! TITLE="RandomPointGenerator" #! USAGE="

参数

通过...分组:

应该用来组输入功能,选择属性。


点数:

指定的点数将被创建。

如果指定了“集团通过”参数,这个参数是指每一个组的点数。

否则,就意味着要创建点的总数。

! “!#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” #!/>#! #啊!
#啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! 评估 1.0 * $ (NUM_POINTS) * _area2._sum _区域1.总和 '布尔运算;或;复合运算; ;测试 评估 1.0 * $ (NUM_POINTS) * _area2._sum _区域1.总和 <$(最小值)$(最小值)’fme_num_conditions 2_uuuuuuuuu“,”比率, 评估 双重的 _区域2 _area2._sum ,_宽度, 评估 _ x最大值 - _圣诞节 ,高度, 评估 _ Ymax公司 - _伊敏 “/>! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊! #啊!
#啊!
#啊! #啊! #啊!
FME_PYTHON_VERSION 27 GUI IGNORE SourceDataset_MITAB_3,MITAB_IN_FME_GROUP_NAMED1_MITAB_3,MITAB_IN_FME_TABLE_PASSWORD_MITAB_3,MITAB_IN_FME_GROUP_NAMED2_MITAB_3,MITAB_IN_FME_GROUP_NAMED3_MITAB_3,MITAB_IN_ENCODING_MITAB_3,MITAB_IN_USE_SEARCH_ENVELOPE_MITAB_3,MITAB_IN_SEARCH_ENVELOPE_MINX_MITAB_3,MITAB_IN_SEARCH_ENVELOPE_MINY_MITAB_3,Mitab_u搜索_u信封_u Maxx_u Mitab_u 3,Mitab_u搜索_u信封_u坐标_u Mitab_u 3,Mitab_u夹_u信封_u Mitab_u 3,Mitab_u网络_u身份验证_u默认_u宏aantalclusters 10 gui可选范围_u滑块aantalclusters“范围:0,]%精度:0“群集数:默认的_宏限位半径0.038 gui可选文本限位半径输入限位半径:默认的_宏源数据集_mitab_4$(fme_mf_dir)温哥华/温哥华.zip gui多文件源数据集_mitab_4 tab_文件(.tab)*.tab;所有的_文件(*)源mapinfo tab文件:包括[如果{$(源数据集_mitab_4)}=={}{将{实数{必须为参数“sourcedataset_mitab_4”指定一个值。};退出1;};]#啊!开始标题!开始读wb _-wb-header reader_-type multi _-reader multi _-reader{0}mitab _-3 multi _-gen _-gen _-gen{0}公开_-attrs _-attrs _-group,、搜索_-en信封_-minx,0,搜索_-en信封_-max x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x,mitab _-mitab _-公开_格式_-attrs,、剪贴到_信封使用搜索信封,不,search_envelope_miny,0,search_envelope_maxy,0,fme_table_password,encoding,,_merge_schemas,yes writer_type null writer_keyword null_dest null_dest_dataset null!结束_wb_header!启动wb_头宏wb_关键字“mitab_3”!结束_wb_header!START_SOURCE_HEADER MITAB MITAB_3 # ============================================================================ # BUG47627: MITAB rich compatibility flag MITAB_3_MITAB_FULL_ENHANCED_GEOMETRY YES # ============================================================================ # The following GUI line prompts for a folder to be used as the # source Mapinfo选项卡文件的。#用户输入存储在宏中,然后宏用于定义要读取的数据集。#生成此映射文件的数据集为:35;!结束源头!启动wb_header default_宏sourcedataset include[如果{{$(sourcedataset)}!=“”}{\puts{default_macro sourcedataset_mitab_3$(sourcedataset)}\}]!结束_wb_header!开始U source U header mitab mitab mitab U 3默认U宏sourcedataset U mitab U 3$(sourcedataset U mitab U 4)gui多文件sourcedataset U mitab U 3 U 3 U 3 U 3 U 3 U 3*.tab所有U文件(*);*source mapinfo源mapinfo tab文件表文件数:所有*源mapinfo源mapinfo tab tab文件表文件数:124;;;;;;;;;;;;===[REG 20070109]我们希望允许用户选择异类集合通过选择不在工作台或其他应用程序中中断集合。#但是,我们不想创建经典的几何异构集合,因此设置它们想要异构集合的最佳方法是指定它们想要使用富几何。#下面询问在读取时是否应将mif/mapinfo集合分解为其组件部分。默认情况下,我们会分解集合,但如果您使用相同的格式写入,则可能需要保留集合。#__ #DEFAULT_MACRO _BREAK_COLLECTION yes #__ #GUI CHOICE _BREAK_COLLECTION yes%no Break Collections: #__ #MITAB_BREAK_COLLECTION "$(_BREAK_COLLECTION_MITAB_3)" #__ # ===================================================================== # Provide some control over what attributes have the user-selected # encoding applied.通常所有属性在被读取后都会被更新,但以下几行从该处理中排除所有名称以fme或 _除了 _文本字符串,它总是需要编码。MITAB_3_ENCODED_ATTRS mapinfo_text_string MITAB_3_UNENCODED_ATTR_PREFIX fme_ mapinfo_ DEFAULT_MACRO MITAB_IN_FME_GROUP_NAMED1_MITAB_3 GUI可选DISCLOSUREGROUP MITAB_IN_FME_GROUP_NAMED1_MITAB_3 MITAB_IN_FME_TABLE_PASSWORD_MITAB_3 FME表DEFAULT_MACRO MITAB_IN_FME_TABLE_PASSWORD_MITAB_3 MITAB_3_FME_TABLE_PASSWORD “$(MITAB_IN_FME_TABLE_PASSWORD_MITAB_3)” GUI可选PASSWORD_ENCODED MITAB_IN_FME_TABLE_PASSWORD_MITAB_3密码FME表:DEFAULT_MACRO MITAB_IN_FME_GROUP_NAMED2_MITAB_3 GUI可选DISCLOSUREGROUP MITAB_IN_FME_GROUP_NAMED2_MITAB_3 MITAB_IN_PRESERVE_TYPE高级选项DEFAULT_MACRO MITAB_IN__MITAB_FULL_ENHANCED_GEOMETRY_MITAB_3 YES MITAB_3__MITAB_FULL_ENHANCED_GEOMETRY“$(MITAB_IN__MITAB_FULL_ENHANCED_GEOMETRY_MITAB_3)“DEFAULT_MACRO MITAB_IN_FME_GROUP_NAMED3_MITAB_3 GUI可选DISCLOSUREGROUP MITAB_IN_FME_GROUP_NAMED3_MITAB_3 MITAB_IN_ENCODING_MITAB_3文件内容DEFAULT_MACRO MITAB_IN_ENCODING_MITAB_3 MITAB_3_ENCODING ”$(MITAB_IN_ENCODING_MITAB_3)“ GUI OPTIONAL STRING_OR_ENCODING MITAB_IN_ENCODING_MITAB_3 SJIS%CP437%CP850%CP852%CP855%CP857%CP860%CP861%CP863%CP864%CP865%CP869%CP874%CP932%CP936%CP950%CP1250%CP1251%CP1252%CP1253%CP1254%CP1255%CP1256%CP1257%ISO8859-1%ISO8859-2%ISO8859-3%ISO8859-4%ISO8859-5%ISO8859-6%ISO8859-7%ISO8859-8%ISO8859-9 Character Encoding: DEFAULT_MACRO MITAB_IN_EXPOSE_ATTRS_GROUP_MITAB_3 MITAB_3_EXPOSE_ATTRS_GROUP "$(MITAB_IN_EXPOSE_ATTRS_GROUP_MITAB_3)" # Include this file in source setting section to add external search envelope processing # Zero as a default means we don't do any search -- this makes workbench happier DEFAULT_MACRO MITAB_IN_USE_SEARCH_ENVELOPE_MITAB_3 NO MITAB_3_USE_SEARCH_ENVELOPE "$(MITAB_IN_USE_SEARCH_ENVELOPE_MITAB_3)" GUI ACTIVEDISCLOSUREGROUP MITAB_IN_USE_SEARCH_ENVELOPE_MITAB_3 MITAB_IN_SEARCH_ENVELOPE_MINX_MITAB_3%MITAB_IN_SEARCH_ENVELOPE_MINY_MITAB_3%MITAB_IN_SEARCH_ENVELOPE_MAXX_MITAB_3%MITAB_IN_SEARCH_ENVELOPE_MAXY_MITAB_3%MITAB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_MITAB_3%MITAB_IN_CLIP_TO_ENVELOPE_MITAB_3%MITAB_IN_SEARCH_METHOD%MITAB_IN_SEARCH_METHOD_FILTER%MITAB_IN_SEARCH_ORDER%MITAB_IN_SEARCH_FEATURE%MITAB_IN_DUMMY_SEARCH_ENVELOPE_PARAMETER Use Search Envelope # =========================================================================== GUI LOOKUP MITAB_IN_SEARCH_ENVELOPE_MINX_MITAB_3 ,0 DEFAULT_MACRO MITAB_IN_SEARCH_ENVELOPE_MINX_MITAB_3 0 MITAB_3_SEARCH_ENVELOPE “$(MITAB_IN_SEARCH_ENVELOPE_MINX_MITAB_3)” GUI OPTIONAL FLOAT MITAB_IN_SEARCH_ENVELOPE_MINX_MITAB_3最小X:#=========================================================================== GUI LOOKUP MITAB_IN_SEARCH_ENVELOPE_MINY_MITAB_3 ,0 DEFAULT_MACRO MITAB_IN_SEARCH_ENVELOPE_MINY_MITAB_3 0 MITAB_3_SEARCH_ENVELOPE “$(MITAB_IN_SEARCH_ENVELOPE_MINY_MITAB_3)” GUI OPTIONAL FLOAT MITAB_IN_SEARCH_ENVELOPE_MINY_MITAB_3最小Y:#=========================================================================== GUI LOOKUP MITAB_IN_SEARCH_ENVELOPE_MAXX_MITAB_3 ,0 DEFAULT_MACRO MITAB_IN_SEARCH_ENVELOPE_MAXX_MITAB_3 0 MITAB_3_SEARCH_ENVELOPE “$(MITAB_IN_SEARCH_ENVELOPE_MAXX_MITAB_3)” GUI OPTIONAL FLOAT MITAB_IN_SEARCH_ENVELOPE_MAXX_MITAB_3最大X:#=========================================================================== GUI LOOKUP MITAB_IN_SEARCH_ENVELOPE_MAXY_MITAB_3 ,0 DEFAULT_MACRO MITAB_IN_SEARCH_ENVELOPE_MAXY_MITAB_3 0 MITAB_3_SEARCH_ENVELOPE “$(MITAB_IN_SEARCH_ENVELOPE_MAXY_MITAB_3)” GUI应用浮动MITAB_IN_SEARCH_ENVELOPE_MAXY_MITAB_3最大Y:#=========================================================================== GUI LOOKUP MITAB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_MITAB_3 ,DEFAULT_MACRO MITAB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_MITAB_3 MITAB_3_SEARCH_ENVELOPE “$(MITAB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_MITAB_3)” GUI可选COORDSYS MITAB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_MITAB_3搜索信封坐标系:#===========================================================================#BUG18999:我们现在 have a soft clip to fall back on like native spatial index # thus we are reintroducing the clip to envelop as an option for users.#Defualt软夹按现有数据库的读者,我们模仿GUI LOOKUP MITAB_IN_CLIP_TO_ENVELOPE_MITAB_3 ,NO DEFAULT_MACRO MITAB_IN_CLIP_TO_ENVELOPE_MITAB_3 NO MITAB_3_CLIP_TO_ENVELOPE “$(MITAB_IN_CLIP_TO_ENVELOPE_MITAB_3)” GUI可选复选框MITAB_IN_CLIP_TO_ENVELOPE_MITAB_3 YES%没有剪辑搜索信封#====================================================== DEFAULT_MACRO MITAB_IN_NETWORK_AUTHENTICATION_MITAB_3 MITAB_3_NETWORK_AUTHENTICATION "$(MITAB_IN_NETWORK_AUTHENTICATION_MITAB_3)" GUI OPTIONAL AUTHENTICATOR MITAB_IN_NETWORK_AUTHENTICATION_MITAB_3 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO MITAB_IN_ATTRIBUTE_READING_MITAB_3 ALL MITAB_3_ATTRIBUTE_READING "$(MITAB_IN_ATTRIBUTE_READING_MITAB_3)" # ============================================================================ MITAB_3_GENERATE_FME_BUILD_NUM 18312 MITAB_3_DATASET "$(SourceDataset_MITAB_3)" #!结束源头!START_WB_HEADER#!结束_wb_header!FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE END_HEADER LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE:汽车FME_GEOMETRY_HANDLING增强FME_STROKE_MAX_DEVIATION 0 LOG_FILTER_MASK 1 DEFAULT_MACRO DATASET_KEYWORD_MITAB_3 MITAB_3 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MITAB_3_READER_META_ATTRIBUTES fme_feature_type # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MULTI_READER_CONTINUE_ON_READER_FAILURE没有#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏WORKSPACE_NAME贪婪集群宏观FME_VIEWER_APP fmedatainspector # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -温哥华MITAB_3_DEF CMANAME char (100) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * RoutingFactory FACTORY_NAME“路由器和意想不到的输入剂”COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD$(DATASET_KEYWORD_MITAB_3) INPUT FEATURE_TYPE * ROUTE MITAB MITAB_3::Vancouver multi_reader_keyword,$(DATASET_KEYWORD_MITAB_3) TO FME_GENERIC ::Vancouver ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * MITAB_3_MERGE_DEF MITAB_3::Vancouver EXACT Vancouver # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Vancouver (MITAB_3) Splitter" INPUT FEATURE_TYPE Vancouver OUTPUT FEATURE_TYPE Vancouver_MITAB_3 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "RandomPointGenerator Area Input Collector" INPUT FEATURE_TYPE Vancouver_MITAB_3 OUTPUT FEATURE_TYPE RandomPointGenerator_Area MACRO RandomPointGenerator_WORKSPACE_NAME RandomPointGenerator MACRO $(RandomPointGenerator_WORKSPACE_NAME)_XFORMER_NAME RandomPointGenerator MACRO $(RandomPointGenerator_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(RandomPointGenerator_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(RandomPointGenerator_WORKSPACE_NAME)_SUB_DOC_NAME RandomPointGenerator MACRO $(RandomPointGenerator_WORKSPACE_NAME)_GROUP_BY MACRO $(RandomPointGenerator_WORKSPACE_NAME)_NUM_POINTS 5000 MACRO $(RandomPointGenerator_WORKSPACE_NAME)_MIN_NUM 10 MACRO $(RandomPointGenerator_WORKSPACE_NAME)_DENSIFY_FACTOR 2 DEFAULT_MACRO RandomPointGenerator_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(RandomPointGenerator_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)};将{宏WB_CURRENT_CONTEXT $ (RandomPointGenerator_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME " $ (RandomPointGenerator_WORKSPACE_NAME) _Area1550264756输入分流”输入FEATURE_TYPE " $ (RandomPointGenerator_WORKSPACE_NAME) _Area“输出FEATURE_TYPE " $ (RandomPointGenerator_WORKSPACE_NAME) _Area " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏OUTPUT_AREA_FTYPE not_selected宏OUTPUT_AREA_FTYPE$(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_AREA MACRO OUTPUT_ELLIPSE_FTYPE not_selected MACRO OUTPUT_ELLIPSE_FTYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_ELLIPSE MACRO OUTPUT_INSTANCE_FTYPE not_selected Lookup $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_RouterTable "" "not_selected" fme_area $(OUTPUT_AREA_FTYPE) fme_ellipse $(OUTPUT_ELLIPSE_FTYPE) MACRO COLLECTION_HANDLING NOT_THIS_TIME MACRO INSTANCE_FILTERING * INCLUDE [ if 0 { puts "MACRO COLLECTION_HANDLING *";如果 {放置“宏INSTANCE_FILTERING NOT_THIS_TIME”;};};如果{{$(OUTPUT_INSTANCE_FTYPE)} == "not_selected"}{放置"宏INSTANCE_FILTERING NOT_THIS_TIME";};] FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_InputPassThrough INPUT FEATURE_TYPE “$(RandomPointGenerator_WORKSPACE_NAME)_Area” 输出FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter ___ Input___ @Geometry(FIX_FMETYPE_FMEGEOMETRY)FACTORY_DEF $(INSTANCE_FILTERING)TestFactory中FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_InstanceTest INPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter ___ Input___ TEST @Geometry(IS_GEOMETRY_INSTANCE) == 1 OUTPUT PASSED FEATURE_TYPE $(OUTPUT_INSTANCE_FTYPE) OUTPUT FAILED FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Input___ FACTORY_DEF $(COLLECTION_HANDLING) TestFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_CollectionTest INPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Input___ TEST &fme_type == "fme_collection" OUTPUT FAILED FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ OUTPUT PASSED FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Collection___ FACTORY_DEF $(COLLECTION_HANDLING) DeaggregateFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_Deagg INPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Collection___ HOMOGENIZE_COLLECTIONS YES RECURSIVE YES SET_FME_TYPE YES INSTANTIATE_GEOMETRY_INSTANCES_NEW 输出点FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter ___ HomogeneousAggregate___输出线路FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter ___ HomogeneousAggregate___输出面FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter ___ HomogeneousAggregate___输出DONUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter ___ HomogeneousAggregate___产出的总FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter ___ HomogeneousAggregate___ FACTORY_DEF * TeeFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_RouterPrepper INPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ INPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ INPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Input___ OUTPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Prepped___ $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_be94d943_23d1_4d11_9576_a8d3403d6f0617_targetFeatureType @Lookup($(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_RouterTable,&fme_type) FACTORY_DEF * TestFactory FACTORY_NAME $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_Router INPUT FEATURE_TYPE $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter___Prepped___ TEST @Value($(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_be94d943_23d1_4d11_9576_a8d3403d6f0617_targetFeatureType) != "not_selected" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value($(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_be94d943_23d1_4d11_9576_a8d3403d6f0617_targetFeatureType)) @RemoveAttributes($(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_be94d943_23d1_4d11_9576_a8d3403d6f0617_targetFeatureType) OUTPUT FAILED FEATURE_TYPE "$(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_ “@RemoveAttributes($(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_be94d943_23d1_4d11_9576_a8d3403d6f0617_targetFeatureType)FACTORY_DEF * TeeFactory FACTORY_NAME” $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter 变压器输出Nuker “INPUT FEATURE_TYPE” $(RandomPointGenerator_WORKSPACE_NAME)_GeometryFilter_ “#------------------------------------------------------------------------- Tcl2 proc $(RandomPointGenerator_WORKSPACE_NAME)_ParameterFetcher_doFetch {} { foreach {name val} {"randompointgenerator.group_by {$($(RandomPointGenerator_WORKSPACE_NAME)_GROUP_BY$encode)}"} { if { [string match {* *} $ VAL] == 1} {设定VAL [FME_Execute EvaluateExpression {STRING} $ VAL {$(RandomPointGenerator_WORKSPACE_NAME)_ParameterFetcher}];} elseif的{[字符串匹配{* FME_CONDITIONAL *} $ VAL] == 1} {设定VAL [FME_Execute EvaluateExpression {STRING} $ VAL {$(RandomPointGenerator_WORKSPACE_NAME)_ParameterFetcher}];} {其他设置VAL [FME_DecodeTextOrAttr $ VAL]。};fme_setattribute[fme_decodetext$name]$val}factory_def*teefactory factory_name$(randompointgenerator_workspace_name)_parameterfetcher input feature_type“$(randompointgenerator_workspace_name)_geometryfilter_area“input feature_type”$(randompointgenerator_workspace_name)_geometryfilter_elliple“output feature_type”“$(randompointergenerator_workspace_name)_parameterfetcher_output”@tcl2($(randompointergenerator_workspace_name)_parameterfetcher_dofetch)—— ConcatGroupByAttributeValue 设置 价值观 foreach公司 属性 口蹄疫 随机点生成器.分组依据 拉彭德 价值观 口蹄疫 属性 返回 参加 价值观 _ 宏复印机@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__