From 33753e6e4a91c54772081d153a779cb10d13ca88 Mon Sep 17 00:00:00 2001 From: MaelREBOUX Date: Sun, 24 Oct 2021 16:04:52 +0200 Subject: [PATCH] sauv --- .gitignore | 1 + qgis/osm_roads.qml | 507 ------- qgis/pk_auto.qml | 303 ---- qgis/trace_troncons.qml | 357 ----- scripts/config.ini | 8 + scripts/traitements_phase_3_decoupage.fmw | 1636 +++++++++++++++------ 6 files changed, 1174 insertions(+), 1638 deletions(-) delete mode 100644 qgis/osm_roads.qml delete mode 100644 qgis/pk_auto.qml delete mode 100644 qgis/trace_troncons.qml create mode 100644 scripts/config.ini diff --git a/.gitignore b/.gitignore index a86cf93..a3b8252 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ Temporary Items # FME *.recover +data/2022/phase_1_pk_auto.xlsx diff --git a/qgis/osm_roads.qml b/qgis/osm_roads.qml deleted file mode 100644 index abb4d30..0000000 --- a/qgis/osm_roads.qml +++ /dev/null @@ -1,507 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 0 - name_fr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . - - - - - - - - - - - - - - - - . - - 0 - . - - 0 - generatedlayout - - - - - - - - - - - - - - COALESCE( "name_fr", '<NULL>' ) - 1 - diff --git a/qgis/pk_auto.qml b/qgis/pk_auto.qml deleted file mode 100644 index 163ff8a..0000000 --- a/qgis/pk_auto.qml +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 0 - uid - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ../scripts - - - - - - - - - - - - - - - ../scripts - - 0 - ../scripts - - 0 - generatedlayout - - - - - - - - - - - - - COALESCE( "uid", '<NULL>' ) - 0 - diff --git a/qgis/trace_troncons.qml b/qgis/trace_troncons.qml deleted file mode 100644 index f71802a..0000000 --- a/qgis/trace_troncons.qml +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - 0 - uid - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ../scripts - - - - - - - - - - - - - - - - ../scripts - - 0 - ../scripts - - 0 - generatedlayout - - - - - - - - - - - - - - COALESCE( "uid", '<NULL>' ) - 1 - diff --git a/scripts/config.ini b/scripts/config.ini new file mode 100644 index 0000000..7238462 --- /dev/null +++ b/scripts/config.ini @@ -0,0 +1,8 @@ + +[pg_redadeg] +host = bed110.bedniverel.bzh +port = 55432 +db = redadeg +schema = public +user = redadeg +passwd = redadeg diff --git a/scripts/traitements_phase_3_decoupage.fmw b/scripts/traitements_phase_3_decoupage.fmw index 42d0d25..34e4364 100644 --- a/scripts/traitements_phase_3_decoupage.fmw +++ b/scripts/traitements_phase_3_decoupage.fmw @@ -1,15 +1,17 @@ #! #! redadeg" -# --SourceDataset_POSTGIS "breizhpolenovoredadeg" -# --SourceDataset_POSTGRES "breizhpolenovoredadeg" +# /Library/FME/2021.0/fme /Volumes/ker/mael/projets/osm_bzh/github/ar_redadeg/scripts/traitements_phase_3_decoupage.fmw +# --DestDataset_GEOJSON "../data/2021/phase_3_trace_secteurs.geojson" +# --DestDataset_GEOJSON_5 "../data/2021/phase_3_trace_troncons.geojson" +# --DestDataset_GEOJSON_4 "../data/2021/phase_3_pk_auto.geojson" +# --DestDataset_POSTGIS "bed110redadeg_2021redadeg" +# --SourceDataset_POSTGIS "bed110redadeg_2021redadeg" +# --SourceDataset_POSTGRES "bed110redadeg_2021redadeg" # --postgres_sql_where_clause "" +# --secteur_id "30" # +#! ARCGIS_COMPATIBILITY="ARCGIS_AUTO" #! ATTR_TYPE_ENCODING="SDF" #! BEGIN_PYTHON="" #! BEGIN_TCL="" @@ -17,23 +19,24 @@ #! DESCRIPTION="" #! DESTINATION="NONE" #! DESTINATION_ROUTING_FILE="" -#! DOC_EXTENTS="21509.9 5596.82" -#! DOC_TOP_LEFT="-8898.04 -4208.43" +#! DOC_EXTENTS="21444.1 5596.82" +#! DOC_TOP_LEFT="-9055.93 -4208.43" #! END_PYTHON="" #! END_TCL="" #! EXPLICIT_BOOKMARK_ORDER="false" -#! FME_BUILD_NUM="18592" -#! FME_DOCUMENT_GUID="653f1f51-b710-4bf7-83fa-0e5da492586b" -#! FME_DOCUMENT_PRIORGUID="696c9d7c-e37d-4232-b9cf-4183183cacd1,75bea4c9-a241-4c15-b15f-d04ed56c4dc9,0a67c2df-8a2f-4f57-9949-8e922409485f,f6d95960-7dda-46c7-8546-119d6e5eb63b" +#! FME_BUILD_NUM="21306" +#! FME_DOCUMENT_GUID="c89bcf9f-b915-4d0f-b73e-9e4d1291bced" +#! FME_DOCUMENT_PRIORGUID="696c9d7c-e37d-4232-b9cf-4183183cacd1,75bea4c9-a241-4c15-b15f-d04ed56c4dc9,0a67c2df-8a2f-4f57-9949-8e922409485f,f6d95960-7dda-46c7-8546-119d6e5eb63b,653f1f51-b710-4bf7-83fa-0e5da492586b,8013bf53-d4d1-489c-95c0-3551575f08f6,7fc5c6e2-9111-4f5d-b392-34e5bc16d647" #! FME_GEOMETRY_HANDLING="Enhanced" #! FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto" +#! FME_NAMES_ENCODING="UTF-8" #! FME_REPROJECTION_ENGINE="FME" #! FME_SERVER_SERVICES="" #! FME_STROKE_MAX_DEVIATION="0" #! HISTORY="" #! IGNORE_READER_FAILURE="No" -#! LAST_SAVE_BUILD="FME(R) 2018.1.2.1 (20190319 - Build 18592 - macosx)" -#! LAST_SAVE_DATE="2020-02-18T23:59:01" +#! LAST_SAVE_BUILD="FME(R) 2021.0.0.1 (20210315 - Build 21306 - macosx)" +#! LAST_SAVE_DATE="2021-05-18T09:21:57" #! LOG_FILE="" #! LOG_MAX_RECORDED_FEATURES="200" #! MARKDOWN_DESCRIPTION="" @@ -41,8 +44,9 @@ #! MAX_LOG_FEATURES="200" #! MULTI_WRITER_DATASET_ORDER="BY_ID" #! PASSWORD="" -#! PYTHON_COMPATIBILITY="27" +#! PYTHON_COMPATIBILITY="38" #! REDIRECT_TERMINATORS="NONE" +#! SAVE_ON_PROMPT_AND_RUN="Yes" #! SHOW_ANNOTATIONS="true" #! SHOW_INFO_NODES="true" #! SOURCE="NONE" @@ -51,7 +55,7 @@ #! TITLE="" #! USAGE="" #! USE_MARKDOWN="" -#! VIEW_POSITION="-5246.11 1405.28" +#! VIEW_POSITION="-9655.36 1606.6" #! WARN_INVALID_XFORM_PARAM="Yes" #! WORKSPACE_VERSION="1" #! ZOOM_SCALE="76" @@ -70,7 +74,7 @@ #! WRITE_DEFS="true" #! DEFLINE_TEMPLATE="postgres_type {FME_GEN_GEOMETRY} postgres_sql_where_clause "" postgres_sql_statement """ #! DEFLINE_ATTRS="true" -#! EXPOSABLE_ATTRS="postgres_type char(50) fme_color char(50) fme_sweep_angle float8 fme_rotation float8 fme_fill_color char(50) fme_dataset char(50) fme_feature_type char(50) fme_basename char(50) multi_reader_full_id int4 multi_reader_type char(50) fme_secondary_axis float8 multi_reader_keyword char(50) multi_reader_id int4 fme_type char(50) fme_start_angle float8 fme_text_string char(50) fme_text_size float8 fme_geometry char(50) postgres_oid int4 fme_primary_axis float8" +#! EXPOSABLE_ATTRS="fme_basename char(50) fme_color char(50) fme_dataset char(50) fme_feature_type char(50) fme_fill_color char(50) fme_geometry char(50) fme_primary_axis float8 fme_rotation float8 fme_secondary_axis float8 fme_start_angle float8 fme_sweep_angle float8 fme_text_size float8 fme_text_string char(50) fme_type char(50) multi_reader_full_id int4 multi_reader_id int4 multi_reader_keyword char(50) multi_reader_type char(50) postgres_oid int4 postgres_type char(50)" #! DEFLINE_PARMS=""GUI OPTIONAL NAMEDGROUP postgres_query_settings_group postgres_sql_where_clause%postgres_sql_statement Table" "" "GUI OPTIONAL TEXT_EDIT_SQL_CFG postgres_sql_where_clause MODE,WHERE;FORMAT,POSTGRES WHERE Clause" "" "GUI OPTIONAL TEXT_EDIT_SQL_CFG postgres_sql_statement MODE,SQL;FORMAT,POSTGRES SELECT Statement" "" " #! ATTR_INDEX_TYPES="BTree RTree Hash PrimaryKey" #! ATTR_NAME_INVALID_CHARS="" @@ -78,6 +82,7 @@ #! ENABLED="true" #! DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true" #! DATASET_TYPE="DATABASE" +#! FTTR_TYPE="LISTBOX_ENCODED" #! GENERATE_FME_BUILD_NUM="18592" #! COORDSYS="" #! FEATURE_TYPES="" @@ -140,7 +145,7 @@ #! WRITE_DEFS="true" #! DEFLINE_TEMPLATE="postgis_sql_where_clause "" postgis_sql_statement """ #! DEFLINE_ATTRS="true" -#! EXPOSABLE_ATTRS="fme_color char(50) fme_sweep_angle float8 fme_rotation float8 fme_fill_color char(50) fme_dataset char(50) postgis_type char(50) fme_feature_type char(50) fme_basename char(50) multi_reader_full_id int4 multi_reader_type char(50) multi_reader_keyword char(50) fme_secondary_axis float8 multi_reader_id int4 postgis_collection_id int4 fme_type char(50) fme_start_angle float8 fme_text_string char(50) fme_text_size float8 fme_geometry char(50) postgres_oid int4 postgis_collection_part_id int4 fme_primary_axis float8" +#! EXPOSABLE_ATTRS="fme_basename char(50) fme_color char(50) fme_dataset char(50) fme_feature_type char(50) fme_fill_color char(50) fme_geometry char(50) fme_primary_axis float8 fme_rotation float8 fme_secondary_axis float8 fme_start_angle float8 fme_sweep_angle float8 fme_text_size float8 fme_text_string char(50) fme_type char(50) multi_reader_full_id int4 multi_reader_id int4 multi_reader_keyword char(50) multi_reader_type char(50) postgis_collection_id int4 postgis_collection_part_id int4 postgis_type char(50) postgres_oid int4" #! DEFLINE_PARMS=""GUI OPTIONAL NAMEDGROUP postgis_query_settings_group postgis_sql_where_clause%postgis_sql_statement Table" "" "GUI OPTIONAL TEXT_EDIT_SQL_CFG postgis_sql_where_clause MODE,WHERE;FORMAT,POSTGIS WHERE Clause" "" "GUI OPTIONAL TEXT_EDIT_SQL_CFG postgis_sql_statement MODE,SQL;FORMAT,POSTGIS SELECT Statement" "" " #! ATTR_INDEX_TYPES="BTree RTree Hash PrimaryKey" #! ATTR_NAME_INVALID_CHARS="" @@ -148,6 +153,7 @@ #! ENABLED="true" #! DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true" #! DATASET_TYPE="DATABASE" +#! FTTR_TYPE="LISTBOX_ENCODED" #! GENERATE_FME_BUILD_NUM="18592" #! COORDSYS="" #! FEATURE_TYPES="" @@ -206,7 +212,7 @@ #! WRITE_DEFS="true" #! DEFLINE_TEMPLATE="postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling CREATE_IF_MISSING fme_selection_method MATCH_COLUMNS fme_match_columns "" fme_where_builder_clause "" fme_update_geometry YES postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column geom postgis_srid "" postgis_vacuum_analyze no postgis_allow_serial_writing NO" #! DEFLINE_ATTRS="true" -#! EXPOSABLE_ATTRS="fme_color char(50) fme_sweep_angle float8 fme_rotation float8 fme_fill_color char(50) fme_dataset char(50) postgis_type char(50) fme_feature_type char(50) fme_basename char(50) fme_db_operation char(8) fme_secondary_axis float8 postgis_collection_id int4 fme_type char(50) fme_start_angle float8 fme_text_string char(50) fme_text_size float8 fme_geometry char(50) postgis_collection_part_id int4 fme_primary_axis float8" +#! EXPOSABLE_ATTRS="fme_basename char(50) fme_color char(50) fme_dataset char(50) fme_db_operation char(8) fme_feature_type char(50) fme_fill_color char(50) fme_geometry char(50) fme_primary_axis float8 fme_rotation float8 fme_secondary_axis float8 fme_start_angle float8 fme_sweep_angle float8 fme_text_size float8 fme_text_string char(50) fme_type char(50) postgis_collection_id int4 postgis_collection_part_id int4 postgis_type char(50)" #! DEFLINE_PARMS=""GUI OPTIONAL NAMEDGROUP fme_configuration_group fme_configuration_common_group%fme_spatial_group%fme_advanced_group%oracle_advanced_group Table" "" "GUI OPTIONAL NAMEDGROUP fme_configuration_common_group fme_feature_operation%fme_table_handling%oracle_model%fme_update_geometry%fme_selection_group%fme_table_creation_group General" "" "GUI ACTIVECHOICE_LOOKUP fme_feature_operation Insert,INSERT,fme_update_geometry,fme_selection_group%Update,UPDATE,++fme_table_handling+USE_EXISTING,++fme_selection_group+FME_DISCLOSURE_OPEN%Delete,DELETE,++fme_table_handling+USE_EXISTING,fme_update_geometry,++fme_selection_group+FME_DISCLOSURE_OPEN,fme_spatial_group,fme_advanced_group,oracle_sequenced_cols%<at>Value<openparen>fme_db_operation<closeparen>,MULTIPLE,++fme_table_handling+USE_EXISTING,++fme_selection_group+FME_DISCLOSURE_OPEN Feature Operation" INSERT "GUI ACTIVECHOICE_LOOKUP fme_table_handling Use<space>Existing,USE_EXISTING,fme_table_creation_group%Create<space>If<space>Needed,CREATE_IF_MISSING%Drop<space>and<space>Create,DROP_CREATE%Truncate<space>Existing,TRUNCATE_EXISTING,fme_table_creation_group Table Handling" CREATE_IF_MISSING "GUI WHOLE_LINE LOOKUP_CHOICE fme_update_geometry Yes,YES%No,NO Update Spatial Column(s)" YES "GUI OPTIONAL DISCLOSUREGROUP fme_selection_group fme_selection_method Row Selection" "" "GUI OPTIONAL WHOLE_LINE RADIOPARAMETERGROUP fme_selection_method fme_match_columns,MATCH_COLUMNS%fme_where_builder_clause,BUILDER Row Selection Method" MATCH_COLUMNS "GUI WHOLE_LINE ATTRLIST_COMMAS fme_match_columns \" \" Match Columns" "" "GUI WHOLE_LINE TEXT_EDIT_SQL_CFG_OR_ATTR fme_where_builder_clause MODE,WHERE WHERE Clause" "" "GUI OPTIONAL DISCLOSUREGROUP fme_table_creation_group postgis_create_with_oids%postgis_create_gist_index Table Creation Parameters" "" "GUI CHOICE postgis_create_with_oids YES%NO Create With OIDs" NO "GUI CHOICE postgis_create_gist_index YES%NO Create GiST Index" YES "GUI OPTIONAL NAMEDGROUP fme_spatial_group postgis_spatial_column_type%postgis_spatial_column%postgis_srid Spatial" "" "GUI LOOKUP_CHOICE postgis_spatial_column_type Geometry,geometry%Geography,geography Spatial Type" geometry "GUI OPTIONAL WHOLE_LINE TEXT postgis_spatial_column Spatial Column" geom "GUI OPTIONAL FLOAT postgis_srid Spatial Column SRID" "" "GUI OPTIONAL DISCLOSUREGROUP fme_advanced_group postgis_vacuum_analyze%postgis_allow_serial_writing Advanced" "" "GUI CHOICE postgis_vacuum_analyze YES%NO Vacuum Analyze Table" NO "GUI CHOICE postgis_allow_serial_writing YES%NO Allow Serial Column Writing" NO " #! ATTR_INDEX_TYPES="BTree RTree Hash PrimaryKey" #! ATTR_NAME_INVALID_CHARS=". %-#[]"()!?*'&+\/" @@ -214,6 +220,7 @@ #! ENABLED="true" #! DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true" #! DATASET_TYPE="DATABASE" +#! FTTR_TYPE="" #! GENERATE_FME_BUILD_NUM="18592" #! NAME="redadeg_db_postgis_dest" #! COORDSYS="EPSG:2154" @@ -268,7 +275,7 @@ #! WRITE_DEFS="true" #! DEFLINE_TEMPLATE="" #! DEFLINE_ATTRS="true" -#! EXPOSABLE_ATTRS="fme_dataset string fme_color string fme_rotation float fme_basename string fme_geometry string fme_primary_axis float fme_secondary_axis float fme_type string fme_text_size float fme_sweep_angle float fme_start_angle float fme_fill_color string fme_text_string string fme_feature_type string" +#! EXPOSABLE_ATTRS="fme_basename string fme_color string fme_dataset string fme_feature_type string fme_fill_color string fme_geometry string fme_primary_axis float fme_rotation float fme_secondary_axis float fme_start_angle float fme_sweep_angle float fme_text_size float fme_text_string string fme_type string" #! DEFLINE_PARMS="" #! ATTR_INDEX_TYPES="" #! ATTR_NAME_INVALID_CHARS="" @@ -276,6 +283,7 @@ #! ENABLED="true" #! DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true" #! DATASET_TYPE="FILE" +#! FTTR_TYPE="" #! GENERATE_FME_BUILD_NUM="18592" #! COORDSYS="EPSG:4326" #! FANOUT_EXPRESSION="" @@ -311,7 +319,7 @@ #! WRITE_DEFS="true" #! DEFLINE_TEMPLATE="" #! DEFLINE_ATTRS="true" -#! EXPOSABLE_ATTRS="fme_dataset string fme_color string fme_rotation float fme_basename string fme_geometry string fme_primary_axis float fme_secondary_axis float fme_type string fme_text_size float fme_sweep_angle float fme_start_angle float fme_fill_color string fme_text_string string fme_feature_type string" +#! EXPOSABLE_ATTRS="fme_basename string fme_color string fme_dataset string fme_feature_type string fme_fill_color string fme_geometry string fme_primary_axis float fme_rotation float fme_secondary_axis float fme_start_angle float fme_sweep_angle float fme_text_size float fme_text_string string fme_type string" #! DEFLINE_PARMS="" #! ATTR_INDEX_TYPES="" #! ATTR_NAME_INVALID_CHARS="" @@ -319,6 +327,7 @@ #! ENABLED="true" #! DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true" #! DATASET_TYPE="FILE" +#! FTTR_TYPE="" #! GENERATE_FME_BUILD_NUM="18592" #! COORDSYS="EPSG:4326" #! FANOUT_EXPRESSION="" @@ -354,7 +363,7 @@ #! WRITE_DEFS="true" #! DEFLINE_TEMPLATE="" #! DEFLINE_ATTRS="true" -#! EXPOSABLE_ATTRS="fme_dataset string fme_color string fme_rotation float fme_basename string fme_geometry string fme_primary_axis float fme_secondary_axis float fme_type string fme_text_size float fme_sweep_angle float fme_start_angle float fme_fill_color string fme_text_string string fme_feature_type string" +#! EXPOSABLE_ATTRS="fme_basename string fme_color string fme_dataset string fme_feature_type string fme_fill_color string fme_geometry string fme_primary_axis float fme_rotation float fme_secondary_axis float fme_start_angle float fme_sweep_angle float fme_text_size float fme_text_string string fme_type string" #! DEFLINE_PARMS="" #! ATTR_INDEX_TYPES="" #! ATTR_NAME_INVALID_CHARS="" @@ -362,6 +371,7 @@ #! ENABLED="true" #! DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true" #! DATASET_TYPE="FILE" +#! FTTR_TYPE="" #! GENERATE_FME_BUILD_NUM="18592" #! COORDSYS="EPSG:4326" #! FANOUT_EXPRESSION="" @@ -1679,7 +1689,7 @@ #! IDENTIFIER="3" #! FEAT_GEOMTYPE="All" #! POSITION="11579.014346490691 -3823.6417386748381" -#! BOUNDING_RECT="11579.014346490691 -3823.6417386748381 -1 -1" +#! BOUNDING_RECT="11579.014346490691 -3823.6417386748381 431 71" #! ORDER="500000000000104" #! COLLAPSED="false" #! KEYWORD="POSTGIS_2" @@ -1717,7 +1727,7 @@ #! IDENTIFIER="4" #! FEAT_GEOMTYPE="All" #! POSITION="-2773.0981387645916 68.079370433486019" -#! BOUNDING_RECT="-2773.0981387645916 68.079370433486019 -1 -1" +#! BOUNDING_RECT="-2773.0981387645916 68.079370433486019 431 71" #! ORDER="500000000000118" #! COLLAPSED="false" #! KEYWORD="POSTGIS_2" @@ -1756,7 +1766,7 @@ #! IDENTIFIER="5" #! FEAT_GEOMTYPE="All" #! POSITION="-1770.4114368680041 1127.5328274526012" -#! BOUNDING_RECT="-1770.4114368680041 1127.5328274526012 -1 -1" +#! BOUNDING_RECT="-1770.4114368680041 1127.5328274526012 745.50687098024002 71" #! ORDER="500000000000122" #! COLLAPSED="false" #! KEYWORD="POSTGIS_2" @@ -1797,7 +1807,7 @@ #! IDENTIFIER="6" #! FEAT_GEOMTYPE="<NO_GEOMETRY>" #! POSITION="-1770.4114368680041 663.16322989089576" -#! BOUNDING_RECT="-1770.4114368680041 663.16322989089576 -1 -1" +#! BOUNDING_RECT="-1770.4114368680041 663.16322989089576 658.66389728734521 71" #! ORDER="500000000000126" #! COLLAPSED="false" #! KEYWORD="GEOJSON_1" @@ -1819,7 +1829,7 @@ #! IDENTIFIER="7" #! FEAT_GEOMTYPE="<NO_GEOMETRY>" #! POSITION="-2773.0981387645916 -236.09629924528872" -#! BOUNDING_RECT="-2773.0981387645916 -236.09629924528872 -1 -1" +#! BOUNDING_RECT="-2773.0981387645916 -236.09629924528872 431 71" #! ORDER="500000000000128" #! COLLAPSED="false" #! KEYWORD="GEOJSON_2" @@ -1875,16 +1885,16 @@ #! IS_EDITABLE="false" #! IDENTIFIER="10" #! FEAT_GEOMTYPE="postgis_linestring" -#! POSITION="-8856.0386277570669 -68.4916124280237" -#! BOUNDING_RECT="-8856.0386277570669 -68.4916124280237 -1 -1" -#! ORDER="500000000000136" +#! POSITION="-9013.934943562328 -68.4916124280237" +#! BOUNDING_RECT="-9013.934943562328 -68.4916124280237 431 71" +#! ORDER="500000000000148" #! COLLAPSED="true" #! KEYWORD="POSTGIS_1" #! PARMS_EDITED="false" -#! ENABLED="true" +#! ENABLED="false" #! HIDDEN_USER_ATTRS="" #! READ_SELECT_ATTRS="true" -#! MERGE_FILTER="" +#! MERGE_FILTER="*" #! MERGE_FILTER_TYPE="FILTER_TYPE_GLOB" #! MERGE_FILTER_CASE_SENSITIVE="false" #! DYNAMIC_SCHEMA="false" @@ -1903,7 +1913,7 @@ #! #! #! -#! +#! #! #! #! #! -#! -#! -#! #! +#! +#! +#! #! #! #! #! #! #! #! #! #! #! +#! +#! #! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! #! #! @@ -2063,7 +2108,8 @@ #! ORDER="500000000000080" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19607843137254902" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="10" #! ANCHORED_NODE="46" #! /> @@ -2072,26 +2118,28 @@ #! COMMENT_VALUE="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'helvetica neue'; font-size:13pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">phase_3_trace_troncons: redadeg@pgrouting [POSTGIS]</p></body></html>" #! POSITION="-2797.0981387645916 223.58009044068604" #! TOP_LEFT="-2797.0981387645916 223.58009044068604" -#! BOTTOM_RIGHT="-1707.0981387645916 224.58009044068604" -#! BOUNDING_RECT="-2797.0981387645916 223.58009044068604 1090 -1" +#! BOTTOM_RIGHT="-1734.3536363195672 224.58009044068604" +#! BOUNDING_RECT="-2797.0981387645916 223.58009044068604 1062.7445024450244 -1" #! ORDER="500000000000121" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19607843137254902" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="10" #! ANCHORED_NODE="4" #! /> #! @@ -2105,7 +2153,8 @@ #! ORDER="500000000000125" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19607843137254902" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="10" #! ANCHORED_NODE="6" #! /> @@ -2114,12 +2163,13 @@ #! COMMENT_VALUE="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'helvetica neue'; font-size:13pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">phase_3_trace_troncons [GEOJSON]</p></body></html>" #! POSITION="-2797.0981387645916 -116.09629924528872" #! TOP_LEFT="-2797.0981387645916 -116.09629924528872" -#! BOTTOM_RIGHT="-1602.0981387645916 -115.09629924528872" -#! BOUNDING_RECT="-2797.0981387645916 -116.09629924528872 1195 -1" +#! BOTTOM_RIGHT="-2078.6539543227473 -115.09629924528872" +#! BOUNDING_RECT="-2797.0981387645916 -116.09629924528872 718.44418444184441 -1" #! ORDER="500000000000129" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19607843137254902" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="10" #! ANCHORED_NODE="7" #! /> @@ -2128,26 +2178,28 @@ #! COMMENT_VALUE="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'helvetica neue'; font-size:13pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">phase_3_pk_auto [GEOJSON]</p></body></html>" #! POSITION="11658.886904512798 -1958.1923684936598" #! TOP_LEFT="11658.886904512798 -1958.1923684936598" -#! BOTTOM_RIGHT="12611.886904512798 -1957.1923684936598" -#! BOUNDING_RECT="11658.886904512798 -1958.1923684936598 953 -1" +#! BOTTOM_RIGHT="12256.861134255096 -1957.1923684936598" +#! BOUNDING_RECT="11658.886904512798 -1958.1923684936598 597.97422974229744 -1" #! ORDER="500000000000131" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19607843137254902" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="0.49019607843137253,0.34901960784313724,0.27450980392156865,0.39215686274509803" #! SIZE_POLICY="10" #! ANCHORED_NODE="8" #! /> #! @@ -2161,7 +2213,8 @@ #! ORDER="500000000000138" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19607843137254902" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="10" #! ANCHORED_NODE="11" #! /> @@ -2172,79 +2225,85 @@ #! #! #! #! #! #! #! #! #! #! #! #! #! @@ -2254,15 +2313,16 @@ #! TYPE="SubDocumentTransformer" #! VERSION="1" #! POSITION="-4999.6998790591342 -56.096299245288719" -#! BOUNDING_RECT="-4999.6998790591342 -56.096299245288719 -1 -1" +#! BOUNDING_RECT="-4999.6998790591342 -56.096299245288719 431 71" #! ORDER="500000000000009" #! PARMS_EDITED="false" #! ENABLED="true" -#! LAST_PARM_EDIT="18592" +#! LAST_PARM_EDIT="21306" #! > #! #! #! +#! #! #! #! @@ -2271,6 +2331,7 @@ #! #! #! +#! #! #! #! @@ -2287,13 +2348,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="-3640.8618385926015 1388.3940482114676" -#! BOUNDING_RECT="-3640.8618385926015 1388.3940482114676 -1 -1" +#! BOUNDING_RECT="-3640.8618385926015 1388.3940482114676 431 71" #! ORDER="500000000000018" #! PARMS_EDITED="false" #! ENABLED="true" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -2302,7 +2364,7 @@ #! #! #! -#! +#! #! #! #! @@ -2315,13 +2377,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="-2717.8344282327489 318.92662262864786" -#! BOUNDING_RECT="-2717.8344282327489 318.92662262864786 -1 -1" +#! BOUNDING_RECT="-2717.8344282327489 318.92662262864786 431 71" #! ORDER="500000000000022" #! PARMS_EDITED="false" #! ENABLED="false" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -2330,7 +2393,7 @@ #! #! #! -#! +#! #! #! #! @@ -2343,13 +2406,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="-5073.4608708080605 -476.29453840159226" -#! BOUNDING_RECT="-5073.4608708080605 -476.29453840159226 -1 -1" +#! BOUNDING_RECT="-5073.4608708080605 -476.29453840159226 431 71" #! ORDER="500000000000023" #! PARMS_EDITED="false" #! ENABLED="true" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -2358,7 +2422,7 @@ #! #! #! -#! +#! #! #! #! @@ -2371,7 +2435,7 @@ #! TYPE="LengthCalculator" #! VERSION="0" #! POSITION="-4378.2119749029525 -401.04356894270472" -#! BOUNDING_RECT="-4378.2119749029525 -401.04356894270472 -1 -1" +#! BOUNDING_RECT="-4378.2119749029525 -401.04356894270472 431 71" #! ORDER="500000000000026" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2380,6 +2444,7 @@ #! #! #! +#! #! #! #! @@ -2389,6 +2454,7 @@ #! #! #! +#! #! #! #! @@ -2408,7 +2474,7 @@ #! TYPE="CoordinateConcatenator" #! VERSION="4" #! POSITION="-3850.3856466396696 -697.81681716475418" -#! BOUNDING_RECT="-3850.3856466396696 -697.81681716475418 -1 -1" +#! BOUNDING_RECT="-3850.3856466396696 -697.81681716475418 431 71" #! ORDER="500000000000037" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2417,6 +2483,7 @@ #! #! #! +#! #! #! #! @@ -2437,7 +2504,7 @@ #! TYPE="AttributeSplitter" #! VERSION="3" #! POSITION="-3332.195974742951 -697.81681716475418" -#! BOUNDING_RECT="-3332.195974742951 -697.81681716475418 -1 -1" +#! BOUNDING_RECT="-3332.195974742951 -697.81681716475418 431 71" #! ORDER="500000000000039" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2446,6 +2513,7 @@ #! #! #! +#! #! #! #! @@ -2468,7 +2536,7 @@ #! TYPE="ListElementCounter" #! VERSION="1" #! POSITION="-2773.0981387645916 -697.81681716475418" -#! BOUNDING_RECT="-2773.0981387645916 -697.81681716475418 -1 -1" +#! BOUNDING_RECT="-2773.0981387645916 -697.81681716475418 431 71" #! ORDER="500000000000040" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2477,6 +2545,7 @@ #! #! #! +#! #! #! #! @@ -2497,7 +2566,7 @@ #! TYPE="ListIndexer" #! VERSION="2" #! POSITION="-1336.4716186105015 -580.89879631787949" -#! BOUNDING_RECT="-1336.4716186105015 -580.89879631787949 -1 -1" +#! BOUNDING_RECT="-1336.4716186105015 -580.89879631787949 431 71" #! ORDER="500000000000041" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2506,6 +2575,7 @@ #! #! #! +#! #! #! #! @@ -2519,6 +2589,7 @@ #! #! #! +#! #! #! #! @@ -2534,6 +2605,7 @@ #! #! #! +#! #! #! #! @@ -2542,7 +2614,7 @@ #! TYPE="GeometryRemover" #! VERSION="0" #! POSITION="-2208.2693634407542 -697.81681716475418" -#! BOUNDING_RECT="-2208.2693634407542 -697.81681716475418 -1 -1" +#! BOUNDING_RECT="-2208.2693634407542 -697.81681716475418 431 71" #! ORDER="500000000000042" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2550,6 +2622,7 @@ #! > #! #! +#! #! #! #! @@ -2567,7 +2640,7 @@ #! TYPE="VertexCreator" #! VERSION="2" #! POSITION="2244.9743929630158 -580.89879631787949" -#! BOUNDING_RECT="2244.9743929630158 -580.89879631787949 -1 -1" +#! BOUNDING_RECT="2244.9743929630158 -580.89879631787949 431 71" #! ORDER="500000000000043" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2576,6 +2649,7 @@ #! #! #! +#! #! #! #! @@ -2590,6 +2664,7 @@ #! #! #! +#! #! #! #! @@ -2616,7 +2691,7 @@ #! TYPE="AttributeSplitter" #! VERSION="3" #! POSITION="-780.78157171003204 -587.89879631787949" -#! BOUNDING_RECT="-780.78157171003204 -587.89879631787949 -1 -1" +#! BOUNDING_RECT="-780.78157171003204 -587.89879631787949 431 71" #! ORDER="500000000000046" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2625,6 +2700,7 @@ #! #! #! +#! #! #! #! @@ -2650,7 +2726,7 @@ #! TYPE="ListIndexer" #! VERSION="2" #! POSITION="-223.24625135682709 -580.89879631787949" -#! BOUNDING_RECT="-223.24625135682709 -580.89879631787949 -1 -1" +#! BOUNDING_RECT="-223.24625135682709 -580.89879631787949 431 71" #! ORDER="500000000000047" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2659,6 +2735,7 @@ #! #! #! +#! #! #! #! @@ -2674,6 +2751,7 @@ #! #! #! +#! #! #! #! @@ -2691,6 +2769,7 @@ #! #! #! +#! #! #! #! @@ -2699,7 +2778,7 @@ #! TYPE="ListIndexer" #! VERSION="2" #! POSITION="297.9246158381784 -580.89879631787949" -#! BOUNDING_RECT="297.9246158381784 -580.89879631787949 -1 -1" +#! BOUNDING_RECT="297.9246158381784 -580.89879631787949 431 71" #! ORDER="500000000000047" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2708,6 +2787,7 @@ #! #! #! +#! #! #! #! @@ -2724,6 +2804,7 @@ #! #! #! +#! #! #! #! @@ -2742,6 +2823,7 @@ #! #! #! +#! #! #! #! @@ -2750,13 +2832,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="3398.3145788047341 -630.48202548350423" -#! BOUNDING_RECT="3398.3145788047341 -630.48202548350423 -1 -1" +#! BOUNDING_RECT="3398.3145788047341 -630.48202548350423 431 71" #! ORDER="500000000000048" #! PARMS_EDITED="false" #! ENABLED="false" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -2765,7 +2848,7 @@ #! #! #! -#! +#! #! #! #! @@ -2778,7 +2861,7 @@ #! TYPE="AttributeRemover" #! VERSION="1" #! POSITION="932.02041131970054 -587.89879631787949" -#! BOUNDING_RECT="932.02041131970054 -587.89879631787949 -1 -1" +#! BOUNDING_RECT="932.02041131970054 -587.89879631787949 431 71" #! ORDER="500000000000053" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2787,6 +2870,7 @@ #! #! #! +#! #! #! #! @@ -2809,7 +2893,7 @@ #! TYPE="ListIndexer" #! VERSION="2" #! POSITION="-1336.4716186105015 -1051.8902929578628" -#! BOUNDING_RECT="-1336.4716186105015 -1051.8902929578628 -1 -1" +#! BOUNDING_RECT="-1336.4716186105015 -1051.8902929578628 431 71" #! ORDER="500000000000041" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2818,6 +2902,7 @@ #! #! #! +#! #! #! #! @@ -2831,6 +2916,7 @@ #! #! #! +#! #! #! #! @@ -2846,6 +2932,7 @@ #! #! #! +#! #! #! #! @@ -2854,7 +2941,7 @@ #! TYPE="AttributeSplitter" #! VERSION="3" #! POSITION="-755.36417504403016 -1077.9420648741245" -#! BOUNDING_RECT="-755.36417504403016 -1077.9420648741245 -1 -1" +#! BOUNDING_RECT="-755.36417504403016 -1077.9420648741245 431 71" #! ORDER="500000000000046" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2863,6 +2950,7 @@ #! #! #! +#! #! #! #! @@ -2888,7 +2976,7 @@ #! TYPE="ListIndexer" #! VERSION="2" #! POSITION="-197.82885469082521 -1070.9420648741245" -#! BOUNDING_RECT="-197.82885469082521 -1070.9420648741245 -1 -1" +#! BOUNDING_RECT="-197.82885469082521 -1070.9420648741245 431 71" #! ORDER="500000000000047" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2897,6 +2985,7 @@ #! #! #! +#! #! #! #! @@ -2912,6 +3001,7 @@ #! #! #! +#! #! #! #! @@ -2929,6 +3019,7 @@ #! #! #! +#! #! #! #! @@ -2937,7 +3028,7 @@ #! TYPE="ListIndexer" #! VERSION="2" #! POSITION="323.34201250418027 -1070.9420648741245" -#! BOUNDING_RECT="323.34201250418027 -1070.9420648741245 -1 -1" +#! BOUNDING_RECT="323.34201250418027 -1070.9420648741245 431 71" #! ORDER="500000000000047" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2946,6 +3037,7 @@ #! #! #! +#! #! #! #! @@ -2962,6 +3054,7 @@ #! #! #! +#! #! #! #! @@ -2980,6 +3073,7 @@ #! #! #! +#! #! #! #! @@ -2988,7 +3082,7 @@ #! TYPE="AttributeRemover" #! VERSION="1" #! POSITION="932.02041131970054 -1130.9420648741245" -#! BOUNDING_RECT="932.02041131970054 -1130.9420648741245 -1 -1" +#! BOUNDING_RECT="932.02041131970054 -1130.9420648741245 431 71" #! ORDER="500000000000053" #! PARMS_EDITED="false" #! ENABLED="true" @@ -2997,6 +3091,7 @@ #! #! #! +#! #! #! #! @@ -3018,7 +3113,7 @@ #! TYPE="VertexCreator" #! VERSION="2" #! POSITION="2244.9743929630158 -1157.5787379531814" -#! BOUNDING_RECT="2244.9743929630158 -1157.5787379531814 -1 -1" +#! BOUNDING_RECT="2244.9743929630158 -1157.5787379531814 431 71" #! ORDER="500000000000043" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3027,6 +3122,7 @@ #! #! #! +#! #! #! #! @@ -3040,6 +3136,7 @@ #! #! #! +#! #! #! #! @@ -3065,13 +3162,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="3454.407636871626 -1207.1619671188071" -#! BOUNDING_RECT="3454.407636871626 -1207.1619671188071 -1 -1" +#! BOUNDING_RECT="3454.407636871626 -1207.1619671188071 431 71" #! ORDER="500000000000048" #! PARMS_EDITED="false" #! ENABLED="false" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -3080,7 +3178,7 @@ #! #! #! -#! +#! #! #! #! @@ -3093,7 +3191,7 @@ #! TYPE="DuplicateFilter" #! VERSION="5" #! POSITION="3919.1364930261689 -830.06712524442469" -#! BOUNDING_RECT="3919.1364930261689 -830.06712524442469 -1 -1" +#! BOUNDING_RECT="3919.1364930261689 -830.06712524442469 431 71" #! ORDER="500000000000057" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3103,37 +3201,41 @@ #! #! #! +#! #! #! #! #! #! #! -#! +#! #! -#! #! #! -#! +#! +#! #! #! #! #! +#! #! #! #! #! #! #! -#! +#! #! -#! #! #! -#! +#! +#! +#! #! #! #! +#! #! #! #! @@ -3142,13 +3244,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="10765.693920858965 -1817.849455052931" -#! BOUNDING_RECT="10765.693920858965 -1817.849455052931 -1 -1" +#! BOUNDING_RECT="10765.693920858965 -1817.849455052931 431 71" #! ORDER="500000000000058" #! PARMS_EDITED="false" #! ENABLED="false" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -3157,7 +3260,7 @@ #! #! #! -#! +#! #! #! #! @@ -3170,7 +3273,7 @@ #! TYPE="AttributeRemover" #! VERSION="1" #! POSITION="4603.8208854256563 -830.06712524442469" -#! BOUNDING_RECT="4603.8208854256563 -830.06712524442469 -1 -1" +#! BOUNDING_RECT="4603.8208854256563 -830.06712524442469 431 71" #! ORDER="500000000000062" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3179,6 +3282,7 @@ #! #! #! +#! #! #! #! @@ -3198,7 +3302,7 @@ #! TYPE="FeatureMerger" #! VERSION="17" #! POSITION="-5357.4572811485959 1007.4913627801187" -#! BOUNDING_RECT="-5357.4572811485959 1007.4913627801187 -1 -1" +#! BOUNDING_RECT="-5357.4572811485959 1007.4913627801187 431 71" #! ORDER="500000000000063" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3207,6 +3311,7 @@ #! #! #! +#! #! #! #! @@ -3214,6 +3319,7 @@ #! #! #! +#! #! #! #! @@ -3236,6 +3342,7 @@ #! #! #! +#! #! #! #! @@ -3270,7 +3377,7 @@ #! TYPE="Sorter" #! VERSION="2" #! POSITION="-4229.3809188200539 1007.4913627801187" -#! BOUNDING_RECT="-4229.3809188200539 1007.4913627801187 -1 -1" +#! BOUNDING_RECT="-4229.3809188200539 1007.4913627801187 431 71" #! ORDER="500000000000017" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3278,11 +3385,14 @@ #! > #! #! +#! #! #! #! #! #! +#! +#! #! #! #! @@ -3293,7 +3403,7 @@ #! TYPE="AttributeCreator" #! VERSION="9" #! POSITION="2826.538758938862 -580.89879631787949" -#! BOUNDING_RECT="2826.538758938862 -580.89879631787949 -1 -1" +#! BOUNDING_RECT="2826.538758938862 -580.89879631787949 431 71" #! ORDER="500000000000068" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3303,6 +3413,7 @@ #! #! #! +#! #! #! #! @@ -3330,7 +3441,7 @@ #! TYPE="AttributeCreator" #! VERSION="9" #! POSITION="2826.538758938862 -1157.5787379531814" -#! BOUNDING_RECT="2826.538758938862 -1157.5787379531814 -1 -1" +#! BOUNDING_RECT="2826.538758938862 -1157.5787379531814 431 71" #! ORDER="500000000000068" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3340,6 +3451,7 @@ #! #! #! +#! #! #! #! @@ -3366,13 +3478,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="4078.6867681051017 -1207.1619671188071" -#! BOUNDING_RECT="4078.6867681051017 -1207.1619671188071 -1 -1" +#! BOUNDING_RECT="4078.6867681051017 -1207.1619671188071 431 71" #! ORDER="500000000000069" #! PARMS_EDITED="false" #! ENABLED="false" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -3381,7 +3494,7 @@ #! #! #! -#! +#! #! #! #! @@ -3394,7 +3507,7 @@ #! TYPE="Sorter" #! VERSION="2" #! POSITION="9515.402780808774 -1875.9347289509717" -#! BOUNDING_RECT="9515.402780808774 -1875.9347289509717 -1 -1" +#! BOUNDING_RECT="9515.402780808774 -1875.9347289509717 431 71" #! ORDER="500000000000070" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3412,6 +3525,7 @@ #! #! #! +#! #! #! #! @@ -3443,6 +3557,8 @@ #! #! #! +#! +#! #! #! #! @@ -3453,7 +3569,7 @@ #! TYPE="Counter" #! VERSION="2" #! POSITION="10058.558737586678 -1875.9347289509717" -#! BOUNDING_RECT="10058.558737586678 -1875.9347289509717 -1 -1" +#! BOUNDING_RECT="10058.558737586678 -1875.9347289509717 431 71" #! ORDER="500000000000071" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3471,6 +3587,7 @@ #! #! #! +#! #! #! #! @@ -3515,6 +3632,7 @@ #! #! #! +#! #! #! #! @@ -3561,7 +3679,7 @@ #! TYPE="PointOnLineOverlayer" #! VERSION="7" #! POSITION="5105.7534565612104 -1691.5047740958678" -#! BOUNDING_RECT="5105.7534565612104 -1691.5047740958678 -1 -1" +#! BOUNDING_RECT="5105.7534565612104 -1691.5047740958678 431 71" #! ORDER="500000000000073" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3571,6 +3689,7 @@ #! #! #! +#! #! #! #! @@ -3596,6 +3715,7 @@ #! #! #! +#! #! #! #! @@ -3621,6 +3741,7 @@ #! #! #! +#! #! #! #! @@ -3670,7 +3791,7 @@ #! TYPE="PointOnAreaOverlayer" #! VERSION="8" #! POSITION="5708.9238639812074 -2353.6997676952897" -#! BOUNDING_RECT="5708.9238639812074 -2353.6997676952897 -1 -1" +#! BOUNDING_RECT="5708.9238639812074 -2353.6997676952897 431 71" #! ORDER="500000000000079" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3680,6 +3801,7 @@ #! #! #! +#! #! #! #! @@ -3719,6 +3841,7 @@ #! #! #! +#! #! #! #! @@ -3758,6 +3881,7 @@ #! #! #! +#! #! #! #! @@ -3822,7 +3946,7 @@ #! TYPE="AttributeRenamer" #! VERSION="4" #! POSITION="8939.1618488789936 -1875.9347289509717" -#! BOUNDING_RECT="8939.1618488789936 -1875.9347289509717 -1 -1" +#! BOUNDING_RECT="8939.1618488789936 -1875.9347289509717 431 71" #! ORDER="500000000000081" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3840,6 +3964,7 @@ #! #! #! +#! #! #! #! @@ -3881,7 +4006,7 @@ #! TYPE="BulkAttributeRenamer" #! VERSION="4" #! POSITION="4817.3615435068086 -2472.9019906453532" -#! BOUNDING_RECT="4817.3615435068086 -2472.9019906453532 -1 -1" +#! BOUNDING_RECT="4817.3615435068086 -2472.9019906453532 431 71" #! ORDER="500000000000082" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3920,7 +4045,7 @@ #! TYPE="BulkAttributeRenamer" #! VERSION="4" #! POSITION="4381.0364255386476 -1834.9159977494407" -#! BOUNDING_RECT="4381.0364255386476 -1834.9159977494407 -1 -1" +#! BOUNDING_RECT="4381.0364255386476 -1834.9159977494407 431 71" #! ORDER="500000000000082" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3958,7 +4083,7 @@ #! TYPE="CoordinateExtractor" #! VERSION="2" #! POSITION="7230.0218852433309 -1787.9941410513918" -#! BOUNDING_RECT="7230.0218852433309 -1787.9941410513918 -1 -1" +#! BOUNDING_RECT="7230.0218852433309 -1787.9941410513918 431 71" #! ORDER="500000000000084" #! PARMS_EDITED="false" #! ENABLED="true" @@ -3968,6 +4093,7 @@ #! #! #! +#! #! #! #! @@ -4023,7 +4149,7 @@ #! TYPE="AttributeReprojector" #! VERSION="0" #! POSITION="7230.0218852433309 -2506.8907325946275" -#! BOUNDING_RECT="7230.0218852433309 -2506.8907325946275 -1 -1" +#! BOUNDING_RECT="7230.0218852433309 -2506.8907325946275 431 71" #! ORDER="500000000000086" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4037,6 +4163,7 @@ #! #! #! +#! #! #! #! @@ -4085,7 +4212,7 @@ #! TYPE="AttributeCopier" #! VERSION="6" #! POSITION="7230.0218852433309 -2300.9607159042907" -#! BOUNDING_RECT="7230.0218852433309 -2300.9607159042907 -1 -1" +#! BOUNDING_RECT="7230.0218852433309 -2300.9607159042907 431 71" #! ORDER="500000000000087" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4099,6 +4226,7 @@ #! #! #! +#! #! #! #! @@ -4144,13 +4272,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="6595.164028488115 -2831.7458393469997" -#! BOUNDING_RECT="6595.164028488115 -2831.7458393469997 -1 -1" +#! BOUNDING_RECT="6595.164028488115 -2831.7458393469997 431 71" #! ORDER="500000000000088" #! PARMS_EDITED="false" #! ENABLED="false" #! LAST_PARM_EDIT="18578" #! > #! +#! #! #! #! @@ -4159,7 +4288,7 @@ #! #! #! -#! +#! #! #! #! @@ -4172,7 +4301,7 @@ #! TYPE="CoordinateSystemSetter" #! VERSION="0" #! POSITION="6659.7889347371756 -1787.9941410513918" -#! BOUNDING_RECT="6659.7889347371756 -1787.9941410513918 -1 -1" +#! BOUNDING_RECT="6659.7889347371756 -1787.9941410513918 431 71" #! ORDER="500000000000091" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4182,6 +4311,7 @@ #! #! #! +#! #! #! #! @@ -4227,7 +4357,7 @@ #! TYPE="AttributeRounder" #! VERSION="3" #! POSITION="7230.0218852433309 -1985.1018347219035" -#! BOUNDING_RECT="7230.0218852433309 -1985.1018347219035 -1 -1" +#! BOUNDING_RECT="7230.0218852433309 -1985.1018347219035 431 71" #! ORDER="500000000000092" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4237,6 +4367,7 @@ #! #! #! +#! #! #! #! @@ -4278,6 +4409,7 @@ #! #! #! +#! #! #! #! @@ -4328,7 +4460,7 @@ #! TYPE="AttributeRounder" #! VERSION="3" #! POSITION="8138.2796639391318 -1812.8096977006592" -#! BOUNDING_RECT="8138.2796639391318 -1812.8096977006592 -1 -1" +#! BOUNDING_RECT="8138.2796639391318 -1812.8096977006592 431 71" #! ORDER="500000000000094" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4342,6 +4474,7 @@ #! #! #! +#! #! #! #! @@ -4385,6 +4518,7 @@ #! #! #! +#! #! #! #! @@ -4433,7 +4567,7 @@ #! TYPE="AttributeRenamer" #! VERSION="4" #! POSITION="-7024.1243825039319 970.41234030450062" -#! BOUNDING_RECT="-7024.1243825039319 970.41234030450062 -1 -1" +#! BOUNDING_RECT="-7024.1243825039319 970.41234030450062 431 71" #! ORDER="500000000000099" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4455,7 +4589,7 @@ #! TYPE="LineBuilder" #! VERSION="6" #! POSITION="10788.075955367651 -3823.6417386748381" -#! BOUNDING_RECT="10788.075955367651 -3823.6417386748381 -1 -1" +#! BOUNDING_RECT="10788.075955367651 -3823.6417386748381 431 71" #! ORDER="500000000000102" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4473,6 +4607,7 @@ #! #! #! +#! #! #! #! @@ -4517,6 +4652,7 @@ #! #! #! +#! #! #! #! @@ -4561,6 +4697,7 @@ #! #! #! +#! #! #! #! @@ -4605,6 +4742,7 @@ #! #! #! +#! #! #! #! @@ -4654,13 +4792,14 @@ #! TYPE="Inspector" #! VERSION="5" #! POSITION="-8145.4281846988206 -425.98980963036615" -#! BOUNDING_RECT="-8145.4281846988206 -425.98980963036615 -1 -1" +#! BOUNDING_RECT="-8145.4281846988206 -425.98980963036615 431 71" #! ORDER="500000000000111" #! PARMS_EDITED="false" #! ENABLED="false" #! LAST_PARM_EDIT="18592" #! > #! +#! #! #! #! @@ -4669,7 +4808,7 @@ #! #! #! -#! +#! #! #! #! @@ -4682,7 +4821,7 @@ #! TYPE="Counter" #! VERSION="2" #! POSITION="-4378.2119749029525 -116.09629924528872" -#! BOUNDING_RECT="-4378.2119749029525 -116.09629924528872 -1 -1" +#! BOUNDING_RECT="-4378.2119749029525 -116.09629924528872 431 71" #! ORDER="500000000000071" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4691,6 +4830,7 @@ #! #! #! +#! #! #! #! @@ -4699,6 +4839,7 @@ #! #! #! +#! #! #! #! @@ -4717,41 +4858,19 @@ #! IDENTIFIER="62" #! TYPE="LineCombiner" #! VERSION="10" -#! POSITION="-7653.4032950446835 -68.4916124280237" -#! BOUNDING_RECT="-7653.4032950446835 -68.4916124280237 -1 -1" +#! POSITION="-7257.0214483166965 -71.4916124280237" +#! BOUNDING_RECT="-7257.0214483166965 -71.4916124280237 431 71" #! ORDER="500000000000016" #! PARMS_EDITED="true" #! ENABLED="true" -#! LAST_PARM_EDIT="18592" +#! LAST_PARM_EDIT="21306" #! > #! #! #! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! #! #! #! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! #! #! #! @@ -4767,7 +4886,7 @@ #! #! #! -#! +#! #! #! #! @@ -4778,30 +4897,11 @@ #! #! #! -#! -#! -#! -#! -#! -#! -#! -#! -#! #! #! +#! #! #! #! #! #! #! +#! +#! #! #! #! @@ -4826,15 +4929,16 @@ #! TYPE="FeatureMerger" #! VERSION="17" #! POSITION="-6335.8737833687501 -56.096299245288719" -#! BOUNDING_RECT="-6335.8737833687501 -56.096299245288719 -1 -1" +#! BOUNDING_RECT="-6335.8737833687501 -56.096299245288719 431 71" #! ORDER="500000000000063" -#! PARMS_EDITED="false" +#! PARMS_EDITED="true" #! ENABLED="true" #! LAST_PARM_EDIT="18578" #! > #! #! #! +#! #! #! #! @@ -4842,6 +4946,7 @@ #! #! #! +#! #! #! #! @@ -4860,6 +4965,7 @@ #! #! #! +#! #! #! #! @@ -4894,7 +5000,7 @@ #! TYPE="Sorter" #! VERSION="2" #! POSITION="-5779.6910091625241 -65.4916124280237" -#! BOUNDING_RECT="-5779.6910091625241 -65.4916124280237 -1 -1" +#! BOUNDING_RECT="-5779.6910091625241 -65.4916124280237 431 71" #! ORDER="500000000000017" #! PARMS_EDITED="true" #! ENABLED="true" @@ -4902,10 +5008,13 @@ #! > #! #! +#! #! #! #! #! +#! +#! #! #! #! @@ -4916,7 +5025,7 @@ #! TYPE="LengthCalculator" #! VERSION="0" #! POSITION="-4784.5877909970768 1007.4913627801187" -#! BOUNDING_RECT="-4784.5877909970768 1007.4913627801187 -1 -1" +#! BOUNDING_RECT="-4784.5877909970768 1007.4913627801187 431 71" #! ORDER="500000000000123" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4925,6 +5034,7 @@ #! #! #! +#! #! #! #! @@ -4933,6 +5043,7 @@ #! #! #! +#! #! #! #! @@ -4951,7 +5062,7 @@ #! TYPE="StringFormatter" #! VERSION="1" #! POSITION="-4784.5877909970768 741.65398075461258" -#! BOUNDING_RECT="-4784.5877909970768 741.65398075461258 -1 -1" +#! BOUNDING_RECT="-4784.5877909970768 741.65398075461258 431 71" #! ORDER="500000000000132" #! PARMS_EDITED="false" #! ENABLED="true" @@ -4960,6 +5071,7 @@ #! #! #! +#! #! #! #! @@ -4972,39 +5084,11 @@ #! #! #! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! -#! #! #! +#! +#! #! #! #! @@ -5034,7 +5120,7 @@ #! TYPE="Aggregator" #! VERSION="14" #! POSITION="-3463.4010528927802 1063.5646872212283" -#! BOUNDING_RECT="-3463.4010528927802 1063.5646872212283 -1 -1" +#! BOUNDING_RECT="-3463.4010528927802 1063.5646872212283 431 71" #! ORDER="500000000000141" #! PARMS_EDITED="true" #! ENABLED="true" @@ -5043,6 +5129,7 @@ #! #! #! +#! #! #! #! @@ -5083,7 +5170,7 @@ #! TYPE="ExpressionEvaluator" #! VERSION="3" #! POSITION="-2912.6462843860504 1063.5646872212283" -#! BOUNDING_RECT="-2912.6462843860504 1063.5646872212283 -1 -1" +#! BOUNDING_RECT="-2912.6462843860504 1063.5646872212283 431 71" #! ORDER="500000000000143" #! PARMS_EDITED="true" #! ENABLED="true" @@ -5092,6 +5179,7 @@ #! #! #! +#! #! #! #! @@ -5113,15 +5201,16 @@ #! TYPE="Generalizer" #! VERSION="4" #! POSITION="-2349.1081237880799 1095.5487573369146" -#! BOUNDING_RECT="-2349.1081237880799 1095.5487573369146 -1 -1" +#! BOUNDING_RECT="-2349.1081237880799 1095.5487573369146 431 71" #! ORDER="500000000000144" #! PARMS_EDITED="true" #! ENABLED="true" -#! LAST_PARM_EDIT="18592" +#! LAST_PARM_EDIT="21306" #! > #! #! #! +#! #! #! #! @@ -5130,6 +5219,7 @@ #! #! #! +#! #! #! #! @@ -5142,6 +5232,11 @@ #! #! #! +#! +#! +#! +#! +#! #! #! #! @@ -5161,15 +5256,16 @@ #! TYPE="Generalizer" #! VERSION="4" #! POSITION="-2349.1081237880799 694.74249305194837" -#! BOUNDING_RECT="-2349.1081237880799 694.74249305194837 -1 -1" +#! BOUNDING_RECT="-2349.1081237880799 694.74249305194837 431 71" #! ORDER="500000000000144" -#! PARMS_EDITED="false" +#! PARMS_EDITED="true" #! ENABLED="true" -#! LAST_PARM_EDIT="18592" +#! LAST_PARM_EDIT="21306" #! > #! #! #! +#! #! #! #! @@ -5178,6 +5274,7 @@ #! #! #! +#! #! #! #! @@ -5190,6 +5287,11 @@ #! #! #! +#! +#! +#! +#! +#! #! #! #! @@ -5209,7 +5311,7 @@ #! TYPE="ExpressionEvaluator" #! VERSION="3" #! POSITION="-2912.6462843860504 694.74249305194837" -#! BOUNDING_RECT="-2912.6462843860504 694.74249305194837 -1 -1" +#! BOUNDING_RECT="-2912.6462843860504 694.74249305194837 431 71" #! ORDER="500000000000143" #! PARMS_EDITED="false" #! ENABLED="true" @@ -5218,6 +5320,7 @@ #! #! #! +#! #! #! #! @@ -5234,6 +5337,132 @@ #! #! #! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! +#! #! #! #! #! +#! #! #! #! #! #! #! +#! +#! +#! +#! +#! +#! #! #! @@ -6122,7 +6701,8 @@ #! ORDER="30" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19215686274509805" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="8" #! ANCHORED_NODE="7" #! /> @@ -6136,7 +6716,8 @@ #! ORDER="34" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19215686274509805" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="8" #! ANCHORED_NODE="8" #! /> @@ -6150,7 +6731,8 @@ #! ORDER="35" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19215686274509805" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="8" #! ANCHORED_NODE="9" #! /> @@ -6164,7 +6746,8 @@ #! ORDER="37" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19215686274509805" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="8" #! ANCHORED_NODE="14" #! /> @@ -6178,7 +6761,8 @@ #! ORDER="38" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19215686274509805" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="8" #! ANCHORED_NODE="13" #! /> @@ -6192,7 +6776,8 @@ #! ORDER="39" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" -#! COLOUR="1,1,0.78431372549019607,0.19215686274509805" +#! CUSTOM_USER_COLOR="false" +#! COLOUR="1,1,0.95686274509803926,0.78431372549019607" #! SIZE_POLICY="8" #! ANCHORED_NODE="10" #! /> @@ -6203,13 +6788,14 @@ #! #! @@ -6258,9 +6844,12 @@ #! #! #! +#! #! #! #! +#! +#! #! #! #! @@ -6284,9 +6873,12 @@ #! #! #! +#! #! #! #! +#! +#! #! #! #! @@ -6448,7 +7040,7 @@ #! TYPE="AttributeCreator" #! VERSION="8" #! POSITION="4164.2700000000004 -1172.54" -#! BOUNDING_RECT="4164.2700000000004 -1172.54 -1 -1" +#! BOUNDING_RECT="4164.2700000000004 -1172.54 431 71" #! ORDER="500000000000000" #! PARMS_EDITED="false" #! ENABLED="true" @@ -6533,6 +7125,10 @@ #! ENABLED="true" #! EXECUTION_IDX="0" #! HIDDEN="false" +#! COLOUR="0,0,0,1" +#! PEN_WIDTH="4" +#! PEN_STYLE="1" +#! LINK_STYLE_NAME="<Default>" #! EXTRA_POINTS="" #! /> #! -FME_PYTHON_VERSION 27 +FME_PYTHON_VERSION 38 +ARCGIS_COMPATIBILITY ARCGIS_AUTO GUI IGNORE SourceDataset_POSTGRES_1,POSTGRES_IN_FME_CONNECTION_GROUP_POSTGRES_1,POSTGRES_IN_FME_GROUP_NAMED1_POSTGRES_1,POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1,POSTGRES_IN_ADVANCED_POSTGRES_1,POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1,POSTGRES_IN_BEGIN_SQL_POSTGRES_1,POSTGRES_IN_END_SQL_POSTGRES_1,POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1,SourceDataset_POSTGIS_1,POSTGIS_IN_FME_CONNECTION_GROUP_POSTGIS_1,POSTGIS_IN_FME_GROUP_NAMED1_POSTGIS_1,POSTGIS_IN_WHERE_CLAUSE_POSTGIS_1,POSTGIS_IN_USE_SEARCH_ENVELOPE_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MINX_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MINY_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MAXX_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MAXY_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_POSTGIS_1,POSTGIS_IN_CLIP_TO_ENVELOPE_POSTGIS_1,POSTGIS_IN_SEARCH_METHOD_POSTGIS_1,POSTGIS_IN_ADVANCED_POSTGIS_1,POSTGIS_IN_FEATURES_PER_FETCH_POSTGIS_1,POSTGIS_IN_BEGIN_SQL_POSTGIS_1,POSTGIS_IN_END_SQL_POSTGIS_1,POSTGIS_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGIS_1,DestDataset_POSTGIS_2,POSTGIS_OUT_FME_CONNECTION_GROUP_POSTGIS_2,POSTGIS_OUT_ADVANCED_POSTGIS_2,POSTGIS_OUT_BULK_COPY_POSTGIS_2,POSTGIS_OUT_START_TRANSACTION_POSTGIS_2,POSTGIS_OUT_TRANSACTION_INTERVAL_POSTGIS_2,POSTGIS_OUT_INSERT_TEXT_GEOMETRY_POSTGIS_2,POSTGIS_OUT_BEGIN_SQL_POSTGIS_2,POSTGIS_OUT_END_SQL_POSTGIS_2,DestDataset_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_1,GEOJSON_OUT_WRITER_CHARSET_GEOJSON_1,GEOJSON_OUT_WRITE_BOM_GEOJSON_1,GEOJSON_OUT_STRICT_SPEC_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_1,GEOJSON_OUT_PRETTY_PRINT_GEOJSON_1,GEOJSON_OUT_INDENT_SIZE_GEOJSON_1,GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_1,GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_1,GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_1,GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_1,DestDataset_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_2,GEOJSON_OUT_WRITER_CHARSET_GEOJSON_2,GEOJSON_OUT_WRITE_BOM_GEOJSON_2,GEOJSON_OUT_STRICT_SPEC_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_2,GEOJSON_OUT_PRETTY_PRINT_GEOJSON_2,GEOJSON_OUT_INDENT_SIZE_GEOJSON_2,GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_2,GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_2,GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_2,GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_2,DestDataset_GEOJSON_3,GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_3,GEOJSON_OUT_WRITER_CHARSET_GEOJSON_3,GEOJSON_OUT_WRITE_BOM_GEOJSON_3,GEOJSON_OUT_STRICT_SPEC_GEOJSON_3,GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_3,GEOJSON_OUT_PRETTY_PRINT_GEOJSON_3,GEOJSON_OUT_INDENT_SIZE_GEOJSON_3,GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_3,GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_3,GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_3,GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_3,GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_3,GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_3 -DEFAULT_MACRO DestDataset_GEOJSON data/phase_3_trace_secteurs.geojson -GUI FILENAME DestDataset_GEOJSON GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: -DEFAULT_MACRO DestDataset_GEOJSON_5 data/phase_3_trace_troncons.geojson -GUI FILENAME DestDataset_GEOJSON_5 GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: -DEFAULT_MACRO DestDataset_GEOJSON_4 data/phase_3_pk_auto.geojson -GUI FILENAME DestDataset_GEOJSON_4 GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: -DEFAULT_MACRO DestDataset_POSTGIS breizhpolenovoredadeg -GUI OPTIONAL NAMED_DB_CONNECTION_ENCODED DestDataset_POSTGIS FMT:POSTGIS%FAMILY:PostgreSQL Connection: -DEFAULT_MACRO SourceDataset_POSTGIS breizhpolenovoredadeg -GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGIS FMT:POSTGIS%FAMILY:PostgreSQL Connection: -DEFAULT_MACRO SourceDataset_POSTGRES breizhpolenovoredadeg -GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGRES FMT:POSTGRES%FAMILY:PostgreSQL Connection: +# ============================================================================ +DEFAULT_MACRO DestDataset_GEOJSON ../data/2021/phase_3_trace_secteurs.geojson +DEFAULT_MACRO DestDataset_GEOJSON_5 ../data/2021/phase_3_trace_troncons.geojson +DEFAULT_MACRO DestDataset_GEOJSON_4 ../data/2021/phase_3_pk_auto.geojson +DEFAULT_MACRO DestDataset_POSTGIS bed110redadeg_2021redadeg +DEFAULT_MACRO SourceDataset_POSTGIS bed110redadeg_2021redadeg +DEFAULT_MACRO SourceDataset_POSTGRES bed110redadeg_2021redadeg DEFAULT_MACRO postgres_sql_where_clause -GUI OPTIONAL TEXT_EDIT_SQL_CFG postgres_sql_where_clause MODE,WHERE;FORMAT,POSTGRES;FORMAT,POSTGRES;DATASET,breizhpolenovoatredadeg;CONNECTION_PARAMS,FEATURES_PER_FETCH10000SCHEMAS_FOR_TABLE_LISTINGpublicNAMED_CONNECTIONbreizhpolenovoatredadegREAD_TIME_WITH_TIMEZONEYes_MERGE_SCHEMASYESQUERY_FEATURE_TYPES_FOR_MERGE_FILTERSYes;START_TABLE,public.secteur secteur WHERE Clause: +DEFAULT_MACRO secteur_id 30 +DEFAULT_MACRO FME_USER_PARAM_PRIVATE_GRP DEFAULT_MACRO START 13 -GUI IGNORE OPTIONAL INT START Count Start: +# ============================================================================ +GUI FILENAME DestDataset_GEOJSON GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: +GUI FILENAME DestDataset_GEOJSON_5 GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: +GUI FILENAME DestDataset_GEOJSON_4 GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: +GUI OPTIONAL NAMED_DB_CONNECTION_ENCODED DestDataset_POSTGIS FMT:POSTGIS%FAMILY:PostgreSQL Connection: +GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGIS FMT:POSTGIS%FAMILY:PostgreSQL Connection: +GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGRES FMT:POSTGRES%FAMILY:PostgreSQL Connection: +GUI OPTIONAL TEXT_EDIT_SQL_CFG postgres_sql_where_clause MODE,WHERE;FORMAT,POSTGRES;FORMAT,POSTGRES;DATASET,breizhpolenovoatredadeg;CONNECTION_PARAMS,FEATURES_PER_FETCH10000SCHEMAS_FOR_TABLE_LISTINGpublicNAMED_CONNECTIONbreizhpolenovoatredadegREAD_TIME_WITH_TIMEZONEYes_MERGE_SCHEMASYESQUERY_FEATURE_TYPES_FOR_MERGE_FILTERSYes;START_TABLE,public.secteur secteur WHERE Clause: +GUI RANGE_SLIDER secteur_id "RANGE:[,]" secteur_id: +# ============================================================================ +USER_PARAMETERS eyJwYXJhbWV0ZXJzIjpbeyJhY2Nlc3NNb2RlIjoid3JpdGUiLCJkZWZhdWx0VmFsdWUiOiIuLi9kYXRhLzIwMjEvcGhhc2VfM190cmFjZV9zZWN0ZXVycy5nZW9qc29uIiwiZmlsdGVycyI6W3siZGVzY3JpcHRpb24iOiJHZW9KU09OIEZpbGVzIiwiZmlsdGVyIjpbIiouanNvbiJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsIEZpbGVzIiwiZmlsdGVyIjpbIioiXX1dLCJpdGVtc1RvU2VsZWN0IjoiZmlsZXMiLCJuYW1lIjoiRGVzdERhdGFzZXRfR0VPSlNPTiIsInByb21wdCI6IkRlc3RpbmF0aW9uIEdlb0pTT04gRmlsZToiLCJyZXF1aXJlZCI6dHJ1ZSwic2VsZWN0TXVsdGlwbGUiOmZhbHNlLCJ0eXBlIjoiZmlsZSIsInZhbGlkYXRlRXhpc3RlbmNlIjpmYWxzZSwidmFsdWVUeXBlIjoic3RyaW5nIn0seyJhY2Nlc3NNb2RlIjoid3JpdGUiLCJkZWZhdWx0VmFsdWUiOiIuLi9kYXRhLzIwMjEvcGhhc2VfM190cmFjZV90cm9uY29ucy5nZW9qc29uIiwiZmlsdGVycyI6W3siZGVzY3JpcHRpb24iOiJHZW9KU09OIEZpbGVzIiwiZmlsdGVyIjpbIiouanNvbiJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsIEZpbGVzIiwiZmlsdGVyIjpbIioiXX1dLCJpdGVtc1RvU2VsZWN0IjoiZmlsZXMiLCJuYW1lIjoiRGVzdERhdGFzZXRfR0VPSlNPTl81IiwicHJvbXB0IjoiRGVzdGluYXRpb24gR2VvSlNPTiBGaWxlOiIsInJlcXVpcmVkIjp0cnVlLCJzZWxlY3RNdWx0aXBsZSI6ZmFsc2UsInR5cGUiOiJmaWxlIiwidmFsaWRhdGVFeGlzdGVuY2UiOmZhbHNlLCJ2YWx1ZVR5cGUiOiJzdHJpbmcifSx7ImFjY2Vzc01vZGUiOiJ3cml0ZSIsImRlZmF1bHRWYWx1ZSI6Ii4uL2RhdGEvMjAyMS9waGFzZV8zX3BrX2F1dG8uZ2VvanNvbiIsImZpbHRlcnMiOlt7ImRlc2NyaXB0aW9uIjoiR2VvSlNPTiBGaWxlcyIsImZpbHRlciI6WyIqLmpzb24iXX0seyJkZXNjcmlwdGlvbiI6IkFsbCBGaWxlcyIsImZpbHRlciI6WyIqIl19XSwiaXRlbXNUb1NlbGVjdCI6ImZpbGVzIiwibmFtZSI6IkRlc3REYXRhc2V0X0dFT0pTT05fNCIsInByb21wdCI6IkRlc3RpbmF0aW9uIEdlb0pTT04gRmlsZToiLCJyZXF1aXJlZCI6dHJ1ZSwic2VsZWN0TXVsdGlwbGUiOmZhbHNlLCJ0eXBlIjoiZmlsZSIsInZhbGlkYXRlRXhpc3RlbmNlIjpmYWxzZSwidmFsdWVUeXBlIjoic3RyaW5nIn0seyJjaG9pY2VTZXR0aW5ncyI6eyJjaG9pY2VTZXQiOiJkYkNvbm5lY3Rpb25zIiwiZm9ybWF0IjoiUE9TVEdJUyJ9LCJkZWZhdWx0VmFsdWUiOiJiZWQxMTA8YXQ+cmVkYWRlZ18yMDIxPGF0PnJlZGFkZWciLCJuYW1lIjoiRGVzdERhdGFzZXRfUE9TVEdJUyIsInByb21wdCI6IkNvbm5lY3Rpb246IiwicmVxdWlyZWQiOmZhbHNlLCJ0eXBlIjoiZHJvcGRvd24iLCJ2YWx1ZVR5cGUiOiJzdHJpbmdFbmNvZGVkIn0seyJjaG9pY2VTZXR0aW5ncyI6eyJjaG9pY2VTZXQiOiJkYkNvbm5lY3Rpb25zIiwiZm9ybWF0IjoiUE9TVEdJUyJ9LCJkZWZhdWx0VmFsdWUiOiJiZWQxMTA8YXQ+cmVkYWRlZ18yMDIxPGF0PnJlZGFkZWciLCJuYW1lIjoiU291cmNlRGF0YXNldF9QT1NUR0lTIiwicHJvbXB0IjoiQ29ubmVjdGlvbjoiLCJyZXF1aXJlZCI6dHJ1ZSwidHlwZSI6ImRyb3Bkb3duIiwidmFsdWVUeXBlIjoic3RyaW5nRW5jb2RlZCJ9LHsiY2hvaWNlU2V0dGluZ3MiOnsiY2hvaWNlU2V0IjoiZGJDb25uZWN0aW9ucyIsImZvcm1hdCI6IlBPU1RHUkVTIn0sImRlZmF1bHRWYWx1ZSI6ImJlZDExMDxhdD5yZWRhZGVnXzIwMjE8YXQ+cmVkYWRlZyIsIm5hbWUiOiJTb3VyY2VEYXRhc2V0X1BPU1RHUkVTIiwicHJvbXB0IjoiQ29ubmVjdGlvbjoiLCJyZXF1aXJlZCI6dHJ1ZSwidHlwZSI6ImRyb3Bkb3duIiwidmFsdWVUeXBlIjoic3RyaW5nRW5jb2RlZCJ9LHsiZWRpdG9yIjoic3FsIiwibmFtZSI6InBvc3RncmVzX3NxbF93aGVyZV9jbGF1c2UiLCJwcm9tcHQiOiJzZWN0ZXVyIFdIRVJFIENsYXVzZToiLCJyZXF1aXJlZCI6ZmFsc2UsInNxbFNldHRpbmdzIjp7ImNvbm5lY3Rpb25QYXJhbXMiOnsiRkVBVFVSRVNfUEVSX0ZFVENIIjoiMTAwMDAiLCJOQU1FRF9DT05ORUNUSU9OIjoiYnJlaXpocG9sZW5vdm88YXQ+cmVkYWRlZyIsIlFVRVJZX0ZFQVRVUkVfVFlQRVNfRk9SX01FUkdFX0ZJTFRFUlMiOiJZZXMiLCJSRUFEX1RJTUVfV0lUSF9USU1FWk9ORSI6IlllcyIsIlNDSEVNQVNfRk9SX1RBQkxFX0xJU1RJTkciOiJwdWJsaWMiLCJfTUVSR0VfU0NIRU1BUyI6IllFUyJ9LCJkYXRhc2V0IjoiYnJlaXpocG9sZW5vdm88YXQ+cmVkYWRlZyIsImZvcm1hdCI6IlBPU1RHUkVTIiwibW9kZSI6IndoZXJlIiwic3RhcnRUYWJsZUV4cGFuZGVkIjoicHVibGljLnNlY3RldXIifSwidHlwZSI6InRleHQiLCJ2YWx1ZVR5cGUiOiJzdHJpbmdFbmNvZGVkIn0seyJkZWZhdWx0VmFsdWUiOiIxMCIsIm5hbWUiOiJzZWN0ZXVyX2lkIiwicHJvbXB0Ijoic2VjdGV1cl9pZDoiLCJyZXF1aXJlZCI6dHJ1ZSwic2hvd1NsaWRlciI6ZmFsc2UsInR5cGUiOiJudW1iZXIiLCJ2YWx1ZVR5cGUiOiJzdHJpbmcifSx7ImhpZGRlbiI6dHJ1ZSwibmFtZSI6IkZNRV9VU0VSX1BBUkFNX1BSSVZBVEVfR1JQIiwicGFyYW1ldGVycyI6W3siZGVmYXVsdFZhbHVlIjoiMTMiLCJoaWRkZW4iOnRydWUsIm11bHRpcGxlT2YiOjEsIm5hbWUiOiJTVEFSVCIsInByb21wdCI6IkNvdW50IFN0YXJ0OiIsInJlcXVpcmVkIjpmYWxzZSwic3VwcG9ydGVkVmFsdWVUeXBlcyI6WyJleHByZXNzaW9uIiwiZ2xvYmFsUGFyYW1ldGVyIl0sInR5cGUiOiJudW1iZXIiLCJ2YWx1ZVR5cGUiOiJzdHJpbmcifV0sInByb21wdCI6IlByaXZhdGUgUGFyYW1ldGVycyIsInJlcXVpcmVkIjpmYWxzZSwidHlwZSI6Imdyb3VwIiwidmFsdWVUeXBlIjoic3RyaW5nIn1dfQ== +# ============================================================================ INCLUDE [ if {{$(DestDataset_GEOJSON)} == {}} { puts_real {Parameter 'DestDataset_GEOJSON' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(DestDataset_GEOJSON_5)} == {}} { puts_real {Parameter 'DestDataset_GEOJSON_5' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(DestDataset_GEOJSON_4)} == {}} { puts_real {Parameter 'DestDataset_GEOJSON_4' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_POSTGIS)} == {}} { puts_real {Parameter 'SourceDataset_POSTGIS' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_POSTGRES)} == {}} { puts_real {Parameter 'SourceDataset_POSTGRES' must be given a value.}; exit 1; }; ] +INCLUDE [ if {{$(secteur_id)} == {}} { puts_real {Parameter 'secteur_id' must be given a value.}; exit 1; }; ] #! START_HEADER #! START_WB_HEADER READER_TYPE MULTI_READER @@ -7157,6 +7822,7 @@ FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 +FME_NAMES_ENCODING UTF-8 DEFAULT_MACRO DATASET_KEYWORD_POSTGRES_1 POSTGRES_1 DEFAULT_MACRO DATASET_KEYWORD_POSTGIS_1 POSTGIS_1 DEFAULT_MACRO DATASET_KEYWORD_POSTGIS_2 POSTGIS_2 @@ -7191,42 +7857,77 @@ MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES # ------------------------------------------------------------------------- -FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE POSTGRES POSTGRES_1::public.secteur multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.secteur ALIAS_GEOMETRY ROUTE POSTGIS POSTGIS_1::public.phase_2_trace_pgr multi_reader_keyword,$(DATASET_KEYWORD_POSTGIS_1) TO FME_GENERIC ::public.phase_2_trace_pgr ALIAS_GEOMETRY ROUTE POSTGIS POSTGIS_1::public.osm_municipalities multi_reader_keyword,$(DATASET_KEYWORD_POSTGIS_1) TO FME_GENERIC ::public.osm_municipalities ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * +FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE POSTGRES POSTGRES_1::public.secteur multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.secteur ALIAS_GEOMETRY ROUTE POSTGIS POSTGIS_1::public.osm_municipalities multi_reader_keyword,$(DATASET_KEYWORD_POSTGIS_1) TO FME_GENERIC ::public.osm_municipalities ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * POSTGRES_1_MERGE_DEF POSTGRES_1::public.secteur EXACT public.secteur DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,$(postgres_sql_where_clause$encode),postgres_sql_statement,,id,int4,nom_br,text,nom_fr,text,objectif_km,int4,km_redadeg,int4 -POSTGIS_1_MERGE_DEF POSTGIS_1::public.phase_2_trace_pgr EXACT public.phase_2_trace_pgr DEFLINE postgis_sql_where_clause,,postgis_sql_statement,,secteur_id,int4,path_seq,int8,node,int8,cost,float8,agg_cost,float8,osm_id,int8,highway,text,type,text,oneway,text,ref,text,name_fr,text,name_br,text POSTGIS_1_MERGE_DEF POSTGIS_1::public.osm_municipalities EXACT public.osm_municipalities DEFLINE postgis_sql_where_clause,,postgis_sql_statement,,id,serialPrimaryKey,osm_id,int8,type,text,admin_level,text,name,text,name_fr,text,name_br,text,source_name_br,text,admincode,textBTree,postcode,text,wikidata,text,surf_ha,numeric1000500,x,numeric1000500,y,numeric1000500 +POSTGIS_1_MERGE_DEF POSTGIS_1::public.phase_2_trace_pgr EXACT public.phase_2_trace_pgr # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME "public.phase_2_trace_pgr (POSTGIS_1) Splitter" INPUT FEATURE_TYPE public.phase_2_trace_pgr OUTPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_0_lZ0XqLzCYmQ= OUTPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_1_dRsdNGVAD0c= +FACTORY_DEF * TeeFactory FACTORY_NAME "public.secteur_POSTGRES_1 Splitter" INPUT FEATURE_TYPE public.secteur OUTPUT FEATURE_TYPE public.secteur_POSTGRES_1 # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME "public.osm_municipalities (POSTGIS_1) Splitter" INPUT FEATURE_TYPE public.osm_municipalities OUTPUT FEATURE_TYPE public.osm_municipalities_POSTGIS_1 +FACTORY_DEF * TeeFactory FACTORY_NAME "public.phase_2_trace_pgr_POSTGIS_1 Splitter" INPUT FEATURE_TYPE public.phase_2_trace_pgr OUTPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_0_lZ0XqLzCYmQ= OUTPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_1_dRsdNGVAD0c= # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME "public.secteur (POSTGRES_1) Splitter" INPUT FEATURE_TYPE public.secteur OUTPUT FEATURE_TYPE public.secteur_POSTGRES_1 +FACTORY_DEF * TeeFactory FACTORY_NAME "public.osm_municipalities_POSTGIS_1 Splitter" INPUT FEATURE_TYPE public.osm_municipalities OUTPUT FEATURE_TYPE public.osm_municipalities_POSTGIS_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- -FACTORY_DEF {*} TeeFactory FACTORY_NAME BulkAttributeRenamer INPUT FEATURE_TYPE public.osm_municipalities_POSTGIS_1 OUTPUT { FEATURE_TYPE BulkAttributeRenamer_OUTPUT @RenameAttributes(PATTERN_REPLACE, ADDPREFIX, , "", "municipality_", "", "", "-_", "RENAME", "NONFME") } +MACRO SQLCreator_DIRECTIVES NAMED_CONNECTION bed110redadeg_2021redadeg +FACTORY_DEF {*} CreationFactory FACTORY_NAME { SQLCreator_Creator } OUTPUT { FEATURE_TYPE _____CREATED______ } +FACTORY_DEF {*} QueryFactory FACTORY_NAME { SQLCreator } INPUT FEATURE_TYPE _____CREATED______ QUERY_SQL { SELECTvertexsecteur_iddp.geomFROMSELECTrow_numberoverasvertexsecteur_idpath_seqST_DumpPointsthe_geomASdpFROMphase_2_trace_pgrWHEREsecteur_id=$(secteur_id$encode)ORDERBYsecteur_idpath_seqass } COMBINE_ATTRIBUTES RESULT_ONLY COMBINE_GEOMETRY RESULT_ONLY READER_TYPE { POSTGIS } READER_DATASET { "bed110redadeg_2021redadeg" } READER_PARAMS { $(SQLCreator_DIRECTIVES) } READER_COORDSYS { "EPSG:2154" } QUERYFCT_PROPAGATE_IDS_ON_SQL_EXECUTE YES CONTINUE_ON_READER_ERROR YES OUTPUT { RESULT FEATURE_TYPE SQLCreator_RESULT @SupplyAttributes(fme_feature_type,SQLCreator) } OUTPUT { READER_ERROR FEATURE_TYPE SQLCreator_ } +FACTORY_DEF * BranchingFactory FACTORY_NAME "SQLCreator_RESULT Brancher -1 183" INPUT FEATURE_TYPE SQLCreator_RESULT TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE * +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME SQLCreator_ INPUT FEATURE_TYPE SQLCreator_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, SQLCreatoroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeRenamer_2 INPUT FEATURE_TYPE public.secteur_POSTGRES_1 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "id" "secteur_id" "RENAME_SET_DEFAULT" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT +FACTORY_DEF * TeeFactory FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * +# ------------------------------------------------------------------------- +FACTORY_DEF {*} ConnectionFactory FACTORY_NAME { LineBuilder_2 } INPUT FEATURE_TYPE SQLCreator_RESULT GROUP_BY { secteur_id } FLUSH_WHEN_GROUPS_CHANGE { No } ACCUM_INPUT_ATTRS { One } LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE { } REMOVE_DUPLICATES { NO } OUTPUT { LINE FEATURE_TYPE LineBuilder_2_LINE } OUTPUT { BAD_INPUT FEATURE_TYPE LineBuilder_2_ } +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME LineBuilder_2_ INPUT FEATURE_TYPE LineBuilder_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, LineBuilder_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +FACTORY_DEF {*} TeeFactory FACTORY_NAME { BulkAttributeRenamer } INPUT FEATURE_TYPE public.osm_municipalities_POSTGIS_1 OUTPUT { FEATURE_TYPE BulkAttributeRenamer_OUTPUT @RenameAttributes(PATTERN_REPLACE, ADDPREFIX, , "", "municipality_", "", "", "-_", "RENAME", "NONFME") } +# ------------------------------------------------------------------------- +FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME { AttributeRenamer_2 } INPUT FEATURE_TYPE public.secteur_POSTGRES_1 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "id" "secteur_id" "RENAME_SET_DEFAULT" "" } OUTPUT { OUTPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT } FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeRenamer_2 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT OUTPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT_0_XZPnkgk0+40= OUTPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT_1_/5K/VQuHWx4= # ------------------------------------------------------------------------- -FACTORY_DEF {*} TeeFactory FACTORY_NAME BulkAttributeRenamer_2 INPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_1_dRsdNGVAD0c= OUTPUT { FEATURE_TYPE BulkAttributeRenamer_2_OUTPUT @RenameAttributes(PATTERN_REPLACE, ADDPREFIX, , "", "way_", "", "", "-_", "RENAME", "NONFME") } +FACTORY_DEF {*} SortFactory FACTORY_NAME { Sorter_5 } INPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_0_lZ0XqLzCYmQ= FLUSH_WHEN_GROUPS_CHANGE { No } SORT_BY { path_seq NUMERIC ASCENDING } OUTPUT { SORTED FEATURE_TYPE Sorter_5_SORTED } # ------------------------------------------------------------------------- -FACTORY_DEF * SortFactory FACTORY_NAME Sorter_5 INPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_0_lZ0XqLzCYmQ= SORT_BY path_seq NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_5_SORTED +FACTORY_DEF {*} AttributeKeeperFactory FACTORY_NAME { AttributeKeeper_2 } INPUT FEATURE_TYPE Sorter_5_SORTED KEEP_ATTRS { secteur_id } KEEP_LISTS { } KEEP_FME_ATTRIBUTES Yes BUILD_FEATURE_TABLES { NO } OUTPUT_ON_ATTRIBUTE_CHANGE { } OUTPUT { OUTPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT } # ------------------------------------------------------------------------- -FACTORY_DEF {*} ArcFactory FACTORY_NAME LineCombiner INPUT FEATURE_TYPE Sorter_5_SORTED END_NODED PRESERVE_ORIENTATION no DEAGGREGATE_GEOMETRY Deaggregate CLOSE_LOOPS yes ACCUMULATE_ATTRIBUTES ONE LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE DIRECTION_NAME "" LINES_AS_SEGMENTS Yes CONSIDER_NODE_ELEVATION NO CONNECT_Z_MODE IGNORE_Z BREAK_CONNECTION_ATTRIBUTES { secteur_id } BREAK_CONNECTION_ACROSS_SETS No OUTPUT LINE FEATURE_TYPE LineCombiner_LINE OUTPUT REJECTED FEATURE_TYPE LineCombiner_ +FACTORY_DEF {*} ArcFactory FACTORY_NAME LineCombiner INPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT END_NODED PRESERVE_ORIENTATION no DEAGGREGATE_GEOMETRY Deaggregate CLOSE_LOOPS yes ACCUMULATE_ATTRIBUTES ONE LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE DIRECTION_NAME "" LINES_AS_SEGMENTS No CONSIDER_NODE_ELEVATION NO CONNECT_Z_MODE IGNORE_Z BREAK_CONNECTION_ATTRIBUTES { secteur_id } BREAK_CONNECTION_ACROSS_SETS No OUTPUT LINE FEATURE_TYPE LineCombiner_LINE OUTPUT REJECTED FEATURE_TYPE LineCombiner_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME LineCombiner_ INPUT FEATURE_TYPE LineCombiner_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, LineCombineroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -INCLUDE [ set macroLine "MACRO AttributeKeeper_2_46c800b2_bd82_43bb_b150_f6578c8788dd6_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_2 INPUT FEATURE_TYPE LineCombiner_LINE OUTPUT { FEATURE_TYPE AttributeKeeper_2_OUTPUT @KeepAttributes(fme_encoded,objectif_km,km_redadeg,secteur_id,fme_pcre_match,"^fme_$(AttributeKeeper_2_46c800b2_bd82_43bb_b150_f6578c8788dd6_LIST_EXP)") } -FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeKeeper_2 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT OUTPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT_0_muAz4GqwTdk= OUTPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT_1_eKOY+pR0mH0= +INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] +FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger_2 INPUT REFERENCER FEATURE_TYPE LineCombiner_LINE INPUT REFERENCER FEATURE_TYPE LineBuilder_2_LINE INPUT REFERENCEE FEATURE_TYPE AttributeRenamer_2_OUTPUT_1_/5K/VQuHWx4= REFERENCE_INFO $(FeatureMerger_2_REFERENCE_INFO) REFERENCE_TABLE @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger_2) @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger_2) AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_2_MERGED OUTPUT REJECTED FEATURE_TYPE FeatureMerger_2_ +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME FeatureMerger_2_ INPUT FEATURE_TYPE FeatureMerger_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, FeatureMerger_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +FACTORY_DEF {*} SortFactory FACTORY_NAME { Sorter_4 } INPUT FEATURE_TYPE FeatureMerger_2_MERGED FLUSH_WHEN_GROUPS_CHANGE { No } SORT_BY { secteur_id NUMERIC ASCENDING } OUTPUT { SORTED FEATURE_TYPE Sorter_4_SORTED } +FACTORY_DEF * TeeFactory FACTORY_NAME "Sorter_4 SORTED Splitter" INPUT FEATURE_TYPE Sorter_4_SORTED OUTPUT FEATURE_TYPE Sorter_4_SORTED_0_bGs2+JFzNGU= OUTPUT FEATURE_TYPE Sorter_4_SORTED_1_xZN7XGJzQYs= OUTPUT FEATURE_TYPE Sorter_4_SORTED_2_ymgKSdsXa+o= +# ------------------------------------------------------------------------- +INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] +FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger INPUT REFERENCER FEATURE_TYPE Sorter_4_SORTED_0_bGs2+JFzNGU= INPUT REFERENCEE FEATURE_TYPE AttributeRenamer_2_OUTPUT_0_XZPnkgk0+40= REFERENCE_INFO $(FeatureMerger_REFERENCE_INFO) REFERENCE_TABLE @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger) @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger) AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_MERGED OUTPUT REJECTED FEATURE_TYPE FeatureMerger_ +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME FeatureMerger_ INPUT FEATURE_TYPE FeatureMerger_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, FeatureMergeroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_2_LengthCalculatorInput INPUT FEATURE_TYPE FeatureMerger_MERGED OUTPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ +FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_2_LengthCalculator INPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "km_reels" @Length(REJECTABLE,2,"1") +FACTORY_DEF * TestFactory FACTORY_NAME LengthCalculator_2_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT PASSED FEATURE_TYPE LengthCalculator_2_ @RemoveAttributes(___fme_rejection_code___) OUTPUT FAILED FEATURE_TYPE LengthCalculator_2_OUTPUT @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_2_ INPUT FEATURE_TYPE LengthCalculator_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, LengthCalculator_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +Tcl2 regsub {^[^a-zA-Z]*([a-zA-Z]).*} {.2f} {\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 {km_reels} {,}]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set length [string length $attrVal]; if {$length > 0} { FME_SetAttribute $attr [format %.2f [{StringFormatter_getAttribute} $attr]]; }; }; } +FACTORY_DEF {*} TeeFactory FACTORY_NAME { StringFormatter } INPUT FEATURE_TYPE LengthCalculator_2_OUTPUT OUTPUT { FEATURE_TYPE StringFormatter_OUTPUT @Tcl2(StringFormatter_formatter) } +# ------------------------------------------------------------------------- +FACTORY_DEF {*} SortFactory FACTORY_NAME { Sorter } INPUT FEATURE_TYPE StringFormatter_OUTPUT FLUSH_WHEN_GROUPS_CHANGE { No } SORT_BY { secteur_id NUMERIC ASCENDING } OUTPUT { SORTED FEATURE_TYPE Sorter_SORTED } +FACTORY_DEF * TeeFactory FACTORY_NAME "Sorter SORTED Splitter" INPUT FEATURE_TYPE Sorter_SORTED OUTPUT FEATURE_TYPE Sorter_SORTED_0_3iJewJ+xcb8= OUTPUT FEATURE_TYPE Sorter_SORTED_1_AdG4IKX8gxs= OUTPUT FEATURE_TYPE Sorter_SORTED_2_WrWvotwy67E= # ------------------------------------------------------------------------- # Assumption is that the workspace temp dir has been already set and created. See controldefs.cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR -INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {1_line_by_secteur} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] -FACTORY_DEF {*} InspectorFactory FACTORY_NAME 1_line_by_secteur_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeKeeper_2_OUTPUT_1_eKOY+pR0mH0= GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { 1_line_by_secteur } RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING OUTPUT RESULT FEATURE_TYPE __viewme__ +INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {secteurs} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] +FACTORY_DEF {*} InspectorFactory FACTORY_NAME { secteurs_Prepper } COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_SORTED_0_3iJewJ+xcb8= GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_ATTRIBUTE_PREFIX { secteurs } 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 @@ -7234,15 +7935,31 @@ 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 1_line_by_secteur_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 secteur_id,varchar255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 +FACTORY_DEF {*} RecorderFactory FACTORY_NAME { secteurs_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 NORMALIZE_LIST_ATTRIBUTES_ON_SCHEMA YES CREATE_SPATIAL_INDEX { "$(VISUALIZER_CREATE_SPATIAL_INDEX)" } INSPECTOR { "$(VISUALIZER_CREATE_SPATIAL_INDEX)" } FSC_SCHEMA { secteur_id,int32,vertex,buffer,nom_br,buffer,nom_fr,buffer,objectif_km,int32,km_redadeg,int32,km_reels,real64 } MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 # ------------------------------------------------------------------------- -INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_2_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] -FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger_2 INPUT REFERENCER FEATURE_TYPE AttributeKeeper_2_OUTPUT_0_muAz4GqwTdk= INPUT REFERENCEE FEATURE_TYPE AttributeRenamer_2_OUTPUT_1_/5K/VQuHWx4= REFERENCE_INFO $(FeatureMerger_2_REFERENCE_INFO) REFERENCE_TABLE @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger_2) @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger_2) AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_2_MERGED OUTPUT REJECTED FEATURE_TYPE FeatureMerger_2_ +DEFAULT_MACRO Aggregator_BREAK_ATTR +INCLUDE [if {"No" == "Yes"} {puts {MACRO Aggregator_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE secteur_id} }] +FACTORY_DEF {*} AggregateFactory FACTORY_NAME Aggregator INPUT FEATURE_TYPE Sorter_SORTED_1_AdG4IKX8gxs= MODE ONE_LEVEL GROUP_BY { secteur_id } $(Aggregator_BREAK_ATTR) REMOVE_GEOMETRY NO ACCUMULATE_ATTRIBUTES One LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE SEPARATOR PRODUCE_MULTIS YES OUTPUT AGGREGATE FEATURE_TYPE Aggregator_AGGREGATE +# ------------------------------------------------------------------------- +INCLUDE TCL + if {{OUTGOING} == {OUTGOING}} { set attrs [list {km_reels}]; } else { set attrAll {}; if {[string length $attrAll] == 0} { return; }; set attrs [split {} { }]; }; if {{NO_OP} == {NO_OP}} { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV; } else { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV_MULTI_FEATURE; }; foreach attr $attrs { lappend parmList $attr; lappend parmList {roundLength10001}; lappend parmList {FLOAT}; }; lappend parmList {ExpressionEvaluator}; if {{NO_OP} == {OTHER_NULL_VALUE_2}} { lappend parmList {NO_OP}; lappend parmList {}; lappend parmList {0}; }; puts "MACRO __fme_expressionevaluator_evaluateArgs__ [join $parmList ,]"; +END_INCLUDE +FACTORY_DEF {*} TeeFactory FACTORY_NAME { ExpressionEvaluator } INPUT FEATURE_TYPE Aggregator_AGGREGATE OUTPUT { FEATURE_TYPE ExpressionEvaluator_OUTPUT @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) } +MACRO __fme_expressionevaluator_evaluateArgs__ +# ------------------------------------------------------------------------- +FACTORY_DEF {*} GeneralizeFactory FACTORY_NAME { Generalizer } INPUT FEATURE_TYPE ExpressionEvaluator_OUTPUT FLUSH_WHEN_GROUPS_CHANGE { } REJECT_INVALID_GEOM Yes ALLOW_NULLS yes REJECT_NOT_DEFAULT Yes PRESERVE_SHARED_BOUNDARIES { Yes } PRESERVE_PATH_SEGMENTS { YES } ALGORITHM { Douglas } TOLERANCE { "10" } FILLET_RADIUS { "" } CLEANING_TOLERANCE { NONE } OUTPUT { GENERALIZED FEATURE_TYPE Generalizer_OUTPUT } OUTPUT { REJECTED FEATURE_TYPE Generalizer_ } DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME FeatureMerger_2_ INPUT FEATURE_TYPE FeatureMerger_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, FeatureMerger_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +FACTORY_DEF * TeeFactory FACTORY_NAME Generalizer_ INPUT FEATURE_TYPE Generalizer_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, GeneralizeroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF * SortFactory FACTORY_NAME Sorter_4 INPUT FEATURE_TYPE FeatureMerger_2_MERGED SORT_BY secteur_id NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_4_SORTED -FACTORY_DEF * TeeFactory FACTORY_NAME "Sorter_4 SORTED Splitter" INPUT FEATURE_TYPE Sorter_4_SORTED OUTPUT FEATURE_TYPE Sorter_4_SORTED_0_bGs2+JFzNGU= OUTPUT FEATURE_TYPE Sorter_4_SORTED_1_xZN7XGJzQYs= +INCLUDE TCL + if {{OUTGOING} == {OUTGOING}} { set attrs [list {km_reels}]; } else { set attrAll {}; if {[string length $attrAll] == 0} { return; }; set attrs [split {} { }]; }; if {{NO_OP} == {NO_OP}} { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV; } else { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV_MULTI_FEATURE; }; foreach attr $attrs { lappend parmList $attr; lappend parmList {roundLength10001}; lappend parmList {FLOAT}; }; lappend parmList {ExpressionEvaluator_2}; if {{NO_OP} == {OTHER_NULL_VALUE_2}} { lappend parmList {NO_OP}; lappend parmList {}; lappend parmList {0}; }; puts "MACRO __fme_expressionevaluator_evaluateArgs__ [join $parmList ,]"; +END_INCLUDE +FACTORY_DEF {*} TeeFactory FACTORY_NAME { ExpressionEvaluator_2 } INPUT FEATURE_TYPE Sorter_SORTED_2_WrWvotwy67E= OUTPUT { FEATURE_TYPE ExpressionEvaluator_2_OUTPUT @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) } +MACRO __fme_expressionevaluator_evaluateArgs__ +# ------------------------------------------------------------------------- +FACTORY_DEF {*} GeneralizeFactory FACTORY_NAME { Generalizer_2 } INPUT FEATURE_TYPE ExpressionEvaluator_2_OUTPUT FLUSH_WHEN_GROUPS_CHANGE { } REJECT_INVALID_GEOM Yes ALLOW_NULLS yes REJECT_NOT_DEFAULT Yes PRESERVE_SHARED_BOUNDARIES { Yes } PRESERVE_PATH_SEGMENTS { YES } ALGORITHM { Douglas } TOLERANCE { "10" } FILLET_RADIUS { "" } CLEANING_TOLERANCE { NONE } OUTPUT { GENERALIZED FEATURE_TYPE Generalizer_2_OUTPUT } OUTPUT { REJECTED FEATURE_TYPE Generalizer_2_ } +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME Generalizer_2_ INPUT FEATURE_TYPE Generalizer_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, Generalizer_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "IterativeSnipper Input Input Collector" INPUT FEATURE_TYPE Sorter_4_SORTED_1_xZN7XGJzQYs= OUTPUT FEATURE_TYPE IterativeSnipper_Input MACRO IterativeSnipper_WORKSPACE_NAME IterativeSnipper @@ -7254,8 +7971,8 @@ MACRO $(IterativeSnipper_WORKSPACE_NAME)_SNIPMODE ToLength MACRO $(IterativeSnipper_WORKSPACE_NAME)_SnipLength @Value(km_redadeg) DEFAULT_MACRO IterativeSnipper_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(IterativeSnipper_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(IterativeSnipper_WORKSPACE_NAME)}] -FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Input1582066741 Input Splitter" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" -FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1582066741 Input Splitter" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" +FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Input1621322517 Input Splitter" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" +FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1621322517 Input Splitter" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_LengthCalculatorInput INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" OUTPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_LengthCalculator INPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "Iterative_Snipper_length" @Length(REJECTABLE,3,"1") @@ -7270,14 +7987,12 @@ Lookup $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterTable "" "not_ MACRO COLLECTION_HANDLING NOT_THIS_TIME MACRO INSTANCE_FILTERING * INCLUDE [ if 0 { puts "MACRO COLLECTION_HANDLING *"; if { puts "MACRO INSTANCE_FILTERING NOT_THIS_TIME"; }; }; if {{$(OUTPUT_INSTANCE_FTYPE)} == "not_selected"} { puts "MACRO INSTANCE_FILTERING NOT_THIS_TIME"; }; ] -FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_InputPassThrough INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ @Geometry(FIX_FMETYPE_FMEGEOMETRY) -FACTORY_DEF $(INSTANCE_FILTERING) TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_InstanceTest INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ TEST @Geometry(IS_GEOMETRY_INSTANCE) == 1 OUTPUT PASSED FEATURE_TYPE $(OUTPUT_INSTANCE_FTYPE) OUTPUT FAILED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ -FACTORY_DEF $(COLLECTION_HANDLING) TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_CollectionTest INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ TEST &fme_type == "fme_collection" OUTPUT FAILED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ OUTPUT PASSED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Collection___ -FACTORY_DEF $(COLLECTION_HANDLING) DeaggregateFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_Deagg INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Collection___ HOMOGENIZE_COLLECTIONS YES RECURSIVE YES SET_FME_TYPE YES INSTANTIATE_GEOMETRY_INSTANCES_NEW OUTPUT POINT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT LINE FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT POLYGON FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT DONUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT AGGREGATE FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ -FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterPrepper INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ OUTPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Prepped___ $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_23e6861c_9582_45b3_b9a7_012163256aaa6_targetFeatureType @Lookup($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterTable,&fme_type) -FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_Router INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Prepped___ TEST @Value($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_23e6861c_9582_45b3_b9a7_012163256aaa6_targetFeatureType) != "not_selected" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_23e6861c_9582_45b3_b9a7_012163256aaa6_targetFeatureType)) @RemoveAttributes($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_23e6861c_9582_45b3_b9a7_012163256aaa6_targetFeatureType) OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_" @RemoveAttributes($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_23e6861c_9582_45b3_b9a7_012163256aaa6_targetFeatureType) -# ------------------------------------------------------------------------- -FACTORY_DEF {*} AttrSetFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "fme_rejection_code" "SET_TO" "INVALID_GEOMETRY_TYPE" } OUTPUT OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator_OUTPUT" +FACTORY_DEF {*} TeeFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_InputPassThrough } INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" OUTPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ @Geometry(FIX_FMETYPE_FMEGEOMETRY) } +FACTORY_DEF {$(INSTANCE_FILTERING)} TestFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_InstanceTest } INPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ } TEST @Geometry(IS_GEOMETRY_INSTANCE) == 1 OUTPUT { PASSED FEATURE_TYPE $(OUTPUT_INSTANCE_FTYPE) } OUTPUT { FAILED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ } +FACTORY_DEF {$(COLLECTION_HANDLING)} TestFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_CollectionTest } INPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ } TEST &fme_type == "fme_collection" OUTPUT { FAILED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ } OUTPUT { PASSED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Collection___ } +FACTORY_DEF {$(COLLECTION_HANDLING)} DeaggregateFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_Deagg } INPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Collection___ } HOMOGENIZE_COLLECTIONS YES RECURSIVE YES SET_FME_TYPE YES INSTANTIATE_GEOMETRY_INSTANCES_NEW { } OUTPUT { POINT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ } OUTPUT { LINE FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ } OUTPUT { POLYGON FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ } OUTPUT { DONUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ } OUTPUT { AGGREGATE FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ } +FACTORY_DEF {*} TeeFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterPrepper } INPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ } INPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ } INPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ } OUTPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Prepped___ @SupplyAttributes("$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_8c963b75_dc12_48a6_a7db_df257b52cf267_targetFeatureType", @Lookup($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterTable,&fme_type)) } +FACTORY_DEF {*} TestFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_Router } INPUT { FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Prepped___ } TEST { @Value($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_8c963b75_dc12_48a6_a7db_df257b52cf267_targetFeatureType) != "not_selected" } OUTPUT { PASSED FEATURE_TYPE * @FeatureType(@Value($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_8c963b75_dc12_48a6_a7db_df257b52cf267_targetFeatureType)) @RemoveAttributes($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_8c963b75_dc12_48a6_a7db_df257b52cf267_targetFeatureType) } OUTPUT { FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_" @RemoveAttributes($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_8c963b75_dc12_48a6_a7db_df257b52cf267_targetFeatureType) } # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_LengthCalculatorInput INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_LINE" OUTPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_LengthCalculator INPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "Iterative_Snipper_length" @Length(REJECTABLE,3,"1") @@ -7285,18 +8000,18 @@ FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Len DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_" OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, IterativeSnipper_LengthCalculatoroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_OUTPUT" TEST @EvaluateExpression(FDIV,STRING_ENCODED,$($(IterativeSnipper_WORKSPACE_NAME)_SNIPMODE),$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode) = ToNumber ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_PASSED" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_FAILED" -# ------------------------------------------------------------------------- -Tcl2 proc $(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_doFetch {} { foreach {name val} {"Iterative_Snipper_maxLength {$($(IterativeSnipper_WORKSPACE_NAME)_SnipLength$encode)}"} { if { [string match {**} $val] == 1 } { set val [FME_Execute EvaluateExpression {STRING} $val {$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher}]; } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} { set val [FME_Execute EvaluateExpression {STRING} $val {$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher}]; } else { set val [FME_DecodeTextOrAttr $val]; }; FME_SetAttribute [FME_DecodeText $name] $val } } -FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_FAILED" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" @Tcl2($(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_doFetch) +FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,$($(IterativeSnipper_WORKSPACE_NAME)_SNIPMODE),$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode)" = ToNumber ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "" OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_PASSED" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_FAILED" # ------------------------------------------------------------------------- INCLUDE TCL if {{OUTGOING} == {OUTGOING}} { set attrs [list {Iterative_Snipper_maxLength}]; } else { set attrAll {}; if {[string length $attrAll] == 0} { return; }; set attrs [split {} { }]; }; if {{NO_OP} == {NO_OP}} { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV; } else { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV_MULTI_FEATURE; }; foreach attr $attrs { lappend parmList $attr; lappend parmList {ValueIterative_Snipper_lengthdouble$($(IterativeSnipper_WORKSPACE_NAME)_SnipLength$encode)}; lappend parmList {FLOAT}; }; lappend parmList {$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator}; if {{NO_OP} == {OTHER_NULL_VALUE_2}} { lappend parmList {NO_OP}; lappend parmList {}; lappend parmList {0}; }; puts "MACRO __fme_expressionevaluator_evaluateArgs__ [join $parmList ,]"; END_INCLUDE -FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_PASSED" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) +FACTORY_DEF {*} TeeFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator } INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_PASSED" OUTPUT { FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) } MACRO __fme_expressionevaluator_evaluateArgs__ # ------------------------------------------------------------------------- -FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_OUTPUT" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" TEST @EvaluateExpression(FDIV,STRING_ENCODED,ValueIterative_Snipper_length,$(IterativeSnipper_WORKSPACE_NAME)_Tester) <= @EvaluateExpression(FDIV,STRING_ENCODED,ValueIterative_Snipper_maxLength,$(IterativeSnipper_WORKSPACE_NAME)_Tester) ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_FAILED" +Tcl2 proc $(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_doFetch {} { foreach {name val} {"Iterative_Snipper_maxLength {$($(IterativeSnipper_WORKSPACE_NAME)_SnipLength$encode)}"} { if { [string match {**} $val] == 1 } { set val [FME_Execute EvaluateExpression {STRING} $val {$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher}]; } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} { set val [FME_Execute EvaluateExpression {STRING} $val {$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher}]; } else { set val [FME_DecodeTextOrAttr $val]; }; FME_SetAttribute [FME_DecodeText $name] $val } } +FACTORY_DEF {*} TeeFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher } INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_FAILED" OUTPUT { FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" @Tcl2($(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_doFetch) } +# ------------------------------------------------------------------------- +FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_OUTPUT" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" TEST "@EvaluateExpression(FDIV,STRING_ENCODED,ValueIterative_Snipper_length,$(IterativeSnipper_WORKSPACE_NAME)_Tester)" <= "@EvaluateExpression(FDIV,STRING_ENCODED,ValueIterative_Snipper_maxLength,$(IterativeSnipper_WORKSPACE_NAME)_Tester)" ENCODED BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "" OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_FAILED" # ------------------------------------------------------------------------- # The Snipper takes the constant "end" to mean the last vertex of the line, # but Workbench won't let us put an alpha string into the "last vertex" textfield. @@ -7313,33 +8028,26 @@ FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Sni DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_" OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, IterativeSnipper_Snipper_3outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -INCLUDE [ set macroLine "MACRO $(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_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 $(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_PASSED" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_OUTPUT" OUTPUT { FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT" @RemoveAttributes(fme_encoded,Iterative_Snipper_length,Iterative_Snipper_maxLength) @RemoveAttributes(fme_pcre_match"$($(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_LIST_EXP)") } -FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1582066741 Input Splitter" FACTORY_NAME "Loop to $(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1582066741 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_REMNANTS" OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" -FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Output1582066741 Output Collector" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Output" -FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_1582066741 Output Collector" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator_OUTPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_" +# Build the List removal function and regular expression if there was any list attributes to be removed. +# If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the +# normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done +# once during mapping file parse time. +INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO $(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_LIST_FUNC } } else { puts "MACRO $(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] +FACTORY_DEF {*} TeeFactory FACTORY_NAME { $(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover } INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_PASSED" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_OUTPUT" OUTPUT { FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT" @RemoveAttributes(fme_encoded,Iterative_Snipper_length,Iterative_Snipper_maxLength) $($(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_LIST_FUNC) } +# ------------------------------------------------------------------------- +FACTORY_DEF {*} AttrSetFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "fme_rejection_code" "SET_TO" "INVALID_GEOMETRY_TYPE" } OUTPUT OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator_OUTPUT" +FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1621322517 Input Splitter" FACTORY_NAME "Loop to $(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1621322517 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_REMNANTS" OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" +FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Output1621322517 Output Collector" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Output" +FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_1621322517 Output Collector" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator_OUTPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(IterativeSnipper_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "IterativeSnipper Output Output Renamer/Nuker" INPUT FEATURE_TYPE IterativeSnipper_Output OUTPUT FEATURE_TYPE IterativeSnipper_Output FACTORY_DEF * TeeFactory FACTORY_NAME "IterativeSnipper Output Renamer/Nuker" INPUT FEATURE_TYPE IterativeSnipper_ OUTPUT FEATURE_TYPE IterativeSnipper_ # ------------------------------------------------------------------------- -# Assumption is that the workspace temp dir has been already set and created. See controldefs.cpp - ControlDefs::writeVisualizerTempDir -DEFAULT_MACRO WORKSPACE_TEMP_DIR -INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {IterativeSnipper__Rejected_} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] -FACTORY_DEF {*} InspectorFactory FACTORY_NAME IterativeSnipper__Rejected__Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE IterativeSnipper_ GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { IterativeSnipper__Rejected_ } 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 IterativeSnipper__Rejected__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 fme_rejection_code,varchar255,secteur_id,varchar255,nom_br,varchar255,nom_fr,varchar255,objectif_km,varchar255,km_redadeg,varchar255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 -# ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Local} == {Local} } { set domainPrefix [FME_EncodeText {Counter_2_}]; }; puts "MACRO Counter_2_FULL_DOMAIN ${domainPrefix}troncon_id"; ] -FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_2_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE IterativeSnipper_Output FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_2_FULL_DOMAIN),"@EvaluateExpression(FDIV,FLOAT,$(START$encode),Counter_2)") RESULT_ATTRIBUTE "troncon_id" OUTPUT COMPLETE FEATURE_TYPE Counter_2_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_2_ +FACTORY_DEF {*} ExecuteFunctionFactory FACTORY_NAME { Counter_2_Rejector } COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE IterativeSnipper_Output FUNCTION_DEFINITION { @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_2_FULL_DOMAIN),"@EvaluateExpression(FDIV,FLOAT,$(START$encode),Counter_2)") } RESULT_ATTRIBUTE { "troncon_id" } FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT { COMPLETE FEATURE_TYPE Counter_2_OUTPUT } OUTPUT { REJECTED FEATURE_TYPE Counter_2_ } DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME Counter_2_ INPUT FEATURE_TYPE Counter_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, Counter_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- @@ -7349,96 +8057,136 @@ FACTORY_DEF * TestFactory FACTORY_NAME LengthCalculator_Rejector INPUT FEA DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_ INPUT FEATURE_TYPE LengthCalculator_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, LengthCalculatoroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF * SortFactory FACTORY_NAME Sorter_3 INPUT FEATURE_TYPE LengthCalculator_OUTPUT SORT_BY secteur_id NUMERIC ASCENDING troncon_id NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_3_SORTED +FACTORY_DEF {*} SortFactory FACTORY_NAME { Sorter_3 } INPUT FEATURE_TYPE LengthCalculator_OUTPUT FLUSH_WHEN_GROUPS_CHANGE { No } SORT_BY { secteur_id NUMERIC ASCENDING troncon_id NUMERIC ASCENDING } OUTPUT { SORTED FEATURE_TYPE Sorter_3_SORTED } FACTORY_DEF * TeeFactory FACTORY_NAME "Sorter_3 SORTED Splitter" INPUT FEATURE_TYPE Sorter_3_SORTED OUTPUT FEATURE_TYPE Sorter_3_SORTED_0_fFLYyOM90A0= OUTPUT FEATURE_TYPE Sorter_3_SORTED_1_2tOcv2i/uGI= OUTPUT FEATURE_TYPE Sorter_3_SORTED_2_h/1Aw1J8BQA= OUTPUT FEATURE_TYPE Sorter_3_SORTED_3_XoGbwsXKD4g= # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME "2_tronçons (Disabled) Nuker" INPUT FEATURE_TYPE Sorter_3_SORTED_2_h/1Aw1J8BQA= -# ------------------------------------------------------------------------- Tcl2 set {CoordinateConcatenator_coordDelim} [FME_DecodeText {|}]; Tcl2 set {CoordinateConcatenator_elementDelim} [FME_DecodeText {}]; Tcl2 proc CoordinateConcatenator_coord_list {DIM} { global {CoordinateConcatenator_coordDelim}; global {CoordinateConcatenator_elementDelim}; set numCoords [FME_Coordinates numCoords]; set output {}; set includeX [string first {X} {Y X} ]; set includeY [string first {Y} {Y X} ]; set includeZ [string first {Z} {Y X} ]; if { $includeX == -1 && $includeY == -1 && $includeZ == -1 } { FME_SetAttribute _coordinates $output; return; }; for {set i 0} {$i < $numCoords} {incr i} { if {$includeX != -1} { append output [FME_Coordinates getCoord x $i]; }; if {$includeY != -1} { if {$includeX != -1} { append output [set {CoordinateConcatenator_elementDelim}] [FME_Coordinates getCoord y $i]; } else { append output [FME_Coordinates getCoord y $i]; }; }; if { $DIM == 3 && $includeZ != -1 } { if { $includeX != -1 || $includeY != -1 } { append output [set {CoordinateConcatenator_elementDelim}] [FME_Coordinates getCoord z $i]; } else { append output [FME_Coordinates getCoord z $i]; }; }; if {$i < ($numCoords - 1)} { append output [set {CoordinateConcatenator_coordDelim}] }; }; FME_SetAttribute _coordinates $output; } -FACTORY_DEF * TeeFactory FACTORY_NAME CoordinateConcatenator INPUT FEATURE_TYPE Sorter_3_SORTED_1_2tOcv2i/uGI= OUTPUT FEATURE_TYPE CoordinateConcatenator_OUTPUT @Tcl2("CoordinateConcatenator_coord_list @Dimension()") +FACTORY_DEF {*} TeeFactory FACTORY_NAME { CoordinateConcatenator } INPUT FEATURE_TYPE Sorter_3_SORTED_1_2tOcv2i/uGI= OUTPUT { FEATURE_TYPE CoordinateConcatenator_OUTPUT @Tcl2("CoordinateConcatenator_coord_list @Dimension()") } # ------------------------------------------------------------------------- -Tcl2 set AttributeSplitter_8affaf1f_2774_4c17_90e4_868e02e665736_splitDelim [FME_DecodeText {|}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_8affaf1f_2774_4c17_90e4_868e02e665736_splitDelim]] } { set AttributeSplitter_8affaf1f_2774_4c17_90e4_868e02e665736_splitWidths [split [regsub -all {s$} {|} {}] s]; proc AttributeSplitter_doSplit {} { global AttributeSplitter_8affaf1f_2774_4c17_90e4_868e02e665736_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coordinates}]]; set attrNum 0; set listName [FME_DecodeText {_coords}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_8affaf1f_2774_4c17_90e4_868e02e665736_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_doSplit {} { global AttributeSplitter_8affaf1f_2774_4c17_90e4_868e02e665736_splitDelim; set delim [set AttributeSplitter_8affaf1f_2774_4c17_90e4_868e02e665736_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coordinates}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } +Tcl2 set AttributeSplitter_15a001be_b3c2_49ac_8da7_0746af4684e812_splitDelim [FME_DecodeText {|}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_15a001be_b3c2_49ac_8da7_0746af4684e812_splitDelim]] } { set AttributeSplitter_15a001be_b3c2_49ac_8da7_0746af4684e812_splitWidths [split [regsub -all {s$} {|} {}] s]; proc AttributeSplitter_doSplit {} { global AttributeSplitter_15a001be_b3c2_49ac_8da7_0746af4684e812_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coordinates}]]; set attrNum 0; set listName [FME_DecodeText {_coords}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_15a001be_b3c2_49ac_8da7_0746af4684e812_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_doSplit {} { global AttributeSplitter_15a001be_b3c2_49ac_8da7_0746af4684e812_splitDelim; set delim [set AttributeSplitter_15a001be_b3c2_49ac_8da7_0746af4684e812_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coordinates}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter INPUT FEATURE_TYPE CoordinateConcatenator_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_OUTPUT @Tcl2(AttributeSplitter_doSplit) # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME ListElementCounter INPUT FEATURE_TYPE AttributeSplitter_OUTPUT OUTPUT FEATURE_TYPE ListElementCounter_OUTPUT "_vertex_count" @NumElements("_coords",ENCODED) +FACTORY_DEF {*} TeeFactory FACTORY_NAME { ListElementCounter } INPUT FEATURE_TYPE AttributeSplitter_OUTPUT OUTPUT { FEATURE_TYPE ListElementCounter_OUTPUT "_vertex_count" @NumElements("_coords",ENCODED) } # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME GeometryRemover INPUT FEATURE_TYPE ListElementCounter_OUTPUT OUTPUT FEATURE_TYPE GeometryRemover_OUTPUT @RemoveGeometry() +FACTORY_DEF {*} TeeFactory FACTORY_NAME { GeometryRemover } INPUT FEATURE_TYPE ListElementCounter_OUTPUT OUTPUT { FEATURE_TYPE GeometryRemover_OUTPUT @RemoveGeometry() } FACTORY_DEF * TeeFactory FACTORY_NAME "GeometryRemover OUTPUT Splitter" INPUT FEATURE_TYPE GeometryRemover_OUTPUT OUTPUT FEATURE_TYPE GeometryRemover_OUTPUT_0_lyMsYNg46jM= OUTPUT FEATURE_TYPE GeometryRemover_OUTPUT_1_OUiOuQAK2cA= # ------------------------------------------------------------------------- -Tcl2 proc ListIndexer_4_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_4_IntTester INPUT FEATURE_TYPE GeometryRemover_OUTPUT_1_OUiOuQAK2cA= TEST "@EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4)" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_4_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_4_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "@EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4)" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_4_OUTPUT @Tcl2("ListIndexer_4_indexer @EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4) 0 {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_4_OUTPUT @Tcl2("ListIndexer_4_indexer @EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4) @NumElements(_coords{}) {}") -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_4_ INPUT FEATURE_TYPE ListIndexer_4_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_4outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -Tcl2 set AttributeSplitter_3_d955635c_c939_4478_bd25_c88a0c1c611c6_splitDelim [FME_DecodeText {}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_3_d955635c_c939_4478_bd25_c88a0c1c611c6_splitDelim]] } { set AttributeSplitter_3_d955635c_c939_4478_bd25_c88a0c1c611c6_splitWidths [split [regsub -all {s$} {} {}] s]; proc AttributeSplitter_3_doSplit {} { global AttributeSplitter_3_d955635c_c939_4478_bd25_c88a0c1c611c6_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set attrNum 0; set listName [FME_DecodeText {_coords_vertex}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_3_d955635c_c939_4478_bd25_c88a0c1c611c6_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_3_doSplit {} { global AttributeSplitter_3_d955635c_c939_4478_bd25_c88a0c1c611c6_splitDelim; set delim [set AttributeSplitter_3_d955635c_c939_4478_bd25_c88a0c1c611c6_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords_vertex}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } -FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter_3 INPUT FEATURE_TYPE ListIndexer_4_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_3_OUTPUT @Tcl2(AttributeSplitter_3_doSplit) -# ------------------------------------------------------------------------- -Tcl2 proc ListIndexer_5_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_5_IntTester INPUT FEATURE_TYPE AttributeSplitter_3_OUTPUT TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_5_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_5_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_5_OUTPUT @Tcl2("ListIndexer_5_indexer 0 0 {x}") OUTPUT FAILED FEATURE_TYPE ListIndexer_5_OUTPUT @Tcl2("ListIndexer_5_indexer 0 @NumElements(_coords_vertex{}) {x}") -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_5_ INPUT FEATURE_TYPE ListIndexer_5_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_5outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -Tcl2 proc ListIndexer_6_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_6_IntTester INPUT FEATURE_TYPE ListIndexer_5_OUTPUT TEST "1" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_6_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_6_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "1" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_6_OUTPUT @Tcl2("ListIndexer_6_indexer 1 0 {y}") OUTPUT FAILED FEATURE_TYPE ListIndexer_6_OUTPUT @Tcl2("ListIndexer_6_indexer 1 @NumElements(_coords_vertex{}) {y}") -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_6_ INPUT FEATURE_TYPE ListIndexer_6_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_6outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -INCLUDE [ set macroLine "MACRO AttributeRemover_2_LIST_EXP "; foreach attr [split "_coords_vertex _coords"] { 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 AttributeRemover_2 INPUT FEATURE_TYPE ListIndexer_6_OUTPUT OUTPUT { FEATURE_TYPE AttributeRemover_2_OUTPUT @RemoveAttributes(fme_encoded,_coords_vertex0,_coords,_coords0) @RemoveAttributes(fme_pcre_match"$(AttributeRemover_2_LIST_EXP)") } -# ------------------------------------------------------------------------- -FACTORY_DEF * VertexCreatorFactory FACTORY_NAME VertexCreator_2 INPUT FEATURE_TYPE AttributeRemover_2_OUTPUT MODE ADD INDEX "" CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FDIV,FLOAT,Valuex_coords_vertex,VertexCreator_2)" YVAL "@EvaluateExpression(FDIV,FLOAT,Valuey_coords_vertex,VertexCreator_2)" OUTPUT OUTPUT FEATURE_TYPE VertexCreator_2_OUTPUT OUTPUT REJECTED FEATURE_TYPE VertexCreator_2_ -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME VertexCreator_2_ INPUT FEATURE_TYPE VertexCreator_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, VertexCreator_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_2 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE VertexCreator_2_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "position_vertex" "SET_TO" "fin" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT -FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeCreator_2 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs= OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA= -# ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME "Vertex_fin (Disabled) Nuker" INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs= -# ------------------------------------------------------------------------- -Tcl2 proc ListIndexer_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } +Tcl2 proc ListIndexer_indexer {index numElements prefix suffix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; set suffix [FME_DecodeText $suffix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {$suffix != {} } { set newAttr $newAttr$suffix; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_IntTester INPUT FEATURE_TYPE GeometryRemover_OUTPUT_0_lyMsYNg46jM= TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_OUTPUT @Tcl2("ListIndexer_indexer 0 0 {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_OUTPUT @Tcl2("ListIndexer_indexer 0 @NumElements(_coords{}) {}") +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_OUTPUT @Tcl2("ListIndexer_indexer 0 0 {} {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_OUTPUT @Tcl2("ListIndexer_indexer 0 @NumElements(_coords{}) {} {}") DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_ INPUT FEATURE_TYPE ListIndexer_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexeroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -Tcl2 set AttributeSplitter_2_bf6d2454_f5a3_44ec_8e43_f1d833573f466_splitDelim [FME_DecodeText {}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_2_bf6d2454_f5a3_44ec_8e43_f1d833573f466_splitDelim]] } { set AttributeSplitter_2_bf6d2454_f5a3_44ec_8e43_f1d833573f466_splitWidths [split [regsub -all {s$} {} {}] s]; proc AttributeSplitter_2_doSplit {} { global AttributeSplitter_2_bf6d2454_f5a3_44ec_8e43_f1d833573f466_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set attrNum 0; set listName [FME_DecodeText {_coords_vertex}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_2_bf6d2454_f5a3_44ec_8e43_f1d833573f466_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_2_doSplit {} { global AttributeSplitter_2_bf6d2454_f5a3_44ec_8e43_f1d833573f466_splitDelim; set delim [set AttributeSplitter_2_bf6d2454_f5a3_44ec_8e43_f1d833573f466_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords_vertex}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } +Tcl2 set AttributeSplitter_2_6e1cfec1_50de_4b82_a06e_5996a87aa88812_splitDelim [FME_DecodeText {}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_2_6e1cfec1_50de_4b82_a06e_5996a87aa88812_splitDelim]] } { set AttributeSplitter_2_6e1cfec1_50de_4b82_a06e_5996a87aa88812_splitWidths [split [regsub -all {s$} {} {}] s]; proc AttributeSplitter_2_doSplit {} { global AttributeSplitter_2_6e1cfec1_50de_4b82_a06e_5996a87aa88812_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set attrNum 0; set listName [FME_DecodeText {_coords_vertex}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_2_6e1cfec1_50de_4b82_a06e_5996a87aa88812_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_2_doSplit {} { global AttributeSplitter_2_6e1cfec1_50de_4b82_a06e_5996a87aa88812_splitDelim; set delim [set AttributeSplitter_2_6e1cfec1_50de_4b82_a06e_5996a87aa88812_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords_vertex}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter_2 INPUT FEATURE_TYPE ListIndexer_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_2_OUTPUT @Tcl2(AttributeSplitter_2_doSplit) # ------------------------------------------------------------------------- -Tcl2 proc ListIndexer_2_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } +Tcl2 proc ListIndexer_2_indexer {index numElements prefix suffix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; set suffix [FME_DecodeText $suffix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {$suffix != {} } { set newAttr $newAttr$suffix; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_2_IntTester INPUT FEATURE_TYPE AttributeSplitter_2_OUTPUT TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_2_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_2_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_2_OUTPUT @Tcl2("ListIndexer_2_indexer 0 0 {x}") OUTPUT FAILED FEATURE_TYPE ListIndexer_2_OUTPUT @Tcl2("ListIndexer_2_indexer 0 @NumElements(_coords_vertex{}) {x}") +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_2_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_2_OUTPUT @Tcl2("ListIndexer_2_indexer 0 0 {x} {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_2_OUTPUT @Tcl2("ListIndexer_2_indexer 0 @NumElements(_coords_vertex{}) {x} {}") DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_2_ INPUT FEATURE_TYPE ListIndexer_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -Tcl2 proc ListIndexer_3_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } +Tcl2 proc ListIndexer_3_indexer {index numElements prefix suffix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; set suffix [FME_DecodeText $suffix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {$suffix != {} } { set newAttr $newAttr$suffix; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_3_IntTester INPUT FEATURE_TYPE ListIndexer_2_OUTPUT TEST "1" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_3_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" -FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_3_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "1" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_3_OUTPUT @Tcl2("ListIndexer_3_indexer 1 0 {y}") OUTPUT FAILED FEATURE_TYPE ListIndexer_3_OUTPUT @Tcl2("ListIndexer_3_indexer 1 @NumElements(_coords_vertex{}) {y}") +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_3_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "1" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_3_OUTPUT @Tcl2("ListIndexer_3_indexer 1 0 {y} {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_3_OUTPUT @Tcl2("ListIndexer_3_indexer 1 @NumElements(_coords_vertex{}) {y} {}") DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_3_ INPUT FEATURE_TYPE ListIndexer_3_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_3outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -INCLUDE [ set macroLine "MACRO AttributeRemover_LIST_EXP "; foreach attr [split "_coords_vertex"] { 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 AttributeRemover INPUT FEATURE_TYPE ListIndexer_3_OUTPUT OUTPUT { FEATURE_TYPE AttributeRemover_OUTPUT @RemoveAttributes(fme_encoded,_coords_vertex0,_coords0,_coordinates) @RemoveAttributes(fme_pcre_match"$(AttributeRemover_LIST_EXP)") } +# Build the List removal function and regular expression if there was any list attributes to be removed. +# If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the +# normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done +# once during mapping file parse time. +INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split "_coords_vertex"] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO AttributeRemover_LIST_FUNC } } else { puts "MACRO AttributeRemover_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] +FACTORY_DEF {*} TeeFactory FACTORY_NAME { AttributeRemover } INPUT FEATURE_TYPE ListIndexer_3_OUTPUT OUTPUT { FEATURE_TYPE AttributeRemover_OUTPUT @RemoveAttributes(fme_encoded,_coords_vertex0,_coords0,_coordinates) $(AttributeRemover_LIST_FUNC) } # ------------------------------------------------------------------------- FACTORY_DEF * VertexCreatorFactory FACTORY_NAME VertexCreator INPUT FEATURE_TYPE AttributeRemover_OUTPUT MODE ADD INDEX "" CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FDIV,FLOAT,Valuex_coords_vertex,VertexCreator)" YVAL "@EvaluateExpression(FDIV,FLOAT,Valuey_coords_vertex,VertexCreator)" OUTPUT OUTPUT FEATURE_TYPE VertexCreator_OUTPUT OUTPUT REJECTED FEATURE_TYPE VertexCreator_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME VertexCreator_ INPUT FEATURE_TYPE VertexCreator_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, VertexCreatoroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE VertexCreator_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "position_vertex" "SET_TO" "debut" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT +FACTORY_DEF {*} AttrSetFactory FACTORY_NAME { AttributeCreator } COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE VertexCreator_OUTPUT MULTI_FEATURE_MODE { NO } NULL_ATTR_MODE { NO_OP } ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "position_vertex" "SET_TO" "debut" } OUTPUT { OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT } FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeCreator OUTPUT Splitter" INPUT FEATURE_TYPE AttributeCreator_OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT_0_lQ+3mj5tm0E= OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT_1_Et/p63Aqn4M= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Vertex_debut (Disabled) Nuker" INPUT FEATURE_TYPE AttributeCreator_OUTPUT_1_Et/p63Aqn4M= # ------------------------------------------------------------------------- -FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeCreator_OUTPUT_0_lQ+3mj5tm0E= INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA= KEY_ATTRIBUTES { y_coords_vertex x_coords_vertex } INPUT_IS_ORDERED NO OUTPUT DUPLICATE FEATURE_TYPE DuplicateFilter_DUPLICATE OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_UNIQUE +Tcl2 proc ListIndexer_4_indexer {index numElements prefix suffix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; set suffix [FME_DecodeText $suffix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {$suffix != {} } { set newAttr $newAttr$suffix; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_4_IntTester INPUT FEATURE_TYPE GeometryRemover_OUTPUT_1_OUiOuQAK2cA= TEST "@EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4)" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_4_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_4_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "@EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4)" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_4_OUTPUT @Tcl2("ListIndexer_4_indexer @EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4) 0 {} {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_4_OUTPUT @Tcl2("ListIndexer_4_indexer @EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4) @NumElements(_coords{}) {} {}") +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_4_ INPUT FEATURE_TYPE ListIndexer_4_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_4outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +Tcl2 set AttributeSplitter_3_c4f60f29_c155_49a1_9ee6_2612e33e337612_splitDelim [FME_DecodeText {}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_3_c4f60f29_c155_49a1_9ee6_2612e33e337612_splitDelim]] } { set AttributeSplitter_3_c4f60f29_c155_49a1_9ee6_2612e33e337612_splitWidths [split [regsub -all {s$} {} {}] s]; proc AttributeSplitter_3_doSplit {} { global AttributeSplitter_3_c4f60f29_c155_49a1_9ee6_2612e33e337612_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set attrNum 0; set listName [FME_DecodeText {_coords_vertex}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_3_c4f60f29_c155_49a1_9ee6_2612e33e337612_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_3_doSplit {} { global AttributeSplitter_3_c4f60f29_c155_49a1_9ee6_2612e33e337612_splitDelim; set delim [set AttributeSplitter_3_c4f60f29_c155_49a1_9ee6_2612e33e337612_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords_vertex}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } +FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter_3 INPUT FEATURE_TYPE ListIndexer_4_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_3_OUTPUT @Tcl2(AttributeSplitter_3_doSplit) +# ------------------------------------------------------------------------- +Tcl2 proc ListIndexer_5_indexer {index numElements prefix suffix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; set suffix [FME_DecodeText $suffix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {$suffix != {} } { set newAttr $newAttr$suffix; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_5_IntTester INPUT FEATURE_TYPE AttributeSplitter_3_OUTPUT TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_5_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_5_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_5_OUTPUT @Tcl2("ListIndexer_5_indexer 0 0 {x} {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_5_OUTPUT @Tcl2("ListIndexer_5_indexer 0 @NumElements(_coords_vertex{}) {x} {}") +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_5_ INPUT FEATURE_TYPE ListIndexer_5_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_5outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +Tcl2 proc ListIndexer_6_indexer {index numElements prefix suffix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; set suffix [FME_DecodeText $suffix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {$suffix != {} } { set newAttr $newAttr$suffix; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_6_IntTester INPUT FEATURE_TYPE ListIndexer_5_OUTPUT TEST "1" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ OUTPUT FAILED FEATURE_TYPE ListIndexer_6_ fme_rejection_code "INVALID_PARAMETER_LIST_INDEX" +FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_6_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "1" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_6_OUTPUT @Tcl2("ListIndexer_6_indexer 1 0 {y} {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_6_OUTPUT @Tcl2("ListIndexer_6_indexer 1 @NumElements(_coords_vertex{}) {y} {}") +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME ListIndexer_6_ INPUT FEATURE_TYPE ListIndexer_6_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, ListIndexer_6outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +# Build the List removal function and regular expression if there was any list attributes to be removed. +# If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the +# normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done +# once during mapping file parse time. +INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split "_coords_vertex _coords"] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO AttributeRemover_2_LIST_FUNC } } else { puts "MACRO AttributeRemover_2_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] +FACTORY_DEF {*} TeeFactory FACTORY_NAME { AttributeRemover_2 } INPUT FEATURE_TYPE ListIndexer_6_OUTPUT OUTPUT { FEATURE_TYPE AttributeRemover_2_OUTPUT @RemoveAttributes(fme_encoded,_coords_vertex0,_coords,_coords0) $(AttributeRemover_2_LIST_FUNC) } +# ------------------------------------------------------------------------- +FACTORY_DEF * VertexCreatorFactory FACTORY_NAME VertexCreator_2 INPUT FEATURE_TYPE AttributeRemover_2_OUTPUT MODE ADD INDEX "" CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FDIV,FLOAT,Valuex_coords_vertex,VertexCreator_2)" YVAL "@EvaluateExpression(FDIV,FLOAT,Valuey_coords_vertex,VertexCreator_2)" OUTPUT OUTPUT FEATURE_TYPE VertexCreator_2_OUTPUT OUTPUT REJECTED FEATURE_TYPE VertexCreator_2_ +DEFAULT_MACRO _WB_BYPASS_TERMINATION No +FACTORY_DEF * TeeFactory FACTORY_NAME VertexCreator_2_ INPUT FEATURE_TYPE VertexCreator_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, VertexCreator_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) +# ------------------------------------------------------------------------- +FACTORY_DEF {*} AttrSetFactory FACTORY_NAME { AttributeCreator_2 } COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE VertexCreator_2_OUTPUT MULTI_FEATURE_MODE { NO } NULL_ATTR_MODE { NO_OP } ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "position_vertex" "SET_TO" "fin" } OUTPUT { OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT } +FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeCreator_2 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs= OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA= +# ------------------------------------------------------------------------- +FACTORY_DEF * TeeFactory FACTORY_NAME "Vertex_fin (Disabled) Nuker" INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs= +# ------------------------------------------------------------------------- +FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME { DuplicateFilter } COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeCreator_OUTPUT_0_lQ+3mj5tm0E= INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA= KEY_ATTRIBUTES { y_coords_vertex x_coords_vertex } INPUT_IS_ORDERED { NO } PRESERVE_FEATURE_ORDER { PER_OUTPUT_PORT } OUTPUT { DUPLICATE FEATURE_TYPE DuplicateFilter_DUPLICATE } OUTPUT { UNIQUE FEATURE_TYPE DuplicateFilter_UNIQUE } +# ------------------------------------------------------------------------- +# Build the List removal function and regular expression if there was any list attributes to be removed. +# If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the +# normal, non-list removal especially when in Bulk Mode. Note that this computation of the regular expressions is done +# once during mapping file parse time. +INCLUDE [ set listAttributeRemoveRegexps {}; set anyList {no}; foreach attr [split "_coords"] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append listAttributeRemoveRegexps ",^$attr$"; set anyList {yes}; }; if { ${anyList} == {no} } { puts {MACRO AttributeRemover_3_LIST_FUNC } } else { puts "MACRO AttributeRemover_3_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")" }; ] +FACTORY_DEF {*} TeeFactory FACTORY_NAME { AttributeRemover_3 } INPUT FEATURE_TYPE DuplicateFilter_UNIQUE OUTPUT { FEATURE_TYPE AttributeRemover_3_OUTPUT @RemoveAttributes(fme_encoded,_coords,path_seq,_vertex_count,_coordinates) $(AttributeRemover_3_LIST_FUNC) } # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "DuplicateFilter_Duplicate (Disabled) Nuker" INPUT FEATURE_TYPE DuplicateFilter_DUPLICATE # ------------------------------------------------------------------------- -INCLUDE [ set macroLine "MACRO AttributeRemover_3_LIST_EXP "; foreach attr [split "_coords"] { 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 AttributeRemover_3 INPUT FEATURE_TYPE DuplicateFilter_UNIQUE OUTPUT { FEATURE_TYPE AttributeRemover_3_OUTPUT @RemoveAttributes(fme_encoded,_coords,path_seq,_vertex_count,_coordinates) @RemoveAttributes(fme_pcre_match"$(AttributeRemover_3_LIST_EXP)") } +FACTORY_DEF * TeeFactory FACTORY_NAME "2_tronçons (Disabled) Nuker" INPUT FEATURE_TYPE Sorter_3_SORTED_2_h/1Aw1J8BQA= +# ------------------------------------------------------------------------- +# Assumption is that the workspace temp dir has been already set and created. See controldefs.cpp - ControlDefs::writeVisualizerTempDir +DEFAULT_MACRO WORKSPACE_TEMP_DIR +INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {IterativeSnipper__Rejected_} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] +FACTORY_DEF {*} InspectorFactory FACTORY_NAME { IterativeSnipper__Rejected__Prepper } COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE IterativeSnipper_ GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_ATTRIBUTE_PREFIX { IterativeSnipper__Rejected_ } 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 { IterativeSnipper__Rejected__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 NORMALIZE_LIST_ATTRIBUTES_ON_SCHEMA YES CREATE_SPATIAL_INDEX { "$(VISUALIZER_CREATE_SPATIAL_INDEX)" } INSPECTOR { "$(VISUALIZER_CREATE_SPATIAL_INDEX)" } FSC_SCHEMA { fme_rejection_code,varchar200,secteur_id,int32,vertex,buffer,nom_br,buffer,nom_fr,buffer,objectif_km,int32,km_redadeg,int32 } MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 +# ------------------------------------------------------------------------- +# Assumption is that the workspace temp dir has been already set and created. See controldefs.cpp - ControlDefs::writeVisualizerTempDir +DEFAULT_MACRO WORKSPACE_TEMP_DIR +INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {LineCombiner_Line} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] +FACTORY_DEF {*} InspectorFactory FACTORY_NAME { LineCombiner_Line_Prepper } COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_4_SORTED_2_ymgKSdsXa+o= GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_ATTRIBUTE_PREFIX { LineCombiner_Line } 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 { LineCombiner_Line_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 NORMALIZE_LIST_ATTRIBUTES_ON_SCHEMA YES CREATE_SPATIAL_INDEX { "$(VISUALIZER_CREATE_SPATIAL_INDEX)" } INSPECTOR { "$(VISUALIZER_CREATE_SPATIAL_INDEX)" } FSC_SCHEMA { secteur_id,int32,vertex,buffer,nom_br,buffer,nom_fr,buffer,objectif_km,int32,km_redadeg,int32 } MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 +# ------------------------------------------------------------------------- +FACTORY_DEF {*} TeeFactory FACTORY_NAME { BulkAttributeRenamer_2 } INPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_1_dRsdNGVAD0c= OUTPUT { FEATURE_TYPE BulkAttributeRenamer_2_OUTPUT @RenameAttributes(PATTERN_REPLACE, ADDPREFIX, , "", "way_", "", "", "-_", "RENAME", "NONFME") } # ------------------------------------------------------------------------- FACTORY_DEF {*} OverlayFactory FACTORY_NAME PointOnLineOverlayer INPUT LINE FEATURE_TYPE BulkAttributeRenamer_2_OUTPUT INPUT POINT FEATURE_TYPE AttributeRemover_3_OUTPUT TOLERANCE 1 OVERLAP_COUNT_ATTRIBUTE "_overlaps" DEAGGREGATE_INPUT Yes MERGE_ATTRS "YES" ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "ORIGINAL_IF_CONFLICT" INCOMING_PREFIX "" LIST_NAME "" LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE CANDIDATE_LIST_NAME "" CANDIDATE_LIST_ATTRS_TO_INCLUDE { } CANDIDATE_LIST_ATTRS_TO_INCLUDE_MODE MODE COMPLETE OVERLAY_TYPE POINT_ON_LINE OUTPUT POINT FEATURE_TYPE PointOnLineOverlayer_POINT OUTPUT ILLEGAL_GEOM FEATURE_TYPE PointOnLineOverlayer_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No @@ -7449,9 +8197,7 @@ FACTORY_DEF * TeeFactory FACTORY_NAME "PointOnAreaOverlayer POINT Splitter" DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME PointOnAreaOverlayer_ INPUT FEATURE_TYPE PointOnAreaOverlayer_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, PointOnAreaOverlayeroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME "PointOnAreaOverlayer_Point (Disabled) Nuker" INPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_1_x2WusK23Nmo= -# ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME CoordinateSystemSetter INPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_0_ZK7VGYHSo24= OUTPUT FEATURE_TYPE CoordinateSystemSetter_OUTPUT @CoordSys("EPSG:2154") +FACTORY_DEF {*} TeeFactory FACTORY_NAME { CoordinateSystemSetter } INPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_0_ZK7VGYHSo24= OUTPUT { FEATURE_TYPE CoordinateSystemSetter_OUTPUT @CoordSys("EPSG:2154") } # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory INPUT FEATURE_TYPE CoordinateSystemSetter_OUTPUT TEST "Specify Coordinate" == "All Coordinates" OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_PASSED OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_FAILED FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_PASSED INPUT FEATURE_TYPE CoordinateExtractor_PASSED TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_OUTPUT @ZValue("") @Coordinate(x,ALL,""{}.x,FLATTEN_AGGREGATE,YES) @Coordinate(y,ALL,""{}.y,FLATTEN_AGGREGATE,NO) @Coordinate(z,ALL,""{}.z,FLATTEN_AGGREGATE,NO) @Dimension(2) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT @Coordinate(x,ALL,""{}.x,FLATTEN_AGGREGATE,YES) @Coordinate(y,ALL,""{}.y,FLATTEN_AGGREGATE,NO) @Coordinate(z,ALL,""{}.z,FLATTEN_AGGREGATE,NO) @@ -7464,9 +8210,9 @@ FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRounder_AttributeRounder IN DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRounder_ INPUT FEATURE_TYPE AttributeRounder_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, AttributeRounderoutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeCopier INPUT FEATURE_TYPE AttributeRounder_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "pk_y" "pk_lat" "COPY" "" } ATTR_ACTION { "pk_x" "pk_long" "COPY" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeCopier_OUTPUT +FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME { AttributeCopier } INPUT FEATURE_TYPE AttributeRounder_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "pk_y" "pk_lat" "COPY" "" } ATTR_ACTION { "pk_x" "pk_long" "COPY" "" } OUTPUT { OUTPUT FEATURE_TYPE AttributeCopier_OUTPUT } # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME AttributeReprojector INPUT FEATURE_TYPE AttributeCopier_OUTPUT OUTPUT FEATURE_TYPE AttributeReprojector_OUTPUT @Reproject("EPSG:2154","LL-WGS84","pk_long","pk_lat") +FACTORY_DEF {*} TeeFactory FACTORY_NAME { AttributeReprojector } INPUT FEATURE_TYPE AttributeCopier_OUTPUT OUTPUT { FEATURE_TYPE AttributeReprojector_OUTPUT @Reproject("EPSG:2154","LL-WGS84","pk_long","pk_lat") } # ------------------------------------------------------------------------- Tcl2 proc AttributeRounder_2_round {places} { set attrs [split {longueur} { }]; foreach attr $attrs { set attr [FME_DecodeText $attr]; set original [FME_GetAttribute $attr]; if {$original == {} || [FME_IsAttributeNull $attr]} { FME_LogMessage fme_warn 917357 {AttributeRounder_2} $attr; continue; }; set comment {"do not attempt rounding if not a number"}; if {[string is double $original] == 0} {continue}; if { [catch { set multiplier [expr pow(10,$places)]; set result [expr "round($original * $multiplier) / $multiplier"]; set comment {"when rounding integers, chop trailing .0 from the value"}; if {$places == 0 || [string is wideinteger $original] == 1} { set result [regsub {[.]0*$} $result {}]; }; };] == 0 } { FME_SetAttribute $attr $result; } else { FME_LogMessage fme_warn 917350 {AttributeRounder_2} $attr; }; }; } FACTORY_DEF * TestFactory FACTORY_NAME AttributeRounder_2 INPUT FEATURE_TYPE AttributeReprojector_OUTPUT TEST "0" TYPE INT ENCODED OUTPUT FAILED FEATURE_TYPE AttributeRounder_2_ fme_rejection_code "INVALID_PARAMETER_DECIMAL_PLACES" OUTPUT PASSED FEATURE_TYPE __toOutput__ @@ -7474,99 +8220,47 @@ FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRounder_2_AttributeRounder DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRounder_2_ INPUT FEATURE_TYPE AttributeRounder_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, AttributeRounder_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeRenamer INPUT FEATURE_TYPE AttributeRounder_2_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "municipality_nom" "municipality_name_fr" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "longueur" "length_real" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "km_redadeg" "length_theorical" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "municipality_admincode" "municipality_admincode" "RENAME_SET_DEFAULT" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeRenamer_OUTPUT +FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME { AttributeRenamer } INPUT FEATURE_TYPE AttributeRounder_2_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "municipality_nom" "municipality_name_fr" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "longueur" "length_real" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "km_redadeg" "length_theorical" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "municipality_admincode" "municipality_admincode" "RENAME_SET_DEFAULT" "" } OUTPUT { OUTPUT FEATURE_TYPE AttributeRenamer_OUTPUT } # ------------------------------------------------------------------------- -FACTORY_DEF * SortFactory FACTORY_NAME Sorter_2 INPUT FEATURE_TYPE AttributeRenamer_OUTPUT SORT_BY secteur_id NUMERIC ASCENDING troncon_id NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_2_SORTED +FACTORY_DEF {*} SortFactory FACTORY_NAME { Sorter_2 } INPUT FEATURE_TYPE AttributeRenamer_OUTPUT FLUSH_WHEN_GROUPS_CHANGE { No } SORT_BY { secteur_id NUMERIC ASCENDING troncon_id NUMERIC ASCENDING } OUTPUT { SORTED FEATURE_TYPE Sorter_2_SORTED } # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Local} == {Local} } { set domainPrefix [FME_EncodeText {Counter_}]; }; puts "MACRO Counter_FULL_DOMAIN ${domainPrefix}pk_id"; ] -FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_2_SORTED FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_FULL_DOMAIN),"@EvaluateExpression(FDIV,FLOAT,$(START$encode),Counter)") RESULT_ATTRIBUTE "pk_id" OUTPUT COMPLETE FEATURE_TYPE Counter_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_ +FACTORY_DEF {*} ExecuteFunctionFactory FACTORY_NAME { Counter_Rejector } COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_2_SORTED FUNCTION_DEFINITION { @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_FULL_DOMAIN),"@EvaluateExpression(FDIV,FLOAT,$(START$encode),Counter)") } RESULT_ATTRIBUTE { "pk_id" } FEATURE_TABLE_SHIM_SUPPORT Yes OUTPUT { COMPLETE FEATURE_TYPE Counter_OUTPUT } OUTPUT { REJECTED FEATURE_TYPE Counter_ } FACTORY_DEF * TeeFactory FACTORY_NAME "Counter OUTPUT Splitter" INPUT FEATURE_TYPE Counter_OUTPUT OUTPUT FEATURE_TYPE Counter_OUTPUT_0_/sTFA1dnbN8= OUTPUT FEATURE_TYPE Counter_OUTPUT_1_bU15iCfwGHA= OUTPUT FEATURE_TYPE Counter_OUTPUT_2_pA+nVUfM3k0= OUTPUT FEATURE_TYPE Counter_OUTPUT_3_WeyqcBK0djk= DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME Counter_ INPUT FEATURE_TYPE Counter_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, CounteroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- +FACTORY_DEF * TeeFactory FACTORY_NAME "pk (Disabled) Nuker" INPUT FEATURE_TYPE Counter_OUTPUT_0_/sTFA1dnbN8= +# ------------------------------------------------------------------------- FACTORY_DEF {*} ConnectionFactory FACTORY_NAME LineBuilder INPUT FEATURE_TYPE Counter_OUTPUT_2_pA+nVUfM3k0= ACCUM_INPUT_ATTRS One LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE REMOVE_DUPLICATES NO OUTPUT LINE FEATURE_TYPE LineBuilder_LINE OUTPUT BAD_INPUT FEATURE_TYPE LineBuilder_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME LineBuilder_ INPUT FEATURE_TYPE LineBuilder_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, LineBuilderoutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME "pk (Disabled) Nuker" INPUT FEATURE_TYPE Counter_OUTPUT_0_/sTFA1dnbN8= -# ------------------------------------------------------------------------- -INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] -FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger INPUT REFERENCER FEATURE_TYPE Sorter_4_SORTED_0_bGs2+JFzNGU= INPUT REFERENCEE FEATURE_TYPE AttributeRenamer_2_OUTPUT_0_XZPnkgk0+40= REFERENCE_INFO $(FeatureMerger_REFERENCE_INFO) REFERENCE_TABLE @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger) @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger) AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_MERGED OUTPUT REJECTED FEATURE_TYPE FeatureMerger_ -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME FeatureMerger_ INPUT FEATURE_TYPE FeatureMerger_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, FeatureMergeroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_2_LengthCalculatorInput INPUT FEATURE_TYPE FeatureMerger_MERGED OUTPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ -FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_2_LengthCalculator INPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "km_reels" @Length(REJECTABLE,2,"1") -FACTORY_DEF * TestFactory FACTORY_NAME LengthCalculator_2_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT PASSED FEATURE_TYPE LengthCalculator_2_ @RemoveAttributes(___fme_rejection_code___) OUTPUT FAILED FEATURE_TYPE LengthCalculator_2_OUTPUT @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_2_ INPUT FEATURE_TYPE LengthCalculator_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, LengthCalculator_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -Tcl2 regsub {^[^a-zA-Z]*([a-zA-Z]).*} {.2f} {\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 {km_reels} {,}]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set length [string length $attrVal]; if {$length > 0} { FME_SetAttribute $attr [format %.2f [{StringFormatter_getAttribute} $attr]]; }; }; } -FACTORY_DEF * TeeFactory FACTORY_NAME StringFormatter INPUT FEATURE_TYPE LengthCalculator_2_OUTPUT OUTPUT FEATURE_TYPE StringFormatter_OUTPUT @Tcl2(StringFormatter_formatter) -# ------------------------------------------------------------------------- -FACTORY_DEF * SortFactory FACTORY_NAME Sorter INPUT FEATURE_TYPE StringFormatter_OUTPUT SORT_BY secteur_id NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_SORTED -FACTORY_DEF * TeeFactory FACTORY_NAME "Sorter SORTED Splitter" INPUT FEATURE_TYPE Sorter_SORTED OUTPUT FEATURE_TYPE Sorter_SORTED_0_3iJewJ+xcb8= OUTPUT FEATURE_TYPE Sorter_SORTED_1_AdG4IKX8gxs= OUTPUT FEATURE_TYPE Sorter_SORTED_2_WrWvotwy67E= -# ------------------------------------------------------------------------- -INCLUDE TCL - if {{OUTGOING} == {OUTGOING}} { set attrs [list {km_reels}]; } else { set attrAll {}; if {[string length $attrAll] == 0} { return; }; set attrs [split {} { }]; }; if {{NO_OP} == {NO_OP}} { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV; } else { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV_MULTI_FEATURE; }; foreach attr $attrs { lappend parmList $attr; lappend parmList {roundLength10001}; lappend parmList {FLOAT}; }; lappend parmList {ExpressionEvaluator_2}; if {{NO_OP} == {OTHER_NULL_VALUE_2}} { lappend parmList {NO_OP}; lappend parmList {}; lappend parmList {0}; }; puts "MACRO __fme_expressionevaluator_evaluateArgs__ [join $parmList ,]"; -END_INCLUDE -FACTORY_DEF * TeeFactory FACTORY_NAME ExpressionEvaluator_2 INPUT FEATURE_TYPE Sorter_SORTED_2_WrWvotwy67E= OUTPUT FEATURE_TYPE ExpressionEvaluator_2_OUTPUT @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) -MACRO __fme_expressionevaluator_evaluateArgs__ -# ------------------------------------------------------------------------- -FACTORY_DEF * GeneralizeFactory FACTORY_NAME Generalizer_2 INPUT FEATURE_TYPE ExpressionEvaluator_2_OUTPUT REJECT_INVALID_GEOM Yes ALLOW_NULLS yes REJECT_NOT_DEFAULT Yes PRESERVE_SHARED_BOUNDARIES Yes PRESERVE_PATH_SEGMENTS YES ALGORITHM Douglas TOLERANCE "10" CLEANING_TOLERANCE NONE OUTPUT GENERALIZED FEATURE_TYPE Generalizer_2_OUTPUT OUTPUT REJECTED FEATURE_TYPE Generalizer_2_ -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME Generalizer_2_ INPUT FEATURE_TYPE Generalizer_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, Generalizer_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -DEFAULT_MACRO Aggregator_BREAK_ATTR -INCLUDE [if {"No" == "Yes"} {puts {MACRO Aggregator_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE secteur_id} }] -FACTORY_DEF {*} AggregateFactory FACTORY_NAME Aggregator INPUT FEATURE_TYPE Sorter_SORTED_1_AdG4IKX8gxs= MODE ONE_LEVEL GROUP_BY { secteur_id } $(Aggregator_BREAK_ATTR) REMOVE_GEOMETRY NO ACCUMULATE_ATTRIBUTES One LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE SEPARATOR PRODUCE_MULTIS YES OUTPUT AGGREGATE FEATURE_TYPE Aggregator_AGGREGATE -# ------------------------------------------------------------------------- -INCLUDE TCL - if {{OUTGOING} == {OUTGOING}} { set attrs [list {km_reels}]; } else { set attrAll {}; if {[string length $attrAll] == 0} { return; }; set attrs [split {} { }]; }; if {{NO_OP} == {NO_OP}} { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV; } else { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV_MULTI_FEATURE; }; foreach attr $attrs { lappend parmList $attr; lappend parmList {roundLength10001}; lappend parmList {FLOAT}; }; lappend parmList {ExpressionEvaluator}; if {{NO_OP} == {OTHER_NULL_VALUE_2}} { lappend parmList {NO_OP}; lappend parmList {}; lappend parmList {0}; }; puts "MACRO __fme_expressionevaluator_evaluateArgs__ [join $parmList ,]"; -END_INCLUDE -FACTORY_DEF * TeeFactory FACTORY_NAME ExpressionEvaluator INPUT FEATURE_TYPE Aggregator_AGGREGATE OUTPUT FEATURE_TYPE ExpressionEvaluator_OUTPUT @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) -MACRO __fme_expressionevaluator_evaluateArgs__ -# ------------------------------------------------------------------------- -FACTORY_DEF * GeneralizeFactory FACTORY_NAME Generalizer INPUT FEATURE_TYPE ExpressionEvaluator_OUTPUT REJECT_INVALID_GEOM Yes ALLOW_NULLS yes REJECT_NOT_DEFAULT Yes PRESERVE_SHARED_BOUNDARIES Yes PRESERVE_PATH_SEGMENTS YES ALGORITHM Douglas TOLERANCE "10" CLEANING_TOLERANCE NONE OUTPUT GENERALIZED FEATURE_TYPE Generalizer_OUTPUT OUTPUT REJECTED FEATURE_TYPE Generalizer_ -DEFAULT_MACRO _WB_BYPASS_TERMINATION No -FACTORY_DEF * TeeFactory FACTORY_NAME Generalizer_ INPUT FEATURE_TYPE Generalizer_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, GeneralizeroutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) -# ------------------------------------------------------------------------- -# Assumption is that the workspace temp dir has been already set and created. See controldefs.cpp - ControlDefs::writeVisualizerTempDir -DEFAULT_MACRO WORKSPACE_TEMP_DIR -INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {secteurs} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] -FACTORY_DEF {*} InspectorFactory FACTORY_NAME secteurs_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_SORTED_0_3iJewJ+xcb8= GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { secteurs } 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 secteurs_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 secteur_id,varchar255,nom_br,varchar255,nom_fr,varchar255,objectif_km,varchar255,km_redadeg,varchar255,km_reels,varchar255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 +FACTORY_DEF * TeeFactory FACTORY_NAME "PointOnAreaOverlayer_Point (Disabled) Nuker" INPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_1_x2WusK23Nmo= # ------------------------------------------------------------------------- -FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC Generalizer_2_OUTPUT TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,1,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_secteurs.geojson COORDINATE_SYSTEM EPSG:4326 GEOMETRY ROUTE FME_GENERIC Counter_OUTPUT_1_bU15iCfwGHA= TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_auto COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC LineBuilder_LINE TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_sens_verif COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC Sorter_3_SORTED_0_fFLYyOM90A0= TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_troncons COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC Generalizer_OUTPUT TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_secteurs COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC Counter_OUTPUT_3_WeyqcBK0djk= TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,3,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_auto COORDINATE_SYSTEM EPSG:4326 GEOMETRY ROUTE FME_GENERIC Sorter_3_SORTED_3_XoGbwsXKD4g= TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,2,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_troncons COORDINATE_SYSTEM EPSG:4326 GEOMETRY 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 * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC Generalizer_2_OUTPUT TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,1,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_secteurs.geojson COORDINATE_SYSTEM EPSG:4326 GEOMETRY ROUTE FME_GENERIC Sorter_3_SORTED_3_XoGbwsXKD4g= TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,2,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_troncons COORDINATE_SYSTEM EPSG:4326 GEOMETRY ROUTE FME_GENERIC Counter_OUTPUT_1_bU15iCfwGHA= TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_auto COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC LineBuilder_LINE TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_sens_verif COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC Sorter_3_SORTED_0_fFLYyOM90A0= TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_troncons COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC Generalizer_OUTPUT TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__phase_3_trace_secteurs COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC Counter_OUTPUT_3_WeyqcBK0djk= TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,3,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_auto COORDINATE_SYSTEM EPSG:4326 GEOMETRY 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 FACTORY_NAME VisualizerProcessor 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 \042$theFile\042 & \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; }; }; ") +DEFAULT_MACRO FME_LAUNCH_VIEWER_APP NO +FACTORY_DEF * CreationFactory FACTORY_NAME VisualizerProcessor CREATE_AT_END OUTPUT FEATURE_TYPE __NUKEME__ @TCL("if {{$(FME_LAUNCH_VIEWER_APP)} == {YES}} { 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 \042$theFile\042 & \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 FACTORY_NAME VisualizerCleaner INPUT FEATURE_TYPE __NUKEME__ # ------------------------------------------------------------------------- -POSTGIS_2_DEF phase_3_pk_auto postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid 2154 postgis_vacuum_analyze NO postgis_allow_serial_writing NO pk_id text pk_x text pk_y text pk_long text pk_lat text length_real text length_theorical text secteur_id int8 municipality_admincode text municipality_postcode text municipality_name_fr text municipality_name_br text way_osm_id text way_highway text way_type text way_oneway text way_ref text way_name_fr text way_name_br text -# ------------------------------------------------------------------------- -POSTGIS_2_DEF phase_3_trace_secteurs postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid "" postgis_vacuum_analyze NO postgis_allow_serial_writing NO secteur_id int2 nom_fr text nom_br text km_reels numeric(20,10) -# ------------------------------------------------------------------------- POSTGIS_2_DEF phase_3_trace_troncons postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid "" postgis_vacuum_analyze NO postgis_allow_serial_writing NO troncon_id int2 secteur_id int2 # ------------------------------------------------------------------------- POSTGIS_2_DEF phase_3_pk_sens_verif postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid 2154 postgis_vacuum_analyze NO postgis_allow_serial_writing NO secteur_id int4 # ------------------------------------------------------------------------- +POSTGIS_2_DEF phase_3_pk_auto postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid 2154 postgis_vacuum_analyze NO postgis_allow_serial_writing NO pk_id text pk_x text pk_y text pk_long text pk_lat text length_real text length_theorical text secteur_id int8 municipality_admincode text municipality_postcode text municipality_name_fr text municipality_name_br text way_osm_id text way_highway text way_type text way_oneway text way_ref text way_name_fr text way_name_br text +# ------------------------------------------------------------------------- +POSTGIS_2_DEF phase_3_trace_secteurs postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid "" postgis_vacuum_analyze NO postgis_allow_serial_writing NO secteur_id int2 nom_fr text nom_br text km_reels numeric(20,10) +# ------------------------------------------------------------------------- GEOJSON_1_DEF phase_3_trace_secteurs.geojson secteur_id int nom_fr string nom_br string km_reels float # ------------------------------------------------------------------------- GEOJSON_2_DEF phase_3_trace_troncons troncon_id int secteur_id int