#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
GUI IGNORE SourceDataset_JPEG2000_1,DestDataset_GEOTIFF_1,_WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_1
DEFAULT_MACRO DestDataset_GEOTIFF $(FME_MF_DIR)Out
GUI DIRNAME DestDataset_GEOTIFF Destination GeoTIFF Directory:
DEFAULT_MACRO SourceDataset_JPEG2000_2 $(FME_MF_DIR)NEA3_resampled.jp2
GUI MULTIFILE SourceDataset_JPEG2000_2 JPEG2000_Files(*.jp2,*.j2k)|*.jp2;*.j2k|All_Files(*.*)|*.* Original JPEG2000 Dataset:
INCLUDE [ if {{$(DestDataset_GEOTIFF)} == {}} { puts_real {Parameter 'DestDataset_GEOTIFF' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(SourceDataset_JPEG2000_2)} == {}} { puts_real {Parameter 'SourceDataset_JPEG2000_2' must be given a value.}; exit 1; }; ]
#! START_HEADER
#! START_WB_HEADER
READER_TYPE JPEG2000
READER_KEYWORD JPEG2000_1
WRITER_TYPE GEOTIFF
WRITER_KEYWORD GEOTIFF_1
#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "JPEG2000_1"
#! END_WB_HEADER
#! START_SOURCE_HEADER JPEG2000 JPEG2000_1
DEFAULT_MACRO GROUP_BY_DATASET_JPEG2000_1 No
JPEG2000_1_GROUP_BY_DATASET "$(GROUP_BY_DATASET_JPEG2000_1)"
# =======================================================================
# The following GUI line prompts for a file to be used as the source JPEG2000 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:
GUI FILENAME SourceDataset_JPEG2000_1 JPEG2000_Files(*.jp2,*.j2k)|*.jp2;*.j2k|All_Files(*.*)|*.* Original JPEG2000 Dataset:
JPEG2000_1_READER_META_ATTRIBUTES fme_dataset fme_basename
#! END_SOURCE_HEADER
#! START_WB_HEADER
DEFAULT_MACRO SourceDataset
INCLUDE [ if {"$(SourceDataset)" != ""} { \
puts {DEFAULT_MACRO SourceDataset_JPEG2000_1 $(SourceDataset)} \
} ]
#! END_WB_HEADER
#! START_SOURCE_HEADER JPEG2000 JPEG2000_1
DEFAULT_MACRO SourceDataset_JPEG2000_1 $(SourceDataset_JPEG2000_2)
JPEG2000_1_DATASET "$(SourceDataset_JPEG2000_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "GEOTIFF_1"
#! END_WB_HEADER
#! START_DEST_HEADER GEOTIFF GEOTIFF_1
# 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_1 $(DestDataset)} \
} ]
#! END_WB_HEADER
#! START_DEST_HEADER GEOTIFF GEOTIFF_1
DEFAULT_MACRO DestDataset_GEOTIFF_1 $(DestDataset_GEOTIFF)
GUI DIRNAME DestDataset_GEOTIFF_1 Destination GeoTIFF Directory:
# Select the data type of pixels in the output file.
# Define the background value used where no data is available. For some
# output formats this will be marked as in the output file as a special
# transparent, or nodata value. For these cases it may be important that
# the NODATA value not duplicate a meaningful output value.
# Interleaving can be BAND or PIXEL. Pixel is most compatibility with other
# packages.
# Uses raw name=value pair
# Do we want to generate a world file?
# Uses raw name=value pair
DEFAULT_MACRO _WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_1 No
GUI CHOICE _WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_1 Yes%No Offsets in Coordinate System Units:
GEOTIFF_1_WRITE_OFFSETS_IN_CS_UNITS $(_WRITE_OFFSETS_IN_CS_UNITS_GEOTIFF_1)
DEFAULT_MACRO _GEOTIFF_WRITER_WORLD_FILE_GENERATION_GEOTIFF_1 no
DEFAULT_MACRO _GEOTIFF_WRITER_CREATE_TILED_FILES_GEOTIFF_1 no
DEFAULT_MACRO _GEOTIFF_WRITER_COMPRESSION_METHOD_GEOTIFF_1 none
DEFAULT_MACRO _GEOTIFF_WRITER_JPEG_COMPRESSION_LEVEL_GEOTIFF_1 25
DEFAULT_MACRO _GEOTIFF_WRITER_TAB_FILE_GENERATION_GEOTIFF_1 yes
GEOTIFF_1_DATASET "$(DestDataset_GEOTIFF_1)"
#! END_DEST_HEADER
#! END_HEADER
WRITER_TYPE NULL
WRITER_KEYWORD WBROUTER_OUT
WBROUTER_OUT_DATASET null
LOG_END_BANNER
LOG_END_BANNER *** All destination data has been redirected to the Visualizer ***
LOG_END_BANNER
LOG_FILENAME "$(FME_MF_DIR)AustinPolygonClippingNew.log"
LOG_APPEND NO
LOG_MAX_FEATURES 200
LOG_MAX_RECORDED_FEATURES 200
FME_CACHED_OBJECTS_HINT 7500
FME_REPROJECTION_ENGINE FME
FME_USE_RICH_GEOMETRY yes
DEFAULT_MACRO DATASET_KEYWORD_JPEG2000_1 JPEG2000_1
DEFAULT_MACRO DATASET_KEYWORD_GEOTIFF_1 GEOTIFF_1
# -------------------------------------------------------------------------
JPEG2000_1_READER_META_ATTRIBUTES fme_basename fme_feature_type
# -------------------------------------------------------------------------
JPEG2000_1_COORDINATE_SYSTEM TX83-CF
GEOTIFF_1_COORDINATE_SYSTEM TX83-CF
MULTI_READER_CONTINUE_ON_READER_FAILURE No
# -------------------------------------------------------------------------
MACRO WORKSPACE_NAME AustinPolygonClippingNew
# -------------------------------------------------------------------------
JPEG2000_1_DEF JPEG2000
# -------------------------------------------------------------------------
Lookup ___KnownFeatureTypes___ JPEG2000 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(JPEG2000,FME_GENERIC,ALIAS_GEOMETRY)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "JPEG2000 (JPEG2000_1) Splitter" INPUT FEATURE_TYPE JPEG2000 OUTPUT FEATURE_TYPE JPEG2000_0 OUTPUT FEATURE_TYPE JPEG2000_1
DEFAULT_MACRO WB_CURRENT_CONTEXT
# -------------------------------------------------------------------------
Tcl2 proc set_geom_and_type {} { if {[FME_Coordinates numCoords] > 0} { FME_Execute RemoveGeometry; set minX [FME_GetAttribute ___MINX]; set minY [FME_GetAttribute ___MINY]; set maxX [FME_GetAttribute ___MAXX]; set maxY [FME_GetAttribute ___MAXY]; if { [string is double $minX] && [string is double $maxX] } { set xSame [expr $minX == $maxX] } else { set xSame [string equal $minX $maxX] }; if { [string is double $minY] && [string is double $maxY] } { set ySame [expr $minY == $maxY] } else { set ySame [string equal $minY $maxY] }; FME_Coordinates addCoord $minX $minY; if {$xSame && $ySame} { FME_Execute GeometryType fme_point; FME_SetAttribute fme_type fme_point } elseif {$xSame || $ySame} { FME_Coordinates addCoord $maxX $maxY; FME_Execute GeometryType fme_line; FME_SetAttribute fme_type fme_line } else { FME_Coordinates addCoord $minX $maxY; FME_Coordinates addCoord $maxX $maxY; FME_Coordinates addCoord $maxX $minY; FME_Coordinates addCoord $minX $minY; FME_Execute GeometryType fme_polygon; FME_SetAttribute fme_type fme_area } } }
FACTORY_DEF * TeeFactory FACTORY_NAME BoundingBoxReplacer INPUT FEATURE_TYPE JPEG2000_1 OUTPUT FEATURE_TYPE BoundingBoxReplacer_BOX @Force2D() @Bounds(___MINX,___MAXX,___MINY,___MAXY,___MINZ,___MAXZ,GEOMETRIC) @Tcl2(set_geom_and_type) @RemoveAttributes(___MINX,___MAXX,___MINY,___MAXY,___MINZ,___MAXZ)
# -------------------------------------------------------------------------
MACRO CREATOR_XML NOT_ACTIVATED
MACRO CREATOR_CLASSIC NOT_ACTIVATED
MACRO CREATOR_2D3D 2D_GEOMETRY
MACRO CREATOR_COORDS
INCLUDE [ if { {XML Geometry} == {XML Geometry} } { puts {MACRO CREATOR_XML *} } ]
INCLUDE [ if { {XML Geometry} == {2D Coordinate List} } { puts {MACRO CREATOR_2D3D 2D_GEOMETRY}; puts {MACRO CREATOR_CLASSIC *} } ]
INCLUDE [ if { {XML Geometry} == {3D Coordinate List} } { puts {MACRO CREATOR_2D3D 3D_GEOMETRY}; puts {MACRO CREATOR_CLASSIC *} } ]
INCLUDE [ if { {XML Geometry} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates }; set splitCoords [split [string trim {}]]; if { [llength $splitCoords] != 4 } { error {CREATOR: Coordinate List MUST have four numbers - `' is invalid}; }; set minX [lindex $splitCoords 0]; set minY [lindex $splitCoords 1]; set maxX [lindex $splitCoords 2]; set maxY [lindex $splitCoords 3]; puts "MACRO CREATOR_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY"; puts {MACRO CREATOR_2D3D 2D_GEOMETRY}; puts {MACRO CREATOR_CLASSIC *} } ]
FACTORY_DEF $(CREATOR_XML) CreationFactory FACTORY_NAME CREATOR_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING,?xmlversion=1.0encoding=US_ASCIIstandalone=no?geometrypolygonlinecoordx=3133300y=10103540coordx=3134475y=10102975coordx=3133770y=10101730coordx=3132690y=10102415coordx=3133300y=10103540linepolygongeometry)
FACTORY_DEF $(CREATOR_CLASSIC) CreationFactory FACTORY_NAME CREATOR_CLASSIC_Creator $(CREATOR_2D3D) $(CREATOR_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______
FACTORY_DEF * TeeFactory FACTORY_NAME CREATOR_Cloner INPUT FEATURE_TYPE _____CREATED______ NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE _creation_instance OUTPUT FEATURE_TYPE CREATOR_CREATED
# -------------------------------------------------------------------------
FACTORY_DEF * TestFactory FACTORY_NAME DonutBuilder_agTester INPUT FEATURE_TYPE CREATOR_CREATED INPUT FEATURE_TYPE BoundingBoxReplacer_BOX TEST &fme_geometry = fme_aggregate OUTPUT PASSED FEATURE_TYPE __toDeag__ OUTPUT FAILED FEATURE_TYPE __toDonutBuilder__
FACTORY_DEF * DeaggregateFactory FACTORY_NAME DonutBuilder_deagger INPUT FEATURE_TYPE __toDeag__ RECURSIVE Yes SET_FME_TYPE Yes OUTPUT DONUT FEATURE_TYPE __toDonutBuilder__ OUTPUT POLYGON FEATURE_TYPE __toDonutBuilder__
FACTORY_DEF * TeeFactory FACTORY_NAME DonutBuilder_geomFilter INPUT FEATURE_TYPE __toDonutBuilder__ fme_type fme_point INPUT FEATURE_TYPE __toDonutBuilder__ fme_type fme_line INPUT FEATURE_TYPE __toDonutBuilder__ fme_type fme_null INPUT FEATURE_TYPE __toDonutBuilder__ fme_type fme_text INPUT FEATURE_TYPE __toDonutBuilder__ fme_type fme_arc
FACTORY_DEF * TestFactory FACTORY_NAME DonutBuilder_ellipseHandler INPUT FEATURE_TYPE __toDonutBuilder__ fme_type fme_ellipse TEST @GlobalVariable(fme_get_mapping_file_flag_keyword_FME_USE_RICH_GEOMETRY) == yes OUTPUT PASSED FEATURE_TYPE __toDonutBuilder__
FACTORY_DEF * DonutFactory FACTORY_NAME DonutBuilder INPUT FEATURE_TYPE __toDonutBuilder__ DROP_HOLES yes TAG_HOLES yes ALLOW_CYCLES No OUTPUT DONUT FEATURE_TYPE DonutBuilder_AREA @RenameAttributes(_hole_flag,tagged_hole) OUTPUT POLYGON FEATURE_TYPE DonutBuilder_AREA @RenameAttributes(_hole_flag,tagged_hole)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME PenColorSetter_Remover INPUT FEATURE_TYPE DonutBuilder_AREA OUTPUT FEATURE_TYPE __TO_COLOR_SETTER__
FACTORY_DEF * TeeFactory FACTORY_NAME PenColorSetter_Setter INPUT FEATURE_TYPE __TO_COLOR_SETTER__ OUTPUT FEATURE_TYPE PenColorSetter_COLORED fme_color "1,1,1"
# -------------------------------------------------------------------------
INCLUDE [ if {[string equal {No} {Yes}]} { puts {MACRO TOLERANCE_VALUE}; } elseif {[string equal {No} {No}]} { puts {MACRO TOLERANCE_VALUE TOLERANCE 0.5}; } ]
FACTORY_DEF * VectorToRasterFactory FACTORY_NAME VectorOnRasterOverlayer INPUT VECTOR FEATURE_TYPE PenColorSetter_COLORED INPUT RASTER FEATURE_TYPE JPEG2000_0 ANTI_ALIASING No $(TOLERANCE_VALUE) OUTPUT RASTER FEATURE_TYPE VectorOnRasterOverlayer_RASTER @SupplyAttributes(fme_basename,VectorOnRasterOverlayer)
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "VectorOnRasterOverlayer_RASTER -> AustinClippedNew Correlator" INPUT FEATURE_TYPE VectorOnRasterOverlayer_RASTER OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ @Reproject("TX83-CF","TX83-CF") @Transform(FME_GENERIC,GEOTIFF) @SupplyAttributes(__wb_out_feat_type__,AustinClippedNew)
# -------------------------------------------------------------------------
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__))
FACTORY_DEF * TeeFactory FACTORY_NAME "Route to Viewer Reprojector" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * @Reproject(TX83-CF,TX83-CF)
# Set the directive to add all the meta-attributes to the features.
# We do this so users see all possible information in the viewed
# features.
READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
# First, set up the temporary directory that will be used for
# the recordings we will be viewing (these three lines do this)
# They assume that the WORKSPACE_NAME macro has already been set
DEFAULT_MACRO WORKSPACE_TEMP_DIR
INCLUDE [ if {[string length {$(WORKSPACE_TEMP_DIR)}] < 2} { if {[info exists env(TEMP)]} {set gVisualizerTemp $env(TEMP)} else {set gVisualizerTemp c:} ; regsub -all {[ ,]} {$(WORKSPACE_NAME)} {_} wsname; set gVisualizerTemp $gVisualizerTemp\\${wsname}_[clock format [clock seconds] -format %H%M%S] ; puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp"; } ; if { [string length {}] > 0 } { set catter "" ; set comma "" ; foreach attr "" { set catter "$catter$comma&$attr" ; set comma ",_," ; } ; puts "MACRO CATMAC _@Concatenate($catter)" ; } else { puts "MACRO CATMAC " ; }; set safeName "[regsub -all {[^a-zA-Z0-9]} {AustinClippedNew} _]_[expr round(rand() * 1000000)]_[clock clicks]"; puts "MACRO SAFE_FFS_NAME $safeName"; ]
# Make the temporary directory that the FFS files will live in.
FACTORY_DEF * CreationFactory FACTORY_NAME AustinClippedNew_DirCreator OUTPUT FEATURE_TYPE __nukeme__ @Tcl2("catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}")
FACTORY_DEF * TeeFactory FACTORY_NAME AustinClippedNew_DirCreatorCleanerUpper INPUT FEATURE_TYPE __nukeme__
# Now route all the features into the recorder, changing their
# feature type to the transformer name so that they view nicely
FACTORY_DEF * TeeFactory FACTORY_NAME AustinClippedNew_SetterUpper INPUT FEATURE_TYPE AustinClippedNew OUTPUT FEATURE_TYPE __viewme__
FACTORY_DEF * RecorderFactory FACTORY_NAME AustinClippedNew_Recorder INPUT FEATURE_TYPE __viewme__ @FeatureType(AustinClippedNew$(CATMAC)) FEATURE_FILE "$(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs" MODE RECORD_PASS_THROUGH
FACTORY_DEF * CreationFactory FACTORY_NAME AustinClippedNew_Trigger CREATE_AT_END OUTPUT FEATURE_TYPE __nukeme__ @TCL("lappend gVisualizerFilesToView $(SAFE_FFS_NAME)")
FACTORY_DEF * TeeFactory FACTORY_NAME AustinClippedNew_CleanerUpper INPUT FEATURE_TYPE __nukeme__
FACTORY_DEF * TeeFactory FACTORY_NAME "AustinClippedNew Output Nuker" INPUT FEATURE_TYPE AustinClippedNew
# -------------------------------------------------------------------------
DEFAULT_MACRO WORKSPACE_TEMP_DIR
INCLUDE [ if {{$(WORKSPACE_TEMP_DIR)} == {}} { puts {MACRO __WB_ENABLE_VISUALIZER__ no} } else { puts {MACRO __WB_ENABLE_VISUALIZER__ *} } ]
FACTORY_DEF $(__WB_ENABLE_VISUALIZER__) CreationFactory CREATE_AT_END OUTPUT FEATURE_TYPE __NUKEME__ @TCL("eval FME_Execute System \173fmeview /ownffs {$(WORKSPACE_TEMP_DIR)} $gVisualizerFilesToView & }")
FACTORY_DEF * TeeFactory INPUT FEATURE_TYPE __NUKEME__
# -------------------------------------------------------------------------
GEOTIFF_1_DEF AustinClippedNew geotiff_world_file_generation no geotiff_create_tiled_files no geotiff_compression_method lzw geotiff_jpeg_compression_level 75 geotiff_tab_file_generation yes
WBROUTER_OUT_DEF AustinClippedNew