Click or drag to resize
XDL

XGrid Class

XGrid클래스는 2차원 데이터 저장공간을 저장한다. 예를 들어, 이미지의 경우 2차원의 형태로서 N x M의 차원으로 구성된다. 저장된 데이터는 다양한 방법으로 저장된 화소값을 읽거나 Subset을 읽어내고 위치의 이동등을 수행할 수 있다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDLXGrid

Namespace:  Pixoneer.NXDL
Assembly:  NXDL (in NXDL.dll) Version: 2.0.3.30
Syntax
C#
public class XGrid : IDisposable

The XGrid type exposes the following members.

Constructors
  NameDescription
Public methodXGrid
XGrid에 대한 기본 생성자로서, 멤버들을 초기화 시킨다.
Public methodXGrid(XGrid*)
XGrid 클래스에 대한 생성자로서, 외부의 비관리 객체인 XDL::XGrid객체를 이용하여 초기화한다.
C++ 인터페이스.
Public methodXGrid(XGrid)
Public methodXGrid(Int32, Int32, eDataType)
XGrid에 대한 생성자로서, 입력된 행과 열의 크기와 정의될 데이터 타입을 입력 받아 메모리 공간을 확보한다.
Public methodXGrid(Int32, Int32, eDataType, Byte)
XGrid에 대한 생성자로서, 입력된 행과 열의 크기, 정의될 데이터 타입을 입력 받아 메모리 공간을 확보하고 입력 데이터를 복사한다.
Public methodXGrid(Int32, Int32, eDataType, IntPtr)
XGrid에 대한 생성자로서, 입력된 행과 열의 크기, 정의될 데이터 타입을 입력 받아 메모리 공간을 확보하고 입력 데이터를 복사한다.
Top
Properties
  NameDescription
Public propertyCSize
2차원 데이터에 대한 Column 크기를 얻는다.
Public propertyDataPtr
그리드 데이터의 메모리 포인터를 얻는다. 비관리 메모리 주소이므로 매우 주의해서 써야 한다.
Public propertyDataSize
데이터 형에 대한 크기(Bytes)를 얻는다.
Public propertyDataType
2차원 데이터에 대한 데이터 형을 얻는다.
Public propertyRSize
2차원 데이터에 대한 Row 크기를 얻는다.
Top
Methods
  NameDescription
Public methodAlloc
입력받은 자료 공간 차원 정보 및 데이터 타입에 해당하는 메모리 공간을 할당한다. 만약 이미 할당된 공간이 할당하고자 하는 메모리 공간보다 큰 경우 새롭게 메모리를 할당하지 않고 기존 메모리를 사용하되 파라미터(행 크기, 열 크기, 데이터 타입)만을 변경시킨다.
Public methodAllocExact
입력받은 자료 공간 차원 정보 및 데이터 타입에 해당하는 메모리 공간을 할당한다. 이 함수를 통해 할당하는 메모리는 Alloc함수와는 다르게 기존에 할당된 메모리를 무조건 해제하고 다시 할당한다.
Public methodCopySubset(XGrid, Int32, Int32, Int32, Int32)
이 객체 데이터의 특정 위치에 새로운 데이터를 복사한다..
Public methodCopySubset(Byte, Int32, Int32, Int32, Int32, Int32, eDataType)
이 객체 데이터의 특정 위치에 새로운 데이터를 복사한다.
Public methodCopySubset(IntPtr, Int32, Int32, Int32, Int32, Int32, eDataType)
이 객체 데이터의 특정 위치에 새로운 데이터를 복사한다.
Public methodFillValue
현재 할당된 데이터 공간을 특정 입력값으로 초기화한다.
Public methodFlipHorz
데이터를 수평방향으로 뒤집는다.
Public methodFlipVert
데이터를 수직방향으로 뒤집는다.
Public methodFree
할당된 메모리를 해제한다.
Public methodGetAsReal32
특정 위치에 대한 데이터 값을 Real32데이터 형으로 반환한다.
Public methodGetAsReal64
특정 위치에 대한 데이터 값을 Real64데이터 형으로 반환한다.
Public methodGetColVector
특정 행에 존재하는 데이터를 추출하여 XGrid객체에 출력한다.
Public methodGetRowVector
특정 열에 존재하는 데이터를 추출하여 XGrid객체에 출력한다.
Public methodGetValue(Int32, Int32, Double)
특정 위치에 대한 데이터 값을 Real64데이터 형으로 반환한다.
Public methodGetValue(Double, Double, eXGridResampleMethod, Double)
특정 위치에 대한 데이터 값을 Real64데이터 형으로 반환한다.
Public methodGetValue(Int32, Int32, Double, Double)
데이터 타입이 complex data 일 경우, 특정 위치에 대한 complex data 의 r(실수), i(허수) 값을 Real64데이터 형으로 반환한다.
Public methodGetValue(Double, Double, eXGridResampleMethod, Double, Double)
데이터 타입이 complex data 일 경우, 특정 위치에 대한 complex data 의 r(실수), i(허수) 값을 Real64데이터 형으로 반환한다.
Public methodGetValue(Int32, Int32, Double, Double, Double)
데이터 타입이 RGB 또는 BGR 일 경우, 특정 위치에 대한 r, g, b 값을 각 데이타 타입 순서대로 Real64데이터 형으로 반환한다.
Public methodGetValue(Double, Double, eXGridResampleMethod, Double, Double, Double)
데이터 타입이 RGB 또는 BGR 일 경우, 특정 위치에 대한 r, g, b 값을 각 데이타 타입 순서대로 Real64데이터 형으로 반환한다.
Public methodGetValue(Int32, Int32, Double, Double, Double, Double)
데이터 타입이 RGBA, BGRA, ARGB, ABGR 일 경우, 특정 위치에 대한 a, r, g, b 값을 각 데이타 타입 순서대로 Real64데이터 형으로 반환한다.
Public methodGetValue(Double, Double, eXGridResampleMethod, Double, Double, Double, Double)
데이터 타입이 RGBA, BGRA, ARGB, ABGR 일 경우, 특정 위치에 대한 a, r, g, b 값을 각 데이타 타입 순서대로 Real64데이터 형으로 반환한다.
Public methodInit
내부에 생성된 메모리를 소멸시키고 파라미터들도 초기화한다.
Public methodIsValid
객체가 유효한지 여부를 반환한다.
Public methodReform
이 함수는 배열 정보인 행과 열의 크기를 변형시킨다. 이 함수를 호출시 내부 데이터의 배열이 변경되지는 않고 단순히 행과 열의 파라미터만을 재설정함을 의미한다. 기존 메모리의 크기가 입력된 값보다 작으면 false를 반환한다.
Public methodSetFromReaL32
특정 위치에 대한 데이터 값을 Real32데이터 형으로 설정한다.
Public methodSetFromReal64
특정 위치에 대한 데이터 값을 Real64데이터 형으로 설정한다.
Public methodSetValue(Int32, Int32, Double)
특정 위치에 대한 데이터 값을 Real64데이터 형으로 설정한다.
Public methodSetValue(Int32, Int32, Double, Double)
데이터 타입이 complex data 일 경우, 특정 위치에 대한 complex data 의 r, i 값을 Real64데이터 형으로 설정한다.
Public methodSetValue(Int32, Int32, Double, Double, Double)
데이터 타입이 RGB 또는 BGR 일 경우, 특정 위치에 대한 r, g, b 값을 각 데이타 타입 순서대로 Real64데이터 형으로 설정한다.
Public methodSetValue(Int32, Int32, Double, Double, Double, Double)
데이터 타입이 RGBA, BGRA, ARGB, ABGR 일 경우, 특정 위치에 대한 a, r, g, b 값을 각 데이타 타입 순서대로 Real64데이터 형으로 설정한다.
Public methodShift
데이터를 X, Y 방향으로 각각 이동한다.
만약 Offset이 5, 8 인경우 (0, 0)의 위치가 (5, 8)가 되며 이동후의 (0, 0)의 위치는 0으로 설정된다. 만약 Offset이 -5, -8 인경우 (5, 8)의 위치가 (0, 0)가 되며 이동후의 제일 마지막 위치의 데이터(차원수 -1, 차원수 -1)는 0으로 설정된다.
Public methodSubset
데이터의 특정 영역을 읽어서 새로운 XGrid객체를 생성한다.
Public methodZerorize
현재 할당된 데이터 공간을 0으로 초기화한다.
Top
Examples
This is example #1:
// 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\\IKONOS.xdm";
XRSLoadFile xrsFileInput = RasterIO.LoadFile(strFilePathLoad, out strError, false, eIOCreateXLDMode.All_NoMsg);

// Make Row Data
XGrid gridCov = null;
if (xrsFileInput.GetCovarianceMatrix(out gridCov))
{
    double[] val = new double[gridCov.CSize + 1];

    for (int i = 0; i < gridCov.RSize; i++)
    {
        val[0] = i + 1; // Index

        for (int j = 0; j < gridCov.RSize; j++)
        {
            val[j + 1] = Math.Round(gridCov.GetAsReal64(i, j), 4); // Value
        }
    }

    // Use val....
}
This is example #2:
// 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\\IKONOS.xdm";
XRSLoadFile xrsFileInput = RasterIO.LoadFile(strFilePathLoad, out strError, false, eIOCreateXLDMode.All_NoMsg);

XGrid gridBand = new XGrid();
XDMBand band = xrsFileInput.GetBandAt(0);
if (!band.ReadSubset(ref gridBand, 0, 100, 200, 100, 200))
{
    return;
}

double val00    = gridBand.GetAsReal64(0, 0);
double val5050  = gridBand.GetAsReal64(50, 50);
See Also