gis开发:使用gdal操作影像(C#)
  TEZNKK3IfmPf 2024年08月02日 41 0

GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。

GDAL提供对多种栅格数据的支持,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas Imagine Images(img),ASCII DEM(dem) 等格式。

使用C#开发gdal的程序,引用的C#类库不多,但是需要在执行目录中,添加不少C++的dll,要不然就会报错,缺失dll文件,具体可以去网上下载。

C#的工程中,需要引用以下的dll:

gis开发:使用gdal操作影像(C#)

             Gdal.AllRegister();

            //支持中文

            //Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");    

            Dataset ds = Gdal.Open(strFilePath, Access.GA_ReadOnly);

            Band Band = ds.GetRasterBand(1); 

 

                //获取图像的尺寸               

                int width = Band.XSize;

                int height = Band.YSize;  

 

                //获取坐标变换系数

                double[] adfGeoTransform = new double[6];

                ds.GetGeoTransform(adfGeoTransform);

                //获取行列号              

                double dCol = 0.0, dRow = 0.0;                  

                int dc = Convert.ToInt32(dCol);

                int dr = Convert.ToInt32(dRow);

                DataType DT = DataType.GDT_CFloat32;

               //创建一个tiff文件的格式

                OSGeo.GDAL.Driver driver = Gdal.GetDriverByName("GTiff");

                Dataset dataset = driver.Create(testPath, fx, fy, 1, DT, null);

                //影像转换参数

                dataset.SetGeoTransform(adfGeoTransform); 

                //投影转换参数

                dataset.SetProjection(ds.GetProjection()); 

                //影像波段中写入数据

                dataset.GetRasterBand(1).WriteRaster(0, 0, fx, fy, data, fx, fy, 0, 0); 

dataset.GetRasterBand(1).FlushCache();

                dataset.FlushCache(); 

以上是一个高程的数据,tiff格式的读取和写入,数据中存储的就是每个点,和每个点上的高程值,按顺序写入到影像上,并且要把tiff图上的像素对应到空间坐标的高程值。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年08月02日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年08月09日   71   0   0 java数据
  TEZNKK3IfmPf   2024年08月09日   44   0   0 Oracle数据
TEZNKK3IfmPf