Click or drag to resize
XDL

XDMBandData2Binary Class

XDMBandData2Binary 클래스는 데이터값의 유효범위를 설정하여 데이터를 이진화하는 클래스이다. 화소값이 유효범위에 있는 경우 1로, 그렇지 않은 경우에는 0으로 변환된다. XDL 엔진 View를 통해 XDMBandData2Binary 밴드를 도시하면, 설정한 색상으로 도시한다.
Inheritance Hierarchy

Namespace:  Pixoneer.NXDL.NRS
Assembly:  NXDLrs (in NXDLrs.dll) Version: 1.2.817.72
Syntax
C#
public class XDMBandData2Binary : XDMBand

The XDMBandData2Binary type exposes the following members.

Constructors
  NameDescription
Public methodXDMBandData2Binary
XDMBandData2Binary클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다.
Top
Methods
  NameDescription
Public methodGetInputParam
XDMBandData2Binary처리를 위한 파라미터를 얻는다.
Public methodSetInputParam
XDMBandData2Binary처리를 위한 입력 파라미터 설정한다.
Public methodUpdateValidDataRange
이진화를 위한 데이터 유효 구간을 새로 설정하여 업데이트한다.
Top
Remarks

Examples
로딩한 DEM 데이터의 통계값을 이용하여 히스토그램 가우시안 95% 분포 기준의 최소/최대값을 계산하고 이를 데이터이진화를 위한 입력값으로 설정하여 XDM 파일로 저장한다. 유효한 데이터는 XDL 엔진에서 붉은 색으로 도시되도록 XBandParamData2Binary의 ValidDataColor를 설정한다.
// IO initialize to load image file
XRasterIO RasterIO = new XRasterIO();
String strError = "";
if (RasterIO.Initialize(out strError) == false)
{
    return;
}

// Image load
String strFilePathLoad = "D:\\Sample\\RS_Sample\\Data2GIS\\dem_utm.xdm";
XRSLoadFile xrsFileInput = RasterIO.LoadFile(strFilePathLoad, out strError, false, eIOCreateXLDMode.All_NoMsg);

// Create input param 
XBandParamData2Binary InputParam = new XBandParamData2Binary();

// get the first band
XDMBand srcBand = xrsFileInput.GetBandAt(0);
InputParam.SrcBand = srcBand;

// calculate min and max value based on histogram gaussian 95% distribution
double minr = 0.0, maxr = 255.0;
Xrs.CalcGaussianRange95(srcBand.BandMin, srcBand.BandMax, srcBand.BandMean, srcBand.BandStdDev, srcBand.Histogram, ref minr, ref maxr);

InputParam.ValidDataMin = minr;
InputParam.ValidDataMax = maxr;
InputParam.ValidDataColor = Color.Red;

XDMBandData2Binary bandProcess = new XDMBandData2Binary();
bandProcess.SetInputParam(ref InputParam);

// create XRSSaveFile to save realtime band(XDMBandXXXX)
// load another file to protect thread lock(it is stable and faster).
XRSSaveFile fileSave = new XRSSaveFile();
XDMBand bandCast = (XDMBand)bandProcess;
fileSave.AddBand(ref bandCast);

// Save output file
XThread thd = null;
String strFilePathSave = "D:\\Sample\\Out_Data2Binary.xdm";
if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd))
{
    return;
}
See Also