# !# ! # ! # ! # !# !# !# !# !# !# !# !# !WritingFirstRow,firstrow%Yes,yes%No,no Write Field Names Row" firstrow " attr_index_types="" attr_name_invalid_chars=""*{}$" supports_feature_type_fanout="true" enabled="true" dynamic_feature_types_list_on_merge="true" dataset_type="FILEDIR" generate_fme_build_num="17280" fanout_expression="" coordsys="" fanout_group="NO"> # !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # ! # !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# ! # !# !# !# ! # !# ! # !# ! # !


" TOP_LEFT="-148.197 1192.88" BOTTOM_RIGHT="3761.8 268.898" BOUNDING_RECT="-148.197 1192.88 3910 923.978" STICKY="true" COLOUR="0.756863,0.756863,0.756863" CONTENTS="13 8 11 5 7 9 6 12 41 3 40 42 ">
# !


" TOP_LEFT="-140.648 207.685" BOTTOM_RIGHT="5061.85 -614.041" BOUNDING_RECT="-140.648 207.685 5202.5 821.727" STICKY="true" COLOUR="0.756863,0.756863,0.756863" CONTENTS="20 18 44 24 34 22 23 33 21 31 19 46 55 ">
# !
# ! # ! # !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !ValueEFFDT"># !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !ValueCHAR_TYPE_CD SET_TO ValueADHOC_CHAR_VAL"># !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# ! # !# ! # !# ! # !# !
FME_PYTHON_VERSION 27 GUI忽略SourceDataset_CSV2_6 CSV2_IN_DATASET_GROUP_CSV2_6、CSV2_IN_FIELDS_GROUP_CSV2_6 CSV2_IN_DELIMITER_CSV2_6, CSV2_IN_FIELD_NAMES_LINE_CSV2_6, CSV2_IN_DATA_START_LINE_CSV2_6, CSV2_IN_ADVANCED_GROUP_CSV2_6, CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_6, CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_6, CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_6, CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_6, CSV2_IN_FIELD_NAMES_GROUP_CSV2_6, CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_6, CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_6, CSV2_IN_FIELD_VALUES_GROUP_CSV2_6, CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_6, CSV2_IN_ENCODING_GROUP_CSV2_6, CSV2_IN_ENCODING_CSV2_6, CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_6, CSV2_IN_SKIPPED_LINES_GROUP_CSV2_6, CSV2_IN_READ_SKIPPED_LINES_CSV2_6, CSV2_IN_SCHEMA_GENERATION_GROUP_CSV2_6, CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_6, CSV2_IN_NETWORK_AUTHENTICATION_CSV2_6, DestDataset_CSV2_7, CSV2_OUT_DATASET_GROUP_CSV2_7, CSV2_OUT_EXTENSION_CSV2_7, CSV2_OUT_FIELDS_GROUP_CSV2_7, CSV2_OUT_DELIMITER_CSV2_7, CSV2_OUT_ENCODING_GROUP_CSV2_7, CSV2_OUT_ENCODING_CSV2_7, CSV2_OUT_WRITE_BOM_FOR_UNICODE_CSV2_7, CSV2_OUT_ADVANCED_GROUP_CSV2_7, CSV2_OUT_QUALIFY_FIELD_NAMES_CSV2_7, CSV2_OUT_QUALIFY_FIELD_VALUES_CSV2_7, CSV2_OUT_FIELD_QUALIFIER_CHARACTER_CSV2_7, CSV2_OUT_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_7, CSV2_OUT_ROW_TERMINATION_CSV2_7, CSV2_OUT_WRITE_SCHEMA_FILE_CSV2_7, CSV2_OUT_EXISTING_SCHEMA_FILE_HANDLING_CSV2_7 DEFAULT_MACRO SourceDataset_CSV2_10 (FME_MF_DIR) CI_PREM_CHAR_06262017_SHORT美元。csv GUI多文件SourceDataset_CSV2_10 csv / Compressed_CSV TEXT_Files (* . csv, * . gz; * . txt) | * . csv; * . gz; * . txt | CSV_Files (* . csv) | * . csv | Compressed_CSV_Files (* . gz) | * . gz | TEXT_Files (* . txt) | *。txt | All_Files | *源CSV(逗号分隔值)文件(s): DEFAULT_MACRO DestDataset_CSV2 G: \ Special_Rights_Folder \ DUF \ \查兹Planim2015项目的过程Notes \字符同步规划\查询建行识字课GUI目录名DestDataset_CSV2目的地CSV(逗号分隔值)文件夹:包括(如果{{$ (SourceDataset_CSV2_10)} = = {}} {puts_real{参数“SourceDataset_CSV2_10”必须有一个值。};退出1;};)包括(如果{{$ (DestDataset_CSV2)} = = {}} {puts_real{参数“DestDataset_CSV2”必须有一个值。};退出1;};)# !START_HEADER # !START_WB_HEADER READER_TYPE CSV2 READER_KEYWORD CSV2_6 READER_GEN_DIRECTIVES ADVANCED_GROUP,模式,ENFORCE_STRICT_SCHEMA,不,FIELD_QUALIFIER_ESCAPE_CHARACTER, 报价 FIELD_NAMES_LINE 1 FIELDS_GROUP, EXPOSE_ATTRS_GROUP, TRIM_FIELD_NAME_QUALIFIERS,是的,DATASET_GROUP, FIELD_NAMES_GROUP, SKIPPED_LINES_GROUP,分隔符, 逗号 ,是的,ENCODING_GROUP, _MERGE_SCHEMAS SCAN_MAX_ROWS, 1000年,PREVIEW_GROUP, CASE_SENSITIVE_FIELD_NAMES,是的,DATA_START_LINE, 2编码,FEATURE_TYPE_NAME, FORMAT_NAME, USE_CUSTOM_SCHEMA,不,FIELD_SEPARATION_GROUP, SKIP_DUPLICATE_DELIMITERS,不,SCHEMA_GROUP, PRESERVE_SOURCE_ENCODING,不,SCHEMA_GENERATION_GROUP, READ_SKIPPED_LINES,不,TRIM_FIELD_VALUE_QUALIFIERS,是的,FIELD_VALUES_GROUP, SCAN_TYPES,不,CSV2_EXPOSE_FORMAT_ATTRS, FIELD_QUALIFIER_CHARACTER, 报价 、PREVIEW_PLACEHOLDER, SCAN_ADDITIONAL_FIELDS WRITER_TYPE MULTI_WRITER MULTI_WRITER_DATASET_ORDER BY_ID MULTI_WRITER_FIRST_WRITER_ID 0 MULTI_WRITER_TYPE {0} CSV2 MULTI_WRITER_KEYWORD {0} CSV2_7 # !END_WB_HEADER # !START_WB_HEADER宏观WB_KEYWORD " CSV2_6 " # !END_WB_HEADER # !START_SOURCE_HEADER CSV2 CSV2_6 # = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = #下面的GUI行提示输入一个文件作为源CSV文件。#用户输入存储在一个宏,然后用来定义#读取数据。#数据集映射文件是来自:# !END_SOURCE_HEADER # !START_WB_HEADER DEFAULT_MACRO SourceDataset包括(如果{{$ (SourceDataset)} ! = " "}{\把{DEFAULT_MACRO SourceDataset_CSV2_6 $ (SourceDataset)} \}] # !END_WB_HEADER # ! START_SOURCE_HEADER CSV2 CSV2_6 DEFAULT_MACRO SourceDataset_CSV2_6 $(SourceDataset_CSV2_10) GUI MULTIFILE SourceDataset_CSV2_6 CSV/Compressed_CSV/TEXT_Files(*.csv;*.gz;*.txt)|*.csv;*.gz;*.txt|CSV_Files(*.csv)|*.csv|Compressed_CSV_Files(*.gz)|*.gz|Text_Files(*.txt)|*.txt|All_Files|* Source CSV (Comma Separated Value) File(s): GUI DISCLOSUREGROUP CSV2_IN_DATASET_GROUP_CSV2_6 FME_DISCLOSURE_OPEN%FEATURE_TYPE_NAME Dataset Parameters DEFAULT_MACRO CSV2_IN_FEATURE_TYPE_NAME_CSV2_6 FORMAT_NAME CSV2_6_FEATURE_TYPE_NAME "$(CSV2_IN_FEATURE_TYPE_NAME_CSV2_6)" GUI DISCLOSUREGROUP CSV2_IN_FIELDS_GROUP_CSV2_6 FME_DISCLOSURE_OPEN%DELIMITER%FIELD_NAMES_LINE%DATA_START_LINE Fields DEFAULT_MACRO CSV2_IN_DELIMITER_CSV2_6 CSV2_6_DELIMITER " $ (CSV2_IN_DELIMITER_CSV2_6) "GUI STRING_OR_CHOICE_ENCODED CSV2_IN_DELIMITER_CSV2_6 ,%;%|%space%tab Delimiter Character: DEFAULT_MACRO CSV2_IN_FIELD_NAMES_LINE_CSV2_6 1 CSV2_6_FIELD_NAMES_LINE "$(CSV2_IN_FIELD_NAMES_LINE_CSV2_6)" GUI OPTIONAL RANGE_SLIDER CSV2_IN_FIELD_NAMES_LINE_CSV2_6 1%MAX%0 Field Names Line: DEFAULT_MACRO CSV2_IN_DATA_START_LINE_CSV2_6 2 CSV2_6_DATA_START_LINE "$(CSV2_IN_DATA_START_LINE_CSV2_6)" GUI RANGE_SLIDER CSV2_IN_DATA_START_LINE_CSV2_6 1%MAX%0 Data Start Line: GUI DISCLOSUREGROUP CSV2_IN_ADVANCED_GROUP_CSV2_6 FME_DISCLOSURE_CLOSED%FIELD_SEPARATION_GROUP%FIELD_NAMES_GROUP%FIELD_VALUES_GROUP%ENCODING_GROUP%SKIPPED_LINES_GROUP%SCHEMA_GENERATION_GROUP Advanced GUI DISCLOSUREGROUP CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_6 FME_DISCLOSURE_CLOSED%SKIP_DUPLICATE_DELIMITERS%FIELD_QUALIFIER_CHARACTER%FIELD_QUALIFIER_ESCAPE_CHARACTER Field Separation DEFAULT_MACRO CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_6 No CSV2_6_SKIP_DUPLICATE_DELIMITERS "$(CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_6)" GUI CHOICE CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_6 Yes%No Skip Duplicate Delimiters: DEFAULT_MACRO CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_6 CSV2_6_FIELD_QUALIFIER_CHARACTER " $ (CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_6) "GUI OPTIONAL STRING_ENCODED CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_6 Field Qualifier Character: DEFAULT_MACRO CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_6 CSV2_6_FIELD_QUALIFIER_ESCAPE_CHARACTER " $ (CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_6) "GUI OPTIONAL STRING_ENCODED CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_6 Field Qualifier Escape Character: GUI DISCLOSUREGROUP CSV2_IN_FIELD_NAMES_GROUP_CSV2_6 FME_DISCLOSURE_CLOSED%CASE_SENSITIVE_FIELD_NAMES%ENFORCE_STRICT_SCHEMA Field Names DEFAULT_MACRO CSV2_IN_TRIM_FIELD_NAME_QUALIFIERS_CSV2_6 Yes CSV2_6_TRIM_FIELD_NAME_QUALIFIERS "$(CSV2_IN_TRIM_FIELD_NAME_QUALIFIERS_CSV2_6)" DEFAULT_MACRO CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_6 Yes CSV2_6_CASE_SENSITIVE_FIELD_NAMES "$(CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_6)" GUI CHOICE CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_6 Yes%No Case Sensitive Field Names: DEFAULT_MACRO CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_6 No CSV2_6_ENFORCE_STRICT_SCHEMA "$(CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_6)" GUI CHOICE CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_6 Yes%No Enforce Strict Schema: GUI DISCLOSUREGROUP CSV2_IN_FIELD_VALUES_GROUP_CSV2_6 FME_DISCLOSURE_CLOSED%TRIM_FIELD_VALUE_QUALIFIERS Field Values DEFAULT_MACRO CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_6 Yes CSV2_6_TRIM_FIELD_VALUE_QUALIFIERS "$(CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_6)" GUI CHOICE CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_6 Yes%No Trim Field Qualifier Characters: GUI DISCLOSUREGROUP CSV2_IN_ENCODING_GROUP_CSV2_6 FME_DISCLOSURE_CLOSED%ENCODING%PRESERVE_SOURCE_ENCODING Encoding DEFAULT_MACRO CSV2_IN_ENCODING_CSV2_6 CSV2_6_ENCODING "$(CSV2_IN_ENCODING_CSV2_6)" GUI OPTIONAL STRING_OR_ENCODING CSV2_IN_ENCODING_CSV2_6 SYSTEM%* Character Encoding: DEFAULT_MACRO CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_6 No CSV2_6_PRESERVE_SOURCE_ENCODING "$(CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_6)" GUI CHOICE CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_6 Yes%No Preserve Source Encoding: GUI DISCLOSUREGROUP CSV2_IN_SKIPPED_LINES_GROUP_CSV2_6 FME_DISCLOSURE_CLOSED%READ_SKIPPED_LINES Skipped Lines DEFAULT_MACRO CSV2_IN_READ_SKIPPED_LINES_CSV2_6 No CSV2_6_READ_SKIPPED_LINES "$(CSV2_IN_READ_SKIPPED_LINES_CSV2_6)" GUI CHOICE CSV2_IN_READ_SKIPPED_LINES_CSV2_6 Yes%No Read Skipped Lines: GUI DISCLOSUREGROUP CSV2_IN_SCHEMA_GENERATION_GROUP_CSV2_6 FME_DISCLOSURE_CLOSED%SCAN_MAX_ROWS%SCAN_TYPES%SCAN_ADDITIONAL_FIELDS Schema Generation DEFAULT_MACRO CSV2_IN_SCAN_MAX_ROWS_CSV2_6 1000 CSV2_6_SCAN_MAX_ROWS "$(CSV2_IN_SCAN_MAX_ROWS_CSV2_6)" DEFAULT_MACRO CSV2_IN_SCAN_TYPES_CSV2_6 No CSV2_6_SCAN_TYPES "$(CSV2_IN_SCAN_TYPES_CSV2_6)" DEFAULT_MACRO CSV2_IN_SCAN_ADDITIONAL_FIELDS_CSV2_6 No CSV2_6_SCAN_ADDITIONAL_FIELDS "$(CSV2_IN_SCAN_ADDITIONAL_FIELDS_CSV2_6)" DEFAULT_MACRO CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_6 CSV2_6_EXPOSE_ATTRS_GROUP "$(CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_6)" GUI DISCLOSUREGROUP CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_6 CSV2_EXPOSE_FORMAT_ATTRS Schema Attributes # =========================================================================== DEFAULT_MACRO CSV2_IN_NETWORK_AUTHENTICATION_CSV2_6 CSV2_6_NETWORK_AUTHENTICATION "$(CSV2_IN_NETWORK_AUTHENTICATION_CSV2_6)" GUI OPTIONAL AUTHENTICATOR CSV2_IN_NETWORK_AUTHENTICATION_CSV2_6 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # =========================================================================== DEFAULT_MACRO CSV2_IN_ATTRIBUTE_READING_CSV2_6 DEFLINE CSV2_6_ATTRIBUTE_READING "$(CSV2_IN_ATTRIBUTE_READING_CSV2_6)" CSV2_6_DATASET "$(SourceDataset_CSV2_6)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "CSV2_7" #! END_WB_HEADER #! START_DEST_HEADER CSV2 CSV2_7 # ===================================================================== # The following GUI line prompts for a folder where the # CSV files will be stored #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_CSV2_7 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER CSV2 CSV2_7 DEFAULT_MACRO DestDataset_CSV2_7 $(DestDataset_CSV2) GUI DIRNAME DestDataset_CSV2_7 Destination CSV (Comma Separated Value) Folder: GUI DISCLOSUREGROUP CSV2_OUT_DATASET_GROUP_CSV2_7 FME_DISCLOSURE_OPEN%EXTENSION%EXISTING_FILE_HANDLING Dataset DEFAULT_MACRO CSV2_OUT_EXTENSION_CSV2_7 csv CSV2_7_EXTENSION "$(CSV2_OUT_EXTENSION_CSV2_7)" GUI OPTIONAL TEXT CSV2_OUT_EXTENSION_CSV2_7 Extension: DEFAULT_MACRO CSV2_OUT_EXISTING_FILE_HANDLING_CSV2_7 Yes CSV2_7_EXISTING_FILE_HANDLING "$(CSV2_OUT_EXISTING_FILE_HANDLING_CSV2_7)" GUI DISCLOSUREGROUP CSV2_OUT_FIELDS_GROUP_CSV2_7 FME_DISCLOSURE_OPEN%DELIMITER%WRITE_FIELD_NAMES Fields DEFAULT_MACRO CSV2_OUT_DELIMITER_CSV2_7 CSV2_7_DELIMITER " $ (CSV2_OUT_DELIMITER_CSV2_7) "GUI STRING_OR_CHOICE_ENCODED CSV2_OUT_DELIMITER_CSV2_7 ,%;%|%space%tab Delimiter Character: DEFAULT_MACRO CSV2_OUT_WRITE_FIELD_NAMES_CSV2_7 firstrow CSV2_7_WRITE_FIELD_NAMES "$(CSV2_OUT_WRITE_FIELD_NAMES_CSV2_7)" GUI DISCLOSUREGROUP CSV2_OUT_ENCODING_GROUP_CSV2_7 FME_DISCLOSURE_OPEN%ENCODING%WRITE_BOM_FOR_UNICODE Encoding DEFAULT_MACRO CSV2_OUT_ENCODING_CSV2_7 CSV2_7_ENCODING "$(CSV2_OUT_ENCODING_CSV2_7)" GUI OPTIONAL STRING_OR_ENCODING CSV2_OUT_ENCODING_CSV2_7 SYSTEM%* Character Encoding: DEFAULT_MACRO CSV2_OUT_WRITE_BOM_FOR_UNICODE_CSV2_7 Yes CSV2_7_WRITE_BOM_FOR_UNICODE "$(CSV2_OUT_WRITE_BOM_FOR_UNICODE_CSV2_7)" GUI CHOICE CSV2_OUT_WRITE_BOM_FOR_UNICODE_CSV2_7 Yes%No Write Byte Order Mark for Unicode: GUI DISCLOSUREGROUP CSV2_OUT_ADVANCED_GROUP_CSV2_7 FME_DISCLOSURE_CLOSED%QUALIFY_FIELD_NAMES%QUALIFY_FIELD_VALUES%FIELD_QUALIFIER_CHARACTER%FIELD_QUALIFIER_ESCAPE_CHARACTER%ROW_TERMINATION%WRITE_SCHEMA_FILE Advanced DEFAULT_MACRO CSV2_OUT_QUALIFY_FIELD_NAMES_CSV2_7 if_needed CSV2_7_QUALIFY_FIELD_NAMES "$(CSV2_OUT_QUALIFY_FIELD_NAMES_CSV2_7)" GUI LOOKUP_CHOICE CSV2_OUT_QUALIFY_FIELD_NAMES_CSV2_7 Yes,yes%No,no%If 需要,if_needed限定字段名称:DEFAULT_MACRO CSV2_OUT_QUALIFY_FIELD_VALUES_CSV2_7 if_needed CSV2_7_QUALIFY_FIELD_VALUES " $ (CSV2_OUT_QUALIFY_FIELD_VALUES_CSV2_7) "GUI LOOKUP_CHOICE CSV2_OUT_QUALIFY_FIELD_VALUES_CSV2_7 Yes,yes%No,no%If 需要,if_needed限定字段值:DEFAULT_MACRO CSV2_OUT_FIELD_QUALIFIER_CHARACTER_CSV2_7 CSV2_7_FIELD_QUALIFIER_CHARACTER " $ (CSV2_OUT_FIELD_QUALIFIER_CHARACTER_CSV2_7) "GUI STRING_ENCODED CSV2_OUT_FIELD_QUALIFIER_CHARACTER_CSV2_7 Field Qualifier Character: DEFAULT_MACRO CSV2_OUT_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_7 CSV2_7_FIELD_QUALIFIER_ESCAPE_CHARACTER " $ (CSV2_OUT_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_7) "GUI STRING_ENCODED CSV2_OUT_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_7 Field Qualifier Escape Character: DEFAULT_MACRO CSV2_OUT_ROW_TERMINATION_CSV2_7 System CSV2_7_ROW_TERMINATION "$(CSV2_OUT_ROW_TERMINATION_CSV2_7)" GUI CHOICE CSV2_OUT_ROW_TERMINATION_CSV2_7 System%Windows%Unix%Macintosh Row Termination: DEFAULT_MACRO CSV2_OUT_WRITE_SCHEMA_FILE_CSV2_7 NO CSV2_7_WRITE_SCHEMA_FILE "$(CSV2_OUT_WRITE_SCHEMA_FILE_CSV2_7)" GUI ACTIVEDISCLOSUREGROUP CSV2_OUT_WRITE_SCHEMA_FILE_CSV2_7 FME_DISCLOSURE_CLOSED%EXISTING_SCHEMA_FILE_HANDLING Write Schema Configuration File DEFAULT_MACRO CSV2_OUT_EXISTING_SCHEMA_FILE_HANDLING_CSV2_7 Overwrite CSV2_7_EXISTING_SCHEMA_FILE_HANDLING "$(CSV2_OUT_EXISTING_SCHEMA_FILE_HANDLING_CSV2_7)" GUI CHOICE CSV2_OUT_EXISTING_SCHEMA_FILE_HANDLING_CSV2_7 Overwrite%Prepend Existing Schema File Handling: DEFAULT_MACRO CSV2_OUT_COORDINATE_SYSTEM_GRANULARITY_CSV2_7 FEATURE_TYPE CSV2_7_COORDINATE_SYSTEM_GRANULARITY "$(CSV2_OUT_COORDINATE_SYSTEM_GRANULARITY_CSV2_7)" CSV2_7_DATASET "$(DestDataset_CSV2_7)" #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)SortingCharTable_FMEKnowledgebase_Share2.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 DEFAULT_MACRO DATASET_KEYWORD_CSV2_6 CSV2_6 DEFAULT_MACRO DATASET_KEYWORD_CSV2_7 CSV2_7 # ------------------------------------------------------------------------- CSV2_6_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME SortingCharTable_FMEKnowledgebase_Share2 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 # ------------------------------------------------------------------------- CSV2_6_DEF CSV fme_attribute_reading defined PREM_ID string CHAR_TYPE_CD string CHAR_VAL string EFFDT string VERSION string ADHOC_CHAR_VAL string CHAR_VAL_FK1 string CHAR_VAL_FK2 string CHAR_VAL_FK3 string CHAR_VAL_FK4 string CHAR_VAL_FK5 string # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD CSV2_6 INPUT FEATURE_TYPE * ROUTE CSV2 CSV2_6::CSV TO FME_GENERIC ::CSV ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * CSV2_6_MERGE_DEF CSV2_6::CSV EXACT CSV # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "CSV (CSV2_6) Splitter" INPUT FEATURE_TYPE CSV OUTPUT FEATURE_TYPE CSV_CSV2_6 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO AttributeKeeper_c9131f5a_40f3_4f1b_a0f5_4b85bc1c852417_LIST_EXP "; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF * TeeFactory FACTORY_NAME AttributeKeeper INPUT FEATURE_TYPE CSV_CSV2_6 OUTPUT FEATURE_TYPE AttributeKeeper_OUTPUT @KeepAttributes(fme_encoded,ADHOC_CHAR_VAL,PREM_ID,CHAR_TYPE_CD,EFFDT,fme_pcre_match,"^fme_$(AttributeKeeper_c9131f5a_40f3_4f1b_a0f5_4b85bc1c852417_LIST_EXP)") # ------------------------------------------------------------------------- FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator INPUT FEATURE_TYPE AttributeKeeper_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION "" "ORIGINAL_EFFDT" "SET_TO" " 价值 EFFDT “输出输出FEATURE_TYPE AttributeCreator_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tcl2 proc DateFormatter_formatter {invalidValue}{设置dateFormat {Y % m % d %};如果{(字符串比较美元dateFormat {FME日期/时间(% Y % m % d % H % m % S)}] = = 0}{设置dateFormat {% Y % m % d % H % m % S};}elseif{[字符串比较美元dateFormat {FME日期(% Y % m % d)}] = = 0}{设置dateFormat {Y % m % d %};}elseif{[字符串比较美元dateFormat {FME时间(% H % % S)}] = = 0}{设置dateFormat {% H % M % S};}elseif{[字符串比较美元dateFormat {ISO日期(Y % - % - % d)}] = = 0}{设置dateFormat {Y - % - % d %};}elseif{[字符串比较美元dateFormat {ISO DateTime (Y % - % - % dT % H: % m: % S)}] = = 0}{设置dateFormat {Y % - % - % dT % H: % m: % S};}elseif{[字符串比较美元dateFormat {ISO时间(% H: % M: % S)}] = = 0}{设置dateFormat {% H: % M: % S};}elseif{[字符串比较美元dateFormat{地区日期(% c)}] = = 0} {dateFormat {% c};};设置attrs [{EFFDT}{}]分裂; foreach attr $attrs { set date [string trim [FME_GetAttribute $attr]]; set comment { Don't touch NULL or empty attribute values }; if { [string length $date] == 0 } { continue; }; set srcfmt {}; if {{FME_AUTOMATIC} != {FME_AUTOMATIC}} { set srcfmt {FME_AUTOMATIC}; } else { set comment { In Automatic mode we ignore the millisecond part }; regexp {^[^.]*} $date date; set comment { Treat single char as invalid date }; if { [regexp {^.$} $date] } { set date {}; }; }; set comment { An empty $date at this point is invalid, so don't process further }; set dateLen [string length $date]; if {$dateLen > 0} { if {[string length $srcfmt] == 0} { set attrFull $attr; append attrFull .full; set fullDate [FME_GetAttribute $attrFull]; if { [string compare -length $dateLen $date $fullDate] == 0 } { set extra [string range $fullDate $dateLen end]000000; set date [string range \"$date$extra\" 0 13]; set dateLen 14 }; if {($dateLen == 14) && [regexp {^[0-9]*$} $date]} { set srcfmt %Y%m%d%H%M%S; }; }; set sourceFormatOpt {}; if {[string length $srcfmt] > 0} { set sourceFormatOpt \"-format {$srcfmt}\"; }; set comment { Compute the output value and catch any errors }; set error [catch { set seconds [eval clock scan "{$date}" $sourceFormatOpt]; set output [clock format $seconds -format $dateFormat]; }]; set comment { If there was error then we try again by removing digits after last decimal }; if { $error != 0 } { set index [string last "." $date]; if { $index > 0 } { set date [eval string range $date 0 [expr $index-1]]; set dateLen [string length $date]; set error [catch { set seconds [eval clock scan "{$date}" $sourceFormatOpt]; set output [clock format $seconds -format $dateFormat]; }]; }; }; if { $error == 0 } { FME_SetAttribute $attr $output; }; }; if { (0 == $dateLen) || ($error != 0) } { if { $invalidValue == {FME_NULL_VALUE} } { FME_SetAttributeNull $attr; } elseif { $invalidValue != {_FME_NO_OP_} } { FME_SetAttribute $attr [FME_DecodeText $invalidValue]; }; }; }; } FACTORY_DEF * TeeFactory FACTORY_NAME DateFormatter INPUT FEATURE_TYPE AttributeCreator_OUTPUT OUTPUT FEATURE_TYPE DateFormatter_OUTPUT @Tcl2("DateFormatter_formatter {_FME_NO_OP_}") FACTORY_DEF * TeeFactory FACTORY_NAME "DateFormatter OUTPUT Splitter" INPUT FEATURE_TYPE DateFormatter_OUTPUT OUTPUT FEATURE_TYPE DateFormatter_OUTPUT_0_YpfMlOcsqbc= OUTPUT FEATURE_TYPE DateFormatter_OUTPUT_1_eCGJRU9ZN8Y= # ------------------------------------------------------------------------- Tcl2 regsub {^[^a-zA-Z]*([a-zA-Z]).*} {d} {\1} formatChar; if { [string first $formatChar {duiofxeEgG}] != -1 } { proc {StringFormatter_getAttribute} {attr} { return [regsub {^(-?)0*(.)} [FME_GetAttribute $attr] {\1\2}] } } else { proc {StringFormatter_getAttribute} {attr} { return [FME_GetAttribute $attr] } } Tcl2 proc StringFormatter_formatter {} { set attrs [split {EFFDT} {,}]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set length [string length $attrVal]; if {$length > 0} { FME_SetAttribute $attr [format %d [{StringFormatter_getAttribute} $attr]]; }; }; } FACTORY_DEF * TeeFactory FACTORY_NAME StringFormatter INPUT FEATURE_TYPE DateFormatter_OUTPUT_0_YpfMlOcsqbc= OUTPUT FEATURE_TYPE StringFormatter_OUTPUT @Tcl2(StringFormatter_formatter) # ------------------------------------------------------------------------- DEFAULT_MACRO __StatisticsCalculator_4d123f1a_078d_463b_9182_478d9430c8ba17_GROUP_BY MACRO __StatisticsCalculator_4d123f1a_078d_463b_9182_478d9430c8ba17_GROUP_BY PREM_ID CHAR_TYPE_CD DYNAMIC_FUNCTION_CONFIGURATION Python FMEOBJECTS DYNAMIC_FUNCTION_CONFIGURATION Python import StatisticsCalculator DYNAMIC_FUNCTION_CONFIGURATION Python "StatisticsCalculator.connectTransformer( 'StatisticsCalculator',{ 'GROUP_BY_MACRO':'__StatisticsCalculator_4d123f1a_078d_463b_9182_478d9430c8ba17_GROUP_BY', 'GROUP_BY':'PREM_ID CHAR_TYPE_CD', 'STATS_ATTRS':'EFFDT', 'MAX_ATTR':'MAX_EFFDT', 'COMPUTE_HISTOGRAM':'NO', 'HISTO_ATTR':' ”、“PREPEND_ATTR_NAME”:“没有”、“encoded_result_attrs”:真的,没有:没有})”FACTORY_DEF * TeeFactory FACTORY_NAME StatisticsCalculator_InputProcessor INPUT FEATURE_TYPE StringFormatter_OUTPUT OUTPUT FEATURE_TYPE __ORIGINAL__ @Python(StatisticsCalculator.recordFeature,StatisticsCalculator) FACTORY_DEF * TeeFactory FACTORY_NAME StatisticsCalculator_UnneededInputNuker INPUT FEATURE_TYPE __ORIGINAL__ FACTORY_DEF * SortFactory FACTORY_NAME StatisticsCalculator_CompleteOutputter INPUT FEATURE_TYPE __UNUSED_INPUT_TO_GUARANTEE_FACTORY_DOESNT_CONSUME_EVERYTHING__ FACTORY_DEF * CreationFactory FACTORY_NAME StatisticsCalculator_SummaryCreator CREATE_AT_END NUMBER_TO_CREATE 1 OUTPUT FEATURE_TYPE StatisticsCalculator_SUMMARY FACTORY_DEF * ElementFactory FACTORY_NAME StatisticsCalculator_SummaryExploder LIST_NAME StatisticsCalculator_stats{} MODE LEAN_AND_MEAN CLONE_GEOMETRY no INPUT FEATURE_TYPE __UNUSED_INPUT_TO_GUARANTEE_FACTORY_DOESNT_CONSUME_EVERYTHING__ INPUT FEATURE_TYPE StatisticsCalculator_SUMMARY @Python(StatisticsCalculator.summarizeStatistics,StatisticsCalculator,__SINGLE_GUY__) OUTPUT ELEMENT FEATURE_TYPE StatisticsCalculator_SUMMARY # ------------------------------------------------------------------------- INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && { }= ={多边形}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_BUILD_POLYS”;}elseif{{属性}= = {GEOM_BUILD} & & { }= ={骨料}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES”;}elseif{{属性}= = {GEOM_BUILD} & & { }= = {LINESFROMPOINTS}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS”;}elseif{{属性}= = {GEOM_AND_ATTRS} & & { }= ={多边形}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS”;}elseif{{属性}= = {GEOM_AND_ATTRS} & & { }= ={骨料}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES”;}elseif{{属性}= = {GEOM_AND_ATTRS} & & { }= = {LINESFROMPOINTS}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS”;}elseif{{属性}= = {GEOM_BUILD}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES”;}elseif{{属性}= = {GEOM_AND_ATTRS}}{所说的“宏观FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES”;其他}{};输入参考]FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger FEATURE_TYPE DateFormatter_OUTPUT_1_eCGJRU9ZN8Y =输入REFERENCEE FEATURE_TYPE StatisticsCalculator_SUMMARY REFERENCE_INFO美元(FeatureMerger_REFERENCE_INFO) REFERENCE_TABLE @EvaluateExpression (FDIV STRING_ENCODED, 价值 CHAR_TYPE_CD FeatureMerger) @EvaluateExpression (FDIV STRING_ENCODED, 价值 CHAR_TYPE_CD FeatureMerger)汽车@EvaluateExpression (FDIV STRING_ENCODED, 价值 EFFDT FeatureMerger) @EvaluateExpression (FDIV STRING_ENCODED, 价值 MAX_EFFDT FeatureMerger)汽车@EvaluateExpression (FDIV STRING_ENCODED, 价值 PREM_ID FeatureMerger) @EvaluateExpression (FDIV STRING_ENCODED, 价值 PREM_ID FeatureMerger)汽车ATTR_ACCUM_MODE“HANDLE_CONFLICT ATTR_CONFLICT_RES IGNORE_NULLS“REQUESTOR_IF_CONFLICT”“不”HANDLE_NULL_MISSING_KEYS_LIKE_FME2013没有LIST_ATTRS_TO_INCLUDE { }LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES是的MANAGE_FME_TYPE模式完成PROCESS_DUPLICATE_REFERENCEES没有REFERENCEES_FIRST REJECT_INVALID_GEOM是的输出完整FEATURE_TYPE FeatureMerger_MERGED输出拒绝FEATURE_TYPE FeatureMerger_ DEFAULT_MACRO _WB_BYPASS_TERMINATION没有FACTORY_DEF * TeeFactory FACTORY_NAME FeatureMerger_ 输入FEATURE_TYPE FeatureMerger_ 输出失败FEATURE_TYPE * @Abort (FeatureMerger编码 输出 一个 拒绝了 特性。 继续 如果 特性 拒绝了 改变 工作空间 参数 拒绝了 功能 处理 继续 翻译 )# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -包括[设置macroLine“宏观AttributeKeeper_3_a34d3dc9_e500_44cf_9292_585dd5c40c4417_LIST_EXP”;foreach attr(分裂”“){attr(美元FME_DecodeText attr);设置attr (regsub“{}”美元attr“{} *”。);设置attr (regsub——“{}”美元attr”\ \ {\ [0 - 9 \] + \ \} ");附加macroLine”^ attr美元”;};把macroLine美元;]FACTORY_DEF * TeeFactory FACTORY_NAME AttributeKeeper_3输入FEATURE_TYPE FeatureMerger_MERGED输出FEATURE_TYPE AttributeKeeper_3_OUTPUT @KeepAttributes (fme_encoded、ADHOC_CHAR_VAL PREM_ID, CHAR_TYPE_CD, fme_pcre_match,“^ fme_美元(AttributeKeeper_3_a34d3dc9_e500_44cf_9292_585dd5c40c4417_LIST_EXP)”) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator_3输入FEATURE_TYPE AttributeKeeper_3_OUTPUT MULTI_FEATURE_MODE没有NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION”“” 价值 CHAR_TYPE_CD ”“SET_TO”“ 价值 ADHOC_CHAR_VAL “输出输出FEATURE_TYPE AttributeCreator_3_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME AttributeExposer输入FEATURE_TYPE AttributeCreator_3_OUTPUT输出FEATURE_TYPE AttributeExposer_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DEFAULT_MACRO Aggregator_BREAK_ATTR包括(如果{“不”= =“是”}{把{宏Aggregator_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE PREM_ID}}] FACTORY_DEF {*} AggregateFactory FACTORY_NAME聚合器输入FEATURE_TYPE AttributeExposer_OUTPUT模式ONE_LEVEL GROUP_BY PREM_ID美元(Aggregator_BREAK_ATTR) REMOVE_GEOMETRY是的ACCUMULATE_ATTRIBUTES LIST_ATTRS_TO_INCLUDE { }LIST_ATTRS_TO_INCLUDE_MODE 分隔符 输出总FEATURE_TYPE Aggregator_AGGREGATE # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME AttributeExposer_2输入FEATURE_TYPE Aggregator_AGGREGATE输出FEATURE_TYPE AttributeExposer_2_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME“AttributeExposer_2输出分配器”输入FEATURE_TYPE AttributeExposer_2_OUTPUT输出FEATURE_TYPE AttributeExposer_2_OUTPUT_0_3JfQMb2GkbU =输出FEATURE_TYPE AttributeExposer_2_OUTPUT_1_LoBLM1 + t / z0 = # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -包括[设置macroLine“宏观AttributeRemover_LIST_EXP”;foreach attr(分裂”“){attr(美元FME_DecodeText attr);设置attr (regsub“{}”美元attr“{} *”。);设置attr (regsub——“{}”美元attr”\ \ {\ [0 - 9 \] + \ \} ");附加macroLine”^ attr美元”;};把macroLine美元;]FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRemover输入FEATURE_TYPE AttributeExposer_2_OUTPUT_0_3JfQMb2GkbU =输出FEATURE_TYPE AttributeRemover_OUTPUT @RemoveAttributes (fme_encoded D_AREA D_FLAT D_IMPERV D_PRCT D_PRCTIM D_RESPON、ADHOC_CHAR_VAL CHAR_TYPE_CD) @RemoveAttributes (fme_pcre_match (AttributeRemover_LIST_EXP)美元)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #假设是工作区临时dir已经设置和创建。看到controldefs。cpp - ControlDefs:: writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR包括[设置grpByAttrs {};如果{(字符串长度grpByAttrs美元)> 0}{如果{(字符串第一个“@EvaluateExpression grpByAttrs美元)= = 0}{所说的“宏观CATMAC _ grpByAttrs美元”;其他}{猫””;逗号””;foreach attr $ grpByAttrs{设置猫“猫comma@Value美元(\“美元attr \”)”; set comma ",_," ; } ; puts "MACRO CATMAC _@Concatenate($catter)" ; } } else { puts "MACRO CATMAC " ; }; set safeName "[regsub -all {[^a-zA-Z0-9]} {Inspector} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] # Make the temporary directory that the FFS files will live in. FACTORY_DEF * CreationFactory FACTORY_NAME Inspector_DirCreator OUTPUT FEATURE_TYPE __nukeme__ @Tcl2("catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}") FACTORY_DEF * TeeFactory FACTORY_NAME Inspector_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 Inspector_FeatureDirector INPUT FEATURE_TYPE AttributeRemover_OUTPUT TEST &fme_type == "fme_raster" OUTPUT FAILED FEATURE_TYPE Inspector___NotRasterFeatures___ OUTPUT PASSED FEATURE_TYPE Inspector___RasterFeatures___ FACTORY_DEF * TestFactory FACTORY_NAME Inspector___FeatureDirector1 INPUT FEATURE_TYPE Inspector___NotRasterFeatures___ TEST &fme_type == "fme_point_cloud" OUTPUT FAILED FEATURE_TYPE Inspector___VectorFeatures___ OUTPUT PASSED FEATURE_TYPE Inspector___PointCloudFeatures___ # Vector features simply may get their colors overridden FACTORY_DEF * TeeFactory FACTORY_NAME Inspector_VectorSetterUpper INPUT FEATURE_TYPE Inspector___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 Inspector_e9d49aca_f2ab_42b0_9e90_ccdbe8cd037217_thinPointCloud {} { if {[string equal {NO_THINNING} {KEEPNPOINT}]} { FME_Execute ThinPointCloud NO_THINNING "\" \ ";}elseif {[string = {NO_THINNING} {MAXNUMPOINTS}]} {FME_Execute ThinPointCloud NO_THINNING“\” \ ";}elseif {[string = {NO_THINNING} {FIRSTNPOINTS}]} {FME_Execute ThinPointCloud NO_THINNING“\” \ ";}elseif {[string = {NO_THINNING} {LASTNPOINTS}]} {FME_Execute ThinPointCloud NO_THINNING“\” \ ";};}FACTORY_DEF * TeeFactory FACTORY_NAME Inspector___PointCloudThinner输入FEATURE_TYPE Inspector___PointCloudFeatures___输出FEATURE_TYPE __viewme__ @Tcl2 (Inspector_e9d49aca_f2ab_42b0_9e90_ccdbe8cd037217_thinPointCloud) Tcl2 proc Inspector_e9d49aca_f2ab_42b0_9e90_ccdbe8cd037217_prepareRaster {subsetStartRow subsetNumRows subsetStartCol subsetNumCols}{设置useDI(字符串相等查看nocase {$ (FME_VIEWER_APP)} {fmedatainspector});如果{!$ useDI} {FME_Execute ApplyRasterRotation双线性;};设置doResample(字符串= {NoReduction}{重新取样});设置doSubset(字符串= {NoReduction}}{子集);设置doBounds(字符串= {NoReduction} {BoundingBoxOnly});如果{$ 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]; if {$newNumRows < $kMinNumCells} { set 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 Inspector_RasterSetterUpper INPUT FEATURE_TYPE Inspector___RasterFeatures___ OUTPUT FEATURE_TYPE __viewme__ @Tcl2("Inspector_e9d49aca_f2ab_42b0_9e90_ccdbe8cd037217_prepareRaster { }{ }{ }{ }”)#现在录音机路线的所有特性,改变他们的#功能类型变压器的名字,他们认为好# Inspector_e9d49aca_f2ab_42b0_9e90_ccdbe8cd037217_VIS_FEAT_TYPE变化#特性的可视化的功能类型。DEFAULT_MACRO Inspector_e9d49aca_f2ab_42b0_9e90_ccdbe8cd037217_VIS_FEAT_TYPE检查员$ (CATMAC) DEFAULT_MACRO VISUALIZER_FEATURE_FILE (WORKSPACE_TEMP_DIR) /美元(SAFE_亚搏在线FFS_NAME)。ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX没有#(公关# 45549)数据检查员将限制的最大数量特征#在WIN32它读取,所以我们将相应地限制#的数量特性使用MAX_FEATURES_TO_RECORD指令记录在这里。FACTORY_DEF * RecorderFactory FACTORY_NAME Inspector_Recorder输入FEATURE_TYPE __viewme__ _wb_termination_feature是的@FeatureType (TERMINATOR_@Value (_wb_termination_xformer))输入FEATURE_TYPE __viewme__ @FeatureType ($ (Inspector_e9d49aca_f2ab_42b0_9e90_ccdbe8cd037217_VIS_FEAT_TYPE)) FEATURE_FILE " $ (VISUALIZER_FEATURE_FILE) "CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA PREM_ID,varchar 255年 、D_AREA varchar 255年 、D_FLAT varchar 255年 、D_IMPERV varchar 255年 、D_PRCT varchar 255年 、D_PRCTIM varchar 255年 、D_RESPON 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 *路线FME_GENERIC AttributeExposer_2_OUTPUT_1_LoBLM1 + t / z0 = CSV2 __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id, 0, SupplyAttributes 编码 __wb_out_feat_type__ File1 几何FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__输出路由FEATURE_TYPE *输出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“最终输出核武器”输入FEATURE_TYPE __nuke_me__ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * CreationFactory CREATE_AT_END输出FEATURE_TYPE __NUKEME__ @TCL(“如果[文件存在{$ (WORKSPACE_TEMP_DIR)}]{设置文件[水珠-nocomplain目录{$ (WORKSPACE_TEMP_DIR)}反面* .ffs];如果{[llength $文件]= = 1}{设置theFile {$ (WORKSPACE_TEMP_DIR) /};附加theFile 0] [lindex $文件;eval FME_Execute系统\ 173 \ 042 (FME_HOME_UNIX) / fmedatainspector \ 042美元——可视化工具——单个应用程序——delete-on-close no-source-prompt - f FFS theFile & \ 175美元;}elseif {[llength $文件]= = 0}{catch{文件删除force {$ (WORKSPACE_TEMP_DIR)}};其他}{设置filesNoExt {};设置lastfile {};foreach{文件名}[lsort $文件]{设置fileNoExt [string trimright $ fileName {.ffs}];如果[regexp {(. *) _ [0 - 9] * $} $ fileNoExt wholething fileNoExtBase]{如果{fileNoExtBase = = lastfile美元}{继续}};设置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__ # ------------------------------------------------------------------------- CSV2_7_DEF File1 csv_existing_file_handling Yes csv_write_field_names firstrow PREM_ID string CHAR_TYPE_CD string ADHOC_CHAR_VAL string D_AREA,D_FLAT,D_IMPERV,D_PRCT,D_PRCTIM,D_RESPON string D_AREA string D_FLAT string D_IMPERV string D_PRCT string D_PRCTIM string D_RESPON string