|
XDMBandOrthoRPC Class
|
XDMBandOrthoRPC 클래스는 RPC를 이용하여 정사보정을 수행한다.
IKONOS, Quick Bird, OrbView 영상을 배포할 때 RPC(Rational Polynomial Coefficients) 파일을 함께 제공하는 경우가 있다.
RPC 파일에는 latitude, longitude, 표정 요소에 대한 정보가 있다. 이런 RPC 파일을 이용하면 외부 표정을 결정하지 않고도 센서 모델링이 가능하다.
Inheritance Hierarchy
Namespace: Pixoneer.NXDL.NRSAssembly: NXDLrs (in NXDLrs.dll) Version: 2.0.3.38
Syntaxpublic class XDMBandOrthoRPC : XDMBand
The XDMBandOrthoRPC type exposes the following members.
Constructors
Methods
Example
This is example #1:
using Pixoneer.NXDL;
using Pixoneer.NXDL.NRS;
using Pixoneer.NXDL.NIO;
using Pixoneer.NXDL.NSM;
XRasterIO RasterIO = new XRasterIO();
String strError = "";
if (RasterIO.Initialize(out strError) == false)
{
return;
}
String strFilePathLoadImg = "D:\\Sample\\RS_Sample\\Ortho\\MSC_070223014732_03064_10761263PN16_1R.xdm";
XRSLoadFile xrsFileInputImg = RasterIO.LoadFile(strFilePathLoadImg, out strError, false, eIOCreateXLDMode.All_NoMsg);
String strFilePathLoadDem = "D:\\Sample\\RS_Sample\\Ortho\\korea_dem_damyang.xdm";
XRSLoadFile xrsFileInputDem = RasterIO.LoadFile(strFilePathLoadDem, out strError, false, eIOCreateXLDMode.All_NoMsg);
String strRPCPathLoad = "D:\\Sample\\RS_Sample\\Ortho\\MSC_070223014732_03064_10761263PN16_1R.rpc";
XRpc smRPC = new XRpc();
smRPC.LoadFromRPC(strRPCPathLoad, eSensorRPCType.Ikonos, out strError);
XBandParamOrtho InputParam = new XBandParamOrtho();
InputParam.SensorModel = smRPC;
InputParam.SrcBand = xrsFileInputImg.GetBandAt(0);
InputParam.DemBand = xrsFileInputDem.GetBandAt(0);
InputParam.PixelSizeX = 0.00005;
InputParam.PixelSizeY = 0.00005;
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;
XDMBandOrthoRPC bandTmp = new XDMBandOrthoRPC();
bandTmp.BandName = bandRaw.BandName;
bandTmp.SetInputParam(ref param);
XDMBand bandCast = (XDMBand)bandTmp;
fileSave.AddBand(ref bandCast);
}
XThread thd = null;
String strFilePathSave = "D:\\Sample\\Out_OrthoRPC.xdm";
if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd))
{
return;
}
See Also