# ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! Exposed Attributes: OWNERNM1,PSTLADDRESS,INTPSTLCD" #! POSITION="654.173 -106.25" #! TOP_LEFT="654.173 -106.25" #! BOTTOM_RIGHT="653.173 -105.25" #! BOUNDING_RECT="654.173 -106.25 -1 -1" #! ORDER="5e+14" #! FOLLOW_ANCHOR="true" #! INFO_NODE="true" #! COLOUR="0.666667,0.901961,1,0.294118" #! COMMENT_TYPE="REGULAR" #! ANCHORED_NODE="9" #! /> #! Exposed Attributes:
Combine Attributes: Keep Initiator Attributes if Conflict
Combine Geometry: Initiator Geometry Only" #! POSITION="1564.6 -1178.85" #! TOP_LEFT="1564.6 -1178.85" #! BOTTOM_RIGHT="1563.6 -1177.85" #! BOUNDING_RECT="1564.6 -1178.85 -1 -1" #! ORDER="5e+14" #! FOLLOW_ANCHOR="true" #! INFO_NODE="true" #! COLOUR="0.666667,0.901961,1,0.294118" #! COMMENT_TYPE="REGULAR" #! ANCHORED_NODE="11" #! /> #!
# ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! Password:,POSTGIS_SCHEMAS_FOR_TABLE_LISTING,"IGNORE TEXT",POSTGIS Schemas for Table Listing:,POSTGIS_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,"IGNORE TEXT",POSTGIS ,POSTGIS_HOST,"OPTIONAL TEXT",POSTGIS Host:,POSTGIS_PORT,"OPTIONAL INTEGER",POSTGIS Port:,POSTGIS_USER_NAME,"OPTIONAL TEXT",POSTGIS 用户名:,POSTGIS_USE_TRUE_POSTGIS_TYPES, “忽略TEXT”,POSTGIS ,POSTGIS_DISABLE_COLLECTION_SPLITTING, “忽略TEXT”,POSTGIS “/>#! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! Password:,POSTGIS_SCHEMAS_FOR_TABLE_LISTING,"IGNORE TEXT",POSTGIS Schemas for Table Listing:,POSTGIS_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,"IGNORE TEXT",POSTGIS ,POSTGIS_HOST,"OPTIONAL TEXT",POSTGIS Host:,POSTGIS_PORT,"OPTIONAL INTEGER",POSTGIS Port:,POSTGIS_USER_NAME,"OPTIONAL TEXT",POSTGIS 用户名:,POSTGIS_USE_TRUE_POSTGIS_TYPES, “忽略TEXT”,POSTGIS ,POSTGIS_DISABLE_COLLECTION_SPLITTING, “忽略TEXT”,POSTGIS “/>#! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # !
FME_PYTHON_VERSION 27 DEFAULT_MACRO状态啊ther GUI OPTIONAL CHOICE Status Current%Other%Retired%Temporary Pick the status to analyse: #!START_HEADER #!START_WB_HEADER READER_TYPE NULL READER_KEYWORD NULL_SOURCE NULL_SOURCE_DATASET null WRITER_TYPE NULL WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET null #!END_WB_HEADER #!START_WB_HEADER #!END_WB_HEADER #!END_HEADER LOG_FILENAME "$(FME_MF_DIR)FinalWorkspace.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 LOG_TIMINGS YES LOG_FILTER_MASK -1 # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME FinalWorkspace MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- INCLUDE [ if {[info exists env(FME_TEMP)] && [file isdirectory $env(FME_TEMP)]} {set gVisualizerTemp $env(FME_TEMP)} elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]} {set gVisualizerTemp $env(TEMP)} elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:};regsub -all {[ ,&]} {$(WORKSPACE_NAME)} {_} wsname;set gVisualizerTemp $gVisualizerTemp/${wsname}_[clock format [clock seconds] -format %H%M%S];puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp";MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.ffs MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- MACRO SQLCreator_2_DIRECTIVES PASSWORD fme_decrypt(MDowfCN8I3xcG3GQ/TeRRUJUZ5LDPtdvpscbh7Nj9gG/INBkAGA+fkaDrNbhZtfa3rmkUUrCxKWaAFwiYsKgWJNl/0mRpxUuP+IT2c+Qhh26JEZtUWAmpuoaQCdQ3ykKWm2zaoAM5MBCGaGEuYe+6AS07/nLNRJwqp1jdwP1FgVCbXRvZtWfKjEZlNJYQ+EicVc6cv2DxCYJyTljvXwF8mKxenML6FKJiHARQCO8OMJidKKZQJP1SeYIhqB0YrtGw4cGV2ZquQKifvRjB2Tl6wBAWDmeCg+R1jvft1tR17SISyTDv77K+mV80w2aaUSgybbF7coM0BrQPcpehfjlW+YxV73+9mPMFXKQeznZ22T8MJor57O44p8U2NQCw35HiFBs0oVP9VkkY0D/WzGRevseyX1pIEWJSQSFwkJVhiyXavMDz5E5SEYgTZHfVeGBXCDuIEEbfRRkPU5yD2nw2ZAVimDRD7UQhEEY6PosGqU17He4y35WEfAggQ40+EKuupOQSZRsKotTTqlYGHJtX49ymuKqfyZzOAUSUzDMcj8gfDgzOCcuhw2sK3fJaMszn+2WmaJMYG2p0j0RdFnqbOgygGvb6uV5+IoY6kwm674cYZhdiyLRKJjNhJ+wsT4CFEg/eJTINsPglMQVactG92ns/BMEGZAPYsKvY8IEj2Fv/YEq1UBUww5ZtBnvT4ANl3ygKBOgEUqDM4pixfEj0Lepif6dAQGjYsLHgLTtYmeINRsq0QEr+0k67+gNP32eoSzipchj0L0UJnSzRueRlBm1RADfKcMK2sH3iY47Kmu9t1NhRmjMCXLMMe3+1LhUxGStZx7RvNyJWQnjsYA1KLLaChgfuhuwz/ShGV2v2AO8lFnlKooxAKKMSxVzRIdSrOYhu+dkbQrVZ61NbcxLuZgSeNaKREiY) SCHEMAS_FOR_TABLE_LISTING fmedata2015 QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes HOST postgis.train.safe.com PORT 5432 USER_NAME fmedata USE_TRUE_POSTGIS_TYPES yes DISABLE_COLLECTION_SPLITTING yes FACTORY_DEF * CreationFactory FACTORY_NAME SQLCreator_2_Creator OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * QueryFactory FACTORY_NAME SQLCreator_2 INPUT FEATURE_TYPE _____CREATED______ QUERY_SQL SELECT * fmedata2015. 邮寄地址 哪里 STATUS = $(状态$编码) 邮政编码 喜欢 V5L% COMBINE_ATTRIBUTES RESULT_ONLY COMBINE_GEOMETRY RESULT_ONLY READER_TYPE POSTGIS READER_DATASET “fmedata” READER_PARAMS $(SQLCreator_2_DIRECTIVES)CONTINUE_ON_READER_ERROR YES输出结果FEATURE_TYPE SQLCreator_2_RESULT @SupplyAttributes(fme_feature_type,SQLCreator_2)输出READER_ERROR FEATURE_TYPE SQLCreator_2_ FACTORY_DEF * TeeFactory FACTORY_NAME“SQLCreator_2 输出Nuker” INPUT FEATURE_TYPE SQLCreator_2_ FACTORY_DEF * BranchingFactory FACTORY_NAME “SQLCreator_2_RESULT分支器-1 12” INPUT FEATURE_TYPE SQLCreator_2_RESULT TARGET_FACTORY “$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET” 的Passed FEATURE_TYPE * @RemoveAttributes( “SQLCreator_2_RESULT分支器-1 12” .BranchingFactory.Count)#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * # ------------------------------------------------------------------------- MACRO SQLExecutor_2_DIRECTIVES PASSWORD fme_decrypt(MDowfCN8I3xcG3GQ/TeRRUJUZ5LDPtdvpscbh7Nj9gG/INBkAGA+fkaDrNbhZtfa3rmkUUrCxKWaAFwiYsKgWJNl/0mRpxUuP+IT2c+Qhh26JEZtUWAmpuoaQCdQ3ykKWm2zaoAM5MBCGaGEuYe+6AS07/nLNRJwqp1jdwP1FgVCbXRvZtWfKjEZlNJYQ+EicVc6cv2DxCYJyTljvXwF8mKxenML6FKJiHARQCO8OMJidKKZQJP1SeYIhqB0YrtGw4cGV2ZquQKifvRjB2Tl6wBAWDmeCg+R1jvft1tR17SISyTDv77K+mV80w2aaUSgybbF7coM0BrQPcpehfjlW+YxV73+9mPMFXKQeznZ22T8MJor57O44p8U2NQCw35HiFBs0oVP9VkkY0D/WzGRevseyX1pIEWJSQSFwkJVhiyXavMDz5E5SEYgTZHfVeGBXCDuIEEbfRRkPU5yD2nw2ZAVimDRD7UQhEEY6PosGqU17He4y35WEfAggQ40+EKuupOQSZRsKotTTqlYGHJtX49ymuKqfyZzOAUSUzDMcj8gfDgzOCcuhw2sK3fJaMszn+2WmaJMYG2p0j0RdFnqbOgygGvb6uV5+IoY6kwm674cYZhdiyLRKJjNhJ+wsT4CFEg/eJTINsPglMQVactG92ns/BMEGZAPYsKvY8IEj2Fv/YEq1UBUww5ZtBnvT4ANl3ygKBOgEUqDM4pixfEj0Lepif6dAQGjYsLHgLTtYmeINRsq0QEr+0k67+gNP32eoSzipchj0L0UJnSzRueRlBm1RADfKcMK2sH3iY47Kmu9t1NhRmjMCXLMMe3+1LhUxGStZx7RvNyJWQnjsYA1KLLaChgfuhuwz/ShGV2v2AO8lFnlKooxAKKMSxVzRIdSrOYhu+dkbQrVZ61NbcxLuZgSeNaKREiY) SCHEMAS_FOR_TABLE_LISTING fmedata2015 QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes HOST postgis.train.safe.com PORT 5432 USER_NAME fmedata USE_TRUE_POSTGIS_TYPES yes DISABLE_COLLECTION_SPLITTING yes FACTORY_DEF * QueryFactory FACTORY_NAME SQLExecutor_2 INPUT FEATURE_TYPE SQLCreator_2_RESULT QUERY_SQL "@EvaluateExpression(FDIV,STRING_ENCODED,SELECT * 上市。 邮寄地址 哪里 邮寄地址 = PSTLADDRESS ,SQLExecutor_2)” READER_TYPE POSTGIS READER_DATASET “fmedata” COMBINE_ATTRIBUTES PREFER_QUERY COMBINE_GEOMETRY QUERY_ONLY CONTINUE_ON_READER_ERROR YES READER_PARAMS $(SQLExecutor_2_DIRECTIVES)输出结果FEATURE_TYPE SQLExecutor_2_RESULT输出QUERY FEATURE_TYPE SQLExecutor_2_INITIATOR输出READER_ERROR FEATURE_TYPE SQLExecutor_2_ FACTORY_DEF * TeeFactory FACTORY_NAME “SQLExecutor_2引发剂输出Nuker” INPUT FEATURE_TYPE SQLExecutor_2_INITIATOR FACTORY_DEF * TeeFactory FACTORY_NAME“SQLExecutor_2 输出Nuker” INPUT FEATURE_TYPE SQLExecutor_2_ #------------------------------------------------------------------------- # 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有[组grpByAttrs {};如果{[字符串长度$ grpByAttrs]> 0} {如果{[字符串第一 “@EvaluateExpression” $ grpByAttrs] == 0} {看跌期权 “MACRO CATMAC _ $ grpByAttrs”;}其他{集catter “”;组逗号“”;的foreach ATTR $ {grpByAttrs一套catter “$ catter $ @逗号值(\” $ ATTR \ “)”;集逗号 “_”;};看跌期权 “MACRO CATMAC _ @:连接($ catter)”;}}其他{放 “MACRO CATMAC”;};集saf亚搏在线eName “[regsub -all {[^ A-ZA-Z0-9]} {SQLExecutor_2_Result} _] _ [EXPR轮(RAND()* 1000000)] _ [时钟点击-milliseconds]”;看跌期权 “MACRO 亚搏在线SAFE_FFS_NAME $ safeName”;]#做的临时目录的FFS文件将居住。FACTORY_DEF * CreationFactory FACTORY_NAME SQLExec。utor_2_Result_DirCreator OUTPUT FEATURE_TYPE __nukeme__ @Tcl2("catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}") FACTORY_DEF * TeeFactory FACTORY_NAME SQLExecutor_2_Result_DirCreatorCleanerUpper INPUT FEATURE_TYPE __nukeme__ # Send raster, point cloud and vector features down different paths to prepare # them for viewing FACTORY_DEF * TestFactory FACTORY_NAME SQLExecutor_2_Result_FeatureDirector INPUT FEATURE_TYPE SQLExecutor_2_RESULT TEST &fme_type == "fme_raster" OUTPUT FAILED FEATURE_TYPE SQLExecutor_2_Result___NotRasterFeatures___ OUTPUT PASSED FEATURE_TYPE SQLExecutor_2_Result___RasterFeatures___ FACTORY_DEF * TestFactory FACTORY_NAME SQLExecutor_2_Result___FeatureDirector1 INPUT FEATURE_TYPE SQLExecutor_2_Result___NotRasterFeatures___ TEST &fme_type == "fme_point_cloud" OUTPUT FAILED FEATURE_TYPE SQLExecutor_2_Result___VectorFeatures___ OUTPUT PASSED FEATURE_TYPE SQLExecutor_2_Result___PointCloudFeatures___ # Vector features simply may get their colors overridden FACTORY_DEF * TeeFactory FACTORY_NAME SQLExecutor_2_Result_VectorSetterUpper INPUT FEATURE_TYPE SQLExecutor_2_Result___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.This should allow this transformer to be used with a # Desktop license, even though ThinPointCloud requires Professional.Tcl2 proc SQLExecutor_2_Result_e927713f_4a5c_446e_bcb1_4a4237d1f9910_thinPointCloud {} { if {[string equal {NO_THINNING} {KEEPNPOINT}]} { FME_Execute ThinPointCloud NO_THINNING "\" \"";} elseif {[string equal {NO_THINNING} {MAXNUMPOINTS}]} { FME_Execute ThinPointCloud NO_THINNING "\" \"";} elseif {[string equal {NO_THINNING} {FIRSTNPOINTS}]} { FME_Execute ThinPointCloud NO_THINNING "\" \"";} elseif {[string equal {NO_THINNING} {LASTNPOINTS}]} { FME_Execute ThinPointCloud NO_THINNING "\" \"";};} FACTORY_DEF * TeeFactory FACTORY_NAME SQLExecutor_2_Result___PointCloudThinner INPUT FEATURE_TYPE SQLExecutor_2_Result___PointCloudFeatures___ OUTPUT FEATURE_TYPE __viewme__ @Tcl2("SQLExecutor_2_Result_e927713f_4a5c_446e_bcb1_4a4237d1f9910_thinPointCloud") Tcl2 proc SQLExecutor_2_Result_e927713f_4a5c_446e_bcb1_4a4237d1f9910_prepareRaster {subsetStartRow subsetNumRows subsetStartCol subsetNumCols} { set useDI [string equal -nocase {$(FME_VIEWER_APP)} {fmedatainspector}];if {!$useDI} { FME_Execute ApplyRasterRotation BILINEAR;};set doResample [string equal {NoReduction} {Resample}];set doSubset [string equal {NoReduction} {Subset}];set doBounds [string equal {NoReduction} {BoundingBoxOnly}];if {$doBounds} { FME_Execute GeometryType fme_polygon;} elseif {$doResample || $doSubset} { set comment { First, we need to prefix all the attributes.This is done because we are going to call @RasterProperties, and we want to make sure it doesn't overwrite any existing attributes.};set kAttrPrefix ".";set allNames [FME_AttributeNames];foreach oldName $allNames { set newName $kAttrPrefix;append newName $oldName;FME_RenameAttribute $newName $oldName;};FME_Execute RasterProperties RASTER;if {$doResample} { set oldNumCols [FME_GetAttribute _num_columns];set oldNumRows [FME_GetAttribute _num_rows];set oldSpacingX [FME_GetAttribute _spacing_x];set oldSpacingY [FME_GetAttribute _spacing_y];set kMinNumCells 32;set kMaxNumCells 512;set comment { We will only resample if both dimensions are greater than the minimum num cells, and at least one is greater than the maximum.};if {$oldNumRows > $kMinNumCells && $oldNumCols > $kMinNumCells && ($oldNumRows > $kMaxNumCells || $oldNumCols > $kMaxNumCells)} { set newSpacingX 1.0;set newSpacingY 1.0;if {$oldNumRows > $oldNumCols} { set comment { If we have more rows than columns, we need to choose a spacing that reduces the number of rows to the maximum we've chosen.};set newSpacingY [expr 1.0 * $oldNumRows * $oldSpacingY / $kMaxNumCells];set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];set comment { Now we need to check if doing this will result in the columns going below the minimum.If so, choose the spacing such that we only go down to the minimum (and not past).};set newNumCols [expr $oldNumCols * $oldSpacingX / $newSpacingX];if {$newNumCols < $kMinNumCells} { set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMinNumCells];set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];};} else { set comment { This is identical to the above case, except the roles of rows and cols are reversed.};set newSpacingX [expr 1.0 * $oldNumCols * $oldSpacingX / $kMaxNumCells];set newSpacingY [expr 1.0 * $newSpacingX / $oldSpacingX * $oldSpacingY];set newNumRows [expr $oldNumRows * $oldSpacingY / $newSpacingY];如果{newNumRows < kMinNumCells美元}{newSpacingY设置 [expr 1.0 * $oldNumRows * $oldSpacingY / $kMinNumCells];set newSpacingX [expr 1.0 * $newSpacingY / $oldSpacingY * $oldSpacingX];};};FME_Execute ResampleRaster CELL_SIZE $newSpacingX $newSpacingY NearestNeighbor;};} elseif {$doSubset} { set comment { Get the value of some strings that may be attributes or constants.Note that we pass in the attribute prefix we're using, because if one does turn out to be an attribute, it won't actually be the exact name in the string (since we renamed all our attributes above).};set rasterNumRows [FME_GetAttribute _num_rows];set rasterNumCols [FME_GetAttribute _num_columns];set comment { Only do subsetting if the specified start position is actually within the raster.};if {$subsetStartRow < $rasterNumRows && $subsetStartCol < $rasterNumCols} { set comment { Now bound the subset to the size of the raster, so that we don't create padding.};if {[expr $subsetStartRow + $subsetNumRows] > $rasterNumRows} { set subsetNumRows [expr $rasterNumRows - $subsetStartRow];};if {[expr $subsetStartCol + $subsetNumCols] > $rasterNumCols} { set subsetNumCols [expr $rasterNumCols - $subsetStartCol];};FME_Execute SubsetRaster $subsetStartRow $subsetNumRows $subsetStartCol $subsetNumCols;};};set comment { Remove all the attributes added by @RasterProperties and remove the prefix from the real attributes.We assume they all start with an underscore.};FME_Execute RemoveAttributes fme_regexp_match {^_};foreach oldName $allNames { set newName $kAttrPrefix;append newName $oldName;FME_RenameAttribute $oldName $newName;};};} FACTORY_DEF * TeeFactory FACTORY_NAME SQLExecutor_2_Result_RasterSetterUpper INPUT FEATURE_TYPE SQLExecutor_2_Result___RasterFeatures___ OUTPUT FEATURE_TYPE __viewme__ @Tcl2("SQLExecutor_2_Result_e927713f_4a5c_446e_bcb1_4a4237d1f9910_prepareRaster { } { } { } { }") # Now route all the features into the recorder, changing their # feature type to the transformer name so that they view nicely # SQLExecutor_2_Result_e927713f_4a5c_446e_bcb1_4a4237d1f9910_VIS_FEAT_TYPE changes the feature types # of the features being visualized. DEFAULT_MACRO SQLExecutor_2_Result_e927713f_4a5c_446e_bcb1_4a4237d1f9910_VIS_FEAT_TYPE SQLExecutor_2_Result$(CATMAC) 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 SQLExecutor_2_Result_Recorder INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType($(SQLExecutor_2_Result_e927713f_4a5c_446e_bcb1_4a4237d1f9910_VIS_FEAT_TYPE)) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA OWNERNM1,varchar 255 ,PSTLADDRESS,varchar 255 ,INTPSTLCD,varchar 255 模式录制RECORD_DIRECTLY_TO_DISK是MAX_FEATURES_TO_RECORD WIN32 2000000#------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__ OUTPUT ROUTED FEATURE_TYPE * OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__ # ------------------------------------------------------------------------- FACTORY_DEF * CreationFactory CREATE_AT_END OUTPUT FEATURE_TYPE __NUKEME__ @TCL("if [file exists {$(WORKSPACE_TEMP_DIR)}] {set files [glob -nocomplain -directory {$(WORKSPACE_TEMP_DIR)} -tails *.ffs]; if {[llength $files] == 1} { set theFile {$(WORKSPACE_TEMP_DIR)/}; append theFile [lindex $files 0]; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -f FFS $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__