#! <?xml version="1.0" encoding="UTF-8" ?>
#! <WORKSPACE
#    Command-line to run this workspace:
#        /Library/FME/2018.1/fme /tmp/wb_template_1549467698199_7457/Heatmap-Complete.fmw
#              --TypeOfCrime ""
#              --ComUserName ""
#              --OperatingSystem ""
#              --BoxTop "49.4"
#              --BoxBottom "49.2"
#              --BoxRight "-123.0"
#              --BoxLeft "-123.2"
#              --Zoom "10"
#    
#!   ATTR_TYPE_ENCODING="SDF"
#!   BEGIN_PYTHON=""
#!   BEGIN_TCL=""
#!   CATEGORY=""
#!   DESCRIPTION=""
#!   DESTINATION="NONE"
#!   DESTINATION_ROUTING_FILE=""
#!   DOC_EXTENTS="976.13 60.0006"
#!   DOC_TOP_LEFT="115 -820.006"
#!   END_PYTHON=""
#!   END_TCL=""
#!   EXPLICIT_BOOKMARK_ORDER="false"
#!   FME_BUILD_NUM="18520"
#!   FME_DOCUMENT_GUID="3d20d498-8282-4a35-925f-54aad11653ee"
#!   FME_DOCUMENT_PRIORGUID="1567094e-5091-4de8-9779-8af2b38bcd90,04f51243-2075-4b8f-abd6-32851f9f66c6,3405518d-294a-4223-881c-9e6129d84f52,ac44b243-d858-4a1f-9fc4-8a567c69f2cc,91e9bf9c-51b3-4998-8902-cfb5f83c7b77,03e69ff8-c195-4fb1-9ed3-f2e3a114c94f,fda5e8f9-6239-4405-8af8-ff7ce9b2d9ba,d81aa1d3-2997-453b-9d1b-2775aa5f5534"
#!   FME_GEOMETRY_HANDLING="Enhanced"
#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto"
#!   FME_REPROJECTION_ENGINE="FME"
#!   FME_SERVER_SERVICES=""
#!   FME_STROKE_MAX_DEVIATION="0"
#!   HISTORY=""
#!   IGNORE_READER_FAILURE="No"
#!   LAST_SAVE_BUILD="FME(R) 2018.1.0.0 (20180717 - Build 18520 - macosx)"
#!   LAST_SAVE_DATE="2019-02-06T07:43:07"
#!   LOG_FILE=""
#!   LOG_MAX_RECORDED_FEATURES="200"
#!   MARKDOWN_DESCRIPTION=""
#!   MARKDOWN_USAGE=""
#!   MAX_LOG_FEATURES="200"
#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
#!   PASSWORD=""
#!   PYTHON_COMPATIBILITY="27"
#!   REDIRECT_TERMINATORS="NONE"
#!   SHOW_ANNOTATIONS="true"
#!   SHOW_INFO_NODES="true"
#!   SOURCE="NONE"
#!   SOURCE_ROUTING_FILE=""
#!   TERMINATE_REJECTED="YES"
#!   TITLE="Heatmap-Complete"
#!   USAGE=""
#!   USE_MARKDOWN=""
#!   VIEW_POSITION="-2028.02 0"
#!   WARN_INVALID_XFORM_PARAM="Yes"
#!   WORKSPACE_VERSION="1"
#!   ZOOM_SCALE="100"
#! >
#! <DATASETS>
#! <DATASET
#!   IS_SOURCE="true"
#!   ROLE="READER"
#!   FORMAT="CSV2"
#!   DATASET="$(SourceDataset_CSV2)"
#!   KEYWORD="CSV2_1"
#!   MULTI_GEOM_ALLOWED="false"
#!   ATTR_MAX_LENGTH="0"
#!   ATTR_CASE="ANY"
#!   ALLOWED_FEAT_TYPES=""
#!   WRITE_DEFS="true"
#!   DEFLINE_TEMPLATE=""
#!   DEFLINE_ATTRS="true"
#!   EXPOSABLE_ATTRS="multi_reader_keyword string fme_color string csv_line_number uint64 fme_dataset string csv_skipped_line string fme_rotation string fme_basename string fme_text_string string csv_type string fme_geometry string multi_reader_type string fme_feature_type string csv_number_of_fields uint32 multi_reader_full_id string multi_reader_id string fme_type string fme_text_size string csv_total_number_of_columns uint32 fme_fill_color string fme_start_angle string fme_sweep_angle string fme_secondary_axis string fme_primary_axis string"
#!   DEFLINE_PARMS=""
#!   ATTR_INDEX_TYPES=""
#!   ATTR_NAME_INVALID_CHARS=""
#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
#!   ENABLED="true"
#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
#!   DATASET_TYPE="FILEDIR"
#!   GENERATE_FME_BUILD_NUM="18301"
#!   COORDSYS="LL84"
#!   FEATURE_TYPES=""
#!   MAX_FEATURES=""
#!   MAX_FEATURES_PER_FEATURE_TYPE=""
#!   MIN_FEATURES=""
#!   START_FEATURE=""
#! >
#! <METAFILE_PARAMETER
#!   NAME="ATTRIBUTE_READING"
#!   VALUE="DEFLINE"
#! />
#! <METAFILE_PARAMETER
#!   NAME="DATASET_NAME"
#!   VALUE="csv file"
#! />
#! <METAFILE_PARAMETER
#!   NAME="DEFAULT_ATTR_TYPE"
#!   VALUE="string"
#! />
#! <METAFILE_PARAMETER
#!   NAME="FEATURE_TYPE_DEFAULT_NAME"
#!   VALUE="File1"
#! />
#! <METAFILE_PARAMETER
#!   NAME="FEATURE_TYPE_NAME"
#!   VALUE="CSV File"
#! />
#! <METAFILE_PARAMETER
#!   NAME="READER_DATASET_HINT"
#!   VALUE="Select the CSV file(s)"
#! />
#! <METAFILE_PARAMETER
#!   NAME="WRITER_DATASET_HINT"
#!   VALUE="Specify a folder for the CSV file"
#! />
#! </DATASET>
#! </DATASETS>
#! <DATA_TYPES>
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_buffer"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_binarybuffer"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_xml"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_json"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_varchar(width)"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_varbinary(width)"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_char(width)"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_binary(width)"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_datetime"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_time"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_date"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_real64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="real64"
#!   FME_TYPE="fme_real64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="x_coordinate"
#!   FME_TYPE="fme_real64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="y_coordinate"
#!   FME_TYPE="fme_real64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="z_coordinate"
#!   FME_TYPE="fme_real64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_real32"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="real32"
#!   FME_TYPE="fme_real32"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_int64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int64"
#!   FME_TYPE="fme_int64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_int32"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int32"
#!   FME_TYPE="fme_int32"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_int16"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int16"
#!   FME_TYPE="fme_int16"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_int8"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int8"
#!   FME_TYPE="fme_int8"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_uint64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint64"
#!   FME_TYPE="fme_uint64"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_uint32"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint32"
#!   FME_TYPE="fme_uint32"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_uint16"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint16"
#!   FME_TYPE="fme_uint16"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_uint8"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint8"
#!   FME_TYPE="fme_uint8"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_boolean"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="boolean"
#!   FME_TYPE="fme_boolean"
#!   FORMAT="CSV2"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="string"
#!   FME_TYPE="fme_decimal(width,decimal)"
#!   FORMAT="CSV2"
#! />
#! </DATA_TYPES>
#! <GEOM_TYPES>
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_feature_table"
#!   FME_TYPE="fme_feature_table"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_point"
#!   FME_TYPE="fme_point"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_line"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_area"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_text"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_ellipse"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_arc"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_rectangle"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_rounded_rectangle"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_no_map"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_no_map"
#!   FME_TYPE="fme_no_map"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_collection"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_raster"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_surface"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_solid"
#!   FORMAT="CSV2"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="csv_none"
#!   FME_TYPE="fme_point_cloud"
#!   FORMAT="CSV2"
#! />
#! </GEOM_TYPES>
#! <FEATURE_TYPES>
#! <FEATURE_TYPE
#!   IS_SOURCE="true"
#!   NODE_NAME="CSV"
#!   FEATURE_TYPE_NAME=""
#!   FEATURE_TYPE_NAME_QUALIFIER=""
#!   IS_EDITABLE="false"
#!   IDENTIFIER="2"
#!   FEAT_GEOMTYPE="csv_none csv_point"
#!   POSITION="115.00015000149995 -820.00585005850053"
#!   BOUNDING_RECT="115.00015000149995 -820.00585005850053 -1 -1"
#!   ORDER="500000000000000"
#!   COLLAPSED="true"
#!   KEYWORD="CSV2_1"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   HIDDEN_USER_ATTRS=""
#!   READ_SELECT_ATTRS="true"
#!   MERGE_FILTER=""
#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
#!   MERGE_FILTER_CASE_SENSITIVE="true"
#!   DYNAMIC_SCHEMA="false"
#! >
#!     <FEAT_ATTRIBUTE ATTR_NAME="TYPE" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="YEAR" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="MONTH" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="DAY" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="HOUR" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="MINUTE" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="HUNDRED_BLOCK" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="NEIGHBOURHOOD" ATTR_TYPE="string" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="X" ATTR_TYPE="x_coordinate" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="Y" ATTR_TYPE="y_coordinate" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#! </FEATURE_TYPE>
#! </FEATURE_TYPES>
#! <FMESERVER>
#! <READER_DATASETS>
#! <DATASET 
#!   NAME="CSV2_1"
#!   OVERRIDE="-CSV2_1_DATASET"
#!   DATASET="CSV2_1/Crime2012-17.csv"
#! />
#! </READER_DATASETS>
#! </FMESERVER>
#! <GLOBAL_PARAMETERS>
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI CHOICE TypeOfCrime &quot;Break and Enter Commercial&quot;%&quot;Break and Enter Residential/Other&quot;%Mischief%&quot;Other Theft&quot;%&quot;Theft from Vehicle&quot;%&quot;Theft of Bicycle&quot;%&quot;Theft of Vehicle&quot;%&quot;Vehicle Collision or Pedestrian Struck (with Fatality)&quot;%&quot;Vehicle Collision or Pedestrian Struck (with Injury)&quot; Pick a crime:"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LITERAL TEXT ComUserName Enter your computer username:"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LOOKUP_CHOICE OperatingSystem Windows,C:&lt;solidus&gt;%Mac,&lt;solidus&gt; Choose your operating system:"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI RANGE_SLIDER BoxTop &quot;RANGE:[,]%PRECISION:1&quot; Top Latitude of Area of Interest:"
#!   DEFAULT_VALUE="49.4"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI RANGE_SLIDER BoxBottom &quot;RANGE:[,]%PRECISION:1&quot; Bottom Latitude of Area of Interest:"
#!   DEFAULT_VALUE="49.2"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI RANGE_SLIDER BoxRight &quot;RANGE:[,]%PRECISION:1&quot; Right Longitude of Area of Interest:"
#!   DEFAULT_VALUE="-123.0"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI RANGE_SLIDER BoxLeft &quot;RANGE:[,]%PRECISION:1&quot; Left Longitude of Area of Interest:"
#!   DEFAULT_VALUE="-123.2"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL RANGE_SLIDER Zoom &quot;RANGE:[1,13]%PRECISION:0&quot; Select Zoom (1 high detail - 13 low detail):"
#!   DEFAULT_VALUE="10"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI IGNORE OPTIONAL MULTIFILE SourceDataset_CSV2 CSV/Compressed_CSV/TEXT_Files(*.csv;*.gz;*.txt)|*.csv;*.gz;*.txt|CSV_Files(*.csv)|*.csv|Compressed_CSV_Files(*.gz)|*.gz|Text_Files(*.txt)|*.txt|All_Files|* Source CSV (Comma Separated Value) File(s):"
#!   DEFAULT_VALUE="$(FME_MF_DIR)1/crime_csv_all_years/Crime2012-17.csv"
#!   IS_STAND_ALONE="false"
#! />
#! </GLOBAL_PARAMETERS>
#! <COMMENTS>
#! </COMMENTS>
#! <CONSTANTS>
#! </CONSTANTS>
#! <BOOKMARKS>
#! </BOOKMARKS>
#! <TRANSFORMERS>
#! <TRANSFORMER
#!   IDENTIFIER="3"
#!   TYPE="RCaller"
#!   VERSION="0"
#!   POSITION="1091.1306113061137 -760.00525005250029"
#!   BOUNDING_RECT="1091.1306113061137 -760.00525005250029 -1 -1"
#!   ORDER="500000000000015"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="18520"
#! >
#!     <OUTPUT_FEAT NAME="Output"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="fmeOutput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="OUTPUT_SCHEMA" PARM_VALUE="fmeOutput"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_SCHEMA_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="QUERY_DEF" PARM_VALUE="Output,#Add&lt;space&gt;your&lt;space&gt;inputs&lt;space&gt;here&lt;space&gt;by&lt;space&gt;dragging&lt;space&gt;in&lt;space&gt;from&lt;space&gt;the&lt;space&gt;data&lt;space&gt;frame&lt;space&gt;list&lt;space&gt;on&lt;space&gt;the&lt;space&gt;left.&lt;lf&gt;#Populate&lt;space&gt;the&lt;space&gt;columns&lt;space&gt;of&lt;space&gt;the&lt;space&gt;fmeOutput&lt;space&gt;data&lt;space&gt;frame&lt;space&gt;with&lt;space&gt;your&lt;space&gt;desired&lt;space&gt;script&lt;space&gt;output.&lt;lf&gt;#The&lt;space&gt;columns&lt;space&gt;of&lt;space&gt;the&lt;space&gt;fmeOutput&lt;space&gt;Data&lt;space&gt;frame&lt;space&gt;will&lt;space&gt;be&lt;space&gt;converted&lt;space&gt;to&lt;space&gt;attributes&lt;space&gt;on&lt;space&gt;output&lt;space&gt;features.&lt;lf&gt;#For&lt;space&gt;example:&lt;lf&gt;#fmeOutput&lt;lt&gt;-data.frame&lt;openparen&gt;numbers=c&lt;openparen&gt;1&lt;comma&gt;2&lt;comma&gt;3&lt;closeparen&gt;&lt;comma&gt;letters=c&lt;openparen&gt;&lt;apos&gt;A&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;B&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;C&lt;apos&gt;&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;library&lt;openparen&gt;ggmap&lt;closeparen&gt;&lt;lf&gt;map_center&lt;space&gt;&lt;lt&gt;-&lt;space&gt;c&lt;openparen&gt;lon=-123.1&lt;comma&gt;&lt;space&gt;lat=49.26&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;crime&lt;space&gt;&lt;lt&gt;-&lt;space&gt;subset&lt;openparen&gt;crime&lt;comma&gt;&lt;space&gt;TYPE&lt;space&gt;==&lt;space&gt;&lt;quote&gt;$(TypeOfCrime)&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;bounding_box&lt;space&gt;&lt;lt&gt;-&lt;space&gt;c&lt;openparen&gt;bottom&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxBottom&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;top&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxTop&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;left&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxLeft&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;right&lt;space&gt;&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxRight&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;&lt;lf&gt;HeatMap&lt;space&gt;&lt;lt&gt;-&lt;space&gt;get_stamenmap&lt;openparen&gt;bounding_box&lt;comma&gt;&lt;space&gt;maptype=&lt;quote&gt;toner&lt;quote&gt;&lt;comma&gt;&lt;space&gt;zoom=&lt;dollar&gt;&lt;openparen&gt;Zoom&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;ggmap&lt;openparen&gt;HeatMap&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;geom_point&lt;openparen&gt;aes&lt;openparen&gt;x=crime&lt;dollar&gt;X&lt;comma&gt;&lt;space&gt;y=crime&lt;dollar&gt;Y&lt;closeparen&gt;&lt;comma&gt;&lt;space&gt;data=crime&lt;comma&gt;&lt;space&gt;alpha=.5&lt;comma&gt;&lt;space&gt;color=&lt;quote&gt;red&lt;quote&gt;&lt;comma&gt;&lt;space&gt;size=3&lt;comma&gt;&lt;space&gt;shape=&lt;quote&gt;.&lt;quote&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;lf&gt;&lt;space&gt;&lt;space&gt;stat_density2d&lt;openparen&gt;data=crime&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;aes&lt;openparen&gt;x&lt;space&gt;=&lt;space&gt;crime&lt;dollar&gt;X&lt;comma&gt;&lt;space&gt;y&lt;space&gt;=&lt;space&gt;crime&lt;dollar&gt;Y&lt;comma&gt;&lt;space&gt;fill=&lt;space&gt;..level..&lt;comma&gt;&lt;space&gt;alpha=&lt;space&gt;0.5&lt;closeparen&gt;&lt;comma&gt;&lt;space&gt;size&lt;space&gt;=&lt;space&gt;0.01&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;bins&lt;space&gt;=&lt;space&gt;30&lt;comma&gt;&lt;space&gt;geom&lt;space&gt;=&lt;space&gt;&lt;quote&gt;polygon&lt;quote&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;scale_fill_gradient&lt;openparen&gt;low&lt;space&gt;=&lt;space&gt;&lt;quote&gt;green&lt;quote&gt;&lt;comma&gt;&lt;space&gt;high&lt;space&gt;=&lt;space&gt;&lt;quote&gt;red&lt;quote&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;lf&gt;&lt;space&gt;&lt;space&gt;facet_wrap&lt;openparen&gt;~YEAR&lt;closeparen&gt;&lt;space&gt;+&lt;lf&gt;&lt;space&gt;&lt;space&gt;ggtitle&lt;openparen&gt;&lt;quote&gt;$(TypeOfCrime)&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;ggsave&lt;openparen&gt;&lt;quote&gt;$(OperatingSystem)Users&lt;solidus&gt;$(ComUserName)&lt;solidus&gt;Documents&lt;solidus&gt;$(TypeOfCrime)&lt;space&gt;From&lt;space&gt;2012-2017.png&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;fmeOutput&lt;lt&gt;-data.frame&lt;openparen&gt;1&lt;closeparen&gt;,fmeOutput"/>
#!     <XFORM_PARM PARM_NAME="QUERY_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="QUERY_SCHEMA" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="R_SCRIPT" PARM_VALUE="#Add&lt;space&gt;your&lt;space&gt;inputs&lt;space&gt;here&lt;space&gt;by&lt;space&gt;dragging&lt;space&gt;in&lt;space&gt;from&lt;space&gt;the&lt;space&gt;data&lt;space&gt;frame&lt;space&gt;list&lt;space&gt;on&lt;space&gt;the&lt;space&gt;left.&lt;lf&gt;#Populate&lt;space&gt;the&lt;space&gt;columns&lt;space&gt;of&lt;space&gt;the&lt;space&gt;fmeOutput&lt;space&gt;data&lt;space&gt;frame&lt;space&gt;with&lt;space&gt;your&lt;space&gt;desired&lt;space&gt;script&lt;space&gt;output.&lt;lf&gt;#The&lt;space&gt;columns&lt;space&gt;of&lt;space&gt;the&lt;space&gt;fmeOutput&lt;space&gt;Data&lt;space&gt;frame&lt;space&gt;will&lt;space&gt;be&lt;space&gt;converted&lt;space&gt;to&lt;space&gt;attributes&lt;space&gt;on&lt;space&gt;output&lt;space&gt;features.&lt;lf&gt;#For&lt;space&gt;example:&lt;lf&gt;#fmeOutput&lt;lt&gt;-data.frame&lt;openparen&gt;numbers=c&lt;openparen&gt;1&lt;comma&gt;2&lt;comma&gt;3&lt;closeparen&gt;&lt;comma&gt;letters=c&lt;openparen&gt;&lt;apos&gt;A&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;B&lt;apos&gt;&lt;comma&gt;&lt;apos&gt;C&lt;apos&gt;&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;library&lt;openparen&gt;ggmap&lt;closeparen&gt;&lt;lf&gt;map_center&lt;space&gt;&lt;lt&gt;-&lt;space&gt;c&lt;openparen&gt;lon=-123.1&lt;comma&gt;&lt;space&gt;lat=49.26&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;crime&lt;space&gt;&lt;lt&gt;-&lt;space&gt;subset&lt;openparen&gt;crime&lt;comma&gt;&lt;space&gt;TYPE&lt;space&gt;==&lt;space&gt;&lt;quote&gt;$(TypeOfCrime)&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;bounding_box&lt;space&gt;&lt;lt&gt;-&lt;space&gt;c&lt;openparen&gt;bottom&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxBottom&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;top&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxTop&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;left&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxLeft&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;right&lt;space&gt;&lt;space&gt;&lt;space&gt;=&lt;space&gt;&lt;dollar&gt;&lt;openparen&gt;BoxRight&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;&lt;lf&gt;HeatMap&lt;space&gt;&lt;lt&gt;-&lt;space&gt;get_stamenmap&lt;openparen&gt;bounding_box&lt;comma&gt;&lt;space&gt;maptype=&lt;quote&gt;toner&lt;quote&gt;&lt;comma&gt;&lt;space&gt;zoom=&lt;dollar&gt;&lt;openparen&gt;Zoom&lt;closeparen&gt;&lt;closeparen&gt;&lt;lf&gt;ggmap&lt;openparen&gt;HeatMap&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;geom_point&lt;openparen&gt;aes&lt;openparen&gt;x=crime&lt;dollar&gt;X&lt;comma&gt;&lt;space&gt;y=crime&lt;dollar&gt;Y&lt;closeparen&gt;&lt;comma&gt;&lt;space&gt;data=crime&lt;comma&gt;&lt;space&gt;alpha=.5&lt;comma&gt;&lt;space&gt;color=&lt;quote&gt;red&lt;quote&gt;&lt;comma&gt;&lt;space&gt;size=3&lt;comma&gt;&lt;space&gt;shape=&lt;quote&gt;.&lt;quote&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;lf&gt;&lt;space&gt;&lt;space&gt;stat_density2d&lt;openparen&gt;data=crime&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;aes&lt;openparen&gt;x&lt;space&gt;=&lt;space&gt;crime&lt;dollar&gt;X&lt;comma&gt;&lt;space&gt;y&lt;space&gt;=&lt;space&gt;crime&lt;dollar&gt;Y&lt;comma&gt;&lt;space&gt;fill=&lt;space&gt;..level..&lt;comma&gt;&lt;space&gt;alpha=&lt;space&gt;0.5&lt;closeparen&gt;&lt;comma&gt;&lt;space&gt;size&lt;space&gt;=&lt;space&gt;0.01&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;bins&lt;space&gt;=&lt;space&gt;30&lt;comma&gt;&lt;space&gt;geom&lt;space&gt;=&lt;space&gt;&lt;quote&gt;polygon&lt;quote&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;space&gt;scale_fill_gradient&lt;openparen&gt;low&lt;space&gt;=&lt;space&gt;&lt;quote&gt;green&lt;quote&gt;&lt;comma&gt;&lt;space&gt;high&lt;space&gt;=&lt;space&gt;&lt;quote&gt;red&lt;quote&gt;&lt;closeparen&gt;&lt;space&gt;+&lt;lf&gt;&lt;space&gt;&lt;space&gt;facet_wrap&lt;openparen&gt;~YEAR&lt;closeparen&gt;&lt;space&gt;+&lt;lf&gt;&lt;space&gt;&lt;space&gt;ggtitle&lt;openparen&gt;&lt;quote&gt;$(TypeOfCrime)&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;ggsave&lt;openparen&gt;&lt;quote&gt;$(OperatingSystem)Users&lt;solidus&gt;$(ComUserName)&lt;solidus&gt;Documents&lt;solidus&gt;$(TypeOfCrime)&lt;space&gt;From&lt;space&gt;2012-2017.png&lt;quote&gt;&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;fmeOutput&lt;lt&gt;-data.frame&lt;openparen&gt;1&lt;closeparen&gt;"/>
#!     <XFORM_PARM PARM_NAME="TABLE_DEF" PARM_VALUE="crime,TYPE&lt;comma&gt;text&lt;comma&gt;YEAR&lt;comma&gt;text&lt;comma&gt;MONTH&lt;comma&gt;text&lt;comma&gt;DAY&lt;comma&gt;text&lt;comma&gt;HOUR&lt;comma&gt;text&lt;comma&gt;MINUTE&lt;comma&gt;text&lt;comma&gt;HUNDRED_BLOCK&lt;comma&gt;text&lt;comma&gt;NEIGHBOURHOOD&lt;comma&gt;text&lt;comma&gt;X&lt;comma&gt;float&lt;comma&gt;Y&lt;comma&gt;float"/>
#!     <XFORM_PARM PARM_NAME="TABLE_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="RCaller"/>
#! </TRANSFORMER>
#! </TRANSFORMERS>
#! <FEAT_LINKS>
#! <FEAT_LINK
#!   IDENTIFIER="10"
#!   SOURCE_NODE="2"
#!   TARGET_NODE="3"
#!   SOURCE_PORT_DESC="-1"
#!   TARGET_PORT_DESC="fi 0 crime"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   EXTRA_POINTS=""
#! />
#! </FEAT_LINKS>
#! <BREAKPOINTS>
#! </BREAKPOINTS>
#! <ATTR_LINKS>
#! </ATTR_LINKS>
#! <SUBDOCUMENTS>
#! </SUBDOCUMENTS>
#! <LOOKUP_TABLES>
#! </LOOKUP_TABLES>
#! </WORKSPACE>

FME_PYTHON_VERSION 27
GUI IGNORE SourceDataset_CSV2_1,CSV2_IN_FIELDS_GROUP_CSV2_1,CSV2_IN_DELIMITER_CSV2_1,CSV2_IN_FIELD_NAMES_LINE_CSV2_1,CSV2_IN_DATA_START_LINE_CSV2_1,CSV2_IN_ADVANCED_GROUP_CSV2_1,CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1,CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1,CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1,CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1,CSV2_IN_FIELD_NAMES_GROUP_CSV2_1,CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1,CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1,CSV2_IN_FIELD_VALUES_GROUP_CSV2_1,CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1,CSV2_IN_ENCODING_GROUP_CSV2_1,CSV2_IN_ENCODING_CSV2_1,CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1,CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1,CSV2_IN_READ_SKIPPED_LINES_CSV2_1,CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1
DEFAULT_MACRO TypeOfCrime 
GUI CHOICE TypeOfCrime "Break and Enter Commercial"%"Break and Enter Residential/Other"%Mischief%"Other Theft"%"Theft from Vehicle"%"Theft of Bicycle"%"Theft of Vehicle"%"Vehicle Collision or Pedestrian Struck (with Fatality)"%"Vehicle Collision or Pedestrian Struck (with Injury)" Pick a crime:
DEFAULT_MACRO ComUserName 
GUI TEXT ComUserName Enter your computer username:
DEFAULT_MACRO OperatingSystem 
GUI LOOKUP_CHOICE OperatingSystem Windows,C:<solidus>%Mac,<solidus> Choose your operating system:
DEFAULT_MACRO BoxTop 49.4
GUI RANGE_SLIDER BoxTop "RANGE:[,]%PRECISION:1" Top Latitude of Area of Interest:
DEFAULT_MACRO BoxBottom 49.2
GUI RANGE_SLIDER BoxBottom "RANGE:[,]%PRECISION:1" Bottom Latitude of Area of Interest:
DEFAULT_MACRO BoxRight -123.0
GUI RANGE_SLIDER BoxRight "RANGE:[,]%PRECISION:1" Right Longitude of Area of Interest:
DEFAULT_MACRO BoxLeft -123.2
GUI RANGE_SLIDER BoxLeft "RANGE:[,]%PRECISION:1" Left Longitude of Area of Interest:
DEFAULT_MACRO Zoom 10
GUI OPTIONAL RANGE_SLIDER Zoom "RANGE:[1,13]%PRECISION:0" Select Zoom (1 high detail - 13 low detail):
DEFAULT_MACRO SourceDataset_CSV2 $(FME_MF_DIR)1/crime_csv_all_years/Crime2012-17.csv
GUI IGNORE OPTIONAL MULTIFILE SourceDataset_CSV2 CSV/Compressed_CSV/TEXT_Files(*.csv;*.gz;*.txt)|*.csv;*.gz;*.txt|CSV_Files(*.csv)|*.csv|Compressed_CSV_Files(*.gz)|*.gz|Text_Files(*.txt)|*.txt|All_Files|* Source CSV (Comma Separated Value) File(s):
INCLUDE [ if {{$(TypeOfCrime)} == {}} { puts_real {Parameter 'TypeOfCrime' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(ComUserName)} == {}} { puts_real {Parameter 'ComUserName' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(OperatingSystem)} == {}} { puts_real {Parameter 'OperatingSystem' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(BoxTop)} == {}} { puts_real {Parameter 'BoxTop' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(BoxBottom)} == {}} { puts_real {Parameter 'BoxBottom' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(BoxRight)} == {}} { puts_real {Parameter 'BoxRight' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(BoxLeft)} == {}} { puts_real {Parameter 'BoxLeft' must be given a value.}; exit 1; }; ]
#! START_HEADER
#! START_WB_HEADER
READER_TYPE MULTI_READER
MULTI_READER_TYPE{0} CSV2
MULTI_READER_KEYWORD{0} CSV2_1
MULTI_READER_GEN_DIRECTIVES{0} FIELD_NAMES_GROUP,,DATA_START_LINE,2,TRIM_FIELD_NAME_QUALIFIERS,Yes,ADVANCED_GROUP,,SKIP_DUPLICATE_DELIMITERS,No,FIELDS_GROUP,,CSV2_EXPOSE_FORMAT_ATTRS,,FIELD_QUALIFIER_ESCAPE_CHARACTER,<lt>quote<gt>,DELIMITER,<lt>comma<gt>,FEATURE_TYPE_NAME,FORMAT_NAME,FIELD_VALUES_GROUP,,_MERGE_SCHEMAS,YES,ENFORCE_STRICT_SCHEMA,No,ENCODING,,SCAN_MAX_ROWS,1000,DATASET_GROUP,,CASE_SENSITIVE_FIELD_NAMES,Yes,USE_CUSTOM_SCHEMA,YES,FIELD_NAMES_LINE,1,ENCODING_GROUP,,SKIPPED_LINES_GROUP,,EXPOSE_ATTRS_GROUP,,SCHEMA_GENERATION_GROUP,,FIELD_QUALIFIER_CHARACTER,<lt>quote<gt>,PREVIEW_PLACEHOLDER,,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,PRESERVE_SOURCE_ENCODING,No,TRIM_FIELD_VALUE_QUALIFIERS,Yes,READ_SKIPPED_LINES,No,SCAN_ADDITIONAL_FIELDS,No,SCHEMA,TYPE<comma>string<comma>YES<semicolon>YEAR<comma>string<comma>YES<semicolon>MONTH<comma>string<comma>YES<semicolon>DAY<comma>string<comma>YES<semicolon>HOUR<comma>string<comma>YES<semicolon>MINUTE<comma>string<comma>YES<semicolon>HUNDRED_BLOCK<comma>string<comma>YES<semicolon>NEIGHBOURHOOD<comma>string<comma>YES<semicolon>X<comma>x_coordinate<comma>YES<semicolon>Y<comma>y_coordinate<comma>YES,FIELD_SEPARATION_GROUP,,SCAN_TYPES,No
WRITER_TYPE NULL
WRITER_KEYWORD NULL_DEST
NULL_DEST_DATASET null
#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "CSV2_1"
#! END_WB_HEADER
#! START_SOURCE_HEADER CSV2 CSV2_1
# =====================================================================
# The following GUI line prompts for a file to be used as the source CSV file.
# The user input is stored in a macro, which is then used to define
# the dataset to be read.
# The dataset this mapping file was generated from was:
#! END_SOURCE_HEADER
#! START_WB_HEADER
DEFAULT_MACRO SourceDataset
INCLUDE [ if {{$(SourceDataset)} != ""} {                        \
 puts {DEFAULT_MACRO SourceDataset_CSV2_1 $(SourceDataset)}     \
 } ]
#! END_WB_HEADER
#! START_SOURCE_HEADER CSV2 CSV2_1
DEFAULT_MACRO SourceDataset_CSV2_1 $(SourceDataset_CSV2)
GUI MULTIFILE SourceDataset_CSV2_1 CSV/Compressed_CSV/TEXT_Files(*.csv;*.gz;*.txt)|*.csv;*.gz;*.txt|CSV_Files(*.csv)|*.csv|Compressed_CSV_Files(*.gz)|*.gz|Text_Files(*.txt)|*.txt|All_Files|* Source CSV (Comma Separated Value) File(s):
DEFAULT_MACRO CSV2_IN_FEATURE_TYPE_NAME_CSV2_1 FORMAT_NAME
CSV2_1_FEATURE_TYPE_NAME "$(CSV2_IN_FEATURE_TYPE_NAME_CSV2_1)"
DEFAULT_MACRO CSV2_IN_FIELDS_GROUP_CSV2_1 
GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELDS_GROUP_CSV2_1 CSV2_IN_DELIMITER_CSV2_1%CSV2_IN_FIELD_NAMES_LINE_CSV2_1%CSV2_IN_DATA_START_LINE_CSV2_1 Fields
DEFAULT_MACRO CSV2_IN_DELIMITER_CSV2_1 <comma>
CSV2_1_DELIMITER "$(CSV2_IN_DELIMITER_CSV2_1)"
GUI STRING_OR_CHOICE_ENCODED CSV2_IN_DELIMITER_CSV2_1 ,%;%|%space%tab Delimiter Character:
DEFAULT_MACRO CSV2_IN_FIELD_NAMES_LINE_CSV2_1 1
CSV2_1_FIELD_NAMES_LINE "$(CSV2_IN_FIELD_NAMES_LINE_CSV2_1)"
GUI OPTIONAL INT_OR_CHOICE CSV2_IN_FIELD_NAMES_LINE_CSV2_1 None%1%2%3%4%5 Field Names Line:
GUI LOOKUP CSV2_IN_FIELD_NAMES_LINE_CSV2_1 None, 
DEFAULT_MACRO CSV2_IN_DATA_START_LINE_CSV2_1 2
CSV2_1_DATA_START_LINE "$(CSV2_IN_DATA_START_LINE_CSV2_1)"
GUI RANGE_SLIDER CSV2_IN_DATA_START_LINE_CSV2_1 1%MAX%0 Data Start Line:
DEFAULT_MACRO CSV2_IN_ADVANCED_GROUP_CSV2_1 
GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_ADVANCED_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1%CSV2_IN_FIELD_NAMES_GROUP_CSV2_1%CSV2_IN_FIELD_VALUES_GROUP_CSV2_1%CSV2_IN_ENCODING_GROUP_CSV2_1%CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1%CSV2_IN_SCHEMA_GENERATION_GROUP Advanced
DEFAULT_MACRO CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1 
GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELD_SEPARATION_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1%CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1%CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1 Field Separation
DEFAULT_MACRO CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1 No
CSV2_1_SKIP_DUPLICATE_DELIMITERS "$(CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1)"
GUI CHOICE CSV2_IN_SKIP_DUPLICATE_DELIMITERS_CSV2_1 Yes%No Skip Duplicate Delimiters:
DEFAULT_MACRO CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1 <quote>
CSV2_1_FIELD_QUALIFIER_CHARACTER "$(CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1)"
GUI OPTIONAL STRING_ENCODED CSV2_IN_FIELD_QUALIFIER_CHARACTER_CSV2_1 Field Qualifier Character:
DEFAULT_MACRO CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1 <quote>
CSV2_1_FIELD_QUALIFIER_ESCAPE_CHARACTER "$(CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1)"
GUI OPTIONAL STRING_ENCODED CSV2_IN_FIELD_QUALIFIER_ESCAPE_CHARACTER_CSV2_1 Field Qualifier Escape Character:
DEFAULT_MACRO CSV2_IN_FIELD_NAMES_GROUP_CSV2_1 
GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELD_NAMES_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1%CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1 Field Names
DEFAULT_MACRO CSV2_IN_TRIM_FIELD_NAME_QUALIFIERS_CSV2_1 Yes
CSV2_1_TRIM_FIELD_NAME_QUALIFIERS "$(CSV2_IN_TRIM_FIELD_NAME_QUALIFIERS_CSV2_1)"
DEFAULT_MACRO CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1 Yes
CSV2_1_CASE_SENSITIVE_FIELD_NAMES "$(CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1)"
GUI CHOICE CSV2_IN_CASE_SENSITIVE_FIELD_NAMES_CSV2_1 Yes%No Case Sensitive Field Names:
DEFAULT_MACRO CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1 No
CSV2_1_ENFORCE_STRICT_SCHEMA "$(CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1)"
GUI CHOICE CSV2_IN_ENFORCE_STRICT_SCHEMA_CSV2_1 Yes%No Enforce Strict Schema:
DEFAULT_MACRO CSV2_IN_FIELD_VALUES_GROUP_CSV2_1 
GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_FIELD_VALUES_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1 Field Values
DEFAULT_MACRO CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1 Yes
CSV2_1_TRIM_FIELD_VALUE_QUALIFIERS "$(CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1)"
GUI CHOICE CSV2_IN_TRIM_FIELD_VALUE_QUALIFIERS_CSV2_1 Yes%No Trim Field Qualifier Characters:
DEFAULT_MACRO CSV2_IN_ENCODING_GROUP_CSV2_1 
GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_ENCODING_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_ENCODING_CSV2_1%CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1 Encoding
DEFAULT_MACRO CSV2_IN_ENCODING_CSV2_1 
CSV2_1_ENCODING "$(CSV2_IN_ENCODING_CSV2_1)"
GUI OPTIONAL STRING_OR_ENCODING CSV2_IN_ENCODING_CSV2_1 SYSTEM%* Character Encoding:
DEFAULT_MACRO CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1 No
CSV2_1_PRESERVE_SOURCE_ENCODING "$(CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1)"
GUI CHOICE CSV2_IN_PRESERVE_SOURCE_ENCODING_CSV2_1 Yes%No Preserve Source Encoding:
DEFAULT_MACRO CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1 
GUI OPTIONAL DISCLOSUREGROUP CSV2_IN_SKIPPED_LINES_GROUP_CSV2_1 FME_DISCLOSURE_CLOSED%CSV2_IN_READ_SKIPPED_LINES_CSV2_1 Skipped Lines
DEFAULT_MACRO CSV2_IN_READ_SKIPPED_LINES_CSV2_1 No
CSV2_1_READ_SKIPPED_LINES "$(CSV2_IN_READ_SKIPPED_LINES_CSV2_1)"
GUI CHOICE CSV2_IN_READ_SKIPPED_LINES_CSV2_1 Yes%No Read Skipped Lines:
DEFAULT_MACRO CSV2_IN_SCAN_MAX_ROWS_CSV2_1 1000
CSV2_1_SCAN_MAX_ROWS "$(CSV2_IN_SCAN_MAX_ROWS_CSV2_1)"
DEFAULT_MACRO CSV2_IN_SCAN_TYPES_CSV2_1 No
CSV2_1_SCAN_TYPES "$(CSV2_IN_SCAN_TYPES_CSV2_1)"
DEFAULT_MACRO CSV2_IN_SCAN_ADDITIONAL_FIELDS_CSV2_1 No
CSV2_1_SCAN_ADDITIONAL_FIELDS "$(CSV2_IN_SCAN_ADDITIONAL_FIELDS_CSV2_1)"
DEFAULT_MACRO CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_1 
CSV2_1_EXPOSE_ATTRS_GROUP "$(CSV2_IN_EXPOSE_ATTRS_GROUP_CSV2_1)"
DEFAULT_MACRO CSV2_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_CSV2_1 Yes
CSV2_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(CSV2_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_CSV2_1)"
# ===========================================================================
DEFAULT_MACRO CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1 
CSV2_1_NETWORK_AUTHENTICATION "$(CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1)"
GUI OPTIONAL AUTHENTICATOR CSV2_IN_NETWORK_AUTHENTICATION_CSV2_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication
# ============================================================================ 
DEFAULT_MACRO CSV2_IN_ATTRIBUTE_READING_CSV2_1 DEFLINE
CSV2_1_ATTRIBUTE_READING "$(CSV2_IN_ATTRIBUTE_READING_CSV2_1)"
# ============================================================================ 
CSV2_1_GENERATE_FME_BUILD_NUM 18301
CSV2_1_DATASET "$(SourceDataset_CSV2_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
#! END_WB_HEADER
#! END_HEADER

LOG_FILENAME "mapping.log"
LOG_APPEND NO
LOG_TIMINGS YES
LOG_FILTER_MASK -1
LOG_MAX_FEATURES 200
LOG_MAX_RECORDED_FEATURES 200
FME_REPROJECTION_ENGINE FME
FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto
FME_GEOMETRY_HANDLING Enhanced
FME_STROKE_MAX_DEVIATION 0
MAPPING_FILE_ID Heatmap-Complete
DEFAULT_MACRO DATASET_KEYWORD_CSV2_1 CSV2_1
# -------------------------------------------------------------------------

CSV2_1_READER_META_ATTRIBUTES fme_feature_type

# -------------------------------------------------------------------------

CSV2_1_COORDINATE_SYSTEM LL84
MULTI_READER_CONTINUE_ON_READER_FAILURE No

# -------------------------------------------------------------------------

MACRO WORKSPACE_NAME Heatmap-Complete
MACRO FME_VIEWER_APP fmedatainspector
# -------------------------------------------------------------------------

FACTORY_DEF * RoutingFactory   FACTORY_NAME "Router and Unexpected Input Remover"   COMMAND_PARM_EVALUATION SINGLE_PASS   MULTI_READER_KEYWORD $(DATASET_KEYWORD_CSV2_1)   INPUT FEATURE_TYPE *    ROUTE CSV2 CSV2_1::CSV multi_reader_keyword,$(DATASET_KEYWORD_CSV2_1) TO FME_GENERIC ::CSV ALIAS_GEOMETRY    MERGE_INPUT Yes   OUTPUT ROUTED FEATURE_TYPE *
CSV2_1_MERGE_DEF CSV2_1::CSV EXACT CSV DEFLINE fme_attribute_reading,defined,TYPE,string,YEAR,string,MONTH,string,DAY,string,HOUR,string,MINUTE,string,HUNDRED_BLOCK,string,NEIGHBOURHOOD,string,X,x_coordinate,Y,y_coordinate
# -------------------------------------------------------------------------

FACTORY_DEF * TeeFactory    FACTORY_NAME "CSV (CSV2_1) Splitter"    INPUT FEATURE_TYPE CSV    OUTPUT FEATURE_TYPE CSV_CSV2_1
DEFAULT_MACRO WB_CURRENT_CONTEXT
# -------------------------------------------------------------------------
FACTORY_DEF * InlineQueryFactory FACTORY_NAME RCaller EXCLUDE_FEATURE_CONTENT Yes TABLE_DEF crime TYPE<comma>text<comma>YEAR<comma>text<comma>MONTH<comma>text<comma>DAY<comma>text<comma>HOUR<comma>text<comma>MINUTE<comma>text<comma>HUNDRED_BLOCK<comma>text<comma>NEIGHBOURHOOD<comma>text<comma>X<comma>float<comma>Y<comma>float QUERY_DEF Output R_SCRIPT @EvaluateExpression(STRING_ENCODED,#Add<space>your<space>inputs<space>here<space>by<space>dragging<space>in<space>from<space>the<space>data<space>frame<space>list<space>on<space>the<space>left.<lf>#Populate<space>the<space>columns<space>of<space>the<space>fmeOutput<space>data<space>frame<space>with<space>your<space>desired<space>script<space>output.<lf>#The<space>columns<space>of<space>the<space>fmeOutput<space>Data<space>frame<space>will<space>be<space>converted<space>to<space>attributes<space>on<space>output<space>features.<lf>#For<space>example:<lf>#fmeOutput<lt>-data.frame<openparen>numbers=c<openparen>1<comma>2<comma>3<closeparen><comma>letters=c<openparen><apos>A<apos><comma><apos>B<apos><comma><apos>C<apos><closeparen><closeparen><lf>library<openparen>ggmap<closeparen><lf>map_center<space><lt>-<space>c<openparen>lon=-123.1<comma><space>lat=49.26<closeparen><lf><lf>crime<space><lt>-<space>subset<openparen>crime<comma><space>TYPE<space>==<space><quote>$(TypeOfCrime$encode)<quote><closeparen><lf><lf>bounding_box<space><lt>-<space>c<openparen>bottom<space><space>=<space><dollar><openparen>BoxBottom<closeparen><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>top<space><space><space><space><space>=<space><dollar><openparen>BoxTop<closeparen><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>left<space><space><space><space>=<space><dollar><openparen>BoxLeft<closeparen><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>right<space><space><space>=<space><dollar><openparen>BoxRight<closeparen><closeparen><lf><lf><lf>HeatMap<space><lt>-<space>get_stamenmap<openparen>bounding_box<comma><space>maptype=<quote>toner<quote><comma><space>zoom=<dollar><openparen>Zoom<closeparen><closeparen><lf>ggmap<openparen>HeatMap<closeparen><space>+<space>geom_point<openparen>aes<openparen>x=crime<dollar>X<comma><space>y=crime<dollar>Y<closeparen><comma><space>data=crime<comma><space>alpha=.5<comma><space>color=<quote>red<quote><comma><space>size=3<comma><space>shape=<quote>.<quote><closeparen><space>+<lf><space><space>stat_density2d<openparen>data=crime<comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>aes<openparen>x<space>=<space>crime<dollar>X<comma><space>y<space>=<space>crime<dollar>Y<comma><space>fill=<space>..level..<comma><space>alpha=<space>0.5<closeparen><comma><space>size<space>=<space>0.01<comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space>bins<space>=<space>30<comma><space>geom<space>=<space><quote>polygon<quote><closeparen><space>+<space>scale_fill_gradient<openparen>low<space>=<space><quote>green<quote><comma><space>high<space>=<space><quote>red<quote><closeparen><space>+<lf><space><space>facet_wrap<openparen>~YEAR<closeparen><space>+<lf><space><space>ggtitle<openparen><quote>$(TypeOfCrime$encode)<quote><closeparen><lf><lf><space><space>ggsave<openparen><quote>$(OperatingSystem)Users<solidus>$(ComUserName$encode)<solidus>Documents<solidus>$(TypeOfCrime$encode)<space>From<space>2012-2017.png<quote><closeparen><lf><lf>fmeOutput<lt>-data.frame<openparen>1<closeparen>,RCaller) INPUT crime FEATURE_TYPE CSV_CSV2_1
# -------------------------------------------------------------------------

FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *   FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__   OUTPUT ROUTED FEATURE_TYPE *    OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")
# -------------------------------------------------------------------------

FACTORY_DEF * TeeFactory   FACTORY_NAME "Final Output Nuker"   INPUT FEATURE_TYPE __nuke_me__

