- 通过命令行gdalwarp.exe
- 通过gdal的c#binding
- 通过c#调用gdal的python绑定
第一种直接使用Process类,写好py文件即可
第3种也可以new Process,或者用pythonnet之类的库也可(ps 我没试过)
var inRasterDs = Gdal.Open(_inRasterFile, Access.GA_ReadOnly);
string evWkt = inRasterDs.GetProjectionRef();
var cellSize = RasterUtil.GetCellSize(inRasterDs);
//栅格6参数
double[] argout = new double[6];
inRasterDs.GetGeoTransform(argout);
//calc extent
var xmin = argout[0];
var ymax = argout[3];
var xmax = argout[0] + argout[1] * inRasterDs.RasterXSize + inRasterDs.RasterYSize * argout[2];
var ymin = argout[3] + argout[4] * inRasterDs.RasterXSize + inRasterDs.RasterYSize * argout[5];
inRasterDs.Dispose();
//重投影并指定像元大小和四至,重采样方式为nearest,并指定格式为ENVI .hdr Labelled Raster
var options = Gdal.ParseCommandLine($"-t_srs {evWkt} -tr {cellSize.cellSizeX} {cellSize.cellSizeY} " +
$"-te {xmin} {ymin} {xmax} {ymax} -r near