类 ReclassMappingTable
- java.lang.Object
-
- com.supermap.data.InternalHandle
-
- com.supermap.data.InternalHandleDisposable
-
- com.supermap.analyst.spatialanalyst.ReclassMappingTable
-
- 所有已实现的接口:
- IDisposable
public class ReclassMappingTable extends com.supermap.data.InternalHandleDisposable
栅格重分级映射表类。提供对源栅格数据集进行单值或范围的重分级,且包含对无值数据和未分级单元格的处理。重分级映射表,用于说明源数据和结果数据值之间的对应关系。这种对应关系由这几部分内容表达:重分级类型、重分级区间集合、无值和未分级数据的处理。
- 重分级的类型
- 重分级区间集合
- 无值和未分级数据的处理
重分级有两种类型,单值重分级和范围重分级。单值重分级是对指定的某些单值进行重新赋值,如将源栅格中值为100的单元格,赋值为1输出到结果栅格中;范围重分级将一个区间内的值重新赋值为一个值,如将源栅格中栅格值在[100,500)范围内的单元格,重新赋值为200输出到结果栅格中。通过该类的
setReclassType
方法来设置重分级类型。重分级的区间集合规定了源栅格某个栅格值或者一定区间内的栅格值与重分级后的新值的对应关系,通过该类的
setSegments
方法设置。该集合由若干重分级区间(ReclassSegment
)对象构成。该对象用于设置每个重分级区间的信息,包括要重新赋值的源栅格单值或区间的起始值、终止值,重分级区间的类型,以及栅格重分级的区间值或源栅格单值对应的新值等,详见ReclassSegment
类。对源栅格数据中的无值,可以通过该类的
setRetainNoValue
方法来设置是否保持无值,如果为 false,即不保持为无值,则可通过setChangeNoValueTo
方法为无值数据指定一个值。对在重分级映射表中未涉及的栅格值,可以通过该类的
setRetainMissingValue
方法来设置是否保持其原值,如果为 false,即不保持原值,则可通过setChangeMissingValueTo
方法为其指定一个值。此外,该类还提供了将重分级映射表数据导出为 XML 字符串及 XML 文件的方法和导入 XML 字符串或文件的方法。当多个输入的栅格数据需要应用相同的分级范围时,可以将其导出为重分级映射表文件,当对后续数据进行分级时,直接导入该重分级映射表文件,进而可以批量处理导入的栅格数据。有关栅格重分级映射表文件的格式和标签含义请参见
toXmlFile
方法。- 示范代码:
- 请参见
reclass
类的示例。
-
-
构造器概要
构造器 构造器和说明 ReclassMappingTable()
构造一个新的ReclassMappingTable
对象。ReclassMappingTable(ReclassMappingTable reclassMappingTable)
根据给定的ReclassMappingTable
对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 实例方法 具体方法 限定符和类型 方法和说明 void
dispose()
释放 ReclassMappingTable 对象所占用的本地资源。boolean
fromXml(String xmlString)
将存储在XML格式字符串中的参数值导入到映射表数据中。boolean
fromXmlFile(String xmlFileName)
从已保存的XML格式的映射表文件中导入映射表数据。double
getChangeMissingValueTo()
返回不在指定区间或单值内的栅格的指定值。double
getChangeNoValueTo()
返回无值数据的指定值。ReclassType
getReclassType()
返回栅格重分级类型。int
getSegmentCount()
返回重分级的级数。ReclassSegment[]
getSegments()
返回重分级区间集合。boolean
isRetainMissingValue()
返回源数据集中不在指定区间或单值之外的数据是否保留原值。boolean
isRetainNoValue()
返回是否将源数据集中的无值数据保持为无值。void
setChangeMissingValueTo(double changeMissingValueTo)
设置不在指定区间或单值内的栅格的指定值。void
setChangeNoValueTo(double changeNoValueTo)
设置无值数据的指定值。void
setReclassType(ReclassType reclassType)
设置栅格重分级类型。void
setRetainMissingValue(boolean retainMissingValue)
设置源数据集中不在指定区间或单值之外的数据是否保留原值。void
setRetainNoValue(boolean retainNoValue)
设置是否将源数据集中的无值数据保持为无值。void
setSegments(ReclassSegment[] segments)
设置重分级区间集合。String
toXml()
将映射表数据输出为 XML 字符串。boolean
toXmlFile(String xmlFileName)
将重分级映射表数据存储为XML格式的映射表文件。
-
-
-
构造器详细资料
-
ReclassMappingTable
public ReclassMappingTable()
构造一个新的ReclassMappingTable
对象。
-
ReclassMappingTable
public ReclassMappingTable(ReclassMappingTable reclassMappingTable)
根据给定的ReclassMappingTable
对象构造一个与其完全相同的新对象。- 参数:
reclassMappingTable
- 给定的栅格重分级映射表对象。
-
-
方法详细资料
-
toXml
public String toXml()
将映射表数据输出为 XML 字符串。- 返回:
- 映射表数据的 XML 字符串。
-
toXmlFile
public boolean toXmlFile(String xmlFileName)
将重分级映射表数据存储为XML格式的映射表文件。该方法用于将对重分级映射表对象的参数设置写入一个 XML 文件,称为栅格重分级映射表文件,其后缀名为 .xml,下面是一个栅格重分级映射表文件的例子:
重分级映射表文件中各标签的含义如下:
- <SmXml:ReclassType></SmXml:ReclassType> 标签:重分级类型。1表示单值重分级,2表示范围重分级。
- <SmXml:SegmentCount></SmXml:SegmentCount> 标签:重分级区间集合,count 参数表示重分级的级数。
- <SmXml:RetainMissingValue></SmXml:RetainMissingValue> 标签:未分级单元格是否保留原值。0表示不保留,1表示保留。
- <SmXml:RetainNoValue></SmXml:RetainNoValue> 标签:无值数据是否保持无值。0表示不保持,0表示不保持。
- <SmXml:ChangeMissingValueTo></SmXml:ChangeMissingValueTo> 标签:为未分级单元格的指定的值。
- <SmXml:ChangeNoValueTo></SmXml:ChangeNoValueTo> 标签:为无值数据的指定的值。
<SmXml:Range></SmXml:Range> 标签:重分级区间,重分级类型为单值重分级,格式为:区间起始值--区间终止值:新值-区间类型。对于区间类型,0表示左开右闭,1表示左闭右开。
或<SmXml:Unique></SmXml:Unique> 标签:重分级区间,重分级类型为范围重分级,格式为:原值:新值。
导出为 XML 文件后,当其他栅格数据需要应用相同的分级范围时,可以使用
fromXmlFile
方法导入重分级映射表数据。- 参数:
xmlFileName
- 指定的 XML 格式的映射表文件名称。- 返回:
- 一个布尔值,表示存储是否成功,如果存储成功,返回 true,否则返回 false。
-
fromXml
public boolean fromXml(String xmlString)
将存储在XML格式字符串中的参数值导入到映射表数据中。- 参数:
xmlString
- 指定的XML格式字符串。- 返回:
- 一个布尔值,表示导入是否成功,如果导入成功,返回 true,否则返回 false。
-
fromXmlFile
public boolean fromXmlFile(String xmlFileName)
从已保存的XML格式的映射表文件中导入映射表数据。有关栅格重分级映射表文件的格式和标签含义请参见
toXmlFile
方法。- 参数:
xmlFileName
- 指定的 XML 格式的映射表文件。- 返回:
- 一个布尔值,表示导入是否成功,如果导入成功,返回 true,否则返回 false。
-
getSegmentCount
public int getSegmentCount()
返回重分级的级数。在输入分段点和新值之前,必须设置分级数,否则输入的新值将无效。
- 返回:
- 重分级的级数。
-
getSegments
public ReclassSegment[] getSegments()
返回重分级区间集合。每一个
ReclassSegment
就是一个区间范围或者是一个旧值和一个新值的对应关系。- 返回:
- 重分级区间集合。
-
setSegments
public void setSegments(ReclassSegment[] segments)
设置重分级区间集合。- 参数:
segments
- 重分级区间集合。
-
getReclassType
public ReclassType getReclassType()
返回栅格重分级类型。- 返回:
- 栅格重分级类型。
- 默认值:
- 默认值为
UNIQUE
。
-
setReclassType
public void setReclassType(ReclassType reclassType)
设置栅格重分级类型。- 参数:
reclassType
- 栅格重分级类型。
-
isRetainMissingValue
public boolean isRetainMissingValue()
返回源数据集中不在指定区间或单值之外的数据是否保留原值。- 返回:
- 源数据集中不在指定区间或单值之外的数据是否保留原值。
-
setRetainMissingValue
public void setRetainMissingValue(boolean retainMissingValue)
设置源数据集中不在指定区间或单值之外的数据是否保留原值。- 参数:
retainMissingValue
- 源数据集中不在指定区间或单值之外的数据是否保留原值。
-
getChangeMissingValueTo
public double getChangeMissingValueTo()
返回不在指定区间或单值内的栅格的指定值。- 返回:
- 不在指定区间或单值内的栅格的指定值。
-
setChangeMissingValueTo
public void setChangeMissingValueTo(double changeMissingValueTo)
设置不在指定区间或单值内的栅格的指定值。如果
setRetainNoValue()
设置为 true,则改设置无效。- 参数:
changeMissingValueTo
- 不在指定区间或单值内的栅格的指定值。
-
isRetainNoValue
public boolean isRetainNoValue()
返回是否将源数据集中的无值数据保持为无值。- 返回:
- 是否保留源数据集中不在指定区间或单值内的栅格取值。
-
setRetainNoValue
public void setRetainNoValue(boolean retainNoValue)
设置是否将源数据集中的无值数据保持为无值。当 setRetainNoValue 方法设置为 true 时,表示保持源数据集中的无值数据为无值;当 setRetainNoValue 方法设置为 false 时,表示将源数据集中的无值数据设置为指定的值(
ReclassMappingTable.setChangeNoValueTo()
)。- 参数:
retainNoValue
- 是否保留源数据集中不在指定区间或单值内的栅格取值。
-
getChangeNoValueTo
public double getChangeNoValueTo()
返回无值数据的指定值。- 返回:
- 无值数据的指定值。
-
setChangeNoValueTo
public void setChangeNoValueTo(double changeNoValueTo)
设置无值数据的指定值。当
setRetainNoValue()
设置为 false 时,该设置有效;否则,无效。- 参数:
changeNoValueTo
- 无值数据的指定值。
-
dispose
public void dispose()
释放 ReclassMappingTable 对象所占用的本地资源。
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.