首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GIS:GDAL实现对栅格文件的转换

首先需要安装GDAL,我这里是在Anaconda上直接安装了基于Python的GDAL,可以在下面网站自行下载,https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal...例如下面对应的就是Python3.8版本的GDAL。...安装好后可在Anaconda的Prompt中直接使用gdal_translate.exe直接实现转换,转换方法如下: gdal_translate [--help-general] [-ot {...-if 试图打开输入文件的格式/驱动程序名称。通常不需要指定它,但当它无法选择适当的驱动程序时,可以使用它跳过自动驱动程序检测。 -of 选择输出格式。...从GDAL 2.3开始,如果未指定,则从扩展名猜测格式。 -b 选择输入波段 band 输出,从1开始编号。 -mask 选择输入波段 band 创建输出数据集掩码带区。 -tr 设定目标分辨率。

36810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python GDAL依据栅格图像提取另一影像的像素

    本文介绍基于Python中GDAL模块,实现基于一景栅格影像,对另一景栅格影像的像元数值加以叠加提取的方法。   ...本文期望实现的需求为:现有一景表示6种不同植被类型的.tif格式栅格数据,以及另一景与前述栅格数据同区域的、表示植被参数的.tif格式栅格数据;我们希望基于前者中的植被类型数据,分别提取6种不同植被类型的植被参数数值...这里需要注意,两景栅格影像的行数、列数也都是一致的。   了解了具体需求后,我们即可开始代码的实践;本文用到的具体代码如下所示。...代码的整体思路其实也非常简单,首先通过gdal.Open()函数与.ReadAsArray()函数,分别读取两个栅格数据,并将两个栅格数据中的像元数值信息转换为数组格式;随后,因为表示不同植被类型的.tif....tif格式栅格数据的像元数值,将表示植被参数的.tif格式栅格数据的像元数值依次提取、放入不同的列表中。

    24020

    GDAL读取的坐标起点在像素左上角还是像素中心?

    问题 笔者在处理地理栅格数据的时候,总是会发生偏差半个像素的问题。...而GDAL可以也读取地理栅格数据(DEM、DOM等)的坐标信息: // GDALAllRegister(); CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO...[4] 的正北向图像 的分辨率 那么GDAL读取坐标起点也就是左上角点坐标(...结论 经过比较和论证,笔者发现GDAL和ArcMap在处理TIF格式的地理栅格数据的时候,都遵循以下原则: GDAL/ArcMap读取的起点位置都是左上角像素左上角的位置。...例外 GDAL和ArcMap都没有区分处理的地理栅格数据是DEM(地形)还是DOM(影像),其实对于地形栅格数据,很多时候会把起点位置处理成左上角像素中心的位置。

    1.4K20

    栅格数据金字塔层级的地理变换信息

    地理变换信息指的就是栅格数据的地理坐标起点和分辨率,笔者在另外一篇文章中《GDAL读取的坐标起点在像素左上角还是像素中心?》论述了栅格数据集中坐标起点位置存在半个像素差的问题。...但是栅格数据集的金字塔层级影像是如何处理这个问题的呢? 2. 详论 2.1 连续还是离散 从《GDAL读取的坐标起点在像素左上角还是像素中心?》...2.3 金字塔层级影像 最后回到金字塔层级的地理变换信息计算的问题。在进行可视化的时候,使用像素中心作为起点进行空间坐标的计算,重采样出合适的像素值。...这时会发生一个略显诡异的现象,就是原始栅格影像上X方向Y方向分辨率一致都是0.25,在第一级金字塔层级影像上却已经有微小的差异了。...不止是金字塔层级影像,笔者在《GDAL关于读写图像的简明总结》这篇文章中介绍过GDAL读取栅格数据的时候可以重采样读取,如下所示: //申请buf size_t imgBufNum = (size_t)

    9100

    C++增加GDAL CreateCopy函数得到的栅格的波段数量

    本文介绍基于C++语言GDAL库,为CreateCopy()函数创建的栅格图像添加更多波段的方法。   ...在C++语言的GDAL库中,我们可以基于CreateCopy()函数与Create()函数创建新的栅格图像文件。...因此,一般我们选择CreateCopy()函数来创建栅格图像文件较为方便,因为其不需要我们手动为所创建的栅格图像配置各种属性信息;但是有时我们希望所创建的新的栅格图像,其与作为模板的图像之间的属性有一定差异...首先,GDAL库提供了AddBand()函数,可以为GDALDataset*类型的数据添加波段;但是,AddBand()函数对于大部分格式的栅格图像而言都不起作用——例如,最常见的.tif格式的栅格图像文件...vrt格式文件是GDAL库中提供的一种虚拟数据格式,这一数据格式的详细介绍大家可以参考GDAL库的帮助文档,这里我们就不再详细说明了;目前只需要知道,.vrt格式文件是支持利用AddBand()函数增添自身的波段数量的

    25620

    Python | GDAL处理影像

    GDAL栅格数据处理 栅格数据介绍 栅格数据读取 读取部分数据集 坐标变换 重采样 什么是栅格数据 基本上是一个大的二维或三维数组 没有独立的几何对象,只有像素的集合 二维:黑白图片 三维:彩色/假彩色...>无符号整数 概视图:递减分辨率,用于大数据快速显示 有损压缩与无损压缩:地理科学数据应使用无损压缩 GDAL数据集的基本结构 栅格数据读取 driver.Create(filename, xsize...,只考虑了像素偏移,没有考虑真实世界的坐标 坐标的转换并不困难,需要用到: 栅格数据的SRS(空间参考)信息 geotransform也就是栅格数据的地理变换信息 需要使用GDAL提供的函数 ApplyGeoTransform...如果它们比win_xsize和win_ysize大,那么会重采样为更高的分辨率,更小的像素 如果它们比win_xsize和win_ysize小,那么会重采样为更低的分辨率,更大的像素,使用最邻近插值来实现...重采样为更高分辨率,更小的像素 重采样为更低分辨率,更大的像素 # 重采样举例 # Get the first band from the raster created with listing

    4.7K31

    GDAL命令:一行代码转换坐标系

    本文介绍基于gdal模块,在命令行中通过GDAL命令的方式(不是Python或者C++代码,就是gdal模块自身提供的命令行工具),对栅格遥感影像数据加以投影,即将原本的地理坐标系转为投影坐标系的方法...我们现在有一个.tif格式的栅格遥感影像文件,其空间坐标系为GCS_WGS_1984,也就是WGS84,是一个地理坐标系;在ArcMap软件中将其打开,可以看到其空间坐标系及空间分辨率的单位(经纬度),...此时,如果我们用ArcGIS打开结果文件,可以看到其已经完成了投影,坐标系已经是WGS_1984_UTM_Zone_48N,且空间分辨率的单位为米;如下图所示。   ...以上,我们利用了gdal模块提供的一个命令行工具——gdalwarp命令,实现了栅格图像投影的需求。...除了上述命令行工具,按道理我们还可以用Python代码的方式,基于gdal模块提供的Python语言的API——gdal.Warp()函数,或者gdal.Translate()函数等,来实现栅格投影的需求

    94710

    GDAL读取MAIAC的HDF文件(熟肉)

    空间分辨率1km,时间分辨率为1d。这个算法得到的AOD更为精确,同时获得的AOD范围也更为广泛。有兴趣的同学可以到NASA官网了解更为丰富的MAIAC算法细节(本文不做扩展)。...GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。可以读取主流的栅格格式(以下是部分GDAL支持的栅格格式)。...h21v03代表数据的位置,后部分不重要了(具体我也忘了,有兴趣的可以参考用户手册)。 一切预备工作齐备,接下来就是利用Python+GDAL进行读取的工作。...并没有,还需要继续深扒层里的信息和数据,重新利用GDAL打开550nmAOD层的信息,并转为数组,才算正确读取为可以直接运行和计算的部分。...pb=sub[1][0] b=gdal.Open(pb) barr=b.ReadAsArray() 这样: 可以看到barr中是一个3维的数组。

    1.5K21

    打开栅格数据的正确方式

    以一个简单例子说明如何打开栅格影像 下面的例子打开一副GeoTIFF影像,输出了影像的一些信息,然后遍历了所有波段,输出波段的一些信息 import gdal # 打开栅格数据集 ds = gdal.Open...Dataset转为Numpy的ndarray 当我们得到Band对象以后,如果按照GDAL的C/C++接口惯例,我们可以使用WriteRaster()方法进行数据写入(C/C++接口是WriteBlock...下面介绍几种转换的方法: 在Dataset级别进行转换,转换结果是一个三维数组,第一个维度是波段数 在Band级别进行转换,转换的结果是一个二维数据 使用gdal_array模块中的LoadFile()...:(3, 4800, 4800) 波段大小:(4800, 4800) 波段大小:(4800, 4800) 波段大小:(4800, 4800) 使用gdal_array模块 from osgeo import...GDAL中使用Python的异常对象 import gdal import sys # 允许GDAL跑出Python异常 gdal.UseExceptions() try: ds = gdal.Open

    1.2K20

    Python中gdal读取多波段HDF栅格影像并绘制直方图

    本文详细介绍基于Python语言gdal等模块实现多波段HDF栅格图像文件(即.hdf文件)的读取、处理与像元值可视化等操作。...此外,基于gdal等模块读取.tif格式栅格图层文件的方法可以查看Python中gdal实现多幅栅格影像批量绘制直方图,读取单波段.hdf格式栅格图层文件的方法可以查看Python中gdal栅格影像读取计算与写入及质量评估...本文期望实现的需求为:现有一存放.tif格式的全球LAI产品栅格数据的路径,需将这一路径下的全部LAI产品栅格数据依据另一路径下存放的全球MODIS植被覆盖类型产品栅格数据进行像元分类,并绘制全球每一种植被类型对应的...:首先,多波段.hdf格式文件的读取在一开始与单波段.hdf格式文件或.tif格式文件的读取一致,即通过gdal.Open()函数实现;但随后,需要额外借助len()函数获取HDF文件对应的波段数量。...其第二个元素包含了该波段对应的数据行数与列数(即[2400×2400])、数据名称(即Fpar)、数据空间分辨率(即500m)、数据产品简称(即MOD_Grid_MCD15A3H),以及数据格式(即8-

    1.3K20

    Python中gdal实现MODIS遥感影像数据读取与质量控制QC波段筛选及掩膜

    前期推文Python中gdal栅格影像读取计算与写入及质量评估QA波段筛选掩膜详细介绍了基于Python语言gdal等模块实现遥感影像栅格数据的读取,以及基于质量评估(QA)波段实现栅格像元筛选与掩膜的全部操作...也就是说,本文重点不在于代码的讲解(具体代码在前述这一篇推文中已经很详细地介绍了),而是将上述代码在更为具体的一个实践中加以应用,告诉大家该如何选择波段、处理质量评估QA波段并进行筛选操作等。...由于MODIS系列遥感影像产品种类较多,不同产品之间的属性差异较大;因此建议大家每次使用一种MODIS产品时,都到官网查看其基本信息,有需要的话还可以在官网下载对应产品的用户手册。...在这里需要注意的是,之前的两篇推文:Python中gdal栅格影像读取计算与写入及质量评估QA波段筛选掩膜以及Python中gdal读取多波段HDF栅格影像并绘制直方图中,已经对本次所要用到的大部分需求与代码加以实现并进行了详细讲解...本文代码所实现功能与上述第一篇推文中的需求一致,唯一不同的是将GLASS产品更改为了MCD15A3H产品,且仅需对MCD15A3H产品的主算法像元加以做差计算(也就是筛选出MCD15A3H产品中第一个QC

    1.5K30

    Geoserver扩展以支持Erdas Image数据的服务发布

    概述: Geoserver默认支持的栅格数据源比较少,包括ArcGrid,GeoTiff,WorldImage,ImageMosaic等,是不支持Erdas Img格式的栅格数据源的,因此,为了能够让...Geoserver支持发布Erdas Img格式的数据源,需要用GDAL的插件对Geoserver进行扩展,本文讲述如何在Geoserver中配置并支持Erdas Img格式的数据源。...geoserver默认支持的栅格数据源 配置步骤 1、相关jar文件的下载与拷贝 下载Geoserver对应版本的gdal-plugin,并将之拷贝到Geoserver的安装路径.....注意: GDAL的版本一定要一致!...为方便大家使用,我下载了比较新的版本到我的百度网盘,其中: Geoserver2.8.1    链接:http://pan.baidu.com/s/1hshOdaG 密码:yev9 geoserver-

    2.7K20

    多值提取至点Python实现:找到不同栅格相同位置像元

    其中,可以很明显地看到,小遥感影像的空间分辨率高于大遥感影像,但其成像范围是小于大遥感影像的;如下图所示。   ...在本文中,numpy用于处理数组数据,gdal则用于读取栅格数据文件和获取地理转换参数。   随后,我们定义了几个关键的函数。...其中,raster2array()用于将栅格数据文件读取为numpy库的数组,get_geotransform()用于获取栅格数据文件的地理转换参数,get_pixel_size()用于从地理转换参数中提取像素大小...首先,我们使用raster2array()函数将小遥感影像读取为数组,并存储在gf_array变量中;随后,使用get_geotransform()函数获取小遥感影像的地理转换参数,并存储在gf_geotransform...执行上述代码后,我们来检查一下代码的运行是否符合预期。因为大遥感影像的空间分辨率低一些,所以我们就用它来验证我们的结果(空间分辨率低一些的话,验证起来反而更方便)。

    35110

    python与地理空间分析(一)

    由于结构紧凑,使用JavaScript语法编写对于互联网格式友好,并且支持主流编程语言,GeoJSON也是当前流行的地理空间REST Web API的一个重要组件。 三. 栅格数据格式 ?...地理空间栅格数据常用来存放卫星遥感数据,使用一个像元对应的地面距离来表达空间分辨率;此外栅格数据可以包含多个光谱波段的数据,例如常用的可见光以及红外波段,有的像高光谱数据,会包含成百上千个波段数据,可以通过不同波段的组合生成不同的专题地图...和矢量数据类似,栅格数据也包含多种格式,比较常用的开源栅格库是地理空间数据抽象库(GDAL),支持超过130种栅格数据格式。...通常这些格式依赖于相关的地理参考信息的辅助文本文件才能够在GIS软件中使用,例如WKT,prj等文件。 压缩格式 地理空间栅格数据往往占用的空间比较大,需要采用高级的压缩算法进行存储。...(f.schema) GDAL GDAL库是处理栅格数据的主流地理空间库,也是多种地理空间分析软件和程序包的栅格处理的基础包。

    8.4K52

    GDAL简介

    Geospatial Data Abstraction Library (GDAL)是使用C/C++语言编写的用于读写空间数据的一套跨平台开源库。...GDAL库由OGR和GDAL项目合并而来,OGR主要用于空间要素矢量矢量数据的解析,GDAL主要用于空间栅格数据的读写。此外,空间参考及其投影转换使用开源库 PROJ.4进行。...GDAL 1.x版本以前,对于栅格和矢量数据的读写API借口设计是相对分离的,从2.x版本开始,栅格和矢量数据的API进行了集成,对开发者更加友好。我们这里的示例都是以2.x版本为例。...栅格数据组织 GDAL中使用dataset表示一个栅格数据(使用抽象类GDALDataset表示),一个dataset包含了对于栅格数据的波段,空间参考以及元数据等信息。...) 元数据(键值对的集合,用于记录和影像相关的元数据信息) 栅格波段(使用GDALRasterBand类表示,真正用于存储影像栅格值,一个栅格数据可以有多个波段) 颜色表(Color Table用于图像显示

    2.5K40
    领券