#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! 基于数值属性值的颜色范围的特征。

" # !TITLE="GradedColorizer" #! USAGE="

该变压器有五个参数:


要分类的属性:在这里选择一个数字属性,特征颜色将基于该属性


配色方案:在这里,您可以选择希望功能遵循的颜色渐变


分类方法:在这里选择用于分类特征的方法,有三个选项可用:


设置间隔-在此选项中,间隔由用户在“间隔断开值”参数中输入的数值确定


等距-根据数值属性的范围创建用户指定的等长间隔数


分位数创建用户指定的间隔数,其中特征在间隔上均匀分布


间隔数:在这里指定间隔数(如果设置了“间隔”分类方法,则忽略此项)


间隔断点值:在这里输入间隔断点作为空格分隔的字符串(如果分类方法未设置间隔,则忽略该字符串)。'0 10 20 30 40'


" # !HISTORY="04 02年 2013年,Iris 古托夫斯基,创造了“#要求=“#”>#啊! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #!
#! 版权所有(c)2012安全软件公司。亚搏在线

允许任何人免费使用、修改和分发此模板的目标代码表单,但要遵守以下限制:

1)不得歪曲本模板和相关FME(R)软件的来源。

2)此模板只能与FME软件的有效授权副本一起使用。

本软件由SAFE软件公司提供。亚搏在线“原样”和任何明示或默示保证,包括但不限于,适销性、非侵权性和适合特定目的的默示保证被驳回。在任何情况下,SAFE SOFTWA亚搏在线RE INC。对任何直接、间接、附带、特殊、惩戒性或后果性损害负责(包括但不限于采购替代货物或服务;失去使用、数据或利润;或业务中断)无论是何种原因造成的,基于任何责任理论,无论是在合同中,严格责任,还是在使用本软件时以任何方式产生的侵权行为(包括疏忽或其他),即使已告知此类损害的可能性。

" # !FME_PROCESS_GROUP_BY="" #! DESCRIPTION="

此转换器列出choosen属性的所有唯一值。还将显示每个唯一值出现次数的计数。

当您创建工作区并且需要知道在筛选器中使用的可能值时,此转换器非常有用。

" # !TITLE="UniqueValueLogger" #! USAGE="

将此转换器添加到工作区并选择要分析的属性。

" # !HISTORY="2012-01-31,Aaron 科宁,创造了“35;要求=“

没有。

" #! >#啊! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #!
#!
#! #! #!
#!图形用户界面忽略源数据集“ffs”1、密码短语“ffs”1、搜索信封“ffs”1、搜索信封“ffs”1、搜索信封“ffs”1、搜索信封“ffs”1、最大信封“ffs”1、搜索信封“ffs”1、剪辑到信封“ffs”1、搜索信封坐标系统“ffs”1,_搜索距离最近的一个点,一个默认的宏源数据集,一个(fme,mf,mf,dir)1/c78665/courtows.ffs,gui多文件源数据集,一个功能存储区,一个文件,一个文件,所有文件,一个文件,一个文件,一个文件,包括[if{[string等长15{fme,环境条件}{{(sourcedataset,数据集,ffs)}==0}{{set encodedval[fme,encodetextextextextext,forme,encodedval[fme,encodetextextextext,forme,forme,encodetextextextext,forme,forme,forme,forme,forme,forme,forme,forme,是的{$(源数据集)};将“宏源数据集”放入“fmeencoded”;}否则{set encodedVal{$(SourceDataset};将“宏源数据集”放入“fmeencoded”;};]INCLUDE[如果{{$(SourceDataset_FFS)}={}{将{puts{参数'SourceDataset_FFS'设为值。};退出1;};] #!开始标题!启动wb_header reader_type ffs reader_keyword ffs_1 reader_gen_directives search_envelope_minx,0,search_envelope_miny,0,passphrase,,_merge_schemas,yes,clip_to_envelope,no,use_search_envelope,no,ffs_expose_format_attrs,search_envelope_maxx,0,search_envelope_maxy,0 writer_type null writer_keyword null_dest null_dest_dataset null!结束_WB_HEADER#!启动WB_HEADER宏WB_关键字“FFS_1”#!结束_WB_HEADER#!启动_source_header ffs_1文件头ffs_1文件头ffs_结束源头!启动wb_header default_宏sourcedataset include[如果{{$(sourcedataset)}!=“”}{\puts{default_macro sourcedataset_ffs_1$(sourcedataset)}\}]!结束_WB_HEADER#!开始_SOURCE_HEADER fffs_1 DEFAULT_宏SourceDataset _1$(SourceDataset _FFS)GUI多文件SourceDataset _FFS_1 FME_Feature_Feature_Store_存储区文件(FFS)|*.FFS |所有;*.*SOURCE FME Feature存储区(FFS)文件(FFS)文件(FFS)文件(FFS)文件(FFS)文件(FFS)文件(FFS)文件(FFS)文件(FFS)文件(FFS)文件(FFS)所有| | |;*.*源FME Feature FME Feature存储区(FFS)文件(ff=======设置密码短语(可选)默认宏FFS廑IN廑PASSPHRASE廑FFS廑1 FFS廑PASSPHRASE“$(FFS廑IN廑PASSPHRASE廑FFS廑1)”GUI可选密码FFS廑IN廑PASSPHRASE廑FFS廑1密码:廑在源设置部分包含此文件以添加本机搜索信封处理廑默认值为零表示我们不进行任何搜索--=========================================================================== DEFAULT_MACRO FFS_IN_SEARCH_ENVELOPE_MINX_FFS_1 0 FFS_1_SEARCH_ENVELOPE "$(FFS_IN_SEARCH_ENVELOPE_MINX_FFS_1)" GUI OPTIONAL FLOAT FFS_IN_SEARCH_ENVELOPE_MINX_FFS_1 Minimum X: # =========================================================================== DEFAULT_MACRO FFS_IN_SEARCH_ENVELOPE_MINY_FFS_1 0 FFS_1_SEARCH_ENVELOPE "$(FFS_IN_SEARCH_ENVELOPE_MINY_FFS_1)" GUI OPTIONAL FLOAT FFS_IN_SEARCH_ENVELOPE_MINY_FFS_1 Minimum Y: # =========================================================================== DEFAULT_MACRO FFS_IN_SEARCH_ENVELOPE_MAXX_FFS_1 0 FFS_1_SEARCH_ENVELOPE "$(FFS_IN_SEARCH_ENVELOPE_MAXX_FFS_1)"第0条FFSX1FSSE1信封“$(FFSXIN SKYCHECHONEXFEXSF1)”GUI可选浮游物FFSXIN SkestyCypLeMax YFFSF1 GUI可选浮点FFSSIN搜索SkureMax XXFFSF1最大X一个又一个又一个又一个又一个又一个又一个又一个又一个又一个的又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个又一个的或者一信封1是%no clip to search信封默认情况下,从ffs阅读器创建的功能中去掉fme元属性(比如emulti_reader_keyword)。ffs_1_strip_meta_attrs yes默认情况下,忽略溢出文件(*u 1.ffs,*_2.ffs等)。#启用时,读卡器将忽略这些文件,并且仅在读取35;*.ffs本身时才读取。二级文件名是pr:31021在工作台源代码前导部分包含此文件以启用为搜索信封处理指定坐标系的功能353535;目前为止二级文件名是在工作台源代码前导部分中包含此文件以启用为搜索信封处理指定坐标系的功能目前的二级文件35353535;实施二级文件u坐标系SEARCH_ENVELOPE_COORDINATE_SYSTEM_FFS_1 Search Envelope Coordinate System: FFS_1_SEARCH_ENVELOPE_COORDINATE_SYSTEM "$(SEARCH_ENVELOPE_COORDINATE_SYSTEM_FFS_1)" # =========================================================================== # ======================================================================== # If desired, 下面的字符串可以指定一个点,将读取并返回ffs文件中最近的特征。DEFAULT_MACRO _SEARCH_CLOSEST_POINT_FFS_1可选文本_SEARCH_CLOSEST_POINT_FFS_1最近搜索点:FFS_1_SEARCH_CLOSEST_POINT $(_SEARCH_CLOSEST_POINT_FFS_1)# !结束源头!END_HEADER LOG_FILENAME " $ (FME_MF_DIR)轮廓。log" LOG_APPEND NO LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 MAPPING_FILE_ID FFS 没有LOG_TIMINGS是的LOG_FILTER_MASK 1 DEFAULT_MACRO DATASET_KEYWORD_FFS_1 FFS_1 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FFS_1_READER_META_ATTRIBUTES fme_feature_type # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MULTI_READER_CONTINUE_ON_READER_FAILURE没有# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏WORKSPACE_NAME ContourDemo宏观FME_VIEWER_APP fmedatainspector #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -包括(如果{[信息存在env (FME_TEMP) & &(文件isdirectory env (FME_TEMP)美元)& &(文件isdirectory $ env(临时)]}{设置gVisualizerTemp $ env (FME_TEMP)} elseif{[信息存在env(临时)]}{设置gVisualizerTemp $ env(临时)}elseif {$ tcl_platform(平台)= =“unix”}{设置gVisualizerTemp“/ tmp”}其他{设置gVisualizerTemp c:};regsub - {[,]} {$ (WORKSPACE_NAME)} {_} wsname;设置gVisualizerTemp $gVisualizerTemp/${wsname}_[时钟格式[时钟秒]-格式%H%M%S];设置“宏WORKSPACE_TEMP_DIR $gVisualizerTemp”;宏VISUALIZER_FEATURE_FILE $ (WORKSPACE_TEMP_DIR) /检查员。ffs MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES # ------------------------------------------------------------------------- FFS_1_DEF __RECORDED__ _elevation number(4,0) # ------------------------------------------------------------------------- Lookup ___KnownFeatureTypes___ __RECORDED__ yes "" no # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME "Unexpected Input Remover" INPUT FEATURE_TYPE * TEST @Lookup(___KnownFeatureTypes___,@FeatureType()) == yes OUTPUT PASSED FEATURE_TYPE * # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Source -> Generic" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * @Transform(FFS,FME_GENERIC,PRESERVE_GEOMETRY) # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "__RECORDED__ (FFS_1) Splitter" INPUT FEATURE_TYPE __RECORDED__ OUTPUT FEATURE_TYPE __RECORDED___0 OUTPUT FEATURE_TYPE __RECORDED___1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * ConvexHullFactory FACTORY_NAME HullAccumulator MODE CONVEX INPUT FEATURE_TYPE __RECORDED___0 OUTPUT CONVEX_HULL FEATURE_TYPE HullAccumulator_HULL # ------------------------------------------------------------------------- INCLUDE [ if { ({fme_line} == {fme_point}) } { puts {MACRO GeometryCoercer_func @GeometryType(fme_point)};{存放{geometrycocer_func @GeometryType(fme_line)};}elseif {({fme_line} = = {fme_polygon})} {{({ {put {MACRO geometrycocer_func @GeometryType(fme_polygon, CHECK_Z_IN_DUPLICATE_POINTS_REMOVAL)};{{宏geometrycocer_func @GeometryType(fme_polygon)};{存放{MACRO geometrycocer_func @GeometryType(fme_arc,@Value(fme_rotation),@Value(fme_primary_axis),@Value(fme_secondary_axis),@Value(fme_start_angle),@Value(fme_sweep_angle))};{放置{宏geometrycocer_func @GeometryType(fme_ellipse,@Value(fme_primary_axis),@Value(fme_secondary_axis),@Value(fme_rotation),LEFT_HAND_RULE)};}elseif{({fme_line}={fme_text})}{放置{宏geometrycoercer_func@geometrytype(fme_text,@value(fme_text_string),@value(fme_text_size),@value(fme_rotation))};}elseif{({fme_line}={fme_composite_surface})}{放置{macro geometrycoercer_func@geometrytype(fme_composite_surface)};}elseif{({fme_line}={fme_brep_solid})}{放置{MACRO GeometryCoercer_func@GeometryType(fme_brep_solid)};}elseif{({fme_line}={fme_point_cloud})}{放置{宏geometrycoercer_func@geometrytype(fme_point_cloud)@supplyAttributes(fme_basename,geometrycoercer)};}elseif{({fme_line}={fme_aggregate}){放置{MACRO GeometryCoercer_func@GeometryType(fme_aggregate)};}elseif{({fme_line}={fme_multi})}{放置{宏geometrycoercer_func@geometrytype(fme_multi)};}]factory_def*teefactory factory_name geometrycoercer_renamer input feature_type hullaccumator_hull output feature_type geometrycoercer_converted$(geometrycoercer_func)-----------------------------include[如果{({no}={yes})}{放置{宏selfintersectionfactory*};将{MACRO INTERSECTIONINPUT FEATURE\u TYPE\u置于中间;}否则{放置{忽略宏selfintersectionfactory};放置{macro intersectioninput input feature_type geometrycoercer_comported input feature_type_uuu recorded_uu 1};};]工厂定义$(self intersection factory)intersectionfactory_name intersector_self input feature_type geometrycoercer_forced input feature_type_uuu recorded_uuu 1 ignore_u node_u heights是self_u intersection_only mode complete output segment feature_u type_uuu to inter_uu factory_u def*intersectionfactory_u name intersector_u all$(交叉输入)ReopApple NothtApple属性“SythOnth-CuthtAy属性”“段”ListNo.No.AddiaTyCyLoLoad段没有NoDeNo.NothBo.NoTo.NoDeDyNo.QuestFieldAtto“LIST”IGONEORIONDEDEA HALLY模式是完整的输出段特征--------------------工厂定义*测试工厂名称区域生成器geomfilter 1输入特征相交输入特征相交类型区域生成器geomfilter虚拟测试fme类型=“fme弧”测试fme类型=“fme椭圆”布尔运算符或输出传递特征类型AreaBuilder有效坐标输出失败特征类型AreaBuilder有效坐标输入特征类型AreaBuilder有效坐标输入特征类型AreaBuilder有效坐标测试工厂名称AreaBuilder有效坐标测试AreaBuilder有效坐标输出失败功能类型AreaBuilder有效坐标输出失败功能类型AreaBuilder无效几何图形包含[如果{(“无”=“无”)| |(“ “=”0“)}{puts”宏areabuilder_is_enable not_this_time“;}else{puts”宏areabuilder_is_enable*“;}]如果公差为0 factory_def$(areabuilder_is_enable)快照factory_name areabuilder_snaper input feature_type areabuilder_uu validgeoms_u snap_type none snap_tolerance 扩展换行符到换行符从不保存换行符短换行符无输出换行符类型区域生成器有效值区域生成器输出未触及的功能区域生成器有效值区域生成器工厂定义多边形工厂名称区域生成器输入多边形生成器输入功能区域生成器有效值区域生成器结束点报告进程列表名称列表允许循环无输出多边形feature_u type_uuu poly_uuu_uuu include[如果{(“是”=“是”)}{将“macro donut_factory_in*”;将“宏tee_factory_in not_this_time”;}否则{将“宏甜甜圈工厂”放入not;将“宏tee_factory_in*”;}]工厂定义$(甜甜圈工厂)甜甜圈工厂名称区域生成器输入功能区类型多边形放置孔无标记孔无拆分输入甜甜圈模式完整输出甜甜圈功能区生成器区域@removeattributes(标记孔)输出多边形功能区类型区域生成器区域@removeattributes(标记孔)工厂定义$(TEE_FACTORY_-IN)TeeFactory FACTORY_-NAME AreaBuilder_-router INPUT FEATURE_-TYPE uuuuuuuuuuuuuuu POLY_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuulistrangextractor_minmaxer{}{全局fme_属性;第一次设定1;设置min{};设置最大值{};regsub“{}”列表模式;对于each{name value}[数组获取fme\u属性$listpattern]{if{$firsttime}{设置min$value;设置最大$值;设置第一次0;}否则{if{$value<$min}{设置min$value};如果{$value>$max}{设置max$value};}};设置FME_属性(_min)$min;设置FME_属性(_max)$max;}factory_def*teefactory factory_name listrangeextractor input feature_type areabuilder_area output feature_type listrangeextractor_output@tcl(“listrangeextractor_minmaxer”)---------------------------------include[设置宏行“宏属性移动器”_list_exp”;对于each attr[分割”列表 .列表 .direction名单 .列表 ._elevation名单 名单 ._elevation名单 ._overlaps名单 .列表 名单 ._segments “] {集ATTR [FME_DecodeText $ ATTR];设置ATTR [regsub ”{} $“ $ ATTR ”{} *。“];组ATTR [regsub -all ”{}“ $ ATTR”{\ [O-9\]+}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRemover INPUT FEATURE_TYPE ListRangeExtractor_OUTPUT OUTPUT FEATURE_TYPE AttributeRemover_OUTPUT @RemoveAttributes() @RemoveAttributes(fme_regexp_match"$(AttributeRemover_LIST_EXP)") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "GradedColorizer INPUT Input Collector" INPUT FEATURE_TYPE AttributeRemover_OUTPUT OUTPUT FEATURE_TYPE GradedColorizer_INPUT MACRO GradedColorizer_WORKSPACE_NAME GradedColorizer MACRO $(GradedColorizer_WORKSPACE_NAME)_XFORMER_NAME GradedColorizer INCLUDE [ if {[string equal -length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)_XFORMER_NAME)} ] == 0} { set encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)_XFORMER_NAME)}]; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)_XFORMER_NAME__FMEENCODED__ $encodedVal" ; } else { set encodedVal {$($(GradedColorizer_WORKSPACE_NAME)_XFORMER_NAME)}; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)_XFORMER_NAME__FMEENCODED__ $encodedVal" ; }; ] MACRO $(GradedColorizer_WORKSPACE_NAME)_TRANSFORMER_GROUP INCLUDE [ if {[string equal -length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)_TRANSFORMER_GROUP)} ] == 0} { set encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)_TRANSFORMER_GROUP)}]; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)_TRANSFORMER_GROUP__FMEENCODED__ $encodedVal" ; } else { set encodedVal {$($(GradedColorizer_WORKSPACE_NAME)_TRANSFORMER_GROUP)}; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)_TRANSFORMER_GROUP__FMEENCODED__ $encodedVal" ; }; ] MACRO $(GradedColorizer_WORKSPACE_NAME)___COMPOUND_PARAMETERS INCLUDE [ if {[string equal -length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)___COMPOUND_PARAMETERS)} ] == 0} { set encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)___COMPOUND_PARAMETERS)}]; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)___COMPOUND_PARAMETERS__FMEENCODED__ $encodedVal" ; } else { set encodedVal {$($(GradedColorizer_WORKSPACE_NAME)___COMPOUND_PARAMETERS)}; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)___COMPOUND_PARAMETERS__FMEENCODED__ $encodedVal" ; }; ] MACRO $(GradedColorizer_WORKSPACE_NAME)_SUB_DOC_NAME GradedColorizer INCLUDE [ if {[string equal -length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)_SUB_DOC_NAME)} ] == 0} { set encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)_SUB_DOC_NAME)}]; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)_SUB_DOC_NAME__FMEENCODED__ $encodedVal" ; } else { set encodedVal {$($(GradedColorizer_WORKSPACE_NAME)_SUB_DOC_NAME)}; puts "MACRO $(GradedColorizer_WORKSPACE_NAME)_SUB_DOC_NAME__FMEENCODED__ $encodedVal" ; }; ] MACRO $(GradedColorizer_WORKSPACE_NAME)_Attribute_to_Color _MAX INCLUDE [] MACRO $(GradedColorizer_WORKSPACE_NAME)_Color_Scheme 1 INCLUDE [如果{[串等于-length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)_Color_Scheme)}] == 0} {设定encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)_Color_Scheme)}];把 “宏$(GradedColorizer_WORKSPACE_NAME)_Color_Scheme__FMEENCODED__ $ encodedVal”;}其他{设定encodedVal {$($(GradedColorizer_WORKSPACE_NAME)_Color_Scheme)};把 “宏$(GradedColorizer_WORKSPACE_NAME)_Color_Scheme__FMEENCODED__ $ encodedVal”;};] MACRO $(GradedColorizer_WORKSPACE_NAME)_Binning_Method d INCLUDE [如果{[串等于-length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)_Binning_Method)}] == 0} {设定encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)_Binning_Method)}];把 “宏$(GradedColorizer_WORKSPACE_NAME)_Binning_Method__FMEENCODED__ $ encodedVal”;}其他{设定encodedVal {$($(GradedColorizer_WORKSPACE_NAME)_Binning_Method)};把 “宏$(GradedColorizer_WORKSPACE_NAME)_Binning_Method__FMEENCODED__ $ encodedVal”;};] MACRO $(GradedColorizer_WORKSPACE_NAME)_Number_of_Bands INCLUDE [如果{[串等于-length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)_Number_of_Bands)}] == 0} {设定encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)_Number_of_Bands)}]。把 “宏$(GradedColorizer_WORKSPACE_NAME)_Number_of_Bands__FMEENCODED__ $ encodedVal”;}其他{设定encodedVal {$($(GradedColorizer_WORKSPACE_NAME)_Number_of_Bands)};把 “宏$(GradedColorizer_WORKSPACE_NAME)_Number_of_Bands__FMEENCODED__ $ encodedVal”;};] MACRO $(GradedColorizer_WORKSPACE_NAME)_RangeVals INCLUDE [如果{[串等于-length 15 {FME_CONDITIONAL} {$($(GradedColorizer_WORKSPACE_NAME)_RangeVals)}] == 0} {设定encodedVal [FME_EncodeText {$($(GradedColorizer_WORKSPACE_NAME)_RangeVals)}]。把 “宏$(GradedColorizer_WORKSPACE_NAME)_RangeVals__FMEENCODED__ $ encodedVal”;}其他{设定encodedVal {$($(GradedColorizer_WORKSPACE_NAME)_RangeVals)};把 “宏$(GradedColorizer_WORKSPACE_NAME)_RangeVals__FMEENCODED__ $ encodedVal”;};] DEFAULT_MACRO GradedColorizer_WORKSPACE_NAME “” INCLUDE [看跌{MACRO WB_OLD_CONTEXT _ $(GradedColorizer_WORKSPACE_NAME)$(WB_CURRENT_CONTEXT)};看跌期权{MACRO WB_CURRENT_CONTEXT $(GradedColorizer_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME “$(GradedColorizer_WORKSPACE_NAME)_Input输入分” INPUT FEATURE_TYPE “$(GradedColorizer_WORKSPACE_NAME)_Input” 输出FEATURE_TYPE “$(GradedColorizer_WORKSPACE_NAME)_Input” #------------------------------------------------------------------------- Tcl2 proc $(GradedColorizer_WORKSPACE_NAME)_ParameterFetcher_2_doFetch {} { foreach {name val} {"_Number_of_Bands {$($(GradedColorizer_WORKSPACE_NAME)_Number_of_Bands__FMEENCODED__)} _Color_Scheme {$($(GradedColorizer_WORKSPACE_NAME)_Color_Scheme)} _RangeVals {$($(GradedColorizer_WORKSPACE_NAME)_RangeVals__FMEENCODED__)} _Value {$($(GradedColorizer_WORKSPACE_NAME)_Attribute_to_Color)} _Binning_Method {$($(GradedColorizer_WORKSPACE_NAME)_Binning_Method)}"} { if { [string match {* *} $ VAL] == 1} {设定VAL [FME_Execute EvaluateExpression {STRING} $ VAL {$(GradedColorizer_WORKSPACE_NAME)_ParameterFetcher_2}];} elseif的{[字符串匹配{* FME_CONDITIONAL *} $ VAL] == 1} {设定VAL [FME_Execute EvaluateExpression {STRING} $ VAL {$(GradedColorizer_WORKSPACE_NAME)_ParameterFetcher_2}];}{其他设置VAL [FME_DecodeTextOrAttr $ VAL]。};FME_SetAttribute [FME_DecodeText $名称] $ VAL}} FACTORY_DEF * TeeFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_ParameterFetcher_2 INPUT FEATURE_TYPE “$(GradedColorizer_WORKSPACE_NAME)_Input” 输出FEATURE_TYPE “$(GradedColorizer_WORKSPACE_NAME)_ParameterFetcher_2_OUTPUT” @ TCL2($(GradedColorizer_WORKSPACE_NAME)_ParameterFetcher_2_doFetch)#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_TestFilter INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_ParameterFetcher_2_OUTPUT" OUTPUT FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_0 FACTORY_DEF * TestFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TestFactory_0 INPUT FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_0 TEST @EvaluateExpression(STRING_ENCODED, _Binning_Method ,$(GradedColorizer_WORKSPACE_NAME)_TestFilter)= A经编码BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR 的Passed FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_Binning_Method = A输出失败FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_1 FACTORY_DEF * TestFactory中FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TestFactory_1 INPUT FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_1 TEST @EvaluateExpression(STRING_ENCODED, _Binning_Method ,$(GradedColorizer_WORKSPACE_NAME)_TestFilter)= B ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR 的Passed FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_Binning_Method = B输出失败FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_2 FACTORY_DEF * TestFactory中FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TestFactory_2 INPUT FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_2 TEST @EvaluateExpression(STRING_ENCODED, _Binning_Method ,$(GradedColorizer_WORKSPACE_NAME)_TestFilter)= C ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR 的Passed FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_Binning_Method = C输出失败FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_3 FACTORY_DEF * TestFactory中FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TestFactory_3 INPUT FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_3 TEST @EvaluateExpression(STRING_ENCODED, _Binning_Method ,$(GradedColorizer_WORKSPACE_NAME)_TestFilter)= D ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR 的Passed FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_Binning_Method = D输出失败FEATURE_TYPE $(GradedColorizer_WORKSPACE_NAME)_TestFilter_TESTFILTERINPUTLINE_4 FACTORY_DEF * TeeFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_TestFilter_ 未过滤 输入功能$(gradedcolorizer_workspace_name)_testfilter_testfilterinputline_4输出功能$(gradedcolorizer_workspace_name)_testfilter_ 未过滤 工厂定义*teefactory工厂名称“$(gradedcolorizer工作区名称)\u testfilter 未过滤 输出nuker“input feature_type”$(gradedcolorizer_workspace_name)_testfilter_ 未过滤 “——$(gradedcolorizer_workspace_name)_geometryExtractor_function@geometry(to_attribute_binary,_geometry)}elseif{{{fmebianry}={fmehex}{puts{macro$(gradedcolorizer_workspace_name)_geometryExtractor_function@geometry(to_attribute_binary_hex,_几何)}elseif{fmebianry}={fmexml}{放置{MACRO$(gradedcolorzer工作区名称){GeometryExtractor@geometry函数(到属性,{geometry)}elseif{{fmebianry}={polyline}{放置{MACRO$(gradedcolorzer工作区名称){GeometryExtractor@geometry函数(到属性{polyline,}geometry, )}elseif{{fmebyanary}={wkt}{fmebyanary}={wkb}{fmebyanary}={wkb}{fmebyanary}={wkbhex}}{puts{MACRO$(GradedColorizer_WORKSPACE_NAME)}u GeometryExtractor_Function@OGCGeometry(to_attribute,fmebyanary,_geometry, )}}elseif{{{fmebbinary}{{fmebbinary}{{GEOJSON}{{{{fmebbinary}{{ESRIJSON}{{{{{MACRO$(gradedclorizer工作区名称){ESRIJSON}}{{{MACRO$(gradedclorizer工作区名称){GeometryExtractor函数@JSONGeometry(到属性,fmebbiary,几何结构)}}}}{{{{{{{fmebbinary}{{{{KML}}{{{{{{MACRO$(gradedclorizer工作区名称){{{esrijgradedclorizer工作区名称){{{esrijresijsijson}ugeometryExtractor_Function@KML geometry(TO_ATTRIBUTE,_geometry, )}elseif{{fmebianry}={georss_simple}{放置{macro$(gradedcolorzer_workspace_name)_geometryExtractor_function@georss geometry(到属性,fmebianry,几何, )}elseif{{fmebianry}={GML_2.1.2}{{fmebianry}=={GML_3.1.1}{fmebianry}={GML_3.2.1}{puts{MACRO$(GradedColorizer_WORKSPACE_NAME)}GeometryExtractor_Function@GML geometry(TO_ATTRIBUTE,fmebianry,_geometry, )}elseif{{fmebianry}={geohash}{放入{MACRO$(GradedColorizer\u WORKSPACE\u NAME)GeometryExtractor\u Function@geohash(到属性,\u geometry, )}elseif{{fmebianry}={ogeosms}{puts{MACRO$(GradedColorizer_WORKSPACE_NAME)_GeometryExtractor_Function@OGCGeometry(to_attribute,fmebianary,_geometry, )}elseif{{fmebianry}={geoms}{{fmebianry}=={geo}}{puts{MACRO$(GradedColorizerôWORKSPACEôNAME)ôGeometryExtractorôFunction@OGCGeometry(toôattribute,fmebianary,_geometry)}}]FACTORY_DEF*TeeFactory FACTORY_NAME$(GradedColorizer_WORKSPACE_NAME)_GeometryExtractor输入功能_TYPE“$(GradedColorizer_WORKSPACE_NAME)_TestFilter_Binning_Method = d“输出特征_type”$(gradedcolorizer_workspace_name)_geometryextractor_output”$($(gradedcolorizer_workspace_name)_geometryextractor_function)——“$(gradedcolorizer_workspace_name)_geometryExtractor_output”output feature_type“$(gradedcolorizer_workspace_name)_geometryRemover_output”@removegeometry()-----------------------------------默认的_macro$(gradedcolorizer_workspace_name)_aggregator_break_attr include[如果{“否”=“是”}{放入{宏$(gradedcolorizer_workspace_name)_aggregator_break_attr break_before_field_change_value}]factory_def*aggregatefactory factory_name$(gradedcolorizer_workspace_name)_aggregator input feature_type“$(gradedcolorizer_workspace_name)_geometryremover_output”mode one_level group_by _value$(gradedcolorizer_workspace_name)_aggregator_break_attr)累加属性:是列表名“列表{}”分隔符 生成“多个是”输出聚合功能“$(GradedColorizer_WORKSPACE_NAME)_Aggregator_AGGREGATE”@几何体(设置为包含单个几何体否)——#--------------------默认的“宏$(gradedcolorizer_workspace_name);“聚合器”“中断器”“属性工厂”“定义*聚合器工厂”“名称$(gradedcolorizer_workspace_name);“聚合器”“输入功能”$(gradedcolorizer_workspace_name);“排序”模式一级$($Grand DigieleSeriWorkStudioNoNex).PiggAgAtgula2BraceBraceTAF]累加器属性是:ListNoNe“列表{}”CopaTeNATEYFEAR值分隔符 生成“多个是”输出聚合功能“$(GradedColorizer_WORKSPACE_NAME)_Aggregator_2_AGGREGATE”@几何体(设置为包含单个几何体否)工厂名称$(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)$属性名称输入功能$(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)$(u聚合器名称)$(gradedcolorizer工作区名称)$(u属性名称输出)@重命名属性(attr_list_def_val,_value,rval, _价值 )工厂定义*输入工厂名称“$(GradedColorizer工作区名称)$(GradedColorizer工作区名称)\属性名称输出拆分器“输入功能类型”$(GradedColorizer工作区名称)\属性名称输出“输出功能类型”$(GradedColorizer工作区名称)\属性名称输出“输出功能类型”“$(gradedcolorizer_workspace_name)_attributenamer_output_1”——#我们这样做是为了让用户在查看的功能中看到所有可能的信息。[READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename#假设工作区临时目录已经设置并创建。请参阅controldefs.cpp-controldefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE[如果{[字符串长度{}]>0}{设置catter“”;设置逗号“;对于each attr{}{设置catter“$catter$comma@value(\”$attr“)”;设置逗号“,”;};放置“宏CATMAC”连接($catter);}否则{放置“宏catmac”;};设置sa亚搏在线fename“[regsub-all{[^a-za-z0-9]}{$(gradedcolorizer\u workspace\u name)\u attributenamer\u output}\uu[expr round(rand()*1000000)”[时钟单击-毫秒];放置“宏安全名$SAFE亚搏在线 NAME”;]#创建FFS文件将驻留的临时目录。工厂定义*创建工厂工厂名称$(GradedColorizer工作区名称)属性名称输出目录创建器输出功能类型nukeme Tcl2(“捕获文件mkdir{$(工作区温度目录)}”)工厂定义*轮胎工厂名称$(GradedColorizer工作区名称)属性名称输出目录创建器清除器输入功能类型nukeme发送光栅,点云和矢量特征沿着不同路径准备它们,以便查看工厂定义*测试工厂名称$(GradedColorizer工作区名称)$(AttributeRamer输出特性Director输入特征$(GradedColorizer工作区名称)$(AttributeRamer输出特性1“测试和FME类型=”FME光栅“输出失败特征类型”$(GradedColorizer\u工作区名称)\u AttributeRenamer\u OUTPUT\uu NotRasterFeatures\uu OUTPUT PASSED FEATURE\u TYPE$(GradedColorizer\u工作区名称)\u AttributeRenamer\u OUTPUT\uu RasterFeatures\uu FACTORY\DEF*TestFactory FACTORY\u NAME$(GradedColorizer\u WORKSPACE\u NAME)\u AttributeRenamer\u OUTPUT\uu featuredirector 1 INPUT FEATURE\u TYPE(gradedclolorizer\u工作区名称)$(gradedclolorizer\u attributenamer\u outpu\u NotRasterFeatures\uuuuuuuuuuuuu点云”输出失败特征$(gradedclolorizer\u工作区名称)=”fme\u点云”输出失败特征$(gradedclolorizer\u工作区名称)\u attributenamer\u outpuu Vector features\uuu Vector FEATURE输出通过特征$(gradedclolorizer\u工作区名称)\u attributenamer\u outpupupupupupupupupupupu.pointcloudterfeatures\uuuuuuuuuuuuuuuuuuu;矢量特征只需将它们的颜色覆盖factory_def*teefactory_name$(gradedcolorizer_workspace_name)_attributenamer_output_vectorsetterupper input feature_type$(gradedcolorizer_workspace_name)_attributenamer_output矢量features_uuu output features_u type_u viewme_35;点云功能可能需要细化即可;请注意,我们不需要直接调用thinpointcloud函数,而不是通过tcl。这将允许此转换器与桌面许可证一起使用,即使ThinPointCloud需要专业人员。Tcl2 proc $(GradedColorizer_WORKSPACE_NAME) _attributerenamer_155589ac_1a63_46b1_b506_022ea4a499ec6_thinpointcloud {} {if {[string = {no_thin} {KEEPNPOINT}}} {FME_Execute ThinPointCloud no_thin} ;{{MAXNUMPOINTS}}} {FME_Execute ThinPointCloud no_细化 ;{[string = {no_细化}{FIRSTNPOINTS}]} {FME_Execute ThinPointCloud no_细化 ;{[string = {no_细化}{LASTNPOINTS}]} {FME_Execute ThinPointCloud no_细化 ;};}FACTORY_DEF * TeeFactory FACTORY_NAME (GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT___PointCloudThinner输入FEATURE_TYPE美元(GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT___PointCloudFeatures___输出FEATURE_TYPE __viewme__ @Tcl2 (“$ (GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT_155589ac_1a63_46b1_b506_022ea4a499ec6_thinPointCloud”) Tcl2 proc (GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT_155589ac_1a63_46b1_b506_022ea4a499ec6_prepareRaster美元{set useDI [string = -nocase {$(FME_VIEWER_APP)} {fmedatainspector}];如果{$ useDI!} {FME_Execute ApplyRasterRotation双线性;};设置doResample [string = {NoReduction} {Resample}];set do子集[string = {NoReduction}{子集}];设置doBounds [string = {NoReduction} {BoundingBoxOnly}];{FME_Execute GeometryType fme_polygon;} {ELSEIF $ doResample || $ do子集}{set comment {First,我们需要给所有属性加上前缀。这样做是因为我们将调用@RasterProperties,我们希望确保它不会覆盖任何现有属性。};设置kAttrPrefix“。”;设置allNames [FME_AttributeNames];{设置新名称$kAttrPrefix;添加新名称oldName美元;FME_RenameAttribute新名称oldName美元;};FME_Execute RasterProperties光栅;如果{$doResample} {set oldNumCols [FME_GetAttribute _num_columns];设置oldNumRows [FME_GetAttribute _num_rows];设置oldSpacingX [FME_GetAttribute _spacing_x];设置oldSpacingY [FME_GetAttribute _spacing_y];设置kMinNumCells 32;设置kMaxNumCells 512;如果两个维度都大于最小num单元格,并且至少有一个大于最大值,那么我们只会重新取样。};$oldNumRows > $kMinNumCells && $oldNumCols > $kMinNumCells && ($oldNumRows > $kMaxNumCells || $oldNumCols > $kMaxNumCells)设置newSpacingY 1.0;如果{$oldNumRows > $oldNumCols} {set comment{如果行数多于列数,则需要选择一个间距,将行数减少到所选的最大值。};设置newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMaxNumCells];设置newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];现在我们需要检查这样做是否会导致列数低于最小值。如果是这样,选择间距,使我们只向下到最小(而不是过去)。};设置newNumCols [expr $oldNumCols * $oldSpacingX / $newSpacingX];如果{$newNumCols < $kMinNumCells} {set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMinNumCells];设置newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];};这与上面的情况相同,只是行和cols的角色是相反的。};设置newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMaxNumCells];设置newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];设置newNumRows [expr $oldNumRows * $oldSpacingY / $newSpacingY];如果{$newNumRows < $kMinNumCells} {set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMinNumCells];设置newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];};};FME_Execute ResampleRaster CELL_SIZE $newSpacingX $newSpacingY最近邻;};{set comment{获取一些可能是属性或常量的字符串的值。请注意,我们传递了正在使用的属性前缀,因为如果一个确实是属性,那么它实际上就不是字符串中的确切名称(因为我们在上面重命名了所有属性)。};设置rasterNumRows [FME_GetAttribute _num_rows];设置rasterNumCols [FME_GetAttribute _num_columns];如果指定的起始位置实际位于栅格中,则设置注释{只执行子集设置。};如果{$subsetStartRow < $rasterNumRows && $subsetStartCol < $rasterNumCols}};{set subsetNumRows [expr $rasterNumRows - $subsetStartRow];};{set subsetNumCols [expr $rasterNumCols - $subsetStartCol];};FME_Execute SubsetRaster $subsetStartRow $subsetNumRows $subsetStartCol $subsetNumCols;};};set comment{删除@RasterProperties添加的所有属性,并从实际属性中删除前缀。我们假设它们都以下划线开头。};FME_Execute RemoveAttributes fme_regexp_match {^_};{设置新名称$kAttrPrefix;添加新名称oldName美元;FME_RenameAttribute oldName美元新名称;};};}FACTORY_DEF * TeeFactory FACTORY_NAME (GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT_RasterSetterUpper输入FEATURE_TYPE美元(GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT___RasterFeatures___输出FEATURE_TYPE __viewme__ @Tcl2 (“$ (GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT_155589ac_1a63_46b1_b506_022ea4a499ec6_prepareRaster { }{ }{ }{ }”)#现在录音机路线的所有特性,改变他们的#功能类型变压器的名字,他们认为好# $ (GradedColorizer_WORKSPACE_NAME) _AttributeRenamer_OUTPUT_155589ac_1a63_46b1_b506_022ea4a499ec6_VIS_FEAT_TYPE变化特征类型#特性的可视化。DEFAULT_MACRO $(GradedColorizer_WORKSPACE_NAME) _attributerenamer_output_155589ac_1a4a499ec6_vis_feat_type $(gradedcolorizer_workspace_workspace_name)_AttributeRenamer_OUTPUT$(CATMAC) DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FF亚搏在线S_NAME)数据检查器将限制它在WIN32上读取的特性的最大数量,因此我们将相应地限制这里使用MAX_FEATURES_TO_RECORD指令记录的特性的数量。FACTORY_DEF * RecorderFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_AttributeRenamer_OUTPUT_Recorder INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType($($(GradedColorizer_WORKSPACE_NAME)_AttributeRenamer_OUTPUT_155589ac_1a63_46b1_b506_022ea4a499ec6_VIS_FEAT_TYPE)) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA _max,varchar 255 、_min varchar 255 、_Number_of_Bands varchar 255 、_Color_Scheme varchar 255 、_RangeVals varchar 255 、rval varchar 255 、_Binning_Method varchar 255 、_geometry varchar 255 模式录制RECORD_DIRECTLY_TO_DISK是MAX_FEATURES_TO_RECORD WIN32 2000000#------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_ListExploder INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_AttributeRenamer_OUTPUT_0" LIST_NAME "list{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY MODE LEAN OUTPUT ELEMENT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_ListExploder_LIST_FOUND" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_ListExploder_2 INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_ListExploder_LIST_FOUND" LIST_NAME "list{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY MODE LEAN OUTPUT ELEMENT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_ListExploder_2_LIST_FOUND" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- # First determine which function we are going to be using -- we can do # this statically at parse time for efficiency sake MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function INCLUDE [ if {{fmebinary} == {fmebinary} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @Geometry(FROM_ATTRIBUTE_BINARY,_geometry) } } elseif {{fmebinary} == {fmehex} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @Geometry(FROM_ATTRIBUTE_BINARY_HEX,_geometry) } } elseif {{fmebinary} == {fmexml} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @Geometry(FROM_ATTRIBUTE,_geometry) } } elseif {{fmebinary} == {fmexmlencoded} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @Geometry(FROM_ENCODED_STRING,&_geometry) } } elseif {{fmebinary} == {polyline} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @Geometry(FROM_ATTRIBUTE_POLYLINE,_geometry) } } elseif {{fmebinary} == {wkt} || {fmebinary} == {wkb} || {fmebinary} == {wkbhex} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @OGCGeometry(from_attribute,fmebinary,_geometry) } } elseif {{fmebinary} == {GEOJSON} || {fmebinary} == {ESRIJSON} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @JSONGeometry(FROM_ATTRIBUTE,fmebinary,_geometry) } } elseif {{fmebinary} == {GEORSS} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @GeoRSSGeometry(FROM_ATTRIBUTE,_geometry) } } elseif {{fmebinary} == {KML} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @KMLGeometry(FROM_ATTRIBUTE,_geometry) } } elseif {{fmebinary} == {GML} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @GMLGeometry(FROM_ATTRIBUTE,_geometry, )}} ELSEIF {{} fmebinary == {地理散列}} {{放宏$(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @GeoHash(FROM_ATTRIBUTE,_geometry, )}} elseif的{{fmebinary} == {} ogeosms || {fmebinary} == {geosms} || {fmebinary} == {geo} } { puts {MACRO $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function @OGCGeometry(from_attribute,fmebinary,_geometry) } } ] FACTORY_DEF * TeeFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_ListExploder_2_LIST_FOUND" OUTPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_OUTPUT" $($(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_Function) # ------------------------------------------------------------------------- FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_PythonCaller_5 INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_GeometryReplacer_OUTPUT" SYMBOL_NAME FeatureProcessor PYTHON_NAMESPACE FMEOBJECTS SOURCE_CODE import fmeobjects 数学 colorsys 模板 功能 接口: 高清 processFeature 特征 通过 模板 接口: FeatureProcessor 宾语 高清 __在里面__ 通过 高清 输入 特征 RVAL = feature.getAttribute RVAL 打印 RVAL 频带= LEN rval.split +1 值=浮 feature.getAttribute _价值 CS = INT feature.getAttribute _Color_Scheme R = 0.0 G = 0.0 B = 0.0 全球 箱子 I = 1 对于 VAL rval.split 如果 =浮 VAL [R G = self.color 一世 CS 打破 ELIF 浮动 rval.split -1 [R G = self.color CS 打破 I = I + 1 feature.setAttribute fme_color 海峡 [R + + STR G + + STR feature.setAttribute fme_fill_color 海峡 [R + + STR G + + STR self.pyoutput 特征 高清 通过 高清 颜色 一世 CS 如果 CS == 1: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF CS == 2: [R G = colorsys.hsv_to_rgb 1-浮 一世 1 1 ELIF CS == 3: [R G = 1 浮动 一世 浮动 一世 ELIF CS == 4: [R G = 1 1-浮 一世 1-浮 一世 ELIF CS == 5: [R G = 浮动 一世 浮动 一世 1 ELIF cs==6: [R G = 1-浮 一世 1-浮 一世 1 ELIF cs==7: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF Cs==8: [R G = colorsys.hsv_to_rgb 1.0条 3-浮动 一世 1 1 其他: [R G = 0个 0个 0个 返回 [R G 输出PYOUTPUT功能部件_type“$(gradedColorizer_workspace_name)_pythoncaller_5_output”——动态函数配置python导入统计计算器动态函数配置python“统计计算器.connecttransformer('$(gradedcolorzer_workspace_name)_statistics calculator_2',{‘group_by_macro':'''(gradedcolorzer_workspace_name)_statistics calculator_2擕5813d9_2d8c_4bb5_94d1_0884a75117;1176d7_group_by','stats'u attr':''u value','count'u attr':''u tcount',none:none})“factory'def*teefactory factory'u name$(gradedcolorizer'u workspace'u name)''u statistics calculator'u 2'u inputprocessor input feature'$(gradedcolorizer'u workspace'u name)''u testfilter'u binning'u method = C“输出特性”类型“原始”Python(StatisticsCalculator.recordFeature,$(gradedcolorizer_workspace_name)_statistics calculator_2)factory_def*teefactory factory_name$(gradedcolorizer_workspace_name)_statistics calculator_2_不需要输入功能输入功能输入功能输出功能输出功能类型$(gradedcolorizer_workspace_name)_statistics calculator_2_完整的“factory_def*sortfactory factory”名称$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_2_COMPLETE outputter INPUT FEATURE_TYPE_UNUSED_INPUT_TO_guarance_FACTORY_does_CONSUME_EVERYTHING_uinput FEATURE_TYPE)$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_2_COMPLETE“输出排序功能”$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_2_COMPLETE)@Python(StatisticsCalculator.Summary Estatistics,$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_2,_原始工厂定义*创建工厂名称$(GradedColorizer工作区名称)统计计算器2汇总创建者创建1工厂定义*元素工厂名称$(GradedColorizer工作区名称)统计计算器2汇总分解器列表$(gradedcolorizer_workspace_name)_statistics calculator_2_stats{}mode lean_and_mean clone_geometry no input feature_u type_u unused_u input_u guarance_u factory_u dont_u consume_35; everything_uuuuuuu-----------------------------------factory_u def*sortfactory factory_u name$(gradedcolorizer_workspace_u name)o sorter输入功能部件类型“$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_2_COMPLETE”按状态数字升序输出排序功能部件类型“$(GradedColorizer_WORKSPACE_NAME)_Sorter_SORTED”#——(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称){in工作区名称{{set domainname$in工作区名称;如果{{{{global}{{{global}{{{local}}{{gradedcolorizer工作区名称(gradedcolorizer工作区名称)$(gradedcolorizer工作区名称)};设置domainname$xformnamname$domainname$domainname$domainname域名;}工厂定义*teefactory工厂名称$(gradedcolorizer_workspace_name)计数器输入特性$(gradedcolorizer_workspace_name)分类器分类“输出特性”$(gradedcolorizer_workspace_name)计数器输出“_count”@计数(fme_encoded,@tcl2($(gradedcolorizer_workspace_name)计数器_e8791042_1345_4a31_aff8_dbab267;67fff977_createdomain{计数器}“),0)豸————fme_python_path“$(fme_mf_dir)”factory_def*python factory factory_name$(gradedcolorizer_workspace_name)_pythoncaller_3 input feature_type“$(gradedcolorizer_workspace_name)_counter_output“symbol_name featureprocessor python_namespace fmeobjects source_code import fmeobjects 数学 colorsys 模板 功能 接口: 高清 processFeature 特征 通过 模板 接口: FeatureProcessor 宾语 高清 __在里面__ 全球 箱子 箱子=0 全球 普雷瓦尔 上一页=0 通过 高清 输入 特征 波段=int feature.getAttribute _波段数 值=浮 feature.getAttribute _价值 count=整数 feature.getAttribute _计数 t计数=整数 feature.getAttribute _t计数 CS = INT feature.getAttribute _Color_Scheme R = 0.0 G = 0.0 B = 0.0 全球 箱子 如果 计数 箱子+1 *t计数 值==上一个: [R G = self.color 箱子 CS 其他: [R G = self.color 箱子+1 CS bin=bin+1 feature.setAttribute fme_color 海峡 [R + + STR G + + STR feature.setAttribute fme_fill_color 海峡 [R + + STR G + + STR self.pyoutput 特征 高清 通过 高清 颜色 一世 CS 如果 CS == 1: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF CS == 2: [R G = colorsys.hsv_to_rgb 1-浮 一世 1 1 ELIF CS == 3: [R G = 1 浮动 一世 浮动 一世 ELIF CS == 4: [R G = 1 1-浮 一世 1-浮 一世 ELIF CS == 5: [R G = 浮动 一世 浮动 一世 1 ELIF cs==6: [R G = 1-浮 一世 1-浮 一世 1 ELIF cs==7: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF Cs==8: [R G = colorsys.hsv_to_rgb 1.0条 3-浮动 一世 1 1 其他: [R G = 0个 0个 0个 返回 [R G OUTPUT PYOUTPUT FEATURE_TYPE “$(GradedColorizer_WORKSPACE_NAME)_PythonCaller_3_OUTPUT” #------------------------------------------------------------------------- DEFAULT_MACRO __$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_ad57832d_105d_472a_8aef_a8db882f909f7_GROUP_BY DYNAMIC_FUNCTION_CONFIGURATION Python FMEOBJECTS DYNAMIC_FUNCTION_CONFIGURATION Python import StatisticsCalculator DYNAMIC_FUNCTION_CONFIGURATION Python "StatisticsCalculator.connectTransformer( '$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator',{ 'GROUP_BY_MACRO':'__$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_ad57832d_105d_472a_8aef_a8db882f909f7_GROUP_BY', 'STATS_ATTR':'_Value', 'MIN_ATTR':'_min', 'RANGE_ATTR':'_range', None:None})" FACTORY_DEF * TeeFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_InputProcessor INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_TestFilter_Binning_Method = B”输出FEATURE_TYPE __ORIGINAL__ @Python(StatisticsCalculator.recordFeature,$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator)FACTORY_DEF * TeeFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_UnneededInputNuker INPUT FEATURE_TYPE __ORIGINAL__输出FEATURE_TYPE “$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE” FACTORY_DEF * SortFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_CompleteOutputter INPUT FEATURE_TYPE __UNUSED_INPUT_TO_GUARANTEE_FACTORY_DOESNT_CONSUME_EVERYTHING__ INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE" OUTPUT SORTED FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE" @Python(StatisticsCalculator.summarizeStatistics,$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator,__ORIGINAL__) FACTORY_DEF * CreationFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_SummaryCreator CREATE_AT_END NUMBER_TO_CREATE 1 FACTORY_DEF * ElementFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_SummaryExploder LIST_NAME $(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_stats{} MODE LEAN_AND_MEAN CLONE_GEOMETRY no INPUT FEATURE_TYPE __UNUSED_INPUT_TO_GUARANTEE_FACTORY_DOESNT_CONSUME_EVERYTHING__ # ------------------------------------------------------------------------- FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_PythonCaller_2 INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_StatisticsCalculator_COMPLETE" SYMBOL_NAME FeatureProcessor PYTHON_NAMESPACE FMEOBJECTS SOURCE_CODE import fmeobjects 数学 colorsys 模板 功能 接口: 高清 processFeature 特征 通过 模板 接口: FeatureProcessor 宾语 高清 __在里面__ 通过 高清 输入 特征 波段=int feature.getAttribute _波段数 MIN =浮 feature.getAttribute _min valrange =浮 feature.getAttribute _范围 值=浮 feature.getAttribute _价值 CS = INT feature.getAttribute _Color_Scheme R = 0.0 G = 0.0 B = 0.0 全球 箱子 对于 一世 范围 如果 = MIN +浮动 I + 1 *浮动 valrange 乐队: [R G = self.color 一世 CS 打破 feature.setAttribute fme_color 海峡 [R + + STR G + + STR feature.setAttribute fme_fill_color 海峡 [R + + STR G + + STR self.pyoutput 特征 高清 通过 高清 颜色 一世 CS 如果 CS == 1: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF CS == 2: [R G = colorsys.hsv_to_rgb 1-浮 一世 1 1 ELIF CS == 3: [R G = 1 浮动 一世 浮动 一世 ELIF CS == 4: [R G = 1 1-浮 一世 1-浮 一世 ELIF CS == 5: [R G = 浮动 一世 浮动 一世 1 ELIF cs==6: [R G = 1-浮 一世 1-浮 一世 1 ELIF cs==7: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF Cs==8: [R G = colorsys.hsv_to_rgb 1.0条 3-浮动 一世 1 1 其他: [R G = 0个 0个 0个 返回 [R G OUTPUT PYOUTPUT FEATURE_TYPE “$(GradedColorizer_WORKSPACE_NAME)_PythonCaller_2_OUTPUT” #------------------------------------------------------------------------- FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME $(GradedColorizer_WORKSPACE_NAME)_PythonCaller_4 INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_TestFilter_Binning_Method = A” SYMBOL_NAME FeatureProcessor PYTHON_NAMESPACE FMEOBJECTS SOURCE_CODE进口 fmeobjects 数学 colorsys 模板 功能 接口: 高清 processFeature 特征 通过 模板 接口: FeatureProcessor 宾语 高清 __在里面__ 通过 高清 输入 特征 RVAL = feature.getAttribute _RangeVals 频带= LEN rval.split +1 值=浮 feature.getAttribute _价值 CS = INT feature.getAttribute _Color_Scheme R = 0.0 G = 0.0 B = 0.0 全球 箱子 I = 1 对于 VAL rval.split 如果 =浮 VAL [R G = self.color 一世 CS 打破 ELIF 浮动 rval.split -1 [R G = self.color CS 打破 I = I + 1 feature.setAttribute fme_color 海峡 [R + + STR G + + STR feature.setAttribute fme_fill_color 海峡 [R + + STR G + + STR self.pyoutput 特征 高清 通过 高清 颜色 一世 CS 如果 CS == 1: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF CS == 2: [R G = colorsys.hsv_to_rgb 1-浮 一世 1 1 ELIF CS == 3: [R G = 1 浮动 一世 浮动 一世 ELIF CS == 4: [R G = 1 1-浮 一世 1-浮 一世 ELIF CS == 5: [R G = 浮动 一世 浮动 一世 1 ELIF cs==6: [R G = 1-浮 一世 1-浮 一世 1 ELIF cs==7: [R G = colorsys.hsv_to_rgb 浮动 一世 1 1 ELIF Cs==8: [R G = colorsys.hsv_to_rgb 1.0条 3-浮动 一世 1 1 其他: [R G = 0个 0个 0个 返回 [R G 输出PYOUTPUT FEATURE_TYPE " $ (GradedColorizer_WORKSPACE_NAME) _PythonCaller_4_OUTPUT " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -包括[设置macroLine“宏(GradedColorizer_WORKSPACE_NAME) _AttributeRemover_LIST_EXP美元”;{set attr [FME_DecodeText $attr];set attr [regsub "{}$" $attr "{}.*"];设置attr [regsub -all "{}" $attr "{\[0-9\]+}"];附加macroLine”^ attr美元”;};把macroLine美元;]FACTORY_DEF * TeeFactory FACTORY_NAME $ (GradedColorizer_WORKSPACE_NAME) _AttributeRemover输入FEATURE_TYPE " $ (GradedColorizer_WORKSPACE_NAME) _PythonCaller_3_OUTPUT“输入FEATURE_TYPE " $ (GradedColorizer_WORKSPACE_NAME) _PythonCaller_2_OUTPUT“输入FEATURE_TYPE " $ (GradedColorizer_WORKSPACE_NAME) _PythonCaller_4_OUTPUT“输入FEATURE_TYPE " $ (GradedColorizer_WORKSPACE_NAME) _PythonCaller_5_OUTPUT“输出FEATURE_TYPE " $ (GradedColorizer_WORKSPACE_NAME) _AttributeRemover_OUTPUT”@RemoveAttributes(_Number_of_Bands,_Color_Scheme,_RangeVals,_Value,_Binning_Method,_tcount,_count,_min,_range,rval,_geometry,_element_index) @RemoveAttributes(fme_regexp_match"$($(GradedColorizer_WORKSPACE_NAME)_AttributeRemover_LIST_EXP)") FACTORY_DEF * TeeFactory FACTORY_NAME "$(GradedColorizer_WORKSPACE_NAME)_OUTPUT Output Collector" INPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_AttributeRemover_OUTPUT" OUTPUT FEATURE_TYPE "$(GradedColorizer_WORKSPACE_NAME)_OUTPUT" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(GradedColorizer_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "GradedColorizer OUTPUT Output Renamer/Nuker" INPUT FEATURE_TYPE GradedColorizer_OUTPUT OUTPUT FEATURE_TYPE GradedColorizer_OUTPUT # ------------------------------------------------------------------------- # Set the directive to add all the meta-attributes to the features.#我们这样做是为了让用户在查看的功能中看到所有可能的信息。[READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename#假设工作区临时目录已经设置并创建。请参阅controldefs.cpp-controldefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE[如果{[字符串长度{}]>0}{设置catter“”;设置逗号“;对于each attr{}{设置catter“$catter$comma@value(\”$attr“)”;设置逗号“,”;};放置“宏CATMAC”连接($catter);}否则{放置“宏catmac”;};设置sa亚搏在线feName "[regsub -all {[^a-zA-Z0-9]} {Intersector_INTERSECTED} _]_[expr round(rand() * 1000000)]_[时钟点击-毫秒]";放置“宏安全名$SAFE亚搏在线 NAME”;]#创建FFS文件将驻留的临时目录。(“catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}”)point cloud and vector features down different paths to prepare # them for viewing FACTORY_DEF * TestFactory FACTORY_NAME Intersector_INTERSECTED_FeatureDirector INPUT FEATURE_TYPE GradedColorizer_OUTPUT TEST &fme_type == "fme_raster" OUTPUT FAILED FEATURE_TYPE Intersector_INTERSECTED___NotRasterFeatures___ OUTPUT PASSED FEATURE_TYPE Intersector_INTERSECTED___RasterFeatures___ FACTORY_DEF * TestFactory FACTORY_NAME Intersector_INTERSECTED___FeatureDirector1 INPUT FEATURE_TYPE Intersector_INTERSECTED___NotRasterFeatures___ TEST &fme_type == "fme_point_cloud" OUTPUT FAILED FEATURE_TYPE Intersector_INTERSECTED___VectorFeatures___ OUTPUT PASSED FEATURE_TYPE Intersector_INTERSECTED___PointCloudFeatures___ # Vector features simply may get their colors overridden FACTORY_DEF * TeeFactory FACTORY_NAME Intersector_INTERSECTED_VectorSetterUpper INPUT FEATURE_TYPE Intersector_INTERSECTED___VectorFeatures___ OUTPUT FEATURE_TYPE __viewme__ # Point Cloud Features Might Need to be thinned # Note that we don't call the ThinPointCloud function directly, but rather # do it through TCL.这将允许此转换器与桌面许可证一起使用,即使ThinPointCloud需要专业人员。TCL2 PROC Intersector_INTERSECTED_b409dfaf_c2a4_4b05_9542_bdc1a9f3f2069_thinPointCloud {} {如果{[串等于{NO_THINNING} {KEEPNPOINT}]} {FME_Execute ThinPointCloud NO_THINNING ;{{MAXNUMPOINTS}}} {FME_Execute ThinPointCloud no_细化 ;{[string = {no_细化}{FIRSTNPOINTS}]} {FME_Execute ThinPointCloud no_细化 ;{[string = {no_细化}{LASTNPOINTS}]} {FME_Execute ThinPointCloud no_细化 ;};} FACTORY_DEF * TeeFactory FACTORY_NAME Intersector_INTERSECTED___PointCloudThinner INPUT FEATURE_TYPE Intersector_INTERSECTED___PointCloudFeatures___ OUTPUT FEATURE_TYPE __viewme__ @ TCL2( “Intersector_INTERSECTED_b409dfaf_c2a4_4b05_9542_bdc1a9f3f2069_thinPointCloud”)TCL2 PROC Intersector_INTERSECTED_b409dfaf_c2a4_4b05_9542_bdc1a9f3f2069_prepareRaster {subsetStartRow subsetNumRows subsetStartCol subsetNumCols} {设定useDI [字符串等于-nocase {$(FME_VIEWER_APP)} {fmedatainspector}];如果{$ useDI!} {FME_Execute ApplyRasterRotation双线性;};设置doResample [string = {NoReduction} {Resample}];set do子集[string = {NoReduction}{子集}];设置doBounds [string = {NoReduction} {BoundingBoxOnly}];{FME_Execute GeometryType fme_polygon;} {ELSEIF $ doResample || $ do子集}{set comment {First,我们需要给所有属性加上前缀。这样做是因为我们将调用@RasterProperties,我们希望确保它不会覆盖任何现有属性。};设置kAttrPrefix“。”;设置allNames [FME_AttributeNames];{设置新名称$kAttrPrefix;添加新名称oldName美元;FME_RenameAttribute新名称oldName美元;};FME_Execute RasterProperties光栅;如果{$doResample} {set oldNumCols [FME_GetAttribute _num_columns];设置oldNumRows [FME_GetAttribute _num_rows];设置oldSpacingX [FME_GetAttribute _spacing_x];设置oldSpacingY [FME_GetAttribute _spacing_y];设置kMinNumCells 32;设置kMaxNumCells 512;如果两个维度都大于最小num单元格,并且至少有一个大于最大值,那么我们只会重新取样。};$oldNumRows > $kMinNumCells && $oldNumCols > $kMinNumCells && ($oldNumRows > $kMaxNumCells || $oldNumCols > $kMaxNumCells)设置newSpacingY 1.0;如果{$oldNumRows > $oldNumCols} {set comment{如果行数多于列数,则需要选择一个间距,将行数减少到所选的最大值。};设置newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMaxNumCells];设置newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];现在我们需要检查这样做是否会导致列数低于最小值。如果是这样,选择间距,使我们只向下到最小(而不是过去)。};设置newNumCols [expr $oldNumCols * $oldSpacingX / $newSpacingX];如果{$newNumCols < $kMinNumCells} {set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMinNumCells];设置newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];};这与上面的情况相同,只是行和cols的角色是相反的。};设置newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMaxNumCells];设置newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];设置newNumRows [expr $oldNumRows * $oldSpacingY / $newSpacingY];如果{$newNumRows < $kMinNumCells} {set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMinNumCells];设置newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];};};FME_Execute ResampleRaster CELL_SIZE $newSpacingX $newSpacingY最近邻;};{set comment{获取一些可能是属性或常量的字符串的值。请注意,我们传递了正在使用的属性前缀,因为如果一个确实是属性,那么它实际上就不是字符串中的确切名称(因为我们在上面重命名了所有属性)。};设置rasterNumRows [FME_GetAttribute _num_rows];设置rasterNumCols [FME_GetAttribute _num_columns];如果指定的起始位置实际位于栅格中,则设置注释{只执行子集设置。};如果{$subsetStartRow < $rasterNumRows && $subsetStartCol < $rasterNumCols}};{set subsetNumRows [expr $rasterNumRows - $subsetStartRow];};{set subsetNumCols [expr $rasterNumCols - $subsetStartCol];};FME_Execute SubsetRaster $subsetStartRow $subsetNumRows $subsetStartCol $subsetNumCols;};};set comment{删除@RasterProperties添加的所有属性,并从实际属性中删除前缀。我们假设它们都以下划线开头。};FME_Execute RemoveAttributes fme_regexp_match {^_};{设置新名称$kAttrPrefix;添加新名称oldName美元;FME_RenameAttribute oldName美元新名称;};};} FACTORY_DEF * TeeFactory FACTORY_NAME Intersector_INTERSECTED_RasterSetterUpper INPUT FEATURE_TYPE Intersector_INTERSECTED___RasterFeatures___ OUTPUT FEATURE_TYPE __viewme__ @ TCL2(“Intersector_INTERSECTED_b409dfaf_c2a4_4b05_9542_bdc1a9f3f2069_prepareRaster { }{ }{ }{ }“)#现在将所有功能集成在录像机,改变他们#功能类型变压器的名字,让他们查看很好#Intersector_INTERSECTED_b409dfaf_c2a4_4b05_9542_bdc1a9f3f2069_VIS_FEAT_TYPE改变特征类型的特征#正在显现。DEFAULT_MACRO Intersector_INTERSECTED_b409dfaf_c2a4_4b05_9542_bdc1a9f3f2069_VIS_FEAT_TYPE Intersector_INTERSECTED $(CATMAC)DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/ $亚搏在线(SAFE_FFS_NAME).ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO#[PR#45549]数据Inspector将限制功能#它读取WIN32的最大数量,所以我们会相应地限制#特征的数量,我们在这里记录使用 MAX_FEATURES_TO_RECORD directive. FACTORY_DEF * RecorderFactory FACTORY_NAME Intersector_INTERSECTED_Recorder INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType($(Intersector_INTERSECTED_b409dfaf_c2a4_4b05_9542_bdc1a9f3f2069_VIS_FEAT_TYPE)) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA _max,varchar 255 模式录制RECORD_DIRECTLY_TO_DISK是MAX_FEATURES_TO_RECORD WIN32 2000000#------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME "Final Output Feature Type Router" INPUT FEATURE_TYPE * TEST @Value(__wb_out_feat_type__) != "" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value(__wb_out_feat_type__)) OUTPUT FAILED 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 $theFile & \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__