ArcGIS Engine实现LAS数据集转RASTER

ArcGIS 10.1版本开始提供了将LAS数据集转换为栅格的新功能,最近在做LAS数据处理时通过ArcGIS Engine10.1+C#实现了LAS数据集转RASTER,既然ArcGIS DeskTop中此功能是集成在工具箱的转换工具里的,那么在AE中我们可以调用GP工具实现,具体代码如下:

 

//实例化数据LasDatasetToRaster转换工具
LasDatasetToRaster las2Raster = new LasDatasetToRaster();

/*定义转换参数*/
//输入的LAS数据集,这是必填参数
las2Raster.in_las_dataset = @"D:\las转raster\test.lasd";
//输出的栅格数据集,这也是必填参数
string outRtFullName = @"D:\las转raster\rasterdatabase.gdb\project";

las2Raster.out_raster = outRtFullName;
//值字段,可选
las2Raster.value_field = "INTENSITY";
//插值类型,可选
las2Raster.interpolation_type = "BINNING IDW LINEAR";
//输出数据类型,可选
las2Raster.data_type = "FLOAT";
//采样类型,可选
las2Raster.sampling_type = "CELLSIZE";
//采样值,可选
las2Raster.sampling_value = 0.005 ;
//Z因子,可选
las2Raster.z_factor = 1;
/*定义转换参数结束*/

// GP工具实现.
Geoprocessor gp = new Geoprocessor();
gp.OverwriteOutput = true;
try
{
gp.Execute(las2Raster, null);
Console.WriteLine("SUCCESS");
}
catch
{
Console.WriteLine("FAIL");
}

 

在转换的过程中发现一个问题,就是interpolation_type参数的设置,即使你采用和ArcGIS Desktop一模一样的参数,转换得到的RASTER还是会出现NoData区域,尝试了好多种方法都没办法改进,最后发现原来是ArcGIS Engine10.1自身的问题,不知道为什么会把interpolation_type中空填充方法给弱化了,使用AE10.2就不会出现类似的问题,有兴趣的可以试试。

posted @ 2015-08-07 13:47  平平半生  阅读(1458)  评论(2编辑  收藏  举报