输入:地形栅格数据,
输出:坡度分析后的栅格数据。
(1)利用ArcGIS自带的Slope工具,ArcMap用ArcToolbox中的SpatialAnalyst.surface.slope工具可以很方便的得到坡度数据。
(2)ArcGis的代码如下:
IRasterLayer pRasterLayer = new RasterLayerClass();pRasterLayer = (IRasterLayer)this.axMapControl1.get_Layer(0);
IRaster pIRaster = pRasterLayer.Raster;
ISurfaceOp pSurfaceOp = new RasterSurfaceOpClass();
object zFactor = 1;
IGeoDataset pGeoDataset = pSurfaceOp.Slope((IGeoDataset)pIRaster, esriGeoAnalysisSlopeEnum.esriGeoAnalysisSlopeDegrees, ref zFactor);
-----------------------------------
用SuperMap的Slope就很令人头疼。
帮助文档中:
语法
soDatasetRaster soSurfaceOperator.Slope(objGridDataset As soDatasetRaster,[slopeType As seSlopeType],[dZFactor As Double],[objOutputsDatasource As soDataSource],[strSlopeDatasetName As String])
参数 | 可选 | 类型 | 描述 |
---|---|---|---|
objGridDataset | 必选 | soDatasetRaster | 要计算坡度的栅格数据集。 |
[ slopeType ] | 可选 | seSlopeType | 表示坡度的单位类型。角度、比降、弧度。默认为角度。 |
[ dZFactor ] | 可选 | Double | Grid中Z坐标相对于X和Y坐标的单位变换系数,通常有X,Y,Z都参加的计算中,为了调整其单位统一,需要设置一个ZFactor,默认为1 。 |
[ objOutputsDatasource ] | 可选 | soDataSource | 存储输出结果的数据源。如果不指定此参数,方法会把分析结果输出到栅格分析环境所设置的输出数据源中。 |
[ strSlopeDatasetName ] | 可选 | String | 结果坡度数据集名称。如果不指定此参数,方法会自动给结果数据指定一个名称。 |
说明
计算坡度图。
---------------------------------
我自己写的代码:
soDatasetRaster dataset;
soDatasetRaster outDataset;
soSurfaceAnalyst surface = this.axSuperAnalyst1.SurfaceAnalyst;
dataset = (soDatasetRaster)objDataSource.Datasets[1];
outDataset = surface.Surface.Slope(dataset,
seSlopeType.sctDegree, 1, objDataSource, "Grid_Slope1");
做成了一个名称为 “Grid_Slope1”的数据集,可是导出后,查看角度不正常。
---------------------
2011年8月22日追击,
和超图的技术支持联系后,答复说确实是SuperMap的BUG,结果是不对,暂时不能马上对应。。。
。。。。