#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
GUI IGNORE JPEG_IN_SEARCH_ENVELOPE_MINX_JPEG_2,JPEG_IN_SEARCH_ENVELOPE_MINY_JPEG_2,JPEG_IN_SEARCH_ENVELOPE_MAXX_JPEG_2,JPEG_IN_SEARCH_ENVELOPE_MAXY_JPEG_2,JPEG_IN_CLIP_TO_ENVELOPE_JPEG_2,SourceDataset_JPEG_2,PNGRASTER_IN_SEARCH_ENVELOPE_MINX_PNGRASTER_1,PNGRASTER_IN_SEARCH_ENVELOPE_MINY_PNGRASTER_1,PNGRASTER_IN_SEARCH_ENVELOPE_MAXX_PNGRASTER_1,PNGRASTER_IN_SEARCH_ENVELOPE_MAXY_PNGRASTER_1,PNGRASTER_IN_CLIP_TO_ENVELOPE_PNGRASTER_1,SourceDataset_PNGRASTER_1,DestDataset_GEOTIFF_2,_WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_2,_WRITE_PROJECTED_COORDSYS_AS_EPSG_CODE_GEOTIFF_2
DEFAULT_MACRO SourceDataset_JPEG_3 C:\Users\lkerssens\Downloads\mainMap.jpg
GUI MULTIFILE SourceDataset_JPEG_3 JPEG_Files(*.jpg;*.jpeg)|*.jpg;*.jpeg|JPEG_Files(*.jpg)|*.jpg|JPEG_Files(*.jpeg)|*.jpeg|All_Files(*.*)|*.* Source JPEG File(s):
DEFAULT_MACRO SourceDataset_PNGRASTER C:\Users\lkerssens\Downloads\insets.png
GUI MULTIFILE SourceDataset_PNGRASTER PNGRASTER_Files(*.png)|*.png|All_Files(*.*)|*.* Source PNG (PortableNetworkGraphics) File(s):
DEFAULT_MACRO DestDataset_GEOTIFF_3 .\RasterInsertNoData
GUI DIRNAME DestDataset_GEOTIFF_3 Destination GeoTIFF Directory:
INCLUDE [ if {{$(SourceDataset_JPEG_3)} == {}} { puts_real {Parameter 'SourceDataset_JPEG_3' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(SourceDataset_PNGRASTER)} == {}} { puts_real {Parameter 'SourceDataset_PNGRASTER' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(DestDataset_GEOTIFF_3)} == {}} { puts_real {Parameter 'DestDataset_GEOTIFF_3' must be given a value.}; exit 1; }; ]
#! START_HEADER
#! START_WB_HEADER
READER_TYPE MULTI_READER
MULTI_READER_TYPE{0} JPEG
MULTI_READER_KEYWORD{0} JPEG_2
MULTI_READER_GEN_DIRECTIVES{0} SEARCH_ENVELOPE_MAXX,0,JPEG_EXPOSE_FORMAT_ATTRS,,CLIP_TO_ENVELOPE,NO,USE_SEARCH_ENVELOPE,NO,SEARCH_ENVELOPE_MINX,0,SEARCH_ENVELOPE_MINY,0,_MERGE_SCHEMAS,YES,GROUP_BY_DATASET,No,SEARCH_ENVELOPE_MAXY,0
MULTI_READER_TYPE{1} PNGRASTER
MULTI_READER_KEYWORD{1} PNGRASTER_1
MULTI_READER_GEN_DIRECTIVES{1} SEARCH_ENVELOPE_MAXY,0,SEARCH_ENVELOPE_MAXX,0,CLIP_TO_ENVELOPE,NO,USE_SEARCH_ENVELOPE,NO,SEARCH_ENVELOPE_MINX,0,SEARCH_ENVELOPE_MINY,0,_MERGE_SCHEMAS,YES,GROUP_BY_DATASET,No,PNGRASTER_EXPOSE_FORMAT_ATTRS,
WRITER_TYPE GEOTIFF
WRITER_KEYWORD GEOTIFF_2
#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "JPEG_2"
#! END_WB_HEADER
#! START_SOURCE_HEADER JPEG JPEG_2
DEFAULT_MACRO JPEG_IN_GROUP_BY_DATASET_JPEG_2 No
JPEG_2_GROUP_BY_DATASET "$(JPEG_IN_GROUP_BY_DATASET_JPEG_2)"
# Include this file in source setting section to add external search envelope processing
# Zero as a default means we don't do any search -- this makes workbench happier
# ===========================================================================
DEFAULT_MACRO JPEG_IN_SEARCH_ENVELOPE_MINX_JPEG_2 0
JPEG_2_SEARCH_ENVELOPE "$(JPEG_IN_SEARCH_ENVELOPE_MINX_JPEG_2)"
GUI OPTIONAL FLOAT JPEG_IN_SEARCH_ENVELOPE_MINX_JPEG_2 Minimum X:
# ===========================================================================
DEFAULT_MACRO JPEG_IN_SEARCH_ENVELOPE_MINY_JPEG_2 0
JPEG_2_SEARCH_ENVELOPE "$(JPEG_IN_SEARCH_ENVELOPE_MINY_JPEG_2)"
GUI OPTIONAL FLOAT JPEG_IN_SEARCH_ENVELOPE_MINY_JPEG_2 Minimum Y:
# ===========================================================================
DEFAULT_MACRO JPEG_IN_SEARCH_ENVELOPE_MAXX_JPEG_2 0
JPEG_2_SEARCH_ENVELOPE "$(JPEG_IN_SEARCH_ENVELOPE_MAXX_JPEG_2)"
GUI OPTIONAL FLOAT JPEG_IN_SEARCH_ENVELOPE_MAXX_JPEG_2 Maximum X:
# ===========================================================================
DEFAULT_MACRO JPEG_IN_SEARCH_ENVELOPE_MAXY_JPEG_2 0
JPEG_2_SEARCH_ENVELOPE "$(JPEG_IN_SEARCH_ENVELOPE_MAXY_JPEG_2)"
GUI OPTIONAL FLOAT JPEG_IN_SEARCH_ENVELOPE_MAXY_JPEG_2 Maximum Y:
# ===========================================================================
# BUG18999: We now have a soft clip to fall back on like native spatial index
# thus we are reintroducing the clip to envelop as an option for users.
# Defualt to soft clip as per the existing database readers we are emulating
DEFAULT_MACRO JPEG_IN_CLIP_TO_ENVELOPE_JPEG_2 NO
JPEG_2_CLIP_TO_ENVELOPE "$(JPEG_IN_CLIP_TO_ENVELOPE_JPEG_2)"
GUI OPTIONAL CHECKBOX JPEG_IN_CLIP_TO_ENVELOPE_JPEG_2 YES%NO Clip to Search Envelope
# =======================================================================
# The following GUI line prompts for a file to be used as the source JPEG 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_JPEG_2 $(SourceDataset)} \
} ]
#! END_WB_HEADER
#! START_SOURCE_HEADER JPEG JPEG_2
DEFAULT_MACRO SourceDataset_JPEG_2 $(SourceDataset_JPEG_3)
GUI MULTIFILE SourceDataset_JPEG_2 JPEG_Files(*.jpg;*.jpeg)|*.jpg;*.jpeg|JPEG_Files(*.jpg)|*.jpg|JPEG_Files(*.jpeg)|*.jpeg|All_Files(*.*)|*.* Source JPEG File(s):
JPEG_2_READER_META_ATTRIBUTES fme_dataset fme_basename
JPEG_2_DATASET "$(SourceDataset_JPEG_2)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "PNGRASTER_1"
#! END_WB_HEADER
#! START_SOURCE_HEADER PNGRASTER PNGRASTER_1
DEFAULT_MACRO PNGRASTER_IN_GROUP_BY_DATASET_PNGRASTER_1 No
PNGRASTER_1_GROUP_BY_DATASET "$(PNGRASTER_IN_GROUP_BY_DATASET_PNGRASTER_1)"
# Include this file in source setting section to add external search envelope processing
# Zero as a default means we don't do any search -- this makes workbench happier
# ===========================================================================
DEFAULT_MACRO PNGRASTER_IN_SEARCH_ENVELOPE_MINX_PNGRASTER_1 0
PNGRASTER_1_SEARCH_ENVELOPE "$(PNGRASTER_IN_SEARCH_ENVELOPE_MINX_PNGRASTER_1)"
GUI OPTIONAL FLOAT PNGRASTER_IN_SEARCH_ENVELOPE_MINX_PNGRASTER_1 Minimum X:
# ===========================================================================
DEFAULT_MACRO PNGRASTER_IN_SEARCH_ENVELOPE_MINY_PNGRASTER_1 0
PNGRASTER_1_SEARCH_ENVELOPE "$(PNGRASTER_IN_SEARCH_ENVELOPE_MINY_PNGRASTER_1)"
GUI OPTIONAL FLOAT PNGRASTER_IN_SEARCH_ENVELOPE_MINY_PNGRASTER_1 Minimum Y:
# ===========================================================================
DEFAULT_MACRO PNGRASTER_IN_SEARCH_ENVELOPE_MAXX_PNGRASTER_1 0
PNGRASTER_1_SEARCH_ENVELOPE "$(PNGRASTER_IN_SEARCH_ENVELOPE_MAXX_PNGRASTER_1)"
GUI OPTIONAL FLOAT PNGRASTER_IN_SEARCH_ENVELOPE_MAXX_PNGRASTER_1 Maximum X:
# ===========================================================================
DEFAULT_MACRO PNGRASTER_IN_SEARCH_ENVELOPE_MAXY_PNGRASTER_1 0
PNGRASTER_1_SEARCH_ENVELOPE "$(PNGRASTER_IN_SEARCH_ENVELOPE_MAXY_PNGRASTER_1)"
GUI OPTIONAL FLOAT PNGRASTER_IN_SEARCH_ENVELOPE_MAXY_PNGRASTER_1 Maximum Y:
# ===========================================================================
# BUG18999: We now have a soft clip to fall back on like native spatial index
# thus we are reintroducing the clip to envelop as an option for users.
# Defualt to soft clip as per the existing database readers we are emulating
DEFAULT_MACRO PNGRASTER_IN_CLIP_TO_ENVELOPE_PNGRASTER_1 NO
PNGRASTER_1_CLIP_TO_ENVELOPE "$(PNGRASTER_IN_CLIP_TO_ENVELOPE_PNGRASTER_1)"
GUI OPTIONAL CHECKBOX PNGRASTER_IN_CLIP_TO_ENVELOPE_PNGRASTER_1 YES%NO Clip to Search Envelope
# =======================================================================
# The following GUI line prompts for a file to be used as the source PNGRASTER 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_PNGRASTER_1 $(SourceDataset)} \
} ]
#! END_WB_HEADER
#! START_SOURCE_HEADER PNGRASTER PNGRASTER_1
DEFAULT_MACRO SourceDataset_PNGRASTER_1 $(SourceDataset_PNGRASTER)
GUI MULTIFILE SourceDataset_PNGRASTER_1 PNGRASTER_Files(*.png)|*.png|All_Files(*.*)|*.* Source PNG (PortableNetworkGraphics) File(s):
PNGRASTER_1_READER_META_ATTRIBUTES fme_dataset fme_basename
PNGRASTER_1_DATASET "$(SourceDataset_PNGRASTER_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "GEOTIFF_2"
#! END_WB_HEADER
#! START_DEST_HEADER GEOTIFF GEOTIFF_2
# The following GUI lines prompt for a GEOTIFF file to be used as the
# the destination of the data.
# The user input is stored in a macro, which is then used to define
# the dataset to be written.
#! END_DEST_HEADER
#! START_WB_HEADER
DEFAULT_MACRO DestDataset
INCLUDE [ if {"$(DestDataset)" != ""} { \
puts {DEFAULT_MACRO DestDataset_GEOTIFF_2 $(DestDataset)} \
} ]
#! END_WB_HEADER
#! START_DEST_HEADER GEOTIFF GEOTIFF_2
DEFAULT_MACRO DestDataset_GEOTIFF_2 $(DestDataset_GEOTIFF_3)
GUI DIRNAME DestDataset_GEOTIFF_2 Destination GeoTIFF Directory:
DEFAULT_MACRO _WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_2 No
GUI CHOICE _WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_2 Yes%No Offsets in Coordinate System Units:
GEOTIFF_2_WRITE_OFFSETS_IN_CS_UNITS $(_WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_2)
DEFAULT_MACRO _WRITE_PROJECTED_COORDSYS_AS_EPSG_CODE_GEOTIFF_2 Yes
GUI CHOICE _WRITE_PROJECTED_COORDSYS_AS_EPSG_CODE_GEOTIFF_2 Yes%No Write Projected Coordinate System as EPSG Code:
GEOTIFF_2_WRITE_PROJECTED_COORDSYS_AS_EPSG_CODE $(_WRITE_PROJECTED_COORDSYS_AS_EPSG_CODE_GEOTIFF_2)
DEFAULT_MACRO _GEOTIFF_WRITER_WORLD_FILE_GENERATION_GEOTIFF_2 no
DEFAULT_MACRO _GEOTIFF_WRITER_CREATE_TILED_FILES_GEOTIFF_2 no
DEFAULT_MACRO _GEOTIFF_WRITER_TILE_SIZE_X_GEOTIFF_2
DEFAULT_MACRO _GEOTIFF_WRITER_TILE_SIZE_Y_GEOTIFF_2
DEFAULT_MACRO _GEOTIFF_WRITER_COMPRESSION_METHOD_GEOTIFF_2 none
DEFAULT_MACRO _GEOTIFF_WRITER_JPEG_COMPRESSION_LEVEL_GEOTIFF_2 25
DEFAULT_MACRO _GEOTIFF_WRITER_TAB_FILE_GENERATION_GEOTIFF_2 no
DEFAULT_MACRO _GEOTIFF_WRITER_NUMBER_OF_BITS_PER_CELL_GEOTIFF_2 8-or-above
DEFAULT_MACRO _GEOTIFF_WRITER_ENABLE_BIGTIFF_GEOTIFF_2 no
DEFAULT_MACRO _GEOTIFF_WRITER_INTERLEAVING_TYPE_GEOTIFF_2 BSQ
DEFAULT_MACRO _GEOTIFF_WRITER_PHOTOMETRIC_INTERPRETATION_GEOTIFF_2 MinIsBlack
GEOTIFF_2_COORDINATE_SYSTEM_GRANULARITY FEATURE
GEOTIFF_2_DATASET "$(DestDataset_GEOTIFF_2)"
#! END_DEST_HEADER
#! END_HEADER
LOG_FILENAME "$(FME_MF_DIR)Mosaicker_UsingNodata.log"
LOG_APPEND NO
LOG_MAX_FEATURES 200
LOG_MAX_RECORDED_FEATURES 200
FME_REPROJECTION_ENGINE FME
FME_GEOMETRY_HANDLING Enhanced
FME_STROKE_MAX_DEVIATION 0
LOG_FILTER_MASK -1
DEFAULT_MACRO DATASET_KEYWORD_JPEG_2 JPEG_2
DEFAULT_MACRO DATASET_KEYWORD_PNGRASTER_1 PNGRASTER_1
DEFAULT_MACRO DATASET_KEYWORD_GEOTIFF_2 GEOTIFF_2
# -------------------------------------------------------------------------
JPEG_2_READER_META_ATTRIBUTES fme_basename fme_feature_type
# -------------------------------------------------------------------------
PNGRASTER_1_READER_META_ATTRIBUTES fme_basename fme_feature_type
# -------------------------------------------------------------------------
MULTI_READER_CONTINUE_ON_READER_FAILURE No
# -------------------------------------------------------------------------
MACRO WORKSPACE_NAME Mosaicker_UsingNodata
MACRO FME_VIEWER_APP fmeview
# -------------------------------------------------------------------------
JPEG_2_DEF JPEG
# -------------------------------------------------------------------------
PNGRASTER_1_DEF PNGRASTER
# -------------------------------------------------------------------------
Lookup ___KnownFeatureTypes___ "$(DATASET_KEYWORD_JPEG_2)_JPEG" yes "$(DATASET_KEYWORD_PNGRASTER_1)_PNGRASTER" yes "" no
# -------------------------------------------------------------------------
FACTORY_DEF * TestFactory FACTORY_NAME "Unexpected Input Remover" INPUT FEATURE_TYPE * TEST @Lookup(___KnownFeatureTypes___,@Concatenate(&multi_reader_keyword,"_",@FeatureType())) == yes OUTPUT PASSED FEATURE_TYPE *
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "Source -> Generic" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * @Transform(&multi_reader_type,FME_GENERIC,PRESERVE_GEOMETRY)
DEFAULT_MACRO WB_CURRENT_CONTEXT
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME RasterBandNodataSetter INPUT FEATURE_TYPE JPEG OUTPUT FEATURE_TYPE RasterBandNodataSetter_OUTPUT @RasterNodata(BAND,0,DoNotReplaceCellValues)
# -------------------------------------------------------------------------
INCLUDE [ if { ({USER} == {USER}) } { puts {MACRO SELECTION_ARGS "0 ALL;1 ALL;2 ALL"}; } else { puts {MACRO SELECTION_ARGS @Value("")}; } ]
FACTORY_DEF * TeeFactory FACTORY_NAME RasterSelector INPUT FEATURE_TYPE PNGRASTER OUTPUT FEATURE_TYPE RasterSelector_OUTPUT @SelectRaster($(SELECTION_ARGS))
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME RasterBandKeeper INPUT FEATURE_TYPE RasterSelector_OUTPUT OUTPUT FEATURE_TYPE RasterBandKeeper_OUTPUT @RemoveRasterBands(KEEP)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME RasterBandNodataSetter_2 INPUT FEATURE_TYPE RasterBandKeeper_OUTPUT OUTPUT FEATURE_TYPE RasterBandNodataSetter_2_OUTPUT @RasterNodata(BAND,0,DoNotReplaceCellValues)
# -------------------------------------------------------------------------
FACTORY_DEF * RasterMosaicFactory FACTORY_NAME RasterMosaicker_2 INPUT FEATURE_TYPE RasterBandNodataSetter_OUTPUT INPUT FEATURE_TYPE RasterBandNodataSetter_2_OUTPUT ACCUMULATE_ATTRIBUTES yes NODATA_OVERWRITE No INTERPOLATION_TYPE_NAME NearestNeighbor COMPOSITE_USING_ALPHA_BAND no SNAPPING_TYPE RESAMPLE MERGE_PALETTES Yes OUTPUT MOSAICKED FEATURE_TYPE RasterMosaicker_2_OUTPUT
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME RasterNodataRemover INPUT FEATURE_TYPE RasterMosaicker_2_OUTPUT OUTPUT FEATURE_TYPE RasterNodataRemover_OUTPUT @RasterNodata(REMOVE)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "RasterNodataRemover_OUTPUT -> BaseMapAndInsets Correlator" INPUT FEATURE_TYPE RasterNodataRemover_OUTPUT OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ @Transform(FME_GENERIC,GEOTIFF) @SupplyAttributes(__wb_out_feat_type__,BaseMapAndInsets)
# -------------------------------------------------------------------------
FACTORY_DEF * TestFactory FACTORY_NAME "Final Output Feature Type Router" INPUT FEATURE_TYPE * TEST @Value(__wb_out_feat_type__) != "" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value(__wb_out_feat_type__)) OUTPUT FAILED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 {@Value(fme_template_feature_type)} 818060 818061 fme_warn")
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__
# -------------------------------------------------------------------------
GEOTIFF_2_DEF BaseMapAndInsets geotiff_world_file_generation no geotiff_create_tiled_files no geotiff_tile_size_x "" geotiff_tile_size_y "" geotiff_compression_method none geotiff_jpeg_compression_level 25 geotiff_tab_file_generation no geotiff_number_of_bits_per_cell 8-or-above geotiff_enable_bigtiff no geotiff_interleaving_type BSQ geotiff_photometric_interpretation MinIsBlack