#!#! #! #!#! #!#! #!#! #!#! #!#! #!#! #!#!#!#! #!#! #!#! #! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#! #!#! #!#! #!#! #!#!FME_PYTHON_VERSION 27#!START_HEADER#!START_WB_HEADER READER_TYPE MULTI_READER WRITER_TYPE NULL WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET空#!END_WB_HEADER#!START_WB_HEADER#!END_WB_HEADER#!END_HEADER LOG_FILENAME “$(FME_MF_DIR)AttributeManagerRegEx.log” LOG_APPEND NO LOG_FILTER_MASK -1 LOG_MAX_FEATURES 200个LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE自动FME_GEOMETRY_HANDLING增强FME_STROKE_MAX_DEVIATION 0#------------------------------------------------------------------------ MULTI_READER_CONTINUE_ON_READER_FAILURE无#------------------------------------------------------------------------- MACRO WORKSPACE_NAME AttributeManagerRegEx MACRO FME_VIEWER_APP fmedatainspector#-------------------------------------------------------------------------有[如果{[信息存在ENV(FME_TEMP)] && [文件isdirectory $ ENV(FME_TEMP)]} {设定gVisualizerTemp $ ENV(FME_TEMP)} {ELSEIF [信息存在ENV(TEMP)] && [file isdirectory $env(TEMP)]} {set gVisualizerTemp $env(TEMP)} elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:}; regsub -all {[ ,&]} {$(WORKSPACE_NAME)} {_} wsname; set gVisualizerTemp $gVisualizerTemp/${wsname}_[clock format [clock seconds] -format %H%M%S]; puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp"; MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.ffs MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- Tcl2 proc Creator_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_XML NOT_ACTIVATED MACRO Creator_CLASSIC NOT_ACTIVATED MACRO Creator_2D3D 2D_GEOMETRY MACRO Creator_COORDS {{几何对象}=={几何对象}}{放置{宏Creator_XML *}}}{宏Creator_CLASSIC *}}包括[if{{几何对象}== {3D坐标列表}}{宏Creator_2D3D 3D_GEOMETRY};{set comment {We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates} {{Geometry Object} == {2D Min/Max Box}} {set comment {We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates};设置splitcods [split]字符串修剪{ }]];如果{[llength $ splitCoords]> 4} {集trimmedCoords {};的foreach项目$ splitCoords {如果{$项目= {}} {lappend trimmedCoords $项目}!};集splitCoords $ trimmedCoords;};如果{[llength $ splitCoords] = 4!} {{错误者:坐标列表中,预计四个数字为“疯丫头MINY MAXX MAXY”空格分隔列表 - ` ' 是无效的};};集其minX [LINDEX $ splitCoords 0];集MINY [LINDEX $ splitCoords 1];集maxX的[LINDEX $ splitCoords 2];集MAXY [LINDEX $ splitCoords 3];看跌期权 “MACRO Creator_COORDS $ $了minX $ MINY $其minX美星$ maxX的$ $美星$ maxX的$ MINY $了minX MINY”;放{MACRO Creator_2D3D 2D_GEOMETRY};看跌期权{MACRO Creator_CLASSIC *}}] FACTORY_DEF $(Creator_XML)CreationFactory FACTORY_NAME Creator_XML_Creator CREATE_AT_END没有输出FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING, ?XML version = 1.0 编码= US_ASCII 独立= 没有 几何 尺寸= 2 空值 几何 )FACTORY_DEF $ (Creator_CLASSIC) CreationFactory FACTORY_NAME Creator_CLASSIC_Creator (Creator_2D3D) (Creator_COORDS) CREATE_AT_END没有美元输出FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_Cloner输入FEATURE_TYPE _____CREATED______ @Tcl2 (Creator_CoordSysRemover) @CoordSys () NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE“_creation_instance”输出FEATURE_TYPE Creator_CREATED fme_feature_type创造者FACTORY_DEF * BranchingFactory Creator_CREATED FACTORY_NAME”布兰凯尔1 4”输入FEATURE_TYPE Creator_CREATED TARGET_FACTORY " $ (WB_CURRENT_CONTEXT) _CREATOR_BRANCH_TARGET“MAXIMUM_COUNT没有输出通过FEATURE_TYPE * # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME”(WB_CURRENT_CONTEXT)美元_CREATOR_BRANCH_TARGET“输入输出FEATURE_TYPE FEATURE_TYPE * * # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION创建MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP attrset_create_directive _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION {"_creation_instance" "LAT" 纬度 内容= 52.132932" “RENAME_SET_VALUE”}输出输出FEATURE_TYPE AttributeManager_OUTPUT#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeManager_2 INPUT FEATURE_TYPE AttributeManager_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OPATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ACTION_COLUMN 3 DEF_VAL_COLUMN 2 ATTR_ACTION { “LAT”, “LAT”“ ReplaceRegEx LAT 纬度 内容= d * d * 2 “ ”SET_TO“}输出输出FEATURE_TYPE AttributeManager_2_OUTPUT#-------------------------------------------------------------------------#假设是工作区临时目录已被设置和创建的。见controldefs。cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {AttributeManager_2_Output} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME AttributeManager_2_Output_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeManager_2_OUTPUT GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { AttributeManager_2_Output } RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING OUTPUT RESULT FEATURE_TYPE __viewme__ # Now route all the features into the recorder, changing their # feature type to the transformer name so that they view nicely DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO # [PR#45549] The Data Inspector will limit the maximum number of features # it reads on WIN32, so we will correspondingly limit the number of # features we record here using the MAX_FEATURES_TO_RECORD directive. FACTORY_DEF * RecorderFactory FACTORY_NAME AttributeManager_2_Output_Recorder COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType(@Value(__inspector_feature_type_attr__)) @RemoveAttributes(__inspector_feature_type_attr__) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" STORE_SCANNED_SCHEMA YES CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA LAT,varchar 255 模式记录STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是的MAX_FEATURES_TO_RECORD WIN32 2000000 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * RoutingFactory FACTORY_NAME“目的地功能类型路由相关器”COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE * FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__输出路由FEATURE_TYPE *输出NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2 (“FME_StatMessage 818059 [FME_GetAttributefme_template_feature_type] 818060 818061 fme_warn”) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME”最终输出核武器”输入FEATURE_TYPE __nuke_me__ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * CreationFactory FACTORY_NAME VisualizerProcessor CREATE_AT_END输出FEATURE_TYPE __NUKEME__ @TCL(“如果[文件存在{$ (WORKSPACE_TEMP_DIR)}]{设置文件[水珠-nocomplain目录{$ (WORKSPACE_TEMP_DIR)}反面* .ffs];如果{[llength $files] == 1}{设置文件{$(WORKSPACE_TEMP_DIR)/};追加文件[lindex $files 0];FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042—visualizer—单一应用程序—delete-on-close—no-source-prompt—f FFS \042$theFile\042 & \175;} elseif {[llength $files] == 0} {catch {file delete -force {$(WORKSPACE_TEMP_DIR)}};} else {set filesNoExt {};设置lastfile {};设置文件名[字符串trimright $fileName {.ffs}]; if [regexp {(.*)_[0-9]*$} $fileNoExt wholething fileNoExtBase] { if { $fileNoExtBase == $lastfile } { continue } }; set lastfile $fileNoExt; lappend filesNoExt $fileNoExt }; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -d {$(WORKSPACE_TEMP_DIR)} -a ffs -f FFS $filesNoExt & \175; }; }; ") FACTORY_DEF * TeeFactory FACTORY_NAME VisualizerCleaner INPUT FEATURE_TYPE __NUKEME__