Click or drag to resize
XDL

XRasterIODumpFile Method

영상 파일의 이미지와 메타데이터를 다른 영상 파일 형식과 xml 파일로 각각 저장한다.
출력 파일 경로를 "C:\abc.tif"로 설정시 abc.tif와 abc.xml로 영상과 메타정보가 저장된다.
입력 영상 파일 포맷이 HDF5일 경우, 각 DataSet별로 영상 파일로 저장되고 메타정보는 하나의 xml 파일로 저장된다.

Namespace: Pixoneer.NXDL.NIO
Assembly: NXDLio (in NXDLio.dll) Version: 3.0.0.0
Syntax
C#
public bool DumpFile(
	string strFileName,
	string strSaveFileName,
	string strFormatKey,
	XRSMetaData openOption,
	XRSMetaData creationOption,
	out string strError,
	XThread thd
)

Parameters

strFileName  String
[In] 입력 파일 경로
strSaveFileName  String
[In] 출력 파일 경로
strFormatKey  String
[In] 파일 형식 키워드. ( 예: XDM, BIP, BIL, BSQ 또는 GDAL Raster drivers의 short name(GTiff, NITF, JPEG, BMP...) )
BIP(Band Interleaved by Pixel), BIL(Band Interleaved by Line), BSQ(Band Sequential)
openOption  XRSMetaData
[In] Open Option을 설정한다.
* Open Option
- HDF_XSIZE_INDEX : HDF5의 DataSet dimension 중에서 가로 방향 사이즈로 사용할 값 인덱스를 설정한다.
- HDF_YSIZE_INDEX : HDF5의 DataSet dimension 중에서 세로 방향 사이즈로 사용할 값 인덱스를 설정한다.
- HDF_BAND_INDEX : HDF5의 DataSet dimension 중에서 밴드 개수로 사용할 값 인덱스를 설정한다.
- HDF_XSIZE_INDEX, HDF_YSIZE_INDEX, HDF_BAND_INDEX는 HDF5 dataset의 dimension 이 3 이상이고 dimension[2]가 2일 경우에만 적용된다.
creationOption  XRSMetaData
[In] Creation Option을 설정한다.
* Creation Option
- HDF_APPLY_HALFFLOAT : 입력 파일이 HDF5이고 DataSet(예:Kompsat5 L1A 영상)이 half float data type일 경우, dump할 때 half float 적용한 데이타 값으로 저장할 것인지 여부를 설정한다. half float 적용한 data의 data type은 REAL32 로 저장된다.
- IBAND_INDEX : 입력 파일의 band가 두개일 경우, complex data type으로 파일을 dump하고자 할 때 IBand로 사용할 band index를 설정한다. 저장하고자 하는 complex data type을 dump할 파일 포맷이 지원하는 경우 정상 적용된다.
- QBAND_INDEX : 입력 파일의 band가 두개일 경우, complex data type으로 파일을 dump하고자 할 때 QBand로 사용할 band index를 설정한다. 저장하고자 하는 complex data type을 dump할 파일 포맷이 지원하는 경우 정상 적용된다.
strError  String
[Out] 에러 발생시 오류 메시지
thd  XThread
[In] Thread

Return Value

Boolean
성공이면 true, 실패이면 false를 반환
Example
아래는 tif 파일을 ntf 파일 포맷으로 dump하는 예제이다.
C#
using Pixoneer.NXDL;
using Pixoneer.NXDL.NIO;
using Pixoneer.NXDL.NRS;

XRasterIO rasterIO = new XRasterIO();
string strError = "";
if (!rasterIO.Initialize(out strError))
    MessageBox.Show(strError);

string strInputPath = @"F:\SAMPLE_IMAGE\test01.tif";
string strOutputPath = @"F:\SAMPLE_IMAGE\dump02.ntf";

bool bRes = rasterIO.DumpFile(strInputPath, strOutputPath, "NITF", null, null, out strError, null);
// 영상 data는 dump02.ntf의 영상 파일로 저장되고 메타정보는 dump02.xml에 저장된다.
아래는 HDF5 파일을 tif 파일 포맷으로 dump하는 예제이다.
C#
using Pixoneer.NXDL;
using Pixoneer.NXDL.NIO;
using Pixoneer.NXDL.NRS;

XRasterIO rasterIO = new XRasterIO();
string strError = "";
if (!rasterIO.Initialize(out strError))
    MessageBox.Show(strError);

// test.h5 는 S01/SBI, S01/QLK 두개의 dataset을 가지고 있다.
string strInputPath = @"F:\SAMPLE_IMAGE\test.h5";
string strOutputPath = @"F:\SAMPLE_IMAGE\dump.tif";

// "HDF_XSIZE_INDEX", "HDF_YSIZE_INDEX", "HDF_BAND_INDEX", "OpenOption"은 고정 문자열이다.
XRSMetaData openOption = new XRSMetaData();

// HDF5 영상의 경우 "HDF_XSIZE_INDEX", "HDF_YSIZE_INDEX", "HDF_BAND_INDEX" 의 기본값은 "1", "0", "2" 이다.
// HDF5 dataset의 dimension 중 두번째 index의 값을 가로 크기로 설정하여 영상 데이터 로드
openOption.SetValue("HDF_XSIZE_INDEX", "1", "OpenOption");

// HDF5 dataset의 dimension 중 첫번째 index의 값을 세로 크기로 설정하여 영상 데이터 로드
openOption.SetValue("HDF_YSIZE_INDEX", "0", "OpenOption");

// HDF5 dataset의 dimension 중 세번째 index의 값을 영상의 밴드 개수로 설정하여 영상 데이터 로드
openOption.SetValue("HDF_BAND_INDEX", "2", "OpenOption");

// "HDF_APPLY_HALFFLOAT", "IBAND_INDEX", "QBAND_INDEX", "CreationOption"은 고정 문자열이다.
XRSMetaData creationOption = new XRSMetaData();

// 입력 영상의 data type이 half float일 경우, half float 값으로 변경하여 저장
creationOption.SetValue("HDF_APPLY_HALFFLOAT", "Yes", "CreationOption");

// 입력 영상의 첫번째 밴드를 Complex data의 I값으로 저장
creationOption.SetValue("IBAND_INDEX", "0", "CreationOption");

// 입력 영상의 두번째 밴드를 Complex data의 Q값으로 저장
creationOption.SetValue("QBAND_INDEX", "1", "CreationOption");

bool bRes = rasterIO.DumpFile(strInputPath, strOutputPath, "GTiff", openOption, creationOption, out strError, null);
// dataset은 dump_S01_SBI.tif, dump_S01_QLK.tif의 영상 파일로 저장되고 메타정보는 dump.xml에 저장된다.
See Also