最近在修改项目时发现有些提取的坡度数据在参与了下一步计算后会出错,仔细跟了代码之后发现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. [Web 前端] 018 css 清除浮动的四种方法

    清除浮动的四种方法 加 clear: ...(见例1) 父级上增加属性 overflow:hidden(见例2.1) 在最后一个子元素的后面加一个空的 div,给它一个样式属性 clear: both ...

  2. CentOS7 iptables安装及操作

    添加规则时的考量点: (1)要实现哪种功能:判断添加在哪张表上: (2)报文流经的路径:判断添加在哪个链上: 链上规则的次序: (1)同类规则(访问同一应用),匹配范围小的放上面: (2)不同类规则( ...

  3. HDU 6697 Closest Pair of Segments(线段距离)

    首先最容易想到的就是N2暴力枚举所有线段去找最小值,但是这样会做了许多无用功.我们可以先对线段排序,使得线段最左侧的端点按照x轴y轴排序,然后我们可以限定在这个线段的矩形框内的所有线段才有可能产生最小 ...

  4. ES6判断当前页面是否微信浏览器中打开

    1.使用jq判断是否用微信浏览器打开页面 var is_weixin = (function(){return navigator.userAgent.toLowerCase().indexOf('m ...

  5. poj 2248 Addition Chains (迭代加深搜索)

    [题目描述] An addition chain for n is an integer sequence with the following four properties: a0 = 1 am ...

  6. -webkit-overflow-scrolling:touch介绍和碰到的坑

    1.作用 可控制元素在移动设备有滚动回弹效果,可惯性滚动 2.适应场景 在ios移动端上,设置容器overflow-y:scroll;使容器内元素滚动时,滑动会很卡顿,使用-webkit-overfl ...

  7. js中对象的属性名和属性值

    代码 /** * 对象的属性名 * - 对象的属性名不强制遵循标识符的命名规范,可以是任意的名字,但在开发中 * 尽量遵循标识符的命名规范 */ // 创建对象obj1 var obj1 = new ...

  8. #1062 - Duplicate entry '0' for key 'PRIMARY'—— mysql的小问题

    问题:# 1062 -重复输入“0”. 原因:我估计可能是数据表中主键这一栏已经有一个为“0”了,一般出现这种问题是以int类型的字段在输入时没有输如数据,而int类型默认值为“0”,而你之前第一条数 ...

  9. 【记录】解决windows中nginx明明退出了,为什么还能反向代理?CMD强制杀死进程命令

    博主今天遇到一个很奇怪的问题,nginx在windows中明明已经退出了,而且在任务管理器中也没发现nginx进程, 为什么还能反向代理呢? 找了半天资料终于解决,现记录如下,希望能帮助到你. 步骤一 ...

  10. JSP学习(2)

    JSP学习(2) JSP简介 Java Server Page,其根本是一个简单Servlet设计. 常用的动态网站开发技术 JSP:安全性高,适合开发大型的,企业级或分布式的Web应用程序. Asp ...