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格式的映射表文件。
|
public ReclassMappingTable()
ReclassMappingTable
对象。public ReclassMappingTable(ReclassMappingTable reclassMappingTable)
ReclassMappingTable
对象构造一个与其完全相同的新对象。reclassMappingTable
- 给定的栅格重分级映射表对象。public String toXml()
public boolean toXmlFile(String xmlFileName)
该方法用于将对重分级映射表对象的参数设置写入一个 XML 文件,称为栅格重分级映射表文件,其后缀名为 .xml,下面是一个栅格重分级映射表文件的例子:
重分级映射表文件中各标签的含义如下:
<SmXml:Range></SmXml:Range> 标签:重分级区间,重分级类型为单值重分级,格式为:区间起始值--区间终止值:新值-区间类型。对于区间类型,0表示左开右闭,1表示左闭右开。
或<SmXml:Unique></SmXml:Unique> 标签:重分级区间,重分级类型为范围重分级,格式为:原值:新值。
导出为 XML 文件后,当其他栅格数据需要应用相同的分级范围时,可以使用 fromXmlFile
方法导入重分级映射表数据。
xmlFileName
- 指定的 XML 格式的映射表文件名称。public boolean fromXml(String xmlString)
xmlString
- 指定的XML格式字符串。public boolean fromXmlFile(String xmlFileName)
有关栅格重分级映射表文件的格式和标签含义请参见 toXmlFile
方法。
xmlFileName
- 指定的 XML 格式的映射表文件。public int getSegmentCount()
在输入分段点和新值之前,必须设置分级数,否则输入的新值将无效。
public ReclassSegment[] getSegments()
每一个 ReclassSegment
就是一个区间范围或者是一个旧值和一个新值的对应关系。
public void setSegments(ReclassSegment[] segments)
segments
- 重分级区间集合。public ReclassType getReclassType()
UNIQUE
。public void setReclassType(ReclassType reclassType)
reclassType
- 栅格重分级类型。public boolean isRetainMissingValue()
public void setRetainMissingValue(boolean retainMissingValue)
retainMissingValue
- 源数据集中不在指定区间或单值之外的数据是否保留原值。public double getChangeMissingValueTo()
public void setChangeMissingValueTo(double changeMissingValueTo)
如果 setRetainNoValue()
设置为 true,则改设置无效。
changeMissingValueTo
- 不在指定区间或单值内的栅格的指定值。public boolean isRetainNoValue()
public void setRetainNoValue(boolean retainNoValue)
当 setRetainNoValue 方法设置为 true 时,表示保持源数据集中的无值数据为无值;当 setRetainNoValue 方法设置为 false 时,表示将源数据集中的无值数据设置为指定的值(ReclassMappingTable.setChangeNoValueTo()
)。
retainNoValue
- 是否保留源数据集中不在指定区间或单值内的栅格取值。public double getChangeNoValueTo()
public void setChangeNoValueTo(double changeNoValueTo)
当 setRetainNoValue()
设置为 false 时,该设置有效;否则,无效。
changeNoValueTo
- 无值数据的指定值。public void dispose()
Copyright © 2021–2024 SuperMap. All rights reserved.