最近在修改项目时发现有些提取的坡度数据在参与了下一步计算后会出错,仔细跟了代码之后发现AE生成的坡度数据和其他一些分析后的栅格都被存储为.adf文件。说起惭愧,并不了解这是什么数据,由于下层算法使用GDAL,这里脑抽了一下先想到把这个数据转成tif或者img数据再参与计算。(当然开始以为GDAL不支持这种数据)开始用AE,但是包括官方代码都有点问题,考虑到实现这个小功能AE创建了一大堆对象觉得不太舒服,决定自己写了。

先查了下,这个数据是ESRI早期的一种二进制Grid数据,其文件结构大约如图:

当然在得知GDAL可以处理这个种数据后,还是出于好奇去写了一个转换工具,其他的处理流程都是差不多的,但是在测试里发现,不论给文件夹地址还是给hdr.adf地址GDAL都能读取出来内容。但是,不清楚什么原因,在遍历像元时我完全不能获取到有效的像元值。猜测在项目里偶尔出现的抛错也是因为读取不到有效值造成的吧。

于是开始查阅资料,想了解这个数据结构。

这里翻到一个老外的博客,做了很详细的调查。【by Frank Warmerdam (warmerdam@pobox.com)】

The Arc/Info Binary Grid format is the internal working format of the Arc/Info Grid product. It is also usable and creatable within the spatial analyst component of ArcView. It is a tiled (blocked) format with run length compression capable of holding raster data of up to 4 byte integers or 4 byte floating data.

在他的博客中特意提醒,这个格式不能和ESRI的ASCII Grid格式混淆。后者是一种GRID交换格式。两种格式可以互转,在ArcInfo中使用【GRIDASCII】、【ASCIIGRID】命令即可(不清楚在ArcGIS Desktop里是否还保留了)。

另外,ESRI BIL格式也与此不同。

文件内容说明:

文件名 用途
dblbnd.adf 存储四至信息(LLX、LLY、URX、 URY)
hdr.adf 头文件,存储数据的大小信息、切片信息等
sta.adf 存储数据的统计分析信息如最大最小值、均值和标准差等
vat.adf 存储数据的属性表信息
w001001.adf 该文件用于存储真实的栅格数据(DataValues)
w001001x.adf 空间索引文件
prj.adf ESRI标准的投影信息文件

剩下的内容等继续研究后追加。

【GIS数据格式】ArcInfo Binary Grid Format的更多相关文章

  1. GIS数据格式:Coverage

    转自:http://www.cnblogs.com/w2william/archive/2009/10/15/1583954.html 我之前做了一个模块,基本实现了ArcCatalog中左边树状结构 ...

  2. GIS数据格式:Shapefile

    转自:http://lab.osgeo.cn/2449.html Shapefile是ESRI提出的数据格式,随着ArcView GIS 3.x发布,属于简单要素类.Shapefile由于其数据结构简 ...

  3. GIS数据格式:Geodatabase

    转自:http://www.cnblogs.com/quansixiang/archive/2010/09/17/1829286.html 1  Geodatabase概念 Geodatabase是A ...

  4. 更小的GIS数据格式-Geobuf

    背景 我们经常遇到直接传输gis数据到前端展示的时候,有时候数据量一稍微多点,传输速度就减慢,因为我们用于传输的json格式比较大. Geobuf介绍 Geobuf是一种用于地理数据的紧凑二进制编码. ...

  5. gis数据格式转换(数据导入)ConvertFeaCls

    本文主要对数据导入等里 常用的不同格式数据创建.转换等 进行代码示例.主要用到IFeatureDataConverter.ConvertFeatureClass方法. 代码如下,难度不大,只是个技巧问 ...

  6. GIS数据格式topojson

    Topojson源自于GeoJson,是D3中描述地理数据的格式,D3的作者觉得GeoJson太繁琐.同样的数据,TopoJson是GeoJson的1/5. 这里有一个转换TopoJson,GeoJs ...

  7. [MySQL复制异常]'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'

    MySQL复制错误]Last_Errno: 1666 Last_Error: Error executing row event: 'Cannot execute statement: imposs ...

  8. 开源GIS软件初探

    谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起.MapInfo软件也不 ...

  9. ArcGIS几种数据格式

    ArcGIS几种数据格式 ArcInfo常用以下格式的数据:shp.Coverage..Raster CAD和Geodatabase.各种数据的组织形式不一样,其中shp.Coverage.Raste ...

随机推荐

  1. ubuntu终端代理之proxychains

    命令行代理 安装proxychains sudo apt install proxychains 配置proxychains sudo vim /etc/proxychains.conf 在proxy ...

  2. sql中的sp_helptext、sp_help 、sp_depends

    sp_help:用于显示参数清单和其数据类型. sp_depends:用于显示存储过程依据的对象或者依据存储过程的对象. sp_helptext:用于显示存储过程的定义文本

  3. solr 安装与配置

    1. Solr安装与配置 1.1什么是Solr 大多数搜索引擎应用都必须具有某种搜索功能,问题是搜索功能往往是巨大的资源消耗并且它们由于沉重的数据库加载而拖垮你的应用的性能. 这就是为什么转移负载到一 ...

  4. Python学习-第三天-面向对象编程基础

    Python学习-第三天-面向对象编程基础 类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例.这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的 ...

  5. SQLServer中ISNULL和CONVERT函数

    create view sss as(select ISNULL(operate_time, CONVERT(VARCHAR(20),create_time,120)) time from s_pro ...

  6. httplib模块:(一个相对底层的http请求模块)

    httplib是一个相对底层的http请求模块,期上有专门的包装模块,如urllib内建模块,goto第三方模块,但是封装的越高就约不灵活,比如urllib模块里的请求错误是就不会返回结果页的内容,只 ...

  7. React框架新闻网站学习过程中遇到的错误总结

    1.安装指定版本插件命令 npm install 插件名字@1.1.4(版本号) --save 或 yarn add 插件名字@1.1.4(版本号) --dev 2.Error:‘Link’ is n ...

  8. Storm分布式集群搭建

    一.storm版本 选用storm0.9.6 二.本地模式 用于对storm业务逻辑的调试和测试,可以直接在本地运行. 三.分布式模式 生产环境,需要对应的zookeeper.nimbus.super ...

  9. 08-求解Ax=b:可解性和解的结构

    一.增广矩阵 假设我们要求解方程$Ax=b$,其中矩阵$A$和$b$如下所示: $A = \left[\begin{array}{llll}{1} & {2} & {2} & ...

  10. Java的基本数据类型,以及他们的封装类

    基本类型  大小  默认值  封装类   boolean 1 false  Boolean  byte  1 0  Byte  char  2  \u0000(null)  Character  sh ...