gdal中的工具gdaladdo.exe,可以为大多数支持的格式建立或者重建(内)金字塔,可以使用几种重采样算法来进行重采样操作。

一、gdaladdo使用说明

用法:

gdaladdo [-r {nearest,average,gauss,cubic,cubicspline,lanczos,average_mp,average_magphase,mode}][-ro] [-clean] [-q] [-oo NAME=VALUE]* [-minsize val][--help-general] filename [levels]

参数:

  • -r : {nearest,average,gauss,cubic,cubicspline,lanczos,average_mp,average_magphase,mode} 重采样算法。默认nearest。
  • -ro : 以只读模式打开文件,创建外金字塔文件(特别是GeoTIFF格式)。
  • -clean : 移除金字塔数据。
  • -q : 关闭进度显示。
  • -b : 创建指定波段的金字塔。(如不指定,创建所有波段)
  • filename : 要建立金字塔的文件名。
  • levels : 要建立金字塔的层号的列表。(使用-clean,此选项忽略)

配置参数 :

  • –config USE_RRD YES : 创建Erdast (.aux)的图像格式的金字塔文件,可以直接在Erdas中或ArcGIS中使用.

下面配置参数,仅GeoTIFF格式的外部金字塔时可用。

  • –config COMPRESS_OVERVIEW {JPEG,LZW,PACKBITS,DEFLATE} : TIFF compression
  • –config PHOTOMETRIC_OVERVIEW {RGB,YCBCR,…} : TIFF photometric interp.
  • –config INTERLEAVE_OVERVIEW {PIXEL|BAND} : TIFF interleaving method
  • –config BIGTIFF_OVERVIEW {IF_NEEDED|IF_SAFER|YES|NO} : is BigTIFF used

使用例子:

 gdaladdo -r average abc.tifgdaladdo -r average abc.tif 2 4 8 16gdaladdo --config COMPRESS_OVERVIEW JPEG--config PHOTOMETRIC_OVERVIEW YCBCR--config INTERLEAVE_OVERVIEW PIXEL -ro abc.tif

二、java调用jdal.jar实现

jdal.jar 可以下载编译好的jar及dll。

主要调用Dataset的BuildOverviews方法即可。
MyCallback是一个处理的回调class,通过调用run方法通知处理进度。

import org.apache.log4j.Logger;
import org.gdal.gdal.*;
import org.gdal.gdalconst.gdalconstConstants;/*** 生成金字塔*/
public class GDALBuildOverview {private static final Logger logger = Logger.getLogger(GDALBuildOverview.class);public static void main(String[] args) {String fileName_tif = "D:\\test\\dem.tif";gdal.AllRegister();Dataset hDataset = gdal.Open(fileName_tif, gdalconstConstants.GA_ReadOnly);if (hDataset == null) {System.err.println("GDALOpen failed - " + gdal.GetLastErrorMsg());System.exit(1);}int bandNum = hDataset.getRasterCount();logger.info("RasterCount is " + bandNum);hDataset.BuildOverviews("average", new int[]{2, 4, 8, 16}, new BuildCallback());hDataset.delete();gdal.GDALDestroyDriverManager();logger.info("completed");}}class BuildCallback extends ProgressCallback {private static final Logger logger = Logger.getLogger(BuildCallback.class);public BuildCallback() {}@Overridepublic int run(double dfComplete, String pszMessage) {if (pszMessage != null) {logger.info(String.format("%s", pszMessage));}System.out.print(String.format("%.2f%%\r", dfComplete * 100));return 1;}
}

GDAL建立GeoTIFF金字塔文件相关推荐

  1. python/gdal处理遥感影像(读取、投影转换、裁剪、建立图像金字塔等)

    python/gdal处理遥感影像(读取.投影转换.裁剪.建立图像金字塔等) gdal库简单介绍 python使用gdal 一.安装python环境 二.安装gdal库 三.使用gdal处理遥感影像 ...

  2. gdal java shp_【GDAL/OGR】利用GDAL/OGR读取shp文件并转换为json文件(Java版)

    前言: 对于GIS开发者来说,GDAL/OGR是最熟悉不过的开源GIS库了,GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间 ...

  3. php循环建立新的文件根据文件名移动文件到指定文件夹修改文件名称

    写一个php文件放到你想要批量处理的文件目录下,运行文件即可完成 注意:确认你的文件名是不是时间戳,还有文件里的php文件,要加上判断!不要误删了! <?php set_time_limit(0 ...

  4. Java建立Zip压缩文件的代码实例

    Java建立Zip压缩文件的代码实例 Java代码 import java.io.*; import java.util.zip.*; class Zip { public static void m ...

  5. 计算机不能再U盘新建文件夹,U盘无法建立新的文件夹?!三种小方法教你解决...

    原标题:U盘无法建立新的文件夹?!三种小方法教你解决 U盘是现代人常用的移动存储设备之一,特点是小巧易携带,容量大,因此深得用户喜欢.但是这小小的U盘一旦出现故障,就让人有点难以招架了,U盘不比电脑, ...

  6. Anaconda环境GDAL库基于whl文件的配置方法

      本文介绍在Anaconda环境下,基于.whl文件安装Python中高级地理数据处理库GDAL的方法.   在文章Anaconda下Python中GDAL模块的下载与安装方法(https://bl ...

  7. linux文件的创建与扫描,Linux系统quotacheck命令:扫描文件系统并建立Quota记录文件...

    其实,磁盘配额(Quota)就是通过分析整个文件系统中每个用户和群组拥有的文件总数和总容量,再将这些数据记录在文件系统中的最顶层目录中,然后在此记录文件中使用各个用户和群组的配额限制值去规范磁盘使用量 ...

  8. linux扫描磁盘变化命令,Linux quotacheck命令:扫描文件系统并建立Quota记录文件

    其实,磁盘配额(Quota)就是通过分析整个文件系统中每个用户和群组拥有的文件总数和总容量,再将这些数据记录在文件系统中的最顶层目录中,然后在此记录文件中使用各个用户和群组的配额限制值去规范磁盘使用量 ...

  9. gdal库对ENVI文件的一点支持不好

    作者:朱金灿 来源:http://blog.csdn.net/clever101 使用GDALOpen函数打开ENVI的img文件,如果使用更新的方式即GA_Update会改写对应的hdr文件.改写h ...

  10. GeoTiff格式文件说明

    1. 前言 在TIFF文件结构详解中,我们得知TIFF是Tagged Image File Format的缩写.Tiff对GeoTiff的支持已写入了Tiff6.0,也就是说,GeoTiff是一种Ti ...

最新文章

  1. golang struct json map 互相转化
  2. html跳转过度,jq实现锚点跳转过度
  3. STM32(六)- 系统定时器
  4. 实现对数组找最大最小数
  5. 给lnmp一键包中的nginx安装openresty的lua扩展
  6. Python随机数生成方法
  7. 【Win 10 应用开发】分析 URI 中的查询字符串
  8. 某绒面试的病毒分析(一)
  9. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_18-CMS前端页面查询开发-页面原型-创建页面和定义路由...
  10. Python爬取NBA虎扑球员数据
  11. 使用H5开发移动端app
  12. 课时1:Vitis HLS的工作机制——Vitis HLS教程
  13. 德国汉诺威地面材料展览会搭建就找上海宽创国际
  14. 中年妇女xxx_2019年国际妇女节庆祝活动
  15. Ubuntu下安装微信(非网页版)、TIM、QQ
  16. fico RMA部署规则时,jdk过期报错
  17. 网络安全标准实践指南—远程办公安全防护
  18. 5G为人工智能与工业互联网赋能|79页高清PPT
  19. linux服务器实训心得体会,linux实训心得体会 linux实训总结与体会
  20. c语言错误c1021,c语言经典错误

热门文章

  1. Mini 容器学习笔记10——方法注入
  2. iOS-代码实现TableViewCell创建多个样式的Cell
  3. eclipse提交代码至GitHub
  4. 使用JS制作一个鼠标可拖的DIV(二)——限制区域移动
  5. 远程桌面控制VC源码剖析
  6. springboot里面的porm配置问题
  7. 3.性能之巅 洞悉系统、企业与云计算 --- 操作系统
  8. 6. XML Schema
  9. c语言贪吃蛇游戏 vc6,把tc下的贪吃蛇游戏改到vc6下运行
  10. 110个oracle常用函数总结(7),oracle110个最常用函数