FME Pluginbuilder API参考¶
这是FME Pluginbuilder API for Python的参考文档。
FME Pluginbuilder API包含用于实现FME的基于Python的读写器插件的抽象基类。
FMEMappingFile文件 |
映射文件类 |
装料机 |
读卡器超类 |
口碑书写器 |
编写器超类 |
映射文件¶
-
班
FMEMappingFile文件
¶ -
基础:
宾语
映射文件类
开发人员不会直接创建此类的实例。FME将实例化并提供对他们应该使用的实例的访问。
-
__初始__
¶ -
初始化自身。请参阅帮助(键入(self))以获取准确的签名。
-
获取功能类型
( 格式关键字前缀, 格式类型前缀, 参数, 获取模式 ) ¶ -
通过检查参数或映射文件对象,搜索+ID、_IDs和DEF关键字,并查找ID和DEF之间的交集,检索阅读器的所有要素类型。
参数: - 格式关键字前缀(海峡) -读取输入关键字前缀。
- 格式类型前缀(海峡) -用于读取的输入读取器类型前缀。
- 参数(名单[海峡]) -为阅读器打开参数。
- 获取模式(名单[海峡]) -
kFetchFeatureTypes仅限于
,kFetchFeatureTypes\u定义
,或kFetchFeatureTypes和Defs
.
返回类型: 返回: 从ID和DEFS要素类型名称的列表。如果没有ID和DEFS存在,则
没有
返回。
-
获取标志
( 关键字 ) ¶ -
检查关键字是否在值为yes、yes、true或true的映射文件中。
参数: 关键字(串) - 这是在映射文件检查的字符串。 返回类型: 布尔 返回: 真正
如果关键字是在映射文件与是,是,真,或TRUE的值。假
除此以外。
-
fetchFlagDefaultTrue
( 关键字 ) ¶ -
检查关键字是否在值为yes、yes、true或true的映射文件中,或者在未找到关键字时。
参数: 关键字(海峡) - 这是在映射文件检查的字符串。 返回类型: 布尔 返回: 真正
如果关键字是在映射文件,是一个值,YES,真的,或真,或当没有找到关键字。假
除此以外。
-
带前缀的fetchFlagWithPrefix
( 读关键字前缀, readerTypePrefix读取器类型前缀, 关键字 ) ¶ -
检查关键字是否在值为yes、yes、true或true的映射文件中。首先在映射文件中搜索带有reader关键字前缀的关键字,然后使用reader type前缀进行搜索,最后不使用前缀。
参数: 返回类型: 返回:
-
fetchFlagWithPrefixDefaultTrue
( 读关键字前缀, readerTypePrefix读取器类型前缀, 关键字 ) ¶ -
检查关键字是否在值为yes、yes、true或true的映射文件中,或者在未找到关键字时。首先在映射文件中搜索带有reader关键字前缀的关键字,然后使用reader type前缀进行搜索,最后不使用前缀。
参数: 返回类型: 返回:
-
获取搜索信封
( 格式关键字前缀, 格式类型前缀 ) ¶ -
在映射文件中检索搜索信封。这可以通过一行指定:
prefix_SEARCH_ENVELOPE其minXMINYmaxX的美星
或在单独的行中:
prefix_MINX其minX
prefix_MINYMINY
prefix_MAXXmaxX的
prefix_MAXY美星
如果搜索单行方法成功,则不会检查多行子句。
参数: 返回类型: 返回: 该列表返回格式((其minX,MINY),(maxX的,美星))。如果没有搜索信封存在,那么
没有
返回。
-
获取前缀
( 读关键字前缀, readerTypePrefix读取器类型前缀, 关键字 ) ¶ -
获取传入关键字的值。首先在映射文件中搜索带有reader关键字前缀的关键字,然后使用reader type前缀进行搜索,最后不使用前缀。
参数: 返回类型: 返回: 的值相匹配的关键字。
没有
意味着没有匹配的值。
-
getMacroValueExpanded
( 宏名 ) ¶ -
此例程检索预定义FME宏的值。
参数: 宏名(海峡) - 预定义的FME宏的名称。 返回类型: 海峡或没有 返回: 如果宏名在字典中找到返回宏值,否则 没有
返回。如果值本身包含的任何宏引用,则返回值之前,这些都扩大了,如果它引用的任何未定义的宏,它们与零长度字符串替换。
-
阅读器¶
-
班
装料机
¶ -
基础:
宾语
读卡器超类
开发人员必须实现自己的子类。然后,FME将使用开发人员提供的子类实例
FME_createReader公司
方法。使用此类的协议是:
当读取器向FME提供有关其输入数据源的模式信息以用于映射文件生成目的时,还可以使用另一种协议。在这种情况下,使用以下协议:
一个
fmeobjects.FMEException
可随时引发以指示发生错误。init(readerTypeName,readerKeyword,映射文件)
使用FME提供的成员创建读取器。
参数: - readerTypeName(海峡) -
在下列情况下使用的名称:
- 格式信息文件夹中格式的.db文件的名称
- .db文件中格式的短名称
- 元文件中的FORMAT_NAME
- readerKeyword(海峡) - 此阅读器实例的唯一标识符。
- mappingFile(FMEMappingFile文件) - 的
FMEMappingFile文件
-
__初始__
¶ -
初始化自身。请参阅帮助(键入(self))以获取准确的签名。
-
中止
( ) ¶ -
此方法在调用失败后立即由FME调用
阅读
或读模式
进行任何必要的清理关闭
被称为。在此方法中,应采取任何特殊操作来关闭未完成读取数据的读取器。例如,您可以记录消息或发送电子邮件,但通常它什么也不做。返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
关闭
( ) ¶ -
此方法在数据集用完后由FME调用(例如。
阅读
表示EOF)。它也被称为中止
如果在流中间发生错误。警告:对于单个
打开
打电话来。返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
获取属性
( 财产类别 ) ¶ -
此方法应根据该属性类别的需要返回字符串对列表。因此,返回的列表应该总是有偶数个条目。属性类别可以选择返回空列表如果无法识别属性类别,则方法本身的返回值为
没有
.当前,此方法处理以下属性类别:
“fme_search_type”
:如果使用的阅读器支持不同的搜索类型设置约束
,则返回的列表应包含它所能支持的所有搜索类型的属性/值对。一些例子搜索类型属性/值对是:“fme_envelope_intersects”
:如果使用的阅读器支持' fme_envelope ope_intersects '搜索类型设置约束
,则返回的列表应包含其所能支持的所有特定搜索类型原语的属性/值对。一些例子搜索类型基本属性/值对在这种情况下是:“fme_all_features”
:如果使用的阅读器支持' fme_all_features '搜索类型设置约束
,则返回的列表应包含其所能支持的所有特定搜索类型原语的属性/值对。一些例子搜索类型基本属性/值对在这种情况下是:“fme_metadata”
:如果使用的阅读器支持' fme_metadata '搜索类型设置约束
,则返回的列表应包含其可以为特定功能类型返回的所有元数据的属性/值对。这里有一些属性/值对的例子:- 'fme_元数据''fme_功能识别'
- “fme_元数据”“fme_几何图形”
- “fme_元数据”“fme_包含空间列”
- “fme_元数据”“fme_维度”
- “fme_元数据”“fme_num_条目”
- “fme_元数据”“fme_min_x”
- “fme_元数据”“fme_min_y”
- “fme_元数据”“fme_min_z”
- “fme_元数据”“fme_max_x”
- “fme_元数据”“fme_max_y”
- “fme_元数据”“fme_max_z”
- “fme_元数据”“fme_功能类型”
- 'fme_元数据''fme_where'
- “fme_元数据”“fme_测试”
- “fme_元数据”“fme_动态属性列表”
- 如果读取器不知道是否支持这种情况下的搜索类型原语
设置约束
,它应该会返回没有
.
“fme_db_join”
-如果使用的阅读器支持' fme_db_join '搜索类型设置约束
,则返回的列表应包含其所能支持的所有特定搜索类型原语的属性/值对。一些例子搜索类型基本属性/值对在这种情况下是:“fme_execute_sql”
:如果使用的阅读器支持' fme_execute_sql '搜索类型设置约束
,则返回的列表应包含其所能支持的所有特定搜索类型原语的属性/值对。一些例子搜索类型基本属性/值对在这种情况下是:“fme_get_version_list”
:如果使用的阅读器支持' fme_get_version_list '搜索类型设置约束
,则返回的列表应包含可返回的关于特定版本的所有信息的属性/值对。这里有一些属性/值对的例子:- 'fme_get_version_list''fme_version_access'
- “fme_get_version_list”“fme_version_creating_时间”
- “fme_get_version_list”“fme_version_描述”
- 'fme_get_version_list''fme_version_name'
- 'fme_get_version_list''fme_version_parent_name'
- 如果读取器不知道它是否支持此搜索类型,则应返回
没有
.
‘*’
:返回所有已知属性类别的所有属性。每个属性都作为条目的属性/值对返回。
参考IFMEReader setConstraints()文档了解更多信息。
返回类型: 名单或没有 返回: 返回属性/值对的列表中指定的属性类别。返回 没有
如果属性类别无法识别或财产范畴的支持是未知的。
-
打开
( 数据集名称, 参数 ) ¶ -
此方法使用提供的参数打开指定数据集上的读取器。可以打开读卡器来读取架构功能或数据功能,但不能同时读取两者。即打开读取器以读取架构功能时
读模式
被称为但是阅读
不是;当读卡器打开以读取数据功能时,阅读
被称为但是读模式
不是。打开读取器以读取架构功能时,没有映射文件上下文(请参见读模式
).在这种情况下,读取器所需的所有信息都通过参数列表传入参数列表的第一个条目将始终包含“datasetName”的副本。其余条目包含:- 有关SOURCE_READER线图元文件中列出的任何读者关键字的名称/值对;
- 功能返回指定为“ID” /值对特征类型,whcih用于限制模式的数量的列表。例如,当
打开
被调用以读取模式特性,所述参数阵列可能包含:(C:\数据\ parcels.tfs',“GRID_SIZE”,“1000”,“RESOLVE_AGGREGATES”,“是”)。
打开读卡器读取数据功能时,参数列表为空,读卡器负责从映射文件对象获取其关键字和id。
参数: 数据集名称(海峡) - 要读取的文件夹,文件或数据库。 返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
阅读
( ) ¶ -
FME重复调用此方法,直到它返回
没有
,向FME指示读数已完成。返回类型: fmeobjects.FMEFeature
或没有
返回: 返回数据集中的一个功能。如果没有更多的功能来读取,回报 没有
.
-
读模式
( ) ¶ -
FME反复调用这个方法,从输入数据集中获取下一个模式特性,直到它返回
没有
,表示已返回所有架构功能。每次调用它时,它都应该提供一个唯一的模式特性。此方法必须由支持以下两个选项之一的读取器实现:- 自动翻译支持:即生成映射文件和拖和下降的翻译。
- FME Objects支持:即可以从FME可以使用对象的应用程序,如FME通用查看器。
在这两种情况下,都需要一个元文件。
通过指定以下信息生成有效的架构功能:
- 特征类型:由模式特征对应于主题,层级,文件或数据库表名称根据输入格式描述的特征类型。即
fmeobjects.FMEFeature.setFeatureType
(“MyFeatureType”)。 - 用户属性:如果该格式支持用户定义的属性,描述数据中的每个用户属性这种类型的特点是使用sequencedAttribute属性添加。即
fmeobjects.FMEFeature.setAttribute
(“姓名”,“类型”)用来定义用户属性的格式特定类型是使用在图元文件中提供的属性类型映射(ATTR_TYPE_MAP)转换为通用类型FME。 - 允许几何形状:一个或多个几何类型的有效期为这种类型的数据的功能列表中名为“fme_geometry”使用列表属性指定
fmeobjects.FMEFeature.setAttribute
(列表)方法。
模式功能可以选择指定坐标系(如果已知)。
返回类型: fmeobjects.FMEFeature
或没有
返回: 返回数据集中的下一个模式功能。如果没有更多的模式特性,回报 没有
.举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
设置约束
( 特征 ) ¶ -
指定读取数据时要使用的空间和属性约束。空间和属性查询在要素对象中指定。这只需要实现
空间的
作为真正
否则他们什么也做不了。这可以在创建读取器后的任何时间调用。如果正在进行任何读取,则它将终止,下一次读取将反映新的约束。参数: 特征( fmeobjects.FMEFeature
) - 约束功能必须有一个名为“fme_search_type”它的属性。此属性的值表示要执行的搜索类型。参考IFMEReader setConstraints()文档更详细的信息。返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
- readerTypeName(海峡) -
常数¶
作家¶
-
班
口碑书写器
¶ -
基础:
宾语
编写器超类
开发人员必须实现自己的子类。然后,FME将使用开发人员提供的子类实例
FME_createWriter公司
方法。使用此类的协议是:
init(writerType,destKeyword,映射文件)
使用FME提供的参数创建读取器。
参数: - writerType(海峡) -
在下列情况下使用的名称:
- 格式信息文件夹中格式的.db文件的名称。
- .db文件中格式的短名称。
- 元文件中的FORMAT_NAME。
- destKeyword(海峡) - 此作家实例的唯一标识符。
- mappingFile(FMEMappingFile文件) - 的FMEMappingFile。
-
__初始__
¶ -
初始化自身。请参阅帮助(键入(self))以获取准确的签名。
-
中止
( ) ¶ -
此方法在调用失败后立即由FME调用
写
进行任何必要的清理关闭
被称为。在此方法中,应采取任何特殊操作来关闭未完成读取数据的写入程序。例如,如果您的格式需要在文件末尾加一个页脚,则可以使用此方法编写。返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
addMappingFileDefLine
( 缓和 ) ¶ -
此方法向编写器添加一个定义行。对于不支持来自模式功能的模式的格式或系统,什么都不做。
返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
关闭
( ) ¶ -
此方法在完成向编写器发送特征之后由FME调用。它也被称为
中止
如果在流中间发生错误。警告:对于单个
打开
打电话来。返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
委托交易
( ) ¶ -
此方法提交当前事务。对于没有事务概念的格式或系统,什么都不做。
返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
多文件编写器
( ) ¶ -
在单个writer体系结构中,只创建并打开一个writer实例。在多编写器体系结构中,为每个功能类型创建一个实例,并在
打开
打电话来。参考打开
有关附加信息的详细信息。在以下场景中:- 单写架构
- 映射文件_DEF线用来检索架构特征信息
writer必须显式处理“Feature Type Fanout By Attribute”(有关详细信息,请参阅FME帮助)。当写入程序在扇出模式下使用时,发送到写入程序的数据功能的功能类型与任何定义行中定义的功能类型都不匹配。若要在此方案中正确操作,写入程序必须基于“fme_template_feature_type”属性检索定义行信息。该匹配定义行的值应用于给定的数据功能以确定架构定义。如果您需要此高级方案的帮助,请联系支持@fmeobjects.COM.在多作家架构的情况下,“要素类型扇出按属性”由FME自动处理。典型地,单写架构用于创建单个文件写入器和多作家架构用于创建一个目录作家。数据库编写者可以使用依赖于实现单一和多作家架构。
返回类型: 布尔 返回: 返回 真正
如果作者是使用多作家架构和回报假
如果笔者是使用单写架构。
-
打开
( 数据集名称, 参数 ) ¶ -
该方法打开使用提供的参数指定的数据集的作家。在单写入器架构中,参数列表总是空的和写入器可以可选地检索上下文信息(例如指令,从FME模式等)。在多作家架构,作家实例将对于具有架构信息的各特征类型创建。当这种方法被称为一个作家例如,参数列表包含功能型随后的属性名称/类型对。例如,当
打开
被称为在多作家架构中,参数列表可能是:(“类型特征”,“ATTRIBUTE1”,“炭(50)”,“attribute2”,“号(31,15)”)。参数: 数据集名称(海峡) - 一个文件夹,文件或数据库写入。 返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
rollbackTransaction
( ) ¶ -
此方法回滚当前事务。对于没有事务概念的格式或系统,什么都不做。
返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
的startTransaction
( ) ¶ -
这种方法开始一个新的事务。对于没有事务概念的格式或系统,什么都不做。
返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
-
写
( 特征 ) ¶ -
此方法写入功能,输出数据集。
返回类型: 没有 返回: 返回值被忽略。 举: FMEException- 该方法应引发 fmeobjects.FMEException
信号已经发生了错误。
- writerType(海峡) -