#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
GUI IGNORE GPS_WAY_VIS_IGC_1,GPS_WALL_VIS_IGC_1,GPS_APTH_VIS_IGC_1,BARO_WAY_VIS_IGC_1,BARO_WALL_VIS_IGC_1,BARO_PATH_VIS_IGC_1,SourceDataset_IGC_1,DestDataset_KML_1,KML_DOCUMENT_NAME_KML_1,KML_DOCUMENT_DESC_KML_1,KML_DOCUMENT_VISIBILITY_KML_1,KML_ATTR_IN_DESCRIPTION_KML_1,KML_HTML_DESCRIPTIONS_KML_1,KML_DETECT_RASTERS_KML_1
DEFAULT_MACRO SourceDataset_IGC $(FME_MF_DIR)Flightdata\flight_demo_switzerland.igc
DEFAULT_MACRO DestDataset_KML $(FME_MF_DIR)Flightdata\flight_demo_japan.kmz
DEFAULT_MACRO GPS_WALL_VIS 1
DEFAULT_MACRO GPS_APTH_VIS 0
DEFAULT_MACRO BARO_WALL_VIS 1
DEFAULT_MACRO BARO_PATH_VIS 0
INCLUDE [ if {{$(SourceDataset_IGC)} == {}} { puts_real {Parameter SourceDataset_IGC must be given a value on the commandline.}; exit 1; }; ]
INCLUDE [ if {{$(DestDataset_KML)} == {}} { puts_real {Parameter DestDataset_KML must be given a value on the commandline.}; exit 1; }; ]
#! START_HEADER
FME_MINIMUM_BUILD 2651
#####################################################
# IGC_CF_2_KML read IGC GPS Track data using Custom Format
#
# Author: Michael Habarta
# Date: Sep 06
#
#####################################################
#! START_WB_HEADER
READER_TYPE IGC
READER_KEYWORD IGC_1
WRITER_TYPE MULTI_WRITER
MULTI_WRITER_DATASET_ORDER BY_ID
MULTI_WRITER_FIRST_WRITER_ID 0
MULTI_WRITER_TYPE{0} MULTI_WRITER
MULTI_WRITER_KEYWORD{0} KML_1_FANOUT
KML_1_FANOUT_TYPE{*} KML
KML_1_FANOUT_KEYWORD{*} KML_1
KML_1_FANOUT_ID_ATTRIBUTE file
KML_1_FANOUT_DATASET_ORDER BY_INPUT
KML_1_DATASET{*} "C:\Documents and Settings\habarta\My Documents\My FME Workspaces\KML_3D\IGC\Flightdata\/\.kmz"
MULTI_WRITER_TYPE{1} FDS
MULTI_WRITER_KEYWORD{1} FDS_1
#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "IGC_1"
#! END_WB_HEADER
#! START_SOURCE_HEADER IGC IGC_1
DEFAULT_MACRO GPS_WAY_VIS_IGC_1 1
GUI OPTIONAL TEXT GPS_WAY_VIS_IGC_1 GPS Waypoint Visibility:
IGC_1_GPS_WAY_VIS $(GPS_WAY_VIS_IGC_1)
DEFAULT_MACRO GPS_WALL_VIS_IGC_1 1
GUI OPTIONAL TEXT GPS_WALL_VIS_IGC_1 GPS Wall Visibility:
IGC_1_GPS_WALL_VIS $(GPS_WALL_VIS_IGC_1)
DEFAULT_MACRO GPS_APTH_VIS_IGC_1 0
GUI OPTIONAL TEXT GPS_APTH_VIS_IGC_1 GPS Path Visibility:
IGC_1_GPS_APTH_VIS $(GPS_APTH_VIS_IGC_1)
DEFAULT_MACRO BARO_WAY_VIS_IGC_1 1
GUI OPTIONAL TEXT BARO_WAY_VIS_IGC_1 Barometric Waypoint Visibility:
IGC_1_BARO_WAY_VIS $(BARO_WAY_VIS_IGC_1)
DEFAULT_MACRO BARO_WALL_VIS_IGC_1 1
GUI OPTIONAL TEXT BARO_WALL_VIS_IGC_1 Barometric Wall Visibility:
IGC_1_BARO_WALL_VIS $(BARO_WALL_VIS_IGC_1)
DEFAULT_MACRO BARO_PATH_VIS_IGC_1 0
GUI OPTIONAL TEXT BARO_PATH_VIS_IGC_1 Barometric Path Visibility:
IGC_1_BARO_PATH_VIS $(BARO_PATH_VIS_IGC_1)
#! END_SOURCE_HEADER
#! START_WB_HEADER
DEFAULT_MACRO SourceDataset
INCLUDE [ if {"$(SourceDataset)" != ""} { \
puts {DEFAULT_MACRO SourceDataset_IGC_1 $(SourceDataset)} \
} ]
#! END_WB_HEADER
#! START_SOURCE_HEADER IGC IGC_1
DEFAULT_MACRO SourceDataset_IGC_1 $(SourceDataset_IGC)
GUI MULTIFILE SourceDataset_IGC_1 IGC_GPS_Track_files(*.igc)|*.igc|All_files(*.*)|*.* IGC File(s):
IGC_1_DATASET "$(SourceDataset_IGC_1)"
IGC_1_SourceDataset_IGC "$(SourceDataset_IGC_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "KML_1"
#! END_WB_HEADER
#! START_DEST_HEADER KML KML_1
#! END_DEST_HEADER
#! START_WB_HEADER
DEFAULT_MACRO DestDataset
INCLUDE [ if {"$(DestDataset)" != ""} { \
puts {DEFAULT_MACRO DestDataset_KML_1 $(DestDataset)} \
} ]
#! END_WB_HEADER
#! START_DEST_HEADER KML KML_1
DEFAULT_MACRO DestDataset_KML_1 $(DestDataset_KML)
GUI FILENAME DestDataset_KML_1 KML_Files(*.kml)|*.kml|All_Files(*.*)|*.* Destination KML Dataset:
DEFAULT_MACRO KML_DOCUMENT_NAME_KML_1
GUI OPTIONAL TEXT KML_DOCUMENT_NAME_KML_1 Document name:
KML_1_DOCUMENT_NAME "$(KML_DOCUMENT_NAME_KML_1)"
DEFAULT_MACRO KML_DOCUMENT_DESC_KML_1 IGC Data visualized by FME
GUI OPTIONAL TEXT KML_DOCUMENT_DESC_KML_1 Document description:
KML_1_DOCUMENT_DESC "$(KML_DOCUMENT_DESC_KML_1)"
DEFAULT_MACRO KML_DOCUMENT_VISIBILITY_KML_1 yes
GUI OPTIONAL CHOICE KML_DOCUMENT_VISIBILITY_KML_1 yes%no Document visible on load:
KML_1_DOCUMENT_VISIBILITY "$(KML_DOCUMENT_VISIBILITY_KML_1)"
DEFAULT_MACRO KML_ATTR_IN_DESCRIPTION_KML_1 yes
GUI OPTIONAL CHOICE KML_ATTR_IN_DESCRIPTION_KML_1 yes%no Attribute tables in description field:
KML_1_ATTR_IN_DESCRIPTION "$(KML_ATTR_IN_DESCRIPTION_KML_1)"
DEFAULT_MACRO KML_HTML_DESCRIPTIONS_KML_1 yes
GUI OPTIONAL CHOICE KML_HTML_DESCRIPTIONS_KML_1 yes%no Use HTML description fields:
KML_1_HTML_DESCRIPTIONS "$(KML_HTML_DESCRIPTIONS_KML_1)"
DEFAULT_MACRO KML_DETECT_RASTERS_KML_1 yes
GUI OPTIONAL CHOICE KML_DETECT_RASTERS_KML_1 yes%no Automatically detect raster features:
KML_1_DETECT_RASTERS "$(KML_DETECT_RASTERS_KML_1)"
KML_1_OUTPUT_SCHEMA no
KML_1_DATASET "$(DestDataset_KML_1)"
#! END_DEST_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "FDS_1"
#! END_WB_HEADER
#! START_DEST_HEADER FDS FDS_1
# ============================================================================
# Just fake out a macro, its not used
#! END_DEST_HEADER
#! START_WB_HEADER
DEFAULT_MACRO DestDataset
INCLUDE [ if {"$(DestDataset)" != ""} { \
puts {DEFAULT_MACRO DestDataset_FDS_1 $(DestDataset)} \
} ]
#! END_WB_HEADER
#! START_DEST_HEADER FDS FDS_1
DEFAULT_MACRO DestDataset_FDS_1 NULL
FDS_1_DATASET "$(DestDataset_FDS_1)"
#! END_DEST_HEADER
#! END_HEADER
LOG_FILENAME "$(FME_MF_DIR)IGC_CF_2_KML.log"
LOG_APPEND NO
DEFAULT_MACRO DATASET_KEYWORD_IGC_1 IGC_1
DEFAULT_MACRO DATASET_KEYWORD_KML_1 KML_1
DEFAULT_MACRO DATASET_KEYWORD_FDS_1 FDS_1
# -------------------------------------------------------------------------
IGC_1_READER_META_ATTRIBUTES fme_feature_type
# -------------------------------------------------------------------------
KML_1_COORDINATE_SYSTEM LL84
FDS_1_COORDINATE_SYSTEM LL84
MULTI_READER_CONTINUE_ON_READER_FAILURE No
# -------------------------------------------------------------------------
MACRO WORKSPACE_NAME IGC_CF_2_KML
# -------------------------------------------------------------------------
IGC_1_DEF waypoints_barometric fme_type fme_point time char(20) longitude char(20) latitude char(20) altitude_gps char(20) altitude_baro char(20) line char(20) text_line_number char(20) file char(255) head_001 char(255) head_002 char(255) head_003 char(255) head_004 char(255) head_005 char(255) head_006 char(255) head_007 char(255) head_008 char(255) head_009 char(255) head_010 char(255) head_011 char(255) head_012 char(255) head_013 char(255) head_014 char(255) head_015 char(255) head_016 char(255) head_017 char(255) head_018 char(255) head_019 char(255) head_020 char(255) head_021 char(255) head_022 char(255) head_023 char(255) head_024 char(255) head_025 char(255) head_026 char(255) head_027 char(255) head_028 char(255) head_029 char(255) head_030 char(255)
# -------------------------------------------------------------------------
IGC_1_DEF path_GPS fme_type fme_line
# -------------------------------------------------------------------------
IGC_1_DEF waypoints_GPS fme_type fme_point time char(20) longitude char(20) latitude char(20) altitude_gps char(20) altitude_baro char(20) line char(20) text_line_number char(20) file char(255) head_001 char(255) head_002 char(255) head_003 char(255) head_004 char(255) head_005 char(255) head_006 char(255) head_007 char(255) head_008 char(255) head_009 char(255) head_010 char(255) head_011 char(255) head_012 char(255) head_013 char(255) head_014 char(255) head_015 char(255) head_016 char(255) head_017 char(255) head_018 char(255) head_019 char(255) head_020 char(255) head_021 char(255) head_022 char(255) head_023 char(255) head_024 char(255) head_025 char(255) head_026 char(255) head_027 char(255) head_028 char(255) head_029 char(255) head_030 char(255)
# -------------------------------------------------------------------------
IGC_1_DEF path_barometric fme_type fme_line
# -------------------------------------------------------------------------
Lookup ___KnownFeatureTypes___ waypoints_barometric yes path_GPS yes waypoints_GPS yes path_barometric yes "" no
# -------------------------------------------------------------------------
FACTORY_DEF * TestFactory FACTORY_NAME "Unexpected Input Remover" INPUT FEATURE_TYPE * TEST @Lookup(___KnownFeatureTypes___,@FeatureType()) == yes OUTPUT PASSED FEATURE_TYPE *
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "Source -> Generic" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * @Transform(IGC,FME_GENERIC,ALIAS_GEOMETRY)
# -------------------------------------------------------------------------
# Expose all attributes. This ensures that if you expose fme_dataset, you will get it.
READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTEEXPOSER_2 INPUT FEATURE_TYPE path_barometric OUTPUT FEATURE_TYPE ATTRIBUTEEXPOSER_2_OUTPUT
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "KML_STYLER_PATH_BARO INPUT Input Collector" INPUT FEATURE_TYPE ATTRIBUTEEXPOSER_2_OUTPUT OUTPUT FEATURE_TYPE KML_STYLER_PATH_BARO_INPUT
MACRO KML_STYLER_PATH_WORKSPACE_NAME KML_STYLER_PATH_BARO
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_XFORMER_NAME KML_STYLER_PATH_BARO
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLOR 0.992156862745098,0.32156862745098,0
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLORMODE normal
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_OPACITY 0.5
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_WIDTH 2
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_SUB_DOC_NAME KML_STYLER_PATH
DEFAULT_MACRO KML_STYLER_PATH_WORKSPACE_NAME ""
FACTORY_DEF * TeeFactory FACTORY_NAME "$(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT Input Splitter" INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT
# -------------------------------------------------------------------------
# Expose all attributes. This ensures that if you expose fme_dataset, you will get it.
READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
FACTORY_DEF * TeeFactory FACTORY_NAME $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTEEXPOSER INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTEEXPOSER_OUTPUT
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTEEXPOSER_OUTPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER_STYLED kml_common_style $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER kml_icon "" kml_icon_color "" kml_icon_opacity "" kml_IconStyle.colorMode "normal" kml_IconStyle.scale "" fme_color "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLOR)" fme_pen_opacity "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_OPACITY)" kml_LineStyle.colorMode "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLORMODE)" kml_LineStyle.width "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_WIDTH)" fme_fill_color "1,0.501960784313726,0" fme_fill_opacity "0.4" kml_PolyStyle.colorMode "normal" kml_LabelStyle.scale "0"
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTESETTER INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER_STYLED OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTESETTER_OUTPUT @SupplyAttributes(kml_altitudeMode,"absolute")
FACTORY_DEF * TeeFactory FACTORY_NAME "$(KML_STYLER_PATH_WORKSPACE_NAME)_OUTPUT Output Collector" INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTESETTER_OUTPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_OUTPUT
FACTORY_DEF * TeeFactory FACTORY_NAME "KML_STYLER_PATH_BARO OUTPUT Output Renamer/Nuker" INPUT FEATURE_TYPE KML_STYLER_PATH_BARO_OUTPUT OUTPUT FEATURE_TYPE KML_STYLER_PATH_BARO_OUTPUT
FACTORY_DEF * TeeFactory FACTORY_NAME "KML_STYLER_PATH_BARO OUTPUT Splitter" INPUT FEATURE_TYPE KML_STYLER_PATH_BARO_OUTPUT OUTPUT FEATURE_TYPE KML_STYLER_PATH_BARO_OUTPUT_0 OUTPUT FEATURE_TYPE KML_STYLER_PATH_BARO_OUTPUT_1
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_11 INPUT FEATURE_TYPE KML_STYLER_PATH_BARO_OUTPUT_1 OUTPUT FEATURE_TYPE ATTRIBUTESETTER_11_OUTPUT @SupplyAttributes(kml_extrude,"0")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_BARO_PATH_VIS INPUT FEATURE_TYPE ATTRIBUTESETTER_11_OUTPUT OUTPUT FEATURE_TYPE ATTRIBUTESETTER_BARO_PATH_VIS_OUTPUT @SupplyAttributes(kml_visibility,"$(BARO_PATH_VIS)")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_10 INPUT FEATURE_TYPE KML_STYLER_PATH_BARO_OUTPUT_0 OUTPUT FEATURE_TYPE ATTRIBUTESETTER_10_OUTPUT @SupplyAttributes(kml_extrude,"1")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_BARO_WALL_VIS INPUT FEATURE_TYPE ATTRIBUTESETTER_10_OUTPUT OUTPUT FEATURE_TYPE ATTRIBUTESETTER_BARO_WALL_VIS_OUTPUT @SupplyAttributes(kml_visibility,"$(BARO_WALL_VIS)")
# -------------------------------------------------------------------------
# Expose all attributes. This ensures that if you expose fme_dataset, you will get it.
READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTEEXPOSER INPUT FEATURE_TYPE path_GPS OUTPUT FEATURE_TYPE ATTRIBUTEEXPOSER_OUTPUT
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "KML_STYLER_PATH_GPS INPUT Input Collector" INPUT FEATURE_TYPE ATTRIBUTEEXPOSER_OUTPUT OUTPUT FEATURE_TYPE KML_STYLER_PATH_GPS_INPUT
MACRO KML_STYLER_PATH_WORKSPACE_NAME KML_STYLER_PATH_GPS
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_XFORMER_NAME KML_STYLER_PATH_GPS
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLOR 1,1,0
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLORMODE normal
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_OPACITY 0.5
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_WIDTH 4
MACRO $(KML_STYLER_PATH_WORKSPACE_NAME)_SUB_DOC_NAME KML_STYLER_PATH
DEFAULT_MACRO KML_STYLER_PATH_WORKSPACE_NAME ""
FACTORY_DEF * TeeFactory FACTORY_NAME "$(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT Input Splitter" INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT
# -------------------------------------------------------------------------
# Expose all attributes. This ensures that if you expose fme_dataset, you will get it.
READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
FACTORY_DEF * TeeFactory FACTORY_NAME $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTEEXPOSER INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_INPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTEEXPOSER_OUTPUT
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTEEXPOSER_OUTPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER_STYLED kml_common_style $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER kml_icon "" kml_icon_color "" kml_icon_opacity "" kml_IconStyle.colorMode "normal" kml_IconStyle.scale "" fme_color "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLOR)" fme_pen_opacity "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_OPACITY)" kml_LineStyle.colorMode "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_COLORMODE)" kml_LineStyle.width "$($(KML_STYLER_PATH_WORKSPACE_NAME)_LINE_WIDTH)" fme_fill_color "1,0.501960784313726,0" fme_fill_opacity "0.4" kml_PolyStyle.colorMode "normal" kml_LabelStyle.scale "0"
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTESETTER INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_KMLSTYLER_STYLED OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTESETTER_OUTPUT @SupplyAttributes(kml_altitudeMode,"absolute")
FACTORY_DEF * TeeFactory FACTORY_NAME "$(KML_STYLER_PATH_WORKSPACE_NAME)_OUTPUT Output Collector" INPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_ATTRIBUTESETTER_OUTPUT OUTPUT FEATURE_TYPE $(KML_STYLER_PATH_WORKSPACE_NAME)_OUTPUT
FACTORY_DEF * TeeFactory FACTORY_NAME "KML_STYLER_PATH_GPS OUTPUT Output Renamer/Nuker" INPUT FEATURE_TYPE KML_STYLER_PATH_GPS_OUTPUT OUTPUT FEATURE_TYPE KML_STYLER_PATH_GPS_OUTPUT
FACTORY_DEF * TeeFactory FACTORY_NAME "KML_STYLER_PATH_GPS OUTPUT Splitter" INPUT FEATURE_TYPE KML_STYLER_PATH_GPS_OUTPUT OUTPUT FEATURE_TYPE KML_STYLER_PATH_GPS_OUTPUT_0 OUTPUT FEATURE_TYPE KML_STYLER_PATH_GPS_OUTPUT_1
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_7 INPUT FEATURE_TYPE KML_STYLER_PATH_GPS_OUTPUT_1 OUTPUT FEATURE_TYPE ATTRIBUTESETTER_7_OUTPUT @SupplyAttributes(kml_extrude,"0")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_GPS_PATH INPUT FEATURE_TYPE ATTRIBUTESETTER_7_OUTPUT OUTPUT FEATURE_TYPE ATTRIBUTESETTER_GPS_PATH_OUTPUT @SupplyAttributes(kml_visibility,"$(GPS_APTH_VIS)")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_4 INPUT FEATURE_TYPE KML_STYLER_PATH_GPS_OUTPUT_0 OUTPUT FEATURE_TYPE ATTRIBUTESETTER_4_OUTPUT @SupplyAttributes(kml_extrude,"1")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTESETTER_GPS_WALL_VIS INPUT FEATURE_TYPE ATTRIBUTESETTER_4_OUTPUT OUTPUT FEATURE_TYPE ATTRIBUTESETTER_GPS_WALL_VIS_OUTPUT @SupplyAttributes(kml_visibility,"$(GPS_WALL_VIS)")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTECOPIER_BARO INPUT FEATURE_TYPE waypoints_barometric OUTPUT FEATURE_TYPE ATTRIBUTECOPIER_BARO_OUTPUT @CopyAttributes(kml_name,time)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME KMLSTYLER_POINT_BARO INPUT FEATURE_TYPE ATTRIBUTECOPIER_BARO_OUTPUT OUTPUT FEATURE_TYPE KMLSTYLER_POINT_BARO_STYLED kml_common_style KMLSTYLER_POINT_BARO kml_icon "03" kml_icon_color "1,0.345098039215686,0.0352941176470588" kml_icon_opacity "" kml_IconStyle.colorMode "normal" kml_IconStyle.scale "0.15" fme_color "" fme_pen_opacity "" kml_LineStyle.colorMode "normal" kml_LineStyle.width "" fme_fill_color "" fme_fill_opacity "" kml_PolyStyle.colorMode "normal" kml_LabelStyle.scale "0"
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTECOPIER_GPS INPUT FEATURE_TYPE waypoints_GPS OUTPUT FEATURE_TYPE ATTRIBUTECOPIER_GPS_OUTPUT @CopyAttributes(kml_name,time)
FACTORY_DEF * TeeFactory FACTORY_NAME "ATTRIBUTECOPIER_GPS OUTPUT Splitter" INPUT FEATURE_TYPE ATTRIBUTECOPIER_GPS_OUTPUT OUTPUT FEATURE_TYPE ATTRIBUTECOPIER_GPS_OUTPUT_0 OUTPUT FEATURE_TYPE ATTRIBUTECOPIER_GPS_OUTPUT_1
# -------------------------------------------------------------------------
# Since the TCL "END" index specification starts at -1 for the second
# last character, and we've defined -1 to be the last charater, we've got
# small bit of fiddling to do
Tcl2 proc SUBSTRINGEXTRACTOR_fixLastIndex {lastValue} { if {$lastValue < -1} { incr lastValue; return "end$lastValue"; } elseif {$lastValue == -1} { return "end"; } else { return $lastValue; } }
Tcl2 proc SUBSTRINGEXTRACTOR_extract {startIdx endIdx} { FME_SetAttribute time_hh_mm [string range [FME_GetAttribute time] [SUBSTRINGEXTRACTOR_fixLastIndex $startIdx] [SUBSTRINGEXTRACTOR_fixLastIndex $endIdx]] }
FACTORY_DEF * TeeFactory FACTORY_NAME SUBSTRINGEXTRACTOR INPUT FEATURE_TYPE ATTRIBUTECOPIER_GPS_OUTPUT_1 OUTPUT FEATURE_TYPE SUBSTRINGEXTRACTOR_OUTPUT @Tcl2("SUBSTRINGEXTRACTOR_extract 0 4")
# -------------------------------------------------------------------------
# We use TCL here instead of @Concatenate because TCL is more flexible.
Tcl2 proc CONCATENATOR_concatter {} { set val {}; append val [FME_GetAttribute {time_hh_mm}] {h}; FME_SetAttribute {kml_name} $val; }
FACTORY_DEF * TeeFactory FACTORY_NAME CONCATENATOR INPUT FEATURE_TYPE SUBSTRINGEXTRACTOR_OUTPUT OUTPUT FEATURE_TYPE CONCATENATOR_OUTPUT @Tcl2(CONCATENATOR_concatter)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME ATTRIBUTEREMOVER_LABEL_GPS INPUT FEATURE_TYPE CONCATENATOR_OUTPUT OUTPUT FEATURE_TYPE ATTRIBUTEREMOVER_LABEL_GPS_OUTPUT @RemoveAttributes(altitude_baro,altitude_gps,head_001,head_002,head_003,head_004,head_005,head_006,head_007,head_008,head_009,head_010,head_011,head_012,head_013,head_014,head_015,head_016,head_017,head_018,head_019,head_020,head_021,head_022,head_023,head_024,head_025,head_026,head_027,head_028,head_029,head_030,latitude,line,longitude)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME KMLSTYLER_LABEL_GPS INPUT FEATURE_TYPE ATTRIBUTEREMOVER_LABEL_GPS_OUTPUT OUTPUT FEATURE_TYPE KMLSTYLER_LABEL_GPS_STYLED kml_common_style KMLSTYLER_LABEL_GPS kml_icon "" kml_icon_color "" kml_icon_opacity "" kml_IconStyle.colorMode "normal" kml_IconStyle.scale "0" fme_color "" fme_pen_opacity "" kml_LineStyle.colorMode "normal" kml_LineStyle.width "" fme_fill_color "" fme_fill_opacity "80" kml_PolyStyle.colorMode "normal" kml_LabelStyle.scale "0.6"
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME KMLSTYLER_POINT_GPS INPUT FEATURE_TYPE ATTRIBUTECOPIER_GPS_OUTPUT_0 OUTPUT FEATURE_TYPE KMLSTYLER_POINT_GPS_STYLED kml_common_style KMLSTYLER_POINT_GPS kml_icon "03" kml_icon_color "1,0,0" kml_icon_opacity "" kml_IconStyle.colorMode "normal" kml_IconStyle.scale "0.15" fme_color "" fme_pen_opacity "" kml_LineStyle.colorMode "normal" kml_LineStyle.width "" fme_fill_color "" fme_fill_opacity "" kml_PolyStyle.colorMode "normal" kml_LabelStyle.scale "0"
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "ATTRIBUTESETTER_GPS_WALL_VIS_OUTPUT -> track_GPS_wall Correlator" INPUT FEATURE_TYPE ATTRIBUTESETTER_GPS_WALL_VIS_OUTPUT OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id 0 @Reproject(LL84,LL84) @Transform(FME_GENERIC,KML) @CopyAttributes(kml_name,file) __wb_out_feat_type__ track_GPS_wall
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "ATTRIBUTESETTER_BARO_WALL_VIS_OUTPUT -> track_barometric_wall Correlator" INPUT FEATURE_TYPE ATTRIBUTESETTER_BARO_WALL_VIS_OUTPUT OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id 0 @Reproject(LL84,LL84) @Transform(FME_GENERIC,KML) @CopyAttributes(kml_name,file) __wb_out_feat_type__ track_barometric_wall
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "KMLSTYLER_POINT_BARO_STYLED -> waypoints_barometric Correlator" INPUT FEATURE_TYPE KMLSTYLER_POINT_BARO_STYLED OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id 0 @Reproject(LL84,LL84) @Transform(FME_GENERIC,KML) __wb_out_feat_type__ waypoints_barometric
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "KMLSTYLER_POINT_GPS_STYLED -> waypoints_GPS Correlator" INPUT FEATURE_TYPE KMLSTYLER_POINT_GPS_STYLED OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id 0 @Reproject(LL84,LL84) @Transform(FME_GENERIC,KML) __wb_out_feat_type__ waypoints_GPS
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "ATTRIBUTESETTER_GPS_PATH_OUTPUT -> track_GPS Correlator" INPUT FEATURE_TYPE ATTRIBUTESETTER_GPS_PATH_OUTPUT OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id 0 @Reproject(LL84,LL84) @Transform(FME_GENERIC,KML) @CopyAttributes(kml_name,file) __wb_out_feat_type__ track_GPS
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "ATTRIBUTESETTER_BARO_PATH_VIS_OUTPUT -> track_barometric Correlator" INPUT FEATURE_TYPE ATTRIBUTESETTER_BARO_PATH_VIS_OUTPUT OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id 0 @Reproject(LL84,LL84) @Transform(FME_GENERIC,KML) @CopyAttributes(kml_name,file) __wb_out_feat_type__ track_barometric
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "KMLSTYLER_LABEL_GPS_STYLED -> labels_GPS Correlator" INPUT FEATURE_TYPE KMLSTYLER_LABEL_GPS_STYLED OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id 0 @Reproject(LL84,LL84) @Transform(FME_GENERIC,KML) __wb_out_feat_type__ labels_GPS
# -------------------------------------------------------------------------
FACTORY_DEF * TestFactory FACTORY_NAME "Final Output Feature Type Router" INPUT FEATURE_TYPE * TEST @Value(__wb_out_feat_type__) != "" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value(__wb_out_feat_type__))
# -------------------------------------------------------------------------
KML_1_DEF labels_GPS KML_INFORMATION_POINT_ICON "" KML_OPACITY "" KML_ICON_COLOR "" KML_FILL_COLOR "" KML_PEN_COLOR "" KML_SORT_BY_ATTRIBUTE "" KML_FILL_OPACITY "" KML_PEN_OPACITY "" time xml_char(20) file xml_char(255)
# -------------------------------------------------------------------------
KML_1_DEF waypoints_barometric KML_INFORMATION_POINT_ICON "" KML_OPACITY "" KML_ICON_COLOR "" KML_FILL_COLOR "" KML_PEN_COLOR "" KML_SORT_BY_ATTRIBUTE "" KML_FILL_OPACITY "" KML_PEN_OPACITY "" time xml_char(20) longitude xml_char(20) latitude xml_char(20) altitude_gps xml_char(20) altitude_baro xml_char(20) line xml_char(20) text_line_number xml_char(20) file xml_char(255) head_001 xml_char(255) head_002 xml_char(255) head_003 xml_char(255) head_004 xml_char(255) head_005 xml_char(255) head_006 xml_char(255) head_007 xml_char(255) head_008 xml_char(255) head_009 xml_char(255) head_010 xml_char(255) head_011 xml_char(255) head_012 xml_char(255) head_013 xml_char(255) head_014 xml_char(255) head_015 xml_char(255) head_016 xml_char(255) head_017 xml_char(255) head_018 xml_char(255) head_019 xml_char(255) head_020 xml_char(255) head_021 xml_char(255) head_022 xml_char(255) head_023 xml_char(255) head_024 xml_char(255) head_025 xml_char(255) head_026 xml_char(255) head_027 xml_char(255) head_028 xml_char(255) head_029 xml_char(255) head_030 xml_char(255)
# -------------------------------------------------------------------------
KML_1_DEF track_GPS KML_INFORMATION_POINT_ICON "" KML_OPACITY "" KML_ICON_COLOR "" KML_FILL_COLOR "" KML_PEN_COLOR "" KML_SORT_BY_ATTRIBUTE "" KML_FILL_OPACITY "" KML_PEN_OPACITY ""
# -------------------------------------------------------------------------
KML_1_DEF track_GPS_wall KML_INFORMATION_POINT_ICON "" KML_OPACITY "" KML_ICON_COLOR "" KML_FILL_COLOR "" KML_PEN_COLOR "" KML_SORT_BY_ATTRIBUTE "" KML_FILL_OPACITY "" KML_PEN_OPACITY ""
# -------------------------------------------------------------------------
KML_1_DEF track_barometric_wall KML_INFORMATION_POINT_ICON "" KML_OPACITY "" KML_ICON_COLOR "" KML_FILL_COLOR "" KML_PEN_COLOR "" KML_SORT_BY_ATTRIBUTE "" KML_FILL_OPACITY "" KML_PEN_OPACITY ""
# -------------------------------------------------------------------------
KML_1_DEF track_barometric KML_INFORMATION_POINT_ICON "" KML_OPACITY "" KML_ICON_COLOR "" KML_FILL_COLOR "" KML_PEN_COLOR "" KML_SORT_BY_ATTRIBUTE "" KML_FILL_OPACITY "" KML_PEN_OPACITY ""
# -------------------------------------------------------------------------
KML_1_DEF waypoints_GPS KML_INFORMATION_POINT_ICON "" KML_OPACITY "" KML_ICON_COLOR "" KML_FILL_COLOR "" KML_PEN_COLOR "" KML_SORT_BY_ATTRIBUTE "" KML_FILL_OPACITY "" KML_PEN_OPACITY "" time xml_char(20) longitude xml_char(20) latitude xml_char(20) altitude_gps xml_char(20) altitude_baro xml_char(20) line xml_char(20) text_line_number xml_char(20) file xml_char(255) head_001 xml_char(255) head_002 xml_char(255) head_003 xml_char(255) head_004 xml_char(255) head_005 xml_char(255) head_006 xml_char(255) head_007 xml_char(255) head_008 xml_char(255) head_009 xml_char(255) head_010 xml_char(255) head_011 xml_char(255) head_012 xml_char(255) head_013 xml_char(255) head_014 xml_char(255) head_015 xml_char(255) head_016 xml_char(255) head_017 xml_char(255) head_018 xml_char(255) head_019 xml_char(255) head_020 xml_char(255) head_021 xml_char(255) head_022 xml_char(255) head_023 xml_char(255) head_024 xml_char(255) head_025 xml_char(255) head_026 xml_char(255) head_027 xml_char(255) head_028 xml_char(255) head_029 xml_char(255) head_030 xml_char(255)