FME Pluginbuilder API参考

这是FME Pluginbuilder API for Python的参考文档。

FME Pluginbuilder API包含用于实现FME的基于Python的读写器插件的抽象基类。

FMEMappingFile文件 映射文件类
装料机 读卡器超类
口碑书写器 编写器超类

映射文件

FMEMappingFile文件

基础:宾语

映射文件类

开发人员不会直接创建此类的实例。FME将实例化并提供对他们应该使用的实例的访问。

__初始__

初始化自身。请参阅帮助(键入(self))以获取准确的签名。

取来 ( 关键字 )

获取传入关键字的值。

参数: 关键字() - 关键字来获取。
返回类型: ,INT,浮动,名单,没有
返回: 的值相匹配的关键字。没有意味着没有匹配的值。
获取功能类型 ( 格式关键字前缀, 格式类型前缀, 参数, 获取模式 )

通过检查参数或映射文件对象,搜索+ID、_IDs和DEF关键字,并查找ID和DEF之间的交集,检索阅读器的所有要素类型。

参数:
返回类型:

名单[海峡] 要么没有

返回:

从ID和DEFS要素类型名称的列表。如果没有ID和DEFS存在,则没有返回。

获取标志 ( 关键字 )

检查关键字是否在值为yes、yes、true或true的映射文件中。

参数: 关键字() - 这是在映射文件检查的字符串。
返回类型: 布尔
返回: 真正如果关键字是在映射文件与是,是,真,或TRUE的值。除此以外。
fetchFlagDefaultTrue ( 关键字 )

检查关键字是否在值为yes、yes、true或true的映射文件中,或者在未找到关键字时。

参数: 关键字(海峡) - 这是在映射文件检查的字符串。
返回类型: 布尔
返回: 真正如果关键字是在映射文件,是一个值,YES,真的,或真,或当没有找到关键字。除此以外。
带前缀的fetchFlagWithPrefix ( 读关键字前缀, readerTypePrefix读取器类型前缀, 关键字 )

检查关键字是否在值为yes、yes、true或true的映射文件中。首先在映射文件中搜索带有reader关键字前缀的关键字,然后使用reader type前缀进行搜索,最后不使用前缀。

参数:
  • 读关键字前缀(海峡) - Reader关键字前缀字符串。
  • readerTypePrefix读取器类型前缀(海峡) -读取器类型的前缀字符串。
  • 关键字(海峡) - 这是在映射文件检查的字符串。
返回类型:

布尔

返回:

真正如果关键字是在映射文件与是,是,真,或TRUE的值。除此以外。

fetchFlagWithPrefixDefaultTrue ( 读关键字前缀, readerTypePrefix读取器类型前缀, 关键字 )

检查关键字是否在值为yes、yes、true或true的映射文件中,或者在未找到关键字时。首先在映射文件中搜索带有reader关键字前缀的关键字,然后使用reader type前缀进行搜索,最后不使用前缀。

参数:
  • 读关键字前缀(海峡) - Reader关键字前缀字符串。
  • readerTypePrefix读取器类型前缀(海峡) -读取器类型的前缀字符串。
  • 关键字(海峡) - 这是在映射文件检查的字符串。
返回类型:

布尔

返回:

真正如果关键字是在映射文件,是一个值,YES,真的,或真,或当没有找到关键字。除此以外。

获取搜索信封 ( 格式关键字前缀, 格式类型前缀 )

在映射文件中检索搜索信封。这可以通过一行指定:prefix_SEARCH_ENVELOPE其minXMINYmaxX的美星

或在单独的行中:

  • prefix_MINX其minX
  • prefix_MINYMINY
  • prefix_MAXXmaxX的
  • prefix_MAXY美星

如果搜索单行方法成功,则不会检查多行子句。

参数:
  • 格式关键字前缀(海峡) -读取输入关键字前缀。
  • 格式类型前缀(海峡) -用于读取的输入读取器类型前缀。
返回类型:

名单[浮动] 要么没有

返回:

该列表返回格式((其minX,MINY),(maxX的,美星))。如果没有搜索信封存在,那么没有返回。

获取前缀 ( 读关键字前缀, readerTypePrefix读取器类型前缀, 关键字 )

获取传入关键字的值。首先在映射文件中搜索带有reader关键字前缀的关键字,然后使用reader type前缀进行搜索,最后不使用前缀。

参数:
  • 读关键字前缀(海峡) - Reader关键字前缀字符串。
  • readerTypePrefix读取器类型前缀(海峡) -读取器类型的前缀字符串。
  • 关键字(海峡) - 这是在映射文件检查的字符串。
返回类型:

海峡,INT,浮动,名单,没有

返回:

的值相匹配的关键字。没有意味着没有匹配的值。

获取宏名称 ( )

此方法检索映射文件解析结束时定义的所有宏名称。每个名称都可以在获取标志方法获取其实际值。

返回类型: 名单[海峡]
返回: 宏名称的列表。
getMacroValueExpanded ( 宏名 )

此例程检索预定义FME宏的值。

参数: 宏名(海峡) - 预定义的FME宏的名称。
返回类型: 海峡没有
返回: 如果宏名在字典中找到返回宏值,否则没有返回。如果值本身包含的任何宏引用,则返回值之前,这些都扩大了,如果它引用的任何未定义的宏,它们与零长度字符串替换。
下一行 ( )

获取映射文件中的下一个逻辑行。

返回类型: 名单没有
返回: 下一个逻辑线分离成在列表中的各个组件。没有当有可用的没有更多的线路返回。
下一行带筛选器 ( 滤波器 )

获取映射文件中第一个字符串等于筛选器字符串的下一个逻辑行。

参数: 滤波器(海峡) - 用于过滤价值。
返回类型: 名单没有
返回: 下一个逻辑线分离成在列表中的各个组件。没有当有可用的没有更多的线路返回。
淀粉滴定 ( )

初始化映射文件对象,以便一次遍历一行完整的映射文件。

返回类型: 没有

阅读器

装料机

基础:宾语

读卡器超类

开发人员必须实现自己的子类。然后,FME将使用开发人员提供的子类实例FME_createReader公司方法。

使用此类的协议是:

  1. 实例构造和初始化由开发者FME_createReader公司方法。
  2. FME将调用打开当它是时间的数据集被打开。
  3. 阅读将重复调用来检索数据存储功能。当达到最终的数据,阅读将返回没有这表明。
  4. FME将调用关闭关闭阅读器。
  5. 在过程中的任何时间(3),中止可以被称为终止读数。后来close方法将被调用,以正确地关闭阅读器。对于大多数实现,中止什么都不做。

当读取器向FME提供有关其输入数据源的模式信息以用于映射文件生成目的时,还可以使用另一种协议。在这种情况下,使用以下协议:

  1. 实例构造和初始化由开发者FME_createReader公司方法。
  2. FME将调用打开当它是时间的数据集被打开。
  3. 读模式将反复调用。每个它发回另一个特征,其保持“模式”的信息时(即对源数据集属性的名字和类型)。当所有的架构信息已发送,读模式将返回没有这表明。
  4. 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_search_type”“fme_envelope_intersects”
    • “fme_search_type”“fme_all_features”
    • “fme_search_type”“fme_metadata”
    • “fme_search_type”“fme_db_join”
    • 'fme_search_type''fme_execute_sql'
    • 如果读取器不知道是否支持设置约束,它应该会返回没有.
  • “fme_envelope_intersects”:如果使用的阅读器支持' fme_envelope ope_intersects '搜索类型设置约束,则返回的列表应包含其所能支持的所有特定搜索类型原语的属性/值对。一些例子搜索类型基本属性/值对在这种情况下是:

    • 'fme_envelope_intersects''fme_envelope_order_results''
    • “fme_信封相交”“fme_功能类型”
    • “fme_信封交叉”“fme_在哪里”
    • “fme_包络线相交”“fme_测试”
    • “fme_信封相交”“fme_动态属性列表”
    • 如果读取器不知道是否支持这种情况下的搜索类型原语设置约束,它应该会返回没有.
  • “fme_all_features”:如果使用的阅读器支持' fme_all_features '搜索类型设置约束,则返回的列表应包含其所能支持的所有特定搜索类型原语的属性/值对。一些例子搜索类型基本属性/值对在这种情况下是:

    • 'fme_all_features''fme_feature_type'
    • “fme_所有功能”“fme_在哪里”
    • “fme_所有功能”“fme_测试”
    • “fme_所有功能”“fme_动态属性列表”
    • 如果读取器不知道是否支持这种情况下的搜索类型原语设置约束,它应该会返回没有.
  • “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_db_join”“fme_select_列”
    • “fme_db_join”“fme_key_列”
    • “fme_db_join”“fme_key_值”
    • 'fme_db_join''fme_feature_type'
    • 'fme_db_join''fme_where'
    • “fme_db_join”“fme_测试”
    • 'fme_db_join''fme_dynamic_attr_list'
    • 如果读取器不知道是否支持这种情况下的搜索类型原语设置约束,它应该会返回没有.
  • “fme_execute_sql”:如果使用的阅读器支持' fme_execute_sql '搜索类型设置约束,则返回的列表应包含其所能支持的所有特定搜索类型原语的属性/值对。一些例子搜索类型基本属性/值对在这种情况下是:

    • “fme_execute_sql”“fme_select_列”
    • 'fme_execute_sql''fme_sql_语句'
    • 'fme_execute_sql''fme_feature_type'
    • 'fme_execute_sql''fme_where'
    • “fme_execute_sql”“fme_测试”
    • 'fme_execute_sql''fme_dynamic_attr_list'
    • 如果读取器不知道是否支持这种情况下的搜索类型原语设置约束,它应该会返回没有.
  • “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()文档了解更多信息。

返回类型: 名单没有
返回: 返回属性/值对的列表中指定的属性类别。返回没有如果属性类别无法识别或财产范畴的支持是未知的。
身份证件 ( )

调用此方法以获取读取器的唯一标识。

返回类型: INT
返回: 的唯一标识符此读卡器。
打开 ( 数据集名称, 参数 )

此方法使用提供的参数打开指定数据集上的读取器。可以打开读卡器来读取架构功能或数据功能,但不能同时读取两者。即打开读取器以读取架构功能时读模式被称为但是阅读不是;当读卡器打开以读取数据功能时,阅读被称为但是读模式不是。打开读取器以读取架构功能时,没有映射文件上下文(请参见读模式).在这种情况下,读取器所需的所有信息都通过参数列表传入参数列表的第一个条目将始终包含“datasetName”的副本。其余条目包含:

  • 有关SOURCE_READER线图元文件中列出的任何读者关键字的名称/值对;
  • 功能返回指定为“ID” /值对特征类型,whcih用于限制模式的数量的列表。例如,当打开被调用以读取模式特性,所述参数阵列可能包含:(C:\数据\ parcels.tfs',“GRID_SIZE”,“1000”,“RESOLVE_AGGREGATES”,“是”)。

打开读卡器读取数据功能时,参数列表为空,读卡器负责从映射文件对象获取其关键字和id。

参数: 数据集名称(海峡) - 要读取的文件夹,文件或数据库。
返回类型: 没有
返回: 返回值被忽略。
举: FMEException- 该方法应引发fmeobjects.FMEException信号已经发生了错误。
阅读 ( )

FME重复调用此方法,直到它返回没有,向FME指示读数已完成。

返回类型: fmeobjects.FMEFeature没有
返回: 返回数据集中的一个功能。如果没有更多的功能来读取,回报没有.
读模式 ( )

FME反复调用这个方法,从输入数据集中获取下一个模式特性,直到它返回没有,表示已返回所有架构功能。每次调用它时,它都应该提供一个唯一的模式特性。此方法必须由支持以下两个选项之一的读取器实现:

  1. 自动翻译支持:即生成映射文件和拖和下降的翻译。
  2. 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信号已经发生了错误。
空间的 ( )

指示此读取器是否支持空间约束。

返回类型: 布尔
返回: 默认情况下此回报.如果读者不支持空间约束则返回真正.

常数

获取模式常量

kFetchFeatureTypes仅限于
kFetchFeatureTypes\u定义
kFetchFeatureTypes和Defs

作家

口碑书写器

基础:宾语

编写器超类

开发人员必须实现自己的子类。然后,FME将使用开发人员提供的子类实例FME_createWriter公司方法。

使用此类的协议是:

  1. 实例构造和初始化由开发者FME_createWriter公司方法。
  2. FME将调用打开当它是时间的数据集被打开。
  3. 将被重复调用,写功能的数据存储。
  4. 当FME运行的特点出来发送给作者,它会调用关闭将其关闭。
  5. 在过程中的任何时间(3),中止可以被称为终止写作。后来close方法将被调用,以正确地关闭作家。对于大多数实现,中止什么都不做。一个fmeobjects.FMEException可随时引发以指示发生错误。

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信号已经发生了错误。
身份证件 ( )

调用此方法可获取写入程序的唯一标识。

返回类型: INT
返回: 的唯一标识符这个作家。
多文件编写器 ( )

在单个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信号已经发生了错误。