#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! FME_PYTHON_VERSION 27 GUI IGNORE SourceDataset_LAS_1,LAS_IN_EXPOSE_ATTRS_GROUP_LAS_1,LAS_IN_SEARCH_ENVELOPE_MINX_LAS_1,LAS_IN_SEARCH_ENVELOPE_MINY_LAS_1,LAS_IN_SEARCH_ENVELOPE_MAXX_LAS_1,LAS_IN_SEARCH_ENVELOPE_MAXY_LAS_1,LAS_IN_CLIP_TO_ENVELOPE_LAS_1,LAS_IN_NETWORK_AUTHENTICATION_LAS_1,LAS_IN_NETWORK_PROXY_LAS_1,SEARCH_ENVELOPE_COORDINATE_SYSTEM_LAS_1,DestDataset_LAS_2,LAS_OUT_VERSION_LAS_2,LAS_OUT_COMPRESSION_LAS_2,_ARCGIS_LAS_DATASET_LAS_2,_COMPUTE_STATISTICS_ON_ARCGIS_LAS_DATASET_LAS_2 DEFAULT_MACRO DestDataset_LAS D:\ GUI DIRNAME DestDataset_LAS Destination ASPRS LAS Directory: DEFAULT_MACRO SourceDataset_LAS D:\PNOA_L5_2010_CYL-RIO_25cm_VL_las_sc_496-4686.las GUI MULTIFILE SourceDataset_LAS LAS_Files(*.las;*.laz)|*.las;*.laz|LAS_Files(*.las)|*.las|Compressed_LAS_Files(*.laz)|*.laz|All_files(*.*)|*.* Source ASPRS LAS File(s): INCLUDE [ if {{$(DestDataset_LAS)} == {}} { puts_real {Parameter 'DestDataset_LAS' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_LAS)} == {}} { puts_real {Parameter 'SourceDataset_LAS' must be given a value.}; exit 1; }; ] #! START_HEADER #! START_WB_HEADER READER_TYPE LAS READER_KEYWORD LAS_1 WRITER_TYPE MULTI_WRITER MULTI_WRITER_DATASET_ORDER BY_ID MULTI_WRITER_FIRST_WRITER_ID 0 MULTI_WRITER_TYPE{0} LAS MULTI_WRITER_KEYWORD{0} LAS_2 #! END_WB_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "LAS_1" #! END_WB_HEADER #! START_SOURCE_HEADER LAS LAS_1 # ======================================================================= # The following GUI line prompts for a file to be used as the source LAS 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_LAS_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER LAS LAS_1 DEFAULT_MACRO SourceDataset_LAS_1 $(SourceDataset_LAS) GUI MULTIFILE SourceDataset_LAS_1 LAS_Files(*.las;*.laz)|*.las;*.laz|LAS_Files(*.las)|*.las|Compressed_LAS_Files(*.laz)|*.laz|All_files(*.*)|*.* Source ASPRS LAS File(s): LAS_1_READER_META_ATTRIBUTES fme_dataset fme_basename DEFAULT_MACRO LAS_IN_GROUP_BY_DATASET_LAS_1 No LAS_1_GROUP_BY_DATASET "$(LAS_IN_GROUP_BY_DATASET_LAS_1)" DEFAULT_MACRO LAS_IN_EXPOSE_ATTRS_GROUP_LAS_1 LAS_1_EXPOSE_ATTRS_GROUP "$(LAS_IN_EXPOSE_ATTRS_GROUP_LAS_1)" GUI DISCLOSUREGROUP LAS_IN_EXPOSE_ATTRS_GROUP_LAS_1 LAS_EXPOSE_FORMAT_ATTRS Schema Attributes # 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 LAS_IN_SEARCH_ENVELOPE_MINX_LAS_1 0 LAS_1_SEARCH_ENVELOPE "$(LAS_IN_SEARCH_ENVELOPE_MINX_LAS_1)" GUI OPTIONAL FLOAT LAS_IN_SEARCH_ENVELOPE_MINX_LAS_1 Minimum X: # =========================================================================== DEFAULT_MACRO LAS_IN_SEARCH_ENVELOPE_MINY_LAS_1 0 LAS_1_SEARCH_ENVELOPE "$(LAS_IN_SEARCH_ENVELOPE_MINY_LAS_1)" GUI OPTIONAL FLOAT LAS_IN_SEARCH_ENVELOPE_MINY_LAS_1 Minimum Y: # =========================================================================== DEFAULT_MACRO LAS_IN_SEARCH_ENVELOPE_MAXX_LAS_1 0 LAS_1_SEARCH_ENVELOPE "$(LAS_IN_SEARCH_ENVELOPE_MAXX_LAS_1)" GUI OPTIONAL FLOAT LAS_IN_SEARCH_ENVELOPE_MAXX_LAS_1 Maximum X: # =========================================================================== DEFAULT_MACRO LAS_IN_SEARCH_ENVELOPE_MAXY_LAS_1 0 LAS_1_SEARCH_ENVELOPE "$(LAS_IN_SEARCH_ENVELOPE_MAXY_LAS_1)" GUI OPTIONAL FLOAT LAS_IN_SEARCH_ENVELOPE_MAXY_LAS_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 LAS_IN_CLIP_TO_ENVELOPE_LAS_1 NO LAS_1_CLIP_TO_ENVELOPE "$(LAS_IN_CLIP_TO_ENVELOPE_LAS_1)" GUI OPTIONAL CHECKBOX LAS_IN_CLIP_TO_ENVELOPE_LAS_1 YES%NO Clip to Search Envelope # =========================================================================== DEFAULT_MACRO LAS_IN_NETWORK_AUTHENTICATION_LAS_1 LAS_1_NETWORK_AUTHENTICATION "$(LAS_IN_NETWORK_AUTHENTICATION_LAS_1)" GUI OPTIONAL AUTHENTICATOR LAS_IN_NETWORK_AUTHENTICATION_LAS_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # =========================================================================== DEFAULT_MACRO LAS_IN_NETWORK_PROXY_LAS_1 LAS_1_NETWORK_PROXY "$(LAS_IN_NETWORK_PROXY_LAS_1)" GUI OPTIONAL AUTHENTICATOR LAS_IN_NETWORK_PROXY_LAS_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Proxy"%PROMPT_TYPE%PROXY Network Proxy # PR:31021 # Include this file in workbench source preamble section to enable the ability # to specify a coordinate system for search envelope processing # =========================================================================== DEFAULT_MACRO SEARCH_ENVELOPE_COORDINATE_SYSTEM_LAS_1 GUI OPTIONAL COORDSYS SEARCH_ENVELOPE_COORDINATE_SYSTEM_LAS_1 Search Envelope Coordinate System: LAS_1_SEARCH_ENVELOPE_COORDINATE_SYSTEM "$(SEARCH_ENVELOPE_COORDINATE_SYSTEM_LAS_1)" # =========================================================================== LAS_1_DATASET "$(SourceDataset_LAS_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "LAS_2" #! END_WB_HEADER #! START_DEST_HEADER LAS LAS_2 # The following GUI lines prompt for a LAS 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_LAS_2 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER LAS LAS_2 DEFAULT_MACRO DestDataset_LAS_2 $(DestDataset_LAS) GUI DIRNAME DestDataset_LAS_2 Destination ASPRS LAS Directory: LAS_2_COORDINATE_SYSTEM_GRANULARITY FEATURE # ============================================================================ # Version DEFAULT_MACRO LAS_OUT_VERSION_LAS_2 1.2 LAS_2_VERSION "$(LAS_OUT_VERSION_LAS_2)" GUI CHOICE LAS_OUT_VERSION_LAS_2 1.0%1.1%1.2 ASPRS LAS Version: # [PR#30472] Compression DEFAULT_MACRO LAS_OUT_COMPRESSION_LAS_2 No LAS_2_COMPRESSION "$(LAS_OUT_COMPRESSION_LAS_2)" GUI CHOICE LAS_OUT_COMPRESSION_LAS_2 Yes%No Compress Files: # The following GUI line provides the ability to create an # Esri ArcGIS LAS Dataset encapsulating the LAS files produced # by this translation. The LAS Dataset can then be used to view # the output using Esri's tools. DEFAULT_MACRO _ARCGIS_LAS_DATASET_LAS_2 GUI OPTIONAL TEXT _ARCGIS_LAS_DATASET_LAS_2 ArcGIS LAS Dataset (.lasd) Filename: LAS_2_ARCGIS_LAS_DATASET "$(_ARCGIS_LAS_DATASET_LAS_2)" # The following GUI line determines whether statistics should # be calculated on the ArcGIS LAS Dataset. This keyword is # applicable when FME is creating an ArcGIS LAS Dataset. DEFAULT_MACRO _COMPUTE_STATISTICS_ON_ARCGIS_LAS_DATASET_LAS_2 No GUI CHOICE _COMPUTE_STATISTICS_ON_ARCGIS_LAS_DATASET_LAS_2 Yes%No Compute Statistics on ArcGIS LAS Dataset: LAS_2_COMPUTE_STATISTICS_ON_ARCGIS_LAS_DATASET $(_COMPUTE_STATISTICS_ON_ARCGIS_LAS_DATASET_LAS_2) LAS_2_DATASET "$(DestDataset_LAS_2)" #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)LASelipsoide_LASgeoide.log" LOG_APPEND NO 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 LOG_FILTER_MASK -1 DEFAULT_MACRO DATASET_KEYWORD_LAS_1 LAS_1 DEFAULT_MACRO DATASET_KEYWORD_LAS_2 LAS_2 # ------------------------------------------------------------------------- LAS_1_READER_META_ATTRIBUTES fme_basename fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME LASelipsoide_LASgeoide MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- LAS_1_DEF LAS # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD LAS_1 INPUT FEATURE_TYPE * ROUTE LAS LAS_1::LAS TO FME_GENERIC ::LAS ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * LAS_1_MERGE_DEF LAS_1::LAS EXACT LAS # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "LAS (LAS_1) Splitter" INPUT FEATURE_TYPE LAS OUTPUT FEATURE_TYPE LAS_LAS_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- # Deletes the coordinate system off the feature, if present. Tcl2 proc CsmapReprojector_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO CsmapReprojector_REMOVE_CS MACRO CsmapReprojector_TRANSFORMATION # Only pass on transformation if a source coordinate system was picked INCLUDE [ if { {ETRS89.UTM-30N} != {} } { puts {MACRO CsmapReprojector_REMOVE_CS @Tcl2(CsmapReprojector_CoordSysRemover)}; puts {MACRO CsmapReprojector_TRANSFORMATION "NULL_FME"}; }; ] FACTORY_DEF * TeeFactory FACTORY_NAME CsmapReprojector INPUT FEATURE_TYPE LAS_LAS_1 OUTPUT FEATURE_TYPE CsmapReprojector_REPROJECTED $(CsmapReprojector_REMOVE_CS) @Reproject(FME,"ETRS89.UTM-30N","ETRS89.UTM-30N",3D_ELLIPSOID_TO_ORTHOMETRIC,"$(FME_HOME)Reproject\GeoidHeightGrids\Spain\EGM08_REDNAP.gdc","$(CsmapReprojector_TRANSFORMATION)",--,NearestNeighbor,PreserveCells) # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC CsmapReprojector_REPROJECTED TO LAS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,SupplyAttributesENCODED__wb_out_feat_type__archivo.las GEOMETRY 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__ # ------------------------------------------------------------------------- LAS_2_DEF archivo.las