#!#!
#!
#!#!
#!#!
#!#!
#!#!
#!#!
#!#!
#!#!
#!#!
#!#!
#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!#!#!#!#!#!#!#!#!#!#!#!
#!#!
#!#!
#!#!
#!#!FME_PYTHON_VERSION 27 # !START_HEADER # !START_WB_HEADER READER_TYPE NULL READER_KEYWORD NULL_SOURCE NULL_SOURCE_DATASET null WRITER_TYPE NULL WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET null #! END_WB_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)HilbertCurve.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_TIMINGS YES LOG_FILTER_MASK -1 # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No FME_BEGIN_PYTHON_ENC def
希尔伯特_Curve.
n
:
进口
numpy
from
numpy
进口
*
Generate
希尔伯特
curve
在dexing
为了
n
n
大批。
n
must
be
a
power
的
two.
#
递归
base
如果
n
==.
1:
return
numpy.zeros
1
1
在t32
#
制作
n
2
n
2
在dex
t
=
希尔伯特_Curve.
n
2
#
flip
it
四
时代
和
添加
在dex
抵消
a
=
flipud
rot90
t
b
=
t
+
t.size
c
=
t
+
t.size*2
d
=
flipud
rot90
t
-1
+
t.size*3
#
和
堆
四
瓷砖
在to
resulting
大批
return
vstack
map
h
a
b
d
c
#---------------------------------------------------------------------- MACRO WORKSPACE_NAME HilbertCurve MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- INCLUDE [ if {[info exists env(FME_TEMP)] && [file isdirectory $env(FME_TEMP)]} {set gVisualizerTemp $env(FME_TEMP)} elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]} {set gVisualizerTemp $env(TEMP)} elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} 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"; MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.ffs MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- Tcl2 proc Creator_CoordSysRemover {} { global FME_CoordSys; set FME_CoordSys {}; } MACRO Creator_XML NOT_ACTIVATED MACRO Creator_CLASSIC NOT_ACTIVATED MACRO Creator_2D3D 2D_GEOMETRY MACRO Creator_COORDS
INCLUDE [ if { {Geometry Object} == {Geometry Object} } { puts {MACRO Creator_XML *} } ] INCLUDE [ if { {Geometry Object} == {2D Coordinate List} } { puts {MACRO Creator_2D3D 2D_GEOMETRY}; puts {MACRO Creator_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {3D Coordinate List} } { puts {MACRO Creator_2D3D 3D_GEOMETRY}; puts {MACRO Creator_CLASSIC *} } ] INCLUDE [ if { {Geometry Object} == {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} { set trimmedCoords {}; foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} }; set splitCoords $trimmedCoords; }; if { [llength $splitCoords] != 4 } { error {Creator: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `
' 是无效的};};设置minx [Lindex $ splitCoords 0];设置Miny [Lindex $ SplitCoords 1];设置maxx [lindex $ splitcoords 2];设置maxy [lindex $ splitcoords 3];Puts“Macro Creator_coords $ minx $ miny $ minx $ maxy $ maxx $ maxy $ maxx $ miny $ minx $ miny”;放{宏creator_2d3d 2d_geometry};puts {宏creator_classic *}}] foress_def $(creator_xml)creationfactory factory_name creator_xml_creator create_at_end没有输出feature_type _____created______ @geometry(from_encoded_string,
?xml
版本=
1.0
编码=
US_ASCII.
独立=
不
?
geometry
尺寸=
2
空值
geometry
)FACTORY_DEF $(Creator_CLASSIC)CreationFactory FACTORY_NAME Creator_CLASSIC_Creator $(Creator_2D3D)$(Creator_COORDS)CREATE_AT_END无输出FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_Cloner INPUT FEATURE_TYPE _____CREATED______ NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE “_creation_instance” 输出FEATURE_TYPE Creator_CREATED @ TCL2(Creator_CoordSysRemover)@CoordSys()fme_feature_type造物主factory_def * branchingfactory factory_name“creator_created brancher -1 25”输入feature_type creator_created target_factory“$(wb_current_context)_creator_branch_target”输出传递feature_type * @removeattributes(“creator_created brancher -1 25”.branchingfactory.count)#---a------------------------------------------------------------------------------------ Factory_def * buddingboxfactory factory_name 2dgridcreator budding_box_type grid_corners grid_cell_size 100 100 grid_cell_count 15 15 grid_origin top_left grid_row_attr _row grid_col_attr _column grid_seed_x 0 grID_SEED_Y 0输出BOUNDING_BOX FEATURE_TYPE 2DGridCreator_CREATED @CoordSys()FACTORY_DEF * BranchingFactory FACTORY_NAME “2DGridCreator_CREATED分支器-1 21” INPUT FEATURE_TYPE 2DGridCreator_CREATED TARGET_FACTORY “$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET” 的Passed FEATURE_TYPE * @RemoveAttributes( “2DGridCreator_CREATED分支器-1 21” .BranchingFactory.Count)#--------------------------------------------------------------------- Factory_def * teefactory factory_name“$(wb_current_context)_creator_branch_target”输入feature_type *输出feature_type *#-------------------------------------------------------------------------------------- Factory_def * sortfactory factory_name分拣机输入feature_type 2dgridcreator_created sort_by _row数字升序_column数字升序排序feature_type sorter_sorted#---a--------------------------------------------------------------------------------#创建此变压器将使用的域名。#因为@count本身将评估表达式来计算#域,我们不需要通过包含[Set DomainPrefix {}的每个功能的TCL中的任何内容。如果{{global} == {local}} {set domainprefix [fme_encodeText {counter_}];}; puts "MACRO Counter_FULL_DOMAIN ${domainPrefix}counter2"; ] FACTORY_DEF * TeeFactory FACTORY_NAME Counter_Counter INPUT FEATURE_TYPE Sorter_SORTED @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "_count" @Count(REJECTABLE,fme_encoded,$(Counter_FULL_DOMAIN),"0") FACTORY_DEF * TestFactory FACTORY_NAME Counter_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT PASSED FEATURE_TYPE Counter_
@RemoveAttributes(___fme_rejection_code___) OUTPUT FAILED FEATURE_TYPE Counter_OUTPUT @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) FACTORY_DEF * TeeFactory FACTORY_NAME "Counter
输出Nuker“输入Feature_type计数器_
#---------------------------------------------------------------------- FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME PythonCaller_3 INPUT FEATURE_TYPE Creator_CREATED SYMBOL_NAME processFeature PYTHON_NAMESPACE FMEOBJECTS SOURCE_CODE import
fme
进口
fmeobjects
#
Template
功能
在terface:
#
When
使用
这
function
制作
当然
它的
名称
is
set
as
the
价值
的