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