![]() | XDMBandOrthoFrame Class |
Namespace: Pixoneer.NXDL.NRS
public class XDMBandOrthoFrame : XDMBand
The XDMBandOrthoFrame type exposes the following members.
Name | Description | |
---|---|---|
![]() | XDMBandOrthoFrame | XDMBandOrthoFrame클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다. |
Name | Description | |
---|---|---|
![]() | GetInputParam |
Frame 센서 영상의 정사보정에 대한 입력 파라미터를 얻는다.
|
![]() | SetInputParam |
Frame 센서 영상의 정사보정에 대한 입력 파라미터를 설정한다.
|
// IO initialize to load image file XRasterIO RasterIO = new XRasterIO(); String strError = ""; if (RasterIO.Initialize(out strError) == false) { return; } ---- // Image load String strFilePathLoadImg = "D:\\Sample\\RS_Sample\\OrthoFrame\\FrameImage.tif"; XRSLoadFile xrsFileInputImg = RasterIO.LoadFile(strFilePathLoadImg, out strError, false, eIOCreateXLDMode.All_NoMsg); // DEM load 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); // Korea 2000 / Korea Central Belt // Set Frame Sensor Parameter value XFrameSensorParams smParam = new XFrameSensorParams(); smParam.FocalLength = 0.12; smParam.SensorPos.x = 232954.461; // Korea 2000 / Korea Central Belt smParam.SensorPos.y = 316145.192; // Korea 2000 / Korea Central Belt 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); // Set Input Param XBandParamOrtho InputParam = new XBandParamOrtho(); InputParam.SensorModel = smFrame; InputParam.SrcBand = xrsFileInputImg.GetBandAt(0); InputParam.DemBand = xrsFileInputDem.GetBandAt(0); InputParam.PixelSizeX = 0.2; // If DEM coordiante is Geographic InputParam.PixelSizeY = 0.2; // If DEM coordiante is Geographic InputParam.UseConstant = false; InputParam.HeightConstant = 0; InputParam.ResampleMethodDem = eResampleMethod.BiLinear; InputParam.ResampleMethodSrc = eResampleMethod.BiLinear; // create XRSSaveFile to save realtime band(XDMBandXXXX) // load another file to protect thread lock(it is stable and faster). 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); } // Save output file XThread thd = null; String strFilePathSave = "D:\\Sample\\Out_OrthoFrame.xdm"; if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd)) { return; } ----