# !# ! # ! # ! # !# !# !# ! # !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # ! # !# !# ! # !# !# !# ! # !# ! # !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# ! # !# ! # !# !# ! # ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# ! # !# ! # !# ! # !# !# !GUI忽略SourceDataset_GENERIC_1 GENERIC_IN_REAL_FORMAT_GENERIC_1,DestDataset_TEXTLINE_1,TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_1,TEXTLINE_OUT_END_OF_LINE_TEXTLINE_1,TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_1,TEXTLINE_OUT_ENCODING_TEXTLINE_1,TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_1,TEXTLINE_OUT_MIME_TYPE_TEXTLINE_1 DEFAULT_MACRO SOURCE GUI FILE_OR_URL SOURCE All_files|*.* Source Raster: DEFAULT_MACRO FORMAT GUESS_FROM_EXTENSION GUI READERPICK FORMAT Source Raster Format: DEFAULT_MACRO IN_COORDSYS GUI OPTIONAL COORDSYS IN_COORDSYS Source Coordinate System (if required): DEFAULT_MACRO OUTPUT GUI DIRNAME OUTPUT World File Output Directory: DEFAULT_MACRO SUFFIX .wld GUI TEXT SUFFIX World File Extension: DEFAULT_MACRO OUT_COORDSYS GUI COORDSYS OUT_COORDSYS Destination Coordinate System: INCLUDE TCL proc __FME_ExpandMacros {text {maxlevels 100}} { if { $maxlevels <= 0 } { return $text; } set pattern [join {{\$} {\([^()$]*\)}} {}] set indices [regexp -inline -all -indices $pattern $text] if [llength $indices] { foreach pair [lreverse $indices] { lassign $pair start end set replacement {} set replacement $::FME_MacroValues([string range $text [expr $start + 2] [expr $end - 1]]) set text [string replace $text $start $end $replacement] } return [__FME_ExpandMacros $text [expr $maxlevels - 1]] } return $text } proc __FME_ExpandEnvVars {text {maxlevels 100}} { if { $maxlevels <= 0 } { return $text; } set pattern [join {{\$} {\{[^\{\}$]*\}}} {}] set indices [regexp -inline -all -indices $pattern $text] if [llength $indices] { foreach pair [lreverse $indices] { lassign $pair start end set replacement {} set replacement $::env([string range $text [expr $start + 2] [expr $end - 1]]) set text [string replace $text $start $end $replacement] } return [__FME_ExpandEnvVars $text [expr $maxlevels - 1]] } return $text } proc __FME_EvalAndEncodeMacro {macroName} { set macroVal {} catch { set macroVal [__FME_ExpandMacros $::FME_MacroValues($macroName)] } catch { set macroVal [__FME_ExpandEnvVars $macroVal] } return [FME_EncodeText $macroVal] } END_INCLUDE INCLUDE [ puts "MACRO SOURCE__FMEENCODED__ [__FME_EvalAndEncodeMacro SOURCE]" ; ] INCLUDE [ puts "MACRO FORMAT__FMEENCODED__ [__FME_EvalAndEncodeMacro FORMAT]" ; ] INCLUDE [ puts "MACRO IN_COORDSYS__FMEENCODED__ [__FME_EvalAndEncodeMacro IN_COORDSYS]" ; ] INCLUDE [ puts "MACRO OUTPUT__FMEENCODED__ [__FME_EvalAndEncodeMacro OUTPUT]" ; ] INCLUDE [ puts "MACRO SUFFIX__FMEENCODED__ [__FME_EvalAndEncodeMacro SUFFIX]" ; ] INCLUDE [ puts "MACRO OUT_COORDSYS__FMEENCODED__ [__FME_EvalAndEncodeMacro OUT_COORDSYS]" ; ] INCLUDE [ if {{$(SOURCE)} == {}} { puts_real {Parameter 'SOURCE' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(FORMAT)} == {}} { puts_real {Parameter 'FORMAT' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(OUTPUT)} == {}} { puts_real {Parameter 'OUTPUT' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SUFFIX)} == {}} { puts_real {Parameter 'SUFFIX' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(OUT_COORDSYS)} == {}} { puts_real {Parameter 'OUT_COORDSYS' must be given a value.}; exit 1; }; ] #! START_HEADER #! START_WB_HEADER READER_TYPE GENERIC READER_KEYWORD GENERIC_1 READER_GEN_DIRECTIVES REAL_FORMAT,GUESS_FROM_EXTENSION,_MERGE_SCHEMAS,YES WRITER_TYPE MULTI_WRITER MULTI_WRITER_TYPE{*} TEXTLINE MULTI_WRITER_KEYWORD{*} TEXTLINE_1 MULTI_WRITER_ID_ATTRIBUTE fme_basename MULTI_WRITER_DATASET_ORDER BY_INPUT TEXTLINE_1_DATASET{*} "$(OUTPUT)\ $(后缀)”#END_WB_HEADER#START_WB_HEADER MACRO WB_KEYWORD! “GENERIC_1” #END_WB_HEADER#START_SOURCE_HEADER GENERIC GENERIC_1#从生成此映射文件中的数据集是:!!!!#END_SOURCE_HEADER#START_WB_HEADER DEFAULT_MACRO SourceDataset有[如果{{$(SourceDataset)} = “”} {\放{DEFAULT_MACRO SourceDataset_GENERIC_1 $(SourceDataset)} \}]#END_WB_HEADER#START_SOURCE_HEADER GENERIC GENERIC_1 DEFAULT_MACRO SourceDataset_GENERIC_1 $(SOURCE)GUI FILE_OR_URL SourceDataset_GENERIC_1 All_files | *资料来源数据集:!!!GENERIC_1_EXTENSION DEFAULT_MACRO GENERIC_IN_REAL_FORMAT_GENERIC_1$(FORMAT)GENERIC_1_REAL_FORMAT “$(GENERIC_IN_REAL_FORMAT_GENERIC_1)” GUI READERPICK GENERIC_IN_REAL_FORMAT_GENERIC_1输入格式:!!!!GENERIC_1_DATASET “$(SourceDataset_GENERIC_1)” #END_SOURCE_HEADER#START_WB_HEADER MACRO WB_KEYWORD “TEXTLINE_1” #END_WB_HEADER#START_DEST_HEADER TEXTLINE TEXTLINE_1#=====================================================================#的FO一个目录llowing GUI线提示被用作为#将TextLine文件的目标。所述用户输入存储在#宏,然后将其用于定义要写入的数据集。# !END_DEST_HEADER#!START_WB_HEADER DEFAULT_MACRO DestDataset有[{IF “$(DestDataset)”!= “”} {\ {放DEFAULT_MACRO DestDataset_TEXTLINE_1 $(DestDataset)} \}]#!END_WB_HEADER#!START_DEST_HEADER TEXTLINE TEXTLINE_1 DEFAULT_MACRO DestDataset_TEXTLINE_1输出GUI FILENAME DestDataset_TEXTLINE_1文本/ Compressed_Text_Files; | * .TXT(* TXT * txt.gz。); |(。* TXT)。* txt.gz TEXT_FILES | * .TXT | Compressed_Text_Files(* TXT。广州)| * .txt.gz | All_files(*。*)| *。*目的地文本文件:#=====================================================================#以下GUI线提示 for the overwrite flag. The default is # YES. Possible values are YES or NO. Any value other than NO or # no is interpreted as YES. DEFAULT_MACRO TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_1 YES TEXTLINE_1_OVERWRITE_FILE "$(TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_1)" GUI CHOICE TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_1 YES%NO Overwrite Existing File: # ===================================================================== # Set the type of encoding for the output file # ===================================================================== # Set line termination character DEFAULT_MACRO TEXTLINE_OUT_END_OF_LINE_TEXTLINE_1 System TEXTLINE_1_END_OF_LINE "$(TEXTLINE_OUT_END_OF_LINE_TEXTLINE_1)" GUI CHOICE TEXTLINE_OUT_END_OF_LINE_TEXTLINE_1 System%Windows%Unix%Macintosh%Source%None Line Termination: # ===================================================================== # Set whether to write the last line termination character DEFAULT_MACRO TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_1 YES TEXTLINE_1_WRITE_LAST_EOL "$(TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_1)" GUI CHOICE TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_1 YES%NO Write Last Line Terminator: DEFAULT_MACRO TEXTLINE_OUT_ENCODING_TEXTLINE_1 ANSI TEXTLINE_1_ENCODING "$(TEXTLINE_OUT_ENCODING_TEXTLINE_1)" GUI STRING_OR_ENCODING TEXTLINE_OUT_ENCODING_TEXTLINE_1 UTF-8%UTF-16LE%UTF-16BE%ANSI%BIG5%SJIS%CP437%CP708%CP720%CP737%CP775%CP850%CP852%CP855%CP857%CP860%CP861%CP862%CP863%CP864%CP865%CP866%CP869%CP932%CP936%CP950%CP1250%CP1251%CP1252%CP1253%CP1254%CP1255%CP1256%CP1257%CP1258%ISO8859-1%ISO8859-2%ISO8859-3%ISO8859-4%ISO8859-5%ISO8859-6%ISO8859-7%ISO8859-8%ISO8859-9%ISO8859-13%ISO8859-15 Character Encoding: # ===================================================================== # The following GUI line prompts for the overwrite flag. The default is # YES. Possible values are YES or NO. Any value other than NO or # no is interpreted as YES. DEFAULT_MACRO TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_1 YES TEXTLINE_1_WRITE_UTF8_BOM "$(TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_1)" GUI CHOICE TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_1 YES%NO Write UTF Byte Order Mark # ===================================================================== # Set the mime type. Note -- it is actually only used inside of workspaces # as a FORMAT_PARAMETER which even then is parsed only by the FME Server # Repository Manager DEFAULT_MACRO TEXTLINE_OUT_MIME_TYPE_TEXTLINE_1 text/plain TEXTLINE_1_MIME_TYPE "$(TEXTLINE_OUT_MIME_TYPE_TEXTLINE_1)" GUI STRING_OR_CHOICE TEXTLINE_OUT_MIME_TYPE_TEXTLINE_1 application/json%application/octet-stream%application/xml%application/x-www-form-urlencoded%image/gif%image/jpeg%image/png%image/tiff%multipart/mixed%multipart/alternative%multipart/related%text/html%text/plain%text/xml MIME Type: TEXTLINE_1_DATASET "$(DestDataset_TEXTLINE_1)" #! END_DEST_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)ReprojectWorldFile.log" LOG_APPEND NO LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 LOG_FILTER_MASK -1 DEFAULT_MACRO DATASET_KEYWORD_GENERIC_1 GENERIC_1 DEFAULT_MACRO DATASET_KEYWORD_TEXTLINE_1 TEXTLINE_1 # ------------------------------------------------------------------------- GENERIC_1_READER_META_ATTRIBUTES fme_basename fme_feature_type # ------------------------------------------------------------------------- GENERIC_1_COORDINATE_SYSTEM $(IN_COORDSYS) MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME ReprojectWorldFile MACRO FME_VIEWER_APP fmeview # ------------------------------------------------------------------------- INCLUDE [ if {[info exists 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_CREATE_SPATIAL_INDEX YES # ------------------------------------------------------------------------- GENERIC_1_DEF NewFeatureType fme_type fme_any # ------------------------------------------------------------------------- Lookup ___KnownFeatureTypes___ NewFeatureType yes "" no FACTORY_DEF * TeeFactory FACTORY_NAME "GENERIC_1 Merger" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE "NewFeatureType" # ------------------------------------------------------------------------- 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(GENERIC,FME_GENERIC,PRESERVE_GEOMETRY) DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME RasterPropertiesExtractor INPUT FEATURE_TYPE NewFeatureType OUTPUT FEATURE_TYPE RasterPropertiesExtractor_OUTPUT @RasterProperties(RASTER_ROTATION2D) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME 2DPointReplacer INPUT FEATURE_TYPE RasterPropertiesExtractor_OUTPUT TEST &fme_type = fme_text OUTPUT PASSED FEATURE_TYPE 2DPointReplacer_POINT @XValue("@Value(_lower_left_x)",RESET) @YValue("@Value(_lower_left_y)") @Dimension(2) OUTPUT FAILED FEATURE_TYPE 2DPointReplacer_POINT @XValue("@Value(_lower_left_x)",RESET) @YValue("@Value(_lower_left_y)") @Dimension(2) @GeometryType(fme_point) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME 2DPointAdder_GeomFilter INPUT FEATURE_TYPE 2DPointReplacer_POINT INPUT FEATURE_TYPE 2DPointAdder_GeomFilter_DUMMY TEST @GeometryType() == "fme_undefined" TEST @GeometryType() == "fme_point" TEST @GeometryType() == "fme_line" BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE 2DPointAdder___ValidGeoms___ OUTPUT FAILED FEATURE_TYPE 2DPointAdder___InvalidGeoms___ FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder INPUT FEATURE_TYPE 2DPointAdder___ValidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_OUTPUT @Dimension(2) @Tcl2("FME_Coordinates addCoord {@Value(_upper_left_x)} {@Value(_upper_left_y)}") @GeometryType(fme_polygon) FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder_WarnInvalids INPUT FEATURE_TYPE 2DPointAdder___InvalidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_OUTPUT @Tcl2("FME_LogMessage fme_warn 818064 2DPointAdder") # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME 2DPointAdder_2_GeomFilter INPUT FEATURE_TYPE 2DPointAdder_OUTPUT INPUT FEATURE_TYPE 2DPointAdder_2_GeomFilter_DUMMY TEST @GeometryType() == "fme_undefined" TEST @GeometryType() == "fme_point" TEST @GeometryType() == "fme_line" BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE 2DPointAdder_2___ValidGeoms___ OUTPUT FAILED FEATURE_TYPE 2DPointAdder_2___InvalidGeoms___ FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder_2 INPUT FEATURE_TYPE 2DPointAdder_2___ValidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_2_OUTPUT @Dimension(2) @Tcl2("FME_Coordinates addCoord {@Value(_upper_right_x)} {@Value(_upper_right_y)}") @GeometryType(fme_polygon) FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder_2_WarnInvalids INPUT FEATURE_TYPE 2DPointAdder_2___InvalidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_2_OUTPUT @Tcl2("FME_LogMessage fme_warn 818064 2DPointAdder_2") # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME 2DPointAdder_3_GeomFilter INPUT FEATURE_TYPE 2DPointAdder_2_OUTPUT INPUT FEATURE_TYPE 2DPointAdder_3_GeomFilter_DUMMY TEST @GeometryType() == "fme_undefined" TEST @GeometryType() == "fme_point" TEST @GeometryType() == "fme_line" BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE 2DPointAdder_3___ValidGeoms___ OUTPUT FAILED FEATURE_TYPE 2DPointAdder_3___InvalidGeoms___ FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder_3 INPUT FEATURE_TYPE 2DPointAdder_3___ValidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_3_OUTPUT @Dimension(2) @Tcl2("FME_Coordinates addCoord {@Value(_lower_right_x)} {@Value(_lower_right_y)}") @GeometryType(fme_polygon) FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder_3_WarnInvalids INPUT FEATURE_TYPE 2DPointAdder_3___InvalidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_3_OUTPUT @Tcl2("FME_LogMessage fme_warn 818064 2DPointAdder_3") # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME 2DPointAdder_4_GeomFilter INPUT FEATURE_TYPE 2DPointAdder_3_OUTPUT INPUT FEATURE_TYPE 2DPointAdder_4_GeomFilter_DUMMY TEST @GeometryType() == "fme_undefined" TEST @GeometryType() == "fme_point" TEST @GeometryType() == "fme_line" BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE 2DPointAdder_4___ValidGeoms___ OUTPUT FAILED FEATURE_TYPE 2DPointAdder_4___InvalidGeoms___ FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder_4 INPUT FEATURE_TYPE 2DPointAdder_4___ValidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_4_OUTPUT @Dimension(2) @Tcl2("FME_Coordinates addCoord {@Value(_lower_left_x)} {@Value(_lower_left_y)}") @GeometryType(fme_polygon) FACTORY_DEF * TeeFactory FACTORY_NAME 2DPointAdder_4_WarnInvalids INPUT FEATURE_TYPE 2DPointAdder_4___InvalidGeoms___ OUTPUT FEATURE_TYPE 2DPointAdder_4_OUTPUT @Tcl2("FME_LogMessage fme_warn 818064 2DPointAdder_4") # ------------------------------------------------------------------------- # Wipe out the source setting if it was untouched from the default setting DEFAULT_MACRO Reprojector_SOURCE Read from feature INCLUDE [if { {Read from feature} == {Read from feature} } { puts {MACRO Reprojector_SOURCE} } ] FACTORY_DEF * TeeFactory FACTORY_NAME Reprojector INPUT FEATURE_TYPE 2DPointAdder_4_OUTPUT OUTPUT FEATURE_TYPE Reprojector_REPROJECTED @Reproject($(Reprojector_SOURCE),$(OUT_COORDSYS),NearestNeighbor,PreserveCells) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor INPUT FEATURE_TYPE Reprojector_REPROJECTED TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_OUTPUT _x0 @Coordinate(x,0,FLATTEN_AGGREGATE) _y0 @Coordinate(y,0,FLATTEN_AGGREGATE) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT _x0 @Coordinate(x,0,FLATTEN_AGGREGATE) _y0 @Coordinate(y,0,FLATTEN_AGGREGATE) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_2 INPUT FEATURE_TYPE CoordinateExtractor_OUTPUT TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_2_OUTPUT _x1 @Coordinate(x,1,FLATTEN_AGGREGATE) _y1 @Coordinate(y,1,FLATTEN_AGGREGATE) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_2_OUTPUT _x1 @Coordinate(x,1,FLATTEN_AGGREGATE) _y1 @Coordinate(y,1,FLATTEN_AGGREGATE) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_3 INPUT FEATURE_TYPE CoordinateExtractor_2_OUTPUT TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_3_OUTPUT _x2 @Coordinate(x,2,FLATTEN_AGGREGATE) _y2 @Coordinate(y,2,FLATTEN_AGGREGATE) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_3_OUTPUT _x2 @Coordinate(x,2,FLATTEN_AGGREGATE) _y2 @Coordinate(y,2,FLATTEN_AGGREGATE) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_4 INPUT FEATURE_TYPE CoordinateExtractor_3_OUTPUT TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_4_OUTPUT _x3 @Coordinate(x,3,FLATTEN_AGGREGATE) _y3 @Coordinate(y,3,FLATTEN_AGGREGATE) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_4_OUTPUT _x3 @Coordinate(x,3,FLATTEN_AGGREGATE) _y3 @Coordinate(y,3,FLATTEN_AGGREGATE) # ------------------------------------------------------------------------- Tcl2 proc AttributeCreator_3_47bf5b22_baa9_42af_a152_b92599170c446_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $attrName] == 1 } { set attrName [FME_Execute EvaluateExpression {STRING} $attrName {AttributeCreator_3}]; } else { set attrName [FME_DecodeText $attrName]; }; if { [string match {* *} $ attrVal] == 1} {设定attrVal [FME_Execute EvaluateExpression {STRING} $ attrVal {AttributeCreator_3}];}否则{集attrVal [FME_DecodeText $ attrVal]。};FME_SetAttribute $ attrName $ attrVal;};};FACTORY_DEF * TeeFactory FACTORY_NAME AttributeCreator_3 INPUT FEATURE_TYPE CoordinateExtractor_4_OUTPUT输出FEATURE_TYPE AttributeCreator_3_OUTPUT“@ TCL2(AttributeCreator_3_47bf5b22_baa9_42af_a152_b92599170c446_attrSetter {(_dx1, Evaluate Value _x1 - Value _x0 ,_dy1, Evaluate Value _y1 - Value _y0 ,_dx2, Evaluate Value _x2 - Value _x1 ,_dy2, Evaluate Value _y2 - Value _y1 ,_dx3, Evaluate Value _x3 - Value _x2 ,_dy3, Evaluate Value _y3 - Value _y2 ,_dx4, Evaluate Value _x0 - Value _x3 ,_dy4, Evaluate Value _y0 - Value _y3 )})”#------------------------------------------------------------------------- Tcl2 proc AttributeCreator_4_b6567edd_961f_4279_9f32_3fdce9efcebb6_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {AttributeCreator_4}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $ attrVal] == 1} {设定attrVal [FME_Execute EvaluateExpression {STRING} $ attrVal {AttributeCreator_4}];}否则{集attrVal [FME_DecodeText $ attrVal]。};FME_SetAttribute $ attrName $ attrVal;};};FACTORY_DEF * TeeFactory FACTORY_NAME AttributeCreator_4 INPUT FEATURE_TYPE AttributeCreator_3_OUTPUT输出FEATURE_TYPE AttributeCreator_4_OUTPUT“@ TCL2(AttributeCreator_4_b6567edd_961f_4279_9f32_3fdce9efcebb6_attrSetter {(_len1, Evaluate 开方 Value _dx1 * Value _dx1 + Value _dy1 * Value _dy1 ,_len2, Evaluate 开方 Value _dx2 * Value _dx2 + Value _dy2 * Value _dy2 ,_len3, Evaluate 开方 Value _dx3 * Value _dx3 + Value _dy3 * Value _dy3 ,_len4, Evaluate 开方 Value _dx4 * Value _dx4 + Value _dy4 * Value _dy4 ,_rot1, Evaluate ATAN2 - Value _dx1 Value _dy1 ,_rot2, Evaluate ATAN2 Value _dy2 Value _dx2 ,_rot3, Evaluate ATAN2 Value _dx3 - Value _dy3 ,_rot4, Evaluate ATAN2 - Value _dy4 - Value _dx4 )})”#------------------------------------------------------------------------- Tcl2 proc AttributeCreator_5_7b79cea1_d43b_4186_89b5_526bc741f6536_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {AttributeCreator_5}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $ attrVal] == 1} {设定attrVal [FME_Execute EvaluateExpression {STRING} $ attrVal {AttributeCreator_5}];}否则{集attrVal [FME_DecodeText $ attrVal]。};FME_SetAttribute $ attrName $ attrVal;};};FACTORY_DEF * TeeFactory FACTORY_NAME AttributeCreator_5 INPUT FEATURE_TYPE AttributeCreator_4_OUTPUT输出FEATURE_TYPE AttributeCreator_5_OUTPUT“@ TCL2(AttributeCreator_5_7b79cea1_d43b_4186_89b5_526bc741f6536_attrSetter {(_pixelx, Evaluate Value _len2 + Value _len4 2.0 * Value _num_columns ,_pixely, Evaluate Value _len1 + Value _len3 2.0 * Value _num_rows ,_rotx, Evaluate Value _rot2 + Value _rot4 2.0 ,_roty, Evaluate Value _rot1 + Value _rot3 2.0 )})”#------------------------------------------------------------------------- Tcl2 proc AttributeCreator_7b302a9e_0369_4534_a40b_f78cc974bd6a6_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $ attrName] == 1} {集attrName [FME_Execute EvaluateExpression {STRING} $ attrName {AttributeCreator}];}否则{集attrName [FME_DecodeText $ attrName]。};如果{[字符串匹配{* *} $ attrVal] == 1} {设定attrVal [FME_Execute EvaluateExpression {STRING} $ attrVal {AttributeCreator}];}否则{集attrVal [FME_DecodeText $ attrVal]。};FME_SetAttribute $ attrName $ attrVal;};};FACTORY_DEF * TeeFactory FACTORY_NAME AttributeCreator INPUT FEATURE_TYPE AttributeCreator_5_OUTPUT输出FEATURE_TYPE AttributeCreator_OUTPUT“@ TCL2(AttributeCreator_7b302a9e_0369_4534_a40b_f78cc974bd6a6_attrSetter {(TFW_A, Evaluate COS - Value _rotx * Value _pixelx ,TFW_B, Evaluate - sin - Value _rotx * Value _pixelx ,TFW_C, Evaluate sin - Value _roty *- Value _pixely ,TFW_D, Evaluate COS - Value _roty *- Value _pixely )})”#------------------------------------------------------------------------- Tcl2 proc AttributeCreator_2_faa2cfb5_01c9_4bf0_b783_6609e6b885bb6_attrSetter { attrList } { set attrList [string trim $attrList {()}]; set attrs [split $attrList {,} ]; foreach {attrName attrVal} $attrs { if { [string match {* *} $attrName] == 1 } { set attrName [FME_Execute EvaluateExpression {STRING} $attrName {AttributeCreator_2}]; } else { set attrName [FME_DecodeText $attrName]; }; if { [string match {* *} $ attrVal] == 1} {设定attrVal [FME_Execute EvaluateExpression {STRING} $ attrVal {AttributeCreator_2}];}否则{集attrVal [FME_DecodeText $ attrVal]。};FME_SetAttribute $ attrName $ attrVal;};};FACTORY_DEF * TeeFactory FACTORY_NAME AttributeCreator_2 INPUT FEATURE_TYPE AttributeCreator_OUTPUT输出FEATURE_TYPE AttributeCreator_2_OUTPUT“@ TCL2(AttributeCreator_2_faa2cfb5_01c9_4bf0_b783_6609e6b885bb6_attrSetter {(TFW_E, Evaluate Value _x1 + 0.5 * Value TFW_A + 0.5 * Value TFW_C ,TFW_F, Evaluate Value _y1 + 0.5 * Value TFW_B + 0.5 * Value TFW_D )})”#------------------------------------------------------------------------- Tcl2 regsub {^[^a-zA-Z]*([a-zA-Z]).*} {0.12f} {\1} formatChar; if { [string first $formatChar {duiofxeEgG}] != -1 } { proc {StringFormatter_getAttribute} {attr} { return [regsub {^0*(.)} [FME_GetAttribute $attr] {\1}] } } else { proc {StringFormatter_getAttribute} {attr} { return [FME_GetAttribute $attr] } } Tcl2 proc StringFormatter_formatter {} { set attrs [split {TFW_A,TFW_C,TFW_B,TFW_D} {,}]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set length [string length $attrVal]; if {$length > 0} { FME_SetAttribute $attr [format %0.12f [{StringFormatter_getAttribute} $attr]]; }; }; } FACTORY_DEF * TeeFactory FACTORY_NAME StringFormatter INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT OUTPUT FEATURE_TYPE StringFormatter_OUTPUT @Tcl2(StringFormatter_formatter) # ------------------------------------------------------------------------- Tcl2 proc StringConcatenator_423c22c8_122c_4426_aee0_cbe54289d6276_doSetAttr {attrText} { FME_SetAttribute [FME_DecodeText {text_line_data}] [FME_DecodeText $attrText] } FACTORY_DEF * TeeFactory FACTORY_NAME StringConcatenator INPUT FEATURE_TYPE StringFormatter_OUTPUT OUTPUT FEATURE_TYPE StringConcatenator_OUTPUT @Tcl2("StringConcatenator_423c22c8_122c_4426_aee0_cbe54289d6276_doSetAttr {@EvaluateExpression(STRING_ENCODED, Value TFW_A Value TFW_B Value TFW_C Value TFW_D Value TFW_E Value TFW_F ,StringConcatenator)}“)#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "StringConcatenator_OUTPUT -> text_line Correlator" INPUT FEATURE_TYPE StringConcatenator_OUTPUT OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ @Transform(FME_GENERIC,TEXTLINE) @SupplyAttributes(__wb_out_feat_type__,text_line) # ------------------------------------------------------------------------- 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 {@Value(fme_template_feature_type)} 818060 818061 fme_warn") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__