#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! 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