|
XDMBandOrthoFrame Class
|
XDMBandOrthoFrame 클래스는 Frame Sensor Model에 대한 정사보정을 수행한다.
Inheritance Hierarchy
Namespace: Pixoneer.NXDL.NRSAssembly: NXDLrs (in NXDLrs.dll) Version: 2.0.3.38
Syntaxpublic class XDMBandOrthoFrame : XDMBand
The XDMBandOrthoFrame type exposes the following members.
Constructors
Methods
Example
Frame Sensor 모델 매개변수 및 출력 변수를 설정한 뒤 프레임 영상을 정사보정한다.
XRasterIO RasterIO = new XRasterIO();
String strError = "";
if (RasterIO.Initialize(out strError) == false)
{
return;
}
----
String strFilePathLoadImg = "D:\\Sample\\RS_Sample\\OrthoFrame\\FrameImage.tif";
XRSLoadFile xrsFileInputImg = RasterIO.LoadFile(strFilePathLoadImg, out strError, false, eIOCreateXLDMode.All_NoMsg);
String strFilePathLoadDem = "D:\\Sample\\RS_Sample\\OrthoFrame\\daejon_dem_10.xdm";
XRSLoadFile xrsFileInputDem = RasterIO.LoadFile(strFilePathLoadDem, out strError, false, eIOCreateXLDMode.All_NoMsg);
XSpatialReference sr = new XSpatialReference();
sr.importFromEPSG(40055);
XFrameSensorParams smParam = new XFrameSensorParams();
smParam.FocalLength = 0.12;
smParam.SensorPos.x = 232954.461;
smParam.SensorPos.y = 316145.192;
smParam.SensorPos.z = 3889.389;
smParam.SensorYaw = XAngle.FromDegree(-0.09862);
smParam.SensorPitch = XAngle.FromDegree(0.08007);
smParam.SensorRoll = XAngle.FromDegree(-0.30901);
smParam.PSX = 0.0000012;
smParam.PSY = 0.0000012;
smParam.Width = 7680;
smParam.Height = 13824;
smParam.XPO = 0.0;
smParam.YPO = 0.0;
smParam.TopStartY = false;
smParam.SensorSR = sr;
XFrameSensor smFrame = new XFrameSensor();
smFrame.SetParamsLocal(smParam);
XBandParamOrtho InputParam = new XBandParamOrtho();
InputParam.SensorModel = smFrame;
InputParam.SrcBand = xrsFileInputImg.GetBandAt(0);
InputParam.DemBand = xrsFileInputDem.GetBandAt(0);
InputParam.PixelSizeX = 0.2;
InputParam.PixelSizeY = 0.2;
InputParam.UseConstant = false;
InputParam.HeightConstant = 0;
InputParam.ResampleMethodDem = eResampleMethod.BiLinear;
InputParam.ResampleMethodSrc = eResampleMethod.BiLinear;
XRSLoadFile fileLoad = RasterIO.LoadFile(strFilePathLoadImg, out strError, false, eIOCreateXLDMode.All_NoMsg);
XRSSaveFile fileSave = new XRSSaveFile();
for (int i = 0; i < fileLoad.NumBand; i++)
{
XDMBand bandRaw = fileLoad.GetBandAt(i);
XBandParamOrtho param = new XBandParamOrtho(ref InputParam);
param.SrcBand = bandRaw;
XDMBandOrthoFrame bandTmp = new XDMBandOrthoFrame();
bandTmp.BandName = bandRaw.BandName;
bandTmp.SetInputParam(ref param);
XDMBand bandCast = (XDMBand)bandTmp;
fileSave.AddBand(ref bandCast);
}
XThread thd = null;
String strFilePathSave = "D:\\Sample\\Out_OrthoFrame.xdm";
if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd))
{
return;
}
----
See Also