public class DatasetVolume extends Dataset
体数据集类,该类用于描述栅格体数据集合,例如指定空间范围的手机信号强度、雾霾污染指数等。
光栅数据采用网格形式组织并使用二维栅格的像素值来记录数据,每个栅格(cell)代表一个像素要素,栅格值可以描述各种数据信息。体数据集中每一个栅格存储的是三维体数据以切片采样方式的值。
注意:
Dataset.open()
方法;限定符和类型 | 方法和说明 |
---|---|
int |
addSlice(String bandname,
PixelFormat value)
根据指定剖切面名称和像素格式增加一个剖切面。
|
boolean |
append(int DesIndex,
DatasetGrid dataset)
根据指定的目标体数据集剖切面索引号、源栅格数据集,追加源栅格数据集到目标体数据集相应剖切面。
|
boolean |
append(int DesIndex,
DatasetVolume dataset,
int SrcIndex)
根据指定的目标体数据集剖切面索引号、源体数据集、源体数据集剖切面索引号,追加源体数据集相应剖切面到目标体数据集相应剖切面。
|
boolean |
buildPyramid()
给体数据集创建金字塔。
|
HashMap<Integer,StatisticsResult> |
buildStatistics()
对体数据集执行统计操作,返回一个哈希表对象,其中键值为体数据集的剖切面,映射值为该剖切面的统计结果。
|
boolean |
calculateExtremum()
计算体数据集的极值,即最大值和最小值。
|
boolean |
calculateExtremum(int index)
计算体数据集指定剖切面的极值,即最大值和最小值。
|
boolean |
deleteSlice(int index)
根据指定索引号删除某个剖切面。
|
boolean |
deleteSlice(int startIndex,
int count)
根据指定的开始索引号和删除个数,删除多剖切面体数据集中的剖切面。
|
String |
get(int index)
返回指定索引号的剖切面的名称。
|
BlockSizeOption |
getBlockSizeOption()
返回体数据集的像素分块类型。
|
GeoRegion |
getClipRegion()
返回体数据集的显示区域。
|
Colors |
getColorTable()
返回体数据集的颜色表。
|
boolean |
getHasPyramid()
判断体数据集是否已创建金字塔。
|
int |
getHeight()
返回体数据集的体数据的高度。
|
double |
getMaxValue()
返回体数据集的最大像素值。
|
double |
getMaxValue(int index)
返回体数据集指定剖切面的最大像素值。
|
double |
getMinValue()
返回体数据集的最小像素值。
|
double |
getMinValue(int index)
返回体数据集指定剖切面的最小像素值。
|
double |
getNoData(int index)
返回体数据集指定剖切面的无值。
|
PixelFormat |
getPixelFormat(int index)
返回体数据集指定剖切面的像素格式。
|
double |
getSliceAltitude(int index)
返回体数据集指定剖切面的高程值。
|
int |
getSliceCount()
返回剖切面的个数。
|
double |
getValue(int column,
int row,
int index)
返回体数据集指定剖切面中指定行列处的像素值。
|
HashMap<Integer,StatisticsResult> |
getVolumeStatisticsResult()
返回一个哈希表对象,其中键值为体数据集的剖切面,映射值为该剖切面的统计结果。
|
int |
getWidth()
返回体数据集的体数据的宽度。
|
int |
indexOf(String bandName)
根据指定的剖切面名字,返回该剖切面在多剖切面体数据集中的索引号。
|
boolean |
removePyramid()
删除已创建的金字塔。
|
void |
set(int index,
String value)
设置指定索引号的剖切面的名称。
|
void |
setClipRegion(GeoRegion value)
设置体数据集的显示区域。
|
void |
setColorTable(Colors colors)
设置体数据集的颜色表,打开数据集的时候可以获取或设置颜色表。
|
boolean |
setGeoReference(Rectangle2D value)
将体数据集对应到地理坐标系中指定的地理范围。
|
void |
setNoData(double value,
int index)
设置体数据集指定剖切面的无值。
|
boolean |
setSliceAltitude(double value,
int index)
设置体数据集指定剖切面的高程值。
|
double |
setValue(int column,
int row,
double value,
int index)
设置体数据集指定剖切面中指定行列处的像素值。
|
boolean |
updatePyramid(Rectangle2D value)
根据指定范围更新体数据集金字塔。
|
addClosedListener, addClosingListener, addLockChangedListener, addSteppedListener, close, dispose, equals, getBounds, getDatasource, getDescription, getEncodeType, getExtInfo, getGeoStoreType, getGroup, getID, getLockState, getName, getPrivilegeTypes, getPrivilegeTypes, getPrjCoordSys, getSchema, getTableName, getTransState, getType, hashCode, hasPrivilegeGrant, hasPrjCoordSys, isDisposed, isOpen, isReadOnly, isVersioned, open, refresh, removeClosedListener, removeClosingListener, removeLockChangedListener, removeSteppedListener, setBounds, setDescription, setExtInfo, setLockState, setPrivilegeTypes, setPrjCoordSys, setReadOnly, toString
public int getWidth()
public int getHeight()
public BlockSizeOption getBlockSizeOption()
public GeoRegion getClipRegion()
注意:
1.当用户所设定的体数据集的地理范围(即调用 DatasetVolume.SetGeoReference()
方法)与所设定的裁剪区域无重叠区域,体数据集不显示。
2.当重新设置体数据集的地理范围,不自动修改体数据集的裁剪区域。
public void setClipRegion(GeoRegion value)
当用户设置此方法后,体数据集就按照给定的区域进行显示,区域之外的都不显示。
注意:
1.当用户所设定的体数据集的地理范围(即调用 DatasetVolume.SetGeoReference()
方法)与所设定的裁剪区域无重叠区域,体数据集不显示。
2.当重新设置体数据集的地理范围,不自动修改体数据集的显示区域。
value
- 体数据集的显示区域。public void setClipRegionTest() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象 // 数据源(datasource)中包含一个体数据集(datasetVolume),打开体数据集 // 定义显示区域的范围 Point2Ds point2Ds = new Point2Ds(); point2Ds.add(new Point2D(0, 0)); point2Ds.add(new Point2D(800, 0)); point2Ds.add(new Point2D(800, 800)); point2Ds.add(new Point2D(0, 800)); point2Ds.add(new Point2D(0, 0)); GeoRegion georegion = new GeoRegion(point2Ds); // 设置显示区域 datasetVolume.setClipRegion(georegion); datasetVolume.close(); }
public HashMap<Integer,StatisticsResult> getVolumeStatisticsResult()
若体数据集没有进行过栅格统计,即没有调用 buildStatistics()
方法,则各剖切面的统计结果对象的各项统计值均为0。
public boolean getHasPyramid()
DatasetVolume.buildPyramid()
DatasetVolume.buildPyramid()
方法的示例。public int getSliceCount()
public double getNoData(int index)
index
- 指定的剖切面索引号,从 0 开始。public void setNoData(double value, int index)
value
- 指定的无值。index
- 指定的剖切面索引号,从 0 开始。public double getMinValue(int index)
index
- 指定的剖切面索引号,从 0 开始。public double getMaxValue(int index)
index
- 指定的剖切面索引号,从 0 开始。public double getMinValue()
public double getMaxValue()
public double getSliceAltitude(int index)
index
- 指定的剖切面索引号,从 0 开始。public boolean setSliceAltitude(double value, int index)
value
- 设置的高程值。index
- 指定的剖切面索引号,从 0 开始。public Colors getColorTable()
public void setColorTable(Colors colors)
colors
- 体数据集的颜色表。public PixelFormat getPixelFormat(int index)
index
- 指定的剖切面索引号,从 0 开始。public boolean setGeoReference(Rectangle2D value)
value
- 指定的地理范围。public boolean calculateExtremum(int index)
index
- 要计算极值的体数据的剖切面序号。public boolean calculateExtremum()
public double getValue(int column, int row, int index)
column
- 指定的列号,从 0 开始。row
- 指定的行号,从 0 开始。index
- 指定的剖切面索引号,从 0 开始。public double setValue(int column, int row, double value, int index)
column
- 指定的列号,从 0 开始。row
- 指定的行号,从 0 开始。value
- 指定的要设置的像素值。index
- 指定的剖切面索引号,从 0 开始。public HashMap<Integer,StatisticsResult> buildStatistics()
public boolean buildPyramid()
public void buildPyramidTest() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象 // 数据源(datasource)包含一个名为 Volume 的体数据集 datasetVolume,打开体数据集 DatasetVolume datasetVolume = (DatasetVolume) datasource.getDatasets().get( "Volume"); datasetVolume.open(); // 判断当前体数据集是否有金字塔,如果有,移除金字塔后重新创建;如果没有,直接创建金字塔 if (datasetVolume.getHasPyramid()) { datasetVolume.removePyramid(); System.out.println("判断当前影像数据集是否有金字塔的方法返回值为:" + datasetVolume.getHasPyramid()); datasetVolume.buildPyramid(); } else { datasetVolume.buildPyramid(); } datasetVolume.close(); }
public boolean updatePyramid(Rectangle2D value)
value
- 指定的体数据集的范围。public boolean removePyramid()
DatasetVolume.buildPyramid()
DatasetVolume.buildPyramid()
方法的示例。public int addSlice(String bandname, PixelFormat value)
slicename
- 指定的剖切面名称。value
- 指定的像素格式(与体数据集保持一致)。public String get(int index)
index
- 指定的剖切面的索引号。public void set(int index, String value)
index
- 指定的剖切面的索引号。value
- 指定索引号的剖切面的名称。public boolean deleteSlice(int index)
index
- 指定要删除剖切面的索引。public boolean deleteSlice(int startIndex, int count)
startIndex
- 指定删除剖切面的开始索引号。count
- 要删除的剖切面的个数。public int indexOf(String bandName)
sliceName
- 指定剖切面的名称。public boolean append(int DesIndex, DatasetVolume dataset, int SrcIndex)
DesIndex
- 目标体数据集剖切面索引号。dataset
- 源体数据集(源体数据集的BlockSize、ColBlocks、RowBlocks、Width、Height、Bounds与目标体数据集保持一致)。SrcIndex
- 源体数据集剖切面索引号。public boolean append(int DesIndex, DatasetGrid dataset)
DesIndex
- 目标体数据集剖切面索引号。dataset
- 源栅格数据集(源栅格数据集的BlockSize、ColBlocks、RowBlocks、Width、Height、Bounds与目标体数据集保持一致)。Copyright © 2021–2024 SuperMap. All rights reserved.