AE 栅格数据接口
发布日期:2021-05-10 18:18:16 浏览次数:15 分类:精选文章

本文共 4451 字,大约阅读时间需要 14 分钟。

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������

���������������������������������������������������������ESRI GRID���TIFF���������Imagine Image���������������������������

  • ESRI GRID������������������������������
  • TIFF���������������������TIF���������������AUX���������
  • Imagine Image������������ArcGIS���������������ISaveAs���������������

���������������������������������������

  • ������������������������������������������RasterBand���������������������������������������������������

    • ������������������������DEM������������������������������������������������������������������������
    • ���������������������������������������������������������������������������
  • **���������������RasterCatalog���**���������������������������������������������������������������������������������������������

IRasterWorkspaceEx���IRasterWorkspace���IRasterWorkspace2���������

  • IRasterWorkspaceEx������������������GeoDatabase���������������������������������������
  • IRasterWorkspace���IRasterWorkspace2������������������������������������������������������

���������������������������������������

  • ������IRasterLayer������
    IRasterLayer rasterLayer = new RasterLayerClass();
    rasterLayer.CreateFromFilePath(fileName); // fileName���������������������
    axMapControl1.AddLayer(rasterLayer, 0);
  • ������IRasterDataset������
    IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();
    IWorkspace workspace = workspaceFactory.OpenFromFile(inPath, 0); // inPath���������������������
    if (workspace != null)
    {
    IRasterWorkspace rastWork = (IRasterWorkspace)workspace;
    IRasterDataset rastDataset = rastWork.OpenRasterDataset(inName); // inName������������������
    if (rastDataset != null)
    {
    // ���������������������
    }
    }
  • ���������������������������������������������

    ���������������������������������������������������������������������������������������������

    IRasterProps rasterProps = (IRasterProps)clipRaster;
    int dHeight = rasterProps.Height;
    int dWidth = rasterProps.Width;
    double dX = rasterProps.MeanCellSize().X;
    double dY = rasterProps.MeanCellSize().Y;
    IEnvelope extent = rasterProps.Extent;
    rstPixelType pixelType = rasterProps.PixelType;
    IPnt pntSize = new PntClass();
    pntSize.SetCoords(dX, dY);
    IPixelBlock pixelBlock = clipRaster.CreatePixelBlock(pntSize);
    IPnt pnt = new PntClass();
    for (int i = 0; i < dHeight; i++)
    {
    for (int j = 0; j < dWidth; j++)
    {
    pnt.SetCoords(i, j);
    clipRaster.Read(pnt, pixelBlock);
    if (pixelBlock != null)
    {
    object obj = pixelBlock.GetVal(0, 0, 0);
    MessageBox.Show(Convert.ToUInt32(obj).ToString());
    }
    }
    }

    ���������������������������������

  • IRasterLayerExport������

    IRasterLayerExport rLayerExport = new RasterLayerExportClass();
    rLayerExport.RasterLayer = rasterLayer;
    rLayerExport.Extent = clipExtent;
    if (proSpatialRef != null)
    {
    rLayerExport.SpatialReference = proSpatialRef;
    }
    IWorkspaceFactory pWF = new RasterWorkspaceFactoryClass();
    try
    {
    IWorkspace pRasterWorkspace = pWF.OpenFromFile(_folder, 0);
    IRasterDataset outGeoDataset = rLayerExport.Export(pRasterWorkspace, code, strRasterType);
    // ������ISaveAs������������������
    }
    catch (Exception ex)
    {
    Throw new ArgumentException(ex.Message);
    }
  • IExtractionOp������

    IExtractionOp extraction = new RasterExtractionOpClass();
    try
    {
    IGeoDataset geoDataset = extraction.Rectangle((IGeoDataset)clipRaster, clipExtent, true);
    IRaster raster = geoDataset as IRaster;
    if (raster != null)
    {
    IWorkspaceFactory WF = new RasterWorkspaceFactoryClass();
    IWorkspace rasterWorkspace = WF.OpenFromFile(_folder, 0);
    ISaveAs saveAs = (ISaveAs)raster;
    saveAs.SaveAs("Result.tif", rasterWorkspace, "TIFF");
    }
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
  • ���������������������

    ���������������������������������������������������������

  • ������������������NEAREST���
  • ������������������LINEAR���
  • ���������������������CUBIC���
  • ������������������������������������������

    IRasterGeometryProc rasterGeometryProc = new RasterGeometryProcClass();
    rasterGeometryProc.Resample(rstResamplingTypes.RSP_CubicConvolution, newCellSize, clipRaster);

    ������������������������������������������������������������������������

    上一篇:ArcGIS栅格波段理解
    下一篇:Arcengine代码 调GP实现栅格重分类和调用IReclassOp实现重分类,区别就是GP字段可选

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2025年04月20日 22时05分25秒