span8
span4
喜的朋友,
两个问题:
1。我们可以在这个文本字段中键入属性名称,但我们不能通过它像变量或文本字符串(列表)。我怎样才能通过这个发布参数“属性删除”字段作家对话框?
2。如果我写塑造和它跨越2GB大小FME给出错误。我如何VCAN分割形状文件,如果它跨越2GB?(如FME分裂V7 DGN文件大小V7作家)
说明:
如前所述通过@拉里,我认为唯一的解决方法是删除架构中的功能属性定义。下面是一个使用PythonCaller可以从模式确定指标删除一个或多个属性的定制变压器。属性名来删除列表可以链接到已发布或秘密参数。
实施例用例:
工作区模板:删除schemafeatures.fmwt
需要注意的是在定制变压器参数中列出的属性名称是区分大小写的。定制变压器将显示一条警告消息,每当属性定义已经从架构功能删除FME日志。
PythonCaller代码:
进口fmeobjects类RemoveSchemaAttrs(对象)的:def输入(个体,特征):attr_names = feature.getAttribute( '属性{}名称')attr_fme_datatypes = feature.getAttribute( '属性{} fme_data_type')attr_native_datatypes = feature.getAttribute('attribute{}.native_data_type') attrs_to_remove = feature.getAttribute('_SCHEMA_ATTRS_TO_REMOVE').split(',') fme_feature_type_name = feature.getAttribute('fme_feature_type_name') for attr_index, attr_name in enumerate(attr_names): if attr_name in attrs_to_remove: fmeobjects.FMELogFile().logMessageString( 'Removing schema attribute "%s" from schema "%s"' % (attr_name, fme_feature_type_name), fmeobjects.FME_WARN) del attr_names[attr_index] del attr_fme_datatypes[attr_index] del attr_native_datatypes[attr_index] feature.setAttribute('attribute{}.name', attr_names) feature.setAttribute('attribute{}.fme_data_type', attr_fme_datatypes) feature.setAttribute('attribute{}.native_data_type', attr_native_datatypes) self.pyoutput(feature)
导入fmeobjects类removeschemaattrs(对象):def input(self,功能:newattr_names=[]newattr_fme_datatypes=[]newattr_native_datatypes=[]attr_names=feature.getAttribute('attribute{}.name')attr_fme_datatypes=feature.getAttribute('attribute{}.fme_data_type')attr_native_datatypes=feature.getAttribute('attribute{}.native_data_type')attrs_to_remove=特性索引的feature.getAttribute(''u SCHEMA_ATTRS_TO_REMOVE').split('',')fme_feature_type_name=feature.getAttribute('fme_feature_type_name')枚举中的attr名称(attr名称):如果attr名称不在attr名称中,则要删除:newattr名称。append(attr名称[attr索引](attr名称[attr索引索引])newattr \u fme \u数据类型。append(attr \u fme \u数据类型[attr索引])newattr \u native \u数据类型。append(attr \u native \u数据类型[attr \u索引])newattr \u native \u数据类型。append(attr \u native \u数据类型[attr \u索引])fmeobjects.fmelogMessageString('qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq名称[属性索引],fme_feature_type_name),fmeobjects.fme_WARN)feature.setAttribute('attribute{}.name',newattr_names)feature.setAttribute('attribute{}.fme_data_type',newattr_fme_datatypes)feature.setAttribute('attribute{}.native_data_type',newattr_native_datatypes)b=0代表b枚举中的attr_name(newattr_name s):fmeobjects.FMELogFile().logMessageString('end1“%s”来自架构“%s”'%(newattr_names[b],fme_feature_type_name),fmeobjects.fme_WARN)self.pyoutput(feature)
关于第二个问题,这是shapefile规范的限制,目前有一个很好的解决方法:接近2GB时自动平铺形状文件,如果你还没有投票的话,我建议你投赞成票。
同时,你也无能为力。既然你比我们更了解你的数据,你有没有办法根据用户的输入来预测输出有多大?如果是这样的话,你可以添加一个平铺器来自动剪切数据。
©2019安全亚搏在线软件公司|法律