Click or drag to resize
XDL

XDMBandEpipolarDEM Class

한 쌍의 에피폴라(Epipolar) 이미지로부터 DEM을 추출한다. A digital elevation model is a digital model or 3D representation of a terrain's surface.
Inheritance Hierarchy

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

The XDMBandEpipolarDEM type exposes the following members.

Constructors
  NameDescription
Public methodXDMBandEpipolarDEM
XDMBandEpipolarDEM클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다.
Top
Methods
  NameDescription
Public methodGenerate
설정된 스테레오 이미지로부터 DEM을 생성한다.
Public methodGetInputParam
DEM생성을 위한 입력 파라미터를 얻는다.
Public methodGetTIN
TIN 데이터를 생성한다.
Public methodSetInputParam
DEM 생성을 위한 입력 파라미터를 설정한다.
Top
Examples
using Pixoneer.NXDL;
using Pixoneer.NXDL.NRS;
using Pixoneer.NXDL.NIO;
using Pixoneer.NXDL.NSM;

// IO initialize to load image file
XRasterIO RasterIO = new XRasterIO();
String strError = "";
if (RasterIO.Initialize(out strError) == false)
{
    return;
}

// Left and right Image load 
String strFilePathLoad1 = "D:\\Sample\\RS_Sample\\Epipolar\\po_120030_pan_0010000000.xdm";
String strFilePathLoad2 = "D:\\Sample\\RS_Sample\\Epipolar\\po_120030_pan_0000010000.xdm";
XRSLoadFile xrsFileInput1 = RasterIO.LoadFile(strFilePathLoad1, out strError, false, eIOCreateXLDMode.All_NoMsg);
XRSLoadFile xrsFileInput2 = RasterIO.LoadFile(strFilePathLoad2, out strError, false, eIOCreateXLDMode.All_NoMsg);

// Load left and right rpc and make SensorModel
String strRPCPathLoad1 = "D:\\Sample\\RS_Sample\\Epipolar\\po_120030_pan_0010000000.rpc";
String strRPCPathLoad2 = "D:\\Sample\\RS_Sample\\Epipolar\\po_120030_pan_0000010000.rpc";
XRpc smL = new XRpc();
XRpc smR = new XRpc();
smL.LoadFromRPC(strRPCPathLoad1, eSensorRPCType.Ikonos, out strError);
smR.LoadFromRPC(strRPCPathLoad2, eSensorRPCType.Ikonos, out strError);

// Set input param
XBandParamEpipolarDEM InputParam = new XBandParamEpipolarDEM();
InputParam.SrcBandL = xrsFileInput1.GetBandAt(0);
InputParam.SrcBandR = xrsFileInput2.GetBandAt(0);
InputParam.SensorModelL = smL;
InputParam.SensorModelR = smR;
InputParam.KernelW = 11;
InputParam.KernelH = 11;
InputParam.CorrThreshold = 0.7;
InputParam.BlankValue = 0;
InputParam.ApplyCrossHair = false;
InputParam.MaxParallaxX = 100;
InputParam.MaxParallaxY = 0;
InputParam.RadiusP2G = 20;

// Create new process band and set input param
XDMBandEpipolarDEM bandProcess = new XDMBandEpipolarDEM();
bandProcess.SetInputParam(ref InputParam);

bandProcess.Generate(0, 100, 500, 100, 500, 0.00001, 0.00001, null);

// Create XRSSaveFile to save realtime band(XDMBandXXXX)
XRSSaveFile fileSave = new XRSSaveFile();
XDMBand bandCast = (XDMBand)bandProcess;

fileSave.AddBand(ref bandCast);

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