您的位置:首页 > 数据库

ArcSDE数据库学习总结

2016-12-08 10:11 295 查看

ArcSDE数据库连接方法

http://www.cnblogs.com/xuanfengling/p/3521161.html

一、ArcCatalog中空间数据库连接方法:下面以基于Oracle 9i的ArcSDE数据库为例简要说明:

1、应用服务器连接(也称为ArcSDE连接、三级连接)

最常用的连接方式,默认情况下可读写,gsrvr进程由gimgr分配,在服务器端运行,要求

服务器端ArcSDE服务启动。

数据库 Oracle 9i 

Server <服务器名> 如:sdesvr 

Service 如:esri_sde 

Database (不填写) 

User Name <用户帐号> 如:st1 

Passworld <用户密码> 如:st1 

采用ArcSDE应用服务器连接,是不需要做任何定制的。你只要在service中填上你的ArcSDE例程的端口号便可以了,通常为5151。

还有一种办法,就是在客户端的机器的service文件中填上和服务器上ArcSDE例程一样的完整参数。

如:esri_sde 5151/tcp

一定要,回车结束。

2、直接连接(二级连接)

在默认情况下只读,gsrvr进程内嵌到客户端,不要求服务器端ArcSDE服务启动

数据库要求:安装Oracle 9客户端

Server [可以不填写]

建议:oracle_dircon 

Service Sderacle9i 

Database 不填写 

User Name <用户账号>如:st1 

Passworld <用户密码@服务名> 如:st1@sdei.class 

其中,password中的服务名是用户配置的连接数据服务器Oracle数据库服务名。

那么客户端机器肯定需要安装Oracle客户端!安装完成以后,配置网络服务名。用以直接连接参数准备

二、ArcCatalog中Add OLE DB Connection(可直接浏览到数据源中的空间数据存储表的明细):

选择Microsoft OLE DB provider for Oracle;转到连接标签中,在“1、输入服务器名称(E):”,填入<网络服务名>,如sdei.class;在“2、输入登陆数据库的信息:”中,在用户名称中键入<用户账号>,如st1,在用户密码中键入<用户密码>,如st1;将“允许保存密码”复选框勾上。测试连接。(选择Oracle Provider也可以

三.

一些在连接 安装中出现的问题及其解答:

问题1.

我的SDE服务配置和启动都很正常但从ArcCatalog连接Oracle服务器时出现以下提示:

Failed to connect to the specified server.This release of the GeoDatabase is either invalid or out of date.[Please run the ArcSDE setup utility using th -o upgrade option.?

解答:

ArcSDE和ArcGIS Desktop软件版本出现了问题了。

哦,你的ArcSDE软件是什么版本?Desktop呢?

偶这里试验过,高版本的桌面连接低版本的ArcSDE没有发现问题。

低版本的桌面不能够连接高版本的桌面。

========

ArcSDE数据库架构设计

http://blog.csdn.net/linghe301/article/details/6222299

不知道题目该怎么起名字,害怕这个名字被大家误解,这个文档其实就是想给一些初学者在使用不同数据库,怎么组织SDE库与用户数据库,怎么多个用户来操作同一个库,相互用户的权限如何来分配等等信息。

Oracle数据库

如果是Oracle数据库,在安装完ArcSDE软件,Post完毕之后,在数据库里面有一个SDE表空间和SDE用户,那么对用户的数据来说该怎么存储呢?

clip_image002

方式一:扩大SDE表空间的容量,直接将用户的数据导入到SDE用户或者新建一个用户但是默认表空间还是SDE表空间,反正数据都灌入到SDE表空间里面。

缺点:将用户的数据和SDE的相关结构表放在一块,显然层次不分明,用户也容易误操作SDE的相关结构表。

方式二:也就是推荐的方式,如上图所示,用户可以创建存储自己数据的表空间,然后用户也可以创建属于该表空间的一个或者多个用户,该用户赋予connect和resource权限即可,当用户使用ArcCatalog进行用户连接时,用户的数据会存储在用户自己的表空间中,但是相关的信息(用户数据的表名称、表的列名称、数据投影等信息)会自动注册到SDE表空间中,这些步骤不用用户来操作,通过ArcGIS产品的相关接口会在后台自动进行相关处理,对初学者来说,这个方式往往让他们比较想不通,总感觉我的数据应该在SDE表空间里面才能进行相关的注册,放到其他表空间里面就会自动注册或者还需要进行额外操作,这一点就多虑了,用户可以根据上面的解释进行试验。

那么针对一个表空间的多个用户来说,权限问题一方面可以使用Oracle的数据库方式,那里面有相关的权限,不过也可以使用ArcGIS的方式来赋予相关的权限。

clip_image004

该功能用户可以在ArcToolbox工具或者其他地方都可以找到,如果是数据的拥有者也就是使用哪个用户创建或者导入的数据,可以赋予其他用户读(select)或者写(Edit)的权限,使用这种方法也是可以进行权限的操作的。

SQL Server数据库

对Oracle数据库来说,大家使用的比较多,但是对SQL Server数据库来说,就有些问题需要注意了。可能习惯Oracle数据库的用户在使用SQL Server数据库时对数据组织也喜欢走Oracle的老路子,就是当用户安装完ArcSDE软件,Post完毕后,系统会创建一个SDE的数据库,和SDE的用户,那么用户可以向创建一个新库,然后创建新库的用户,也用Oracle的方式导入数据,数据在新库里面存储,数据信息在SDE库里面注册,这样做是可以的,但是Esri在ArcGIS9.3时就已经不推荐用户进行这样组织了,因为这样效率比较低,怎么个低法呢?不解释,用户知道就可以了。所以以上全部是废话。

clip_image006

看一下上面的图,对SQL Server数据库来说,如果用户是一个库的话,建议将用户数据和SDE放在一块儿,也就是直接导入到SDE库里面,如果用户是希望多个库分开存储,建议为每一个库都创建相关的SDE Schema,如下所示:

clip_image008

再进行创建库时,修改新的Database name,然后针对每一个Database name创建相应的ArcSDE服务,在进行数据连接时,连接哪个库,我们在Database 填上相应的名称即可。

那么再说说SQL Server的用户,SQL Server数据库默认有一个sa用户,这是操作系统级别的用户,也有SDE用户,这是第一次创建ArcSDE库创建的用户,sa用户的SDE用户都是凌驾于所有库之上的,这两个用户可以连接所有SDE的库,也就是PPT上图上所示。那么针对每一个库我们也可以创建针对这个库的用户。

下面说说怎么给SQL Server数据库创建多用户?

对 SQL Server创建用户来说,只需要安装向导来创建即可,但是我也接到用户的咨询,在创建完新用户之后,可以使用新用户进行连接,但是往新用户里面导入相关数据会出现如下的一个错误:

clip_image009

出现这个错误的原因是:在创建新用户的时候,我们不能使用SDE或者DBO的架构,要在SDE数据库下或者拥有SDE Schema的数据库下来创建该用户的架构,然后选择该架构即可。

clip_image011

如上图所示:我想在SDE数据库中再创建一个除Sde外的其他用户,比如aaa,那么我首先要创建一个aaa的架构。

clip_image013

然后创建的aaa用户所在架构修改为aaa的架构即可。

详细参考:http://blog.csdn.NET/linghe301/archive/2011/02/14/6183962.aspx

下面说明一下SQLServer导入数据的命名方式:数据库名.用户名.图层名,如下所示:

clip_image015

中间的名称为SDE,说明是SDE用户导入的,中间的名称为DBO,说明是Sa用户或者其他用户但是拥有sysadmin的权限,其他就是普通用户自己导入的。

QQ一群:              78773981

QQ二群:            225989940

Blog:               http://blog.csdn.Net/linghe301
Weibo:            http://www.weibo.com/linghe301

========

ArcGIS 10.1中的Desktop创建地理数据库ArcSDEForOracle

http://blog.itpub.net/13403090/viewspace-1114996

    ArcGIS从10.1以后,SDE这个产品的连接方式发生了很大的改变,刚刚安装好ArcMap的时候,打开原来用来建立SDE连接的节点,顿时傻眼了,

这东西怎么使啊?经过一顿找资料以后发现:原来以后的ArcSDE推荐都是采用直接连接的方式,那么我们先看看采用直连怎么连接SDE吧。

直接连接Oracle数据库

笔者使用Oracle数据库比较多,相信中国政府用户中使用Oracle的应该也是最多的,本例中采用Oracle 11g数据库作为试验数据库。

安装列表:

Oracle database 11g R2 64bit

Oracle Client 11g R2 64bit

ArcGIS for Desktop

这里有个问题需要说明一下:因为从10.1以后,访问SDE推荐采用直接连接数据库的形式,因此连接数据库也就选用了各自的数据库客户端进行访问管理,因此,Oracle Client是必须安装的。选用的版本根据装ArcGIS for Desktop的操作系统来定,比如笔者是在本机(Win7 64bit)安装Oracle和ArcGIS for Desktop那么就需要选用64位的客户端,如果Oracle安装在64位的服务器上,而需要进行数据连接的安装了Desktop的机器是32位的,那么就需要在访问机器上安装32位的客户端。

当然,细心的您一定发现了,这里有一个非常之重要的东西没有安装——ArcSDE for Oracle!!

这是因为采取直连的方式,我们并不需要SDE为我们建立表什么的,如果想要建立SDE数据库,我们直接用ArcMap里面的工具创建即可,因此采用直连方式连接数据库,并不需要安装ArcSDE!!!

在使用Desktop连接数据库之前,先测试数据库的访问是否正确:

使用Sys作为sysdba登陆成功,好了现在建立一个用来测试的TEST用户。

用户的基本情况如下:

可以看到这是一个空的没有任何对象在用户下面的干净用户,所有的权限就是连接数据库和创建数据库资源对象。

在ArcMap中双击那个让人无从下手的连接,填写连接属性如下:

其他选项都是没有什么技术含量的但是中间的Instance比较令人纠结,查找帮助中有这样的文档:ArcGISfor Desktop中的数据连接

本例中是本机,且服务名为orcl因此填写方式如上,其他情形下的Oracle连接,下图中的连接方式:

好了,测试一下我们的数据库:

双击后小叉没有了,表示连接成功!

在创建新的要素类的时候,对话框中只有SDO类型的数据存储方式

这是什么原因呢?回想一下刚才的安装过程好似比原来的SDE安装和连接少了东西,就是PostInstall,这是原本用来建立SDE要用的表的,但是我们的连接依然成功了,这是为什么呢?

在SDE10.1以后,ArcGIS连接关系型数据库的主要方式是直接连接了,直接连接数据库,利用数据库的用户权限管理,读取数据表,序列等等数据库原有的对象也是新特性,所以我们按照原来的方式建立的是一个对Oracle用户的直接连接访问!正是因为这样,我们新创建要素类的时候才只有SDO类型的。

值得一提的是,选择几何参考的界面允许查询了,免除了大家在各种参数中间奋力查找的麻烦。

点击完成,我们的点已经建立起来了。

但是,还有一个问题:这样建立的要素类可以编辑么?答案是否定的!原因很简单,因为这样的数据无法注册到地理数据库:

这样的数据我们只能采用提示的处理方式:导出成gdb或者shp再编辑后导入了。

创建地理数据库并直接连接

上面的连接方式让我们看到了现在ArcGIS的数据连接的灵活度,但是很多SDE原有的功能都受到限制,比如编辑和版本管理,那么我们接下来连接一个创建为地理数据库的用户,再设置它的连接吧。

地理数据库连接现在已经全部工具化了,他们都在系统工具中,我们要用到的创建地理数据库的工具,在Data Management tools->Geodababsase Administration->CreateEnterprise Geodatabase里面(如果点开的时候出错,请选择运行加载项)。

填写情况如下:

好了,创建成功!!

创建成功后,再采用SDE用户建立一个直接连接,方式与上面相同:

创建后我们就能够建立更多的内容了。

再试着建立一个线数据类,并注册到数据库,这样就可以开始编辑了!

利用服务连接SDE数据库

接下来,大家肯定有跟我一样的疑惑:是不是Esri已经抛弃了SDE的服务?是不是以后就不采用服务方式了呢?答案肯定是服务方式连接依然是我们支持的内容!

 操作步骤如下:

首先安装ArcSDE for Oracle 11g!我们关注一下,安装SDE的时候安装了哪些东西,分别有什么作用吧:

上图中,Application Server是用来在GIS应用和企业空间数据库之间传递空间数据的。也就是原来的SDE服务做的工作,而Command line tools从名字就知道是命令行工具,是通过命令行来管理ArcSDE服务的。

安装完成ArcSDE后,我们修改ArcSDE安装目录中services.sde文件和Windows中的services文件,分别增加“esri_sde 5151/tcp”记录,他们的格式是<服务名>  <服务端口>/<通讯类型>

Windows中的services文件位置为C:WindowsSystem32driversetcservices

ArcSDE中的services文件位置为ora11gexeetcservices

修改完毕后保存文件。

用命令行创建ArcSDE服务(详细命令解释请点击此处):

建立了SDE的服务,我们需要启动它,命令如下:

启动服务之后我们利用Catalog里面的工具Create ArcSDE Connection File:

建立连接文件后,即可在创建连接文件的位置直接点开这个SDE连接了!

========

图解ArcSDE空间数据库连接

http://jingyan.baidu.com/article/adc815137ea0e3f723bf73c5.html

ArcSDE的空间数据库连接分为两种:应用服务器连接和直接连接。

本篇经验分别向大家介绍使用这两种方式创建空间数据库连接。

应用服务器连接

1

应用服务器(Application Server)连接方式一种通用连接方式,我们使用ArcGIS的客户端应用程序ArcCatalog来建立连接。

2

打开ArcCatalog,选择Database Connection->Add Spatial Database Connection,双击打开添加连接对话框,如下图所示:

3

在Spatial Database Connection对话框中输入“Server”(服务器的计算机名)、“Service”(ArcSDE的服务名)、“Username”和“Password”等信息,点击“Test Connection”进行连接测试,如下图示所示:

4

程序提示测试成功信息,点击“确定”继续,如下图所示:

5

点击“OK”,建立连接,如下图所示:

6

为连接重新命名,使用”用户名@服务器@APP“的形式,例如:用户名为"ACTC"、服务器为“IBM61-QHD”,那么连接名为“ACTC@IBM61-QHD@APP”,至此,应用服务器连接创建完成,可以使用ArcSDE进行数据操作了,如下图所示:

END

直接连接

1

使用ArcGIS的客户端软件可以直接连接数据库,而不需要ArcSDE,因为ArcGIS客户端应用程序已经包含了ArcSDE的部分功能,所以我们使用ArcSDE的客户端应用程序ArcCatalog来建立连接。

2

打开ArcCatalog,选择Database Connection->Add Spatial Database Connection,双击打开添加连接对话框,如下图所示:

3

填写相关参数,Service填写“sde:oracle10g”,用户密码填写格式为“原密码@oracle网络服务名”,例如用户密码为“12345”、oracle网络服务名为“qhdgis”,那么密码应该填写“12345@qhdgis”,点击“Test Connection”进行连接测试,如下图所示:

4

程序提示测试成功信息,点击“确定”继续,如下图所示:

5

点击“OK”,建立连接,如下图所示:

6

为连接重新命名,使用“用户名@服务器@DIR”的形式,例如:用户名为"ACTC"、服务器为“IBM61-QHD”,那么连接名为“ACTC@IBM61-QHD@APP”,至此,应用服务器连接创建完成,可以使用ArcSDE进行数据操作了,如下图所示:

END

========

ArcGIS影像数据库的建立与入库

http://blog.csdn.net/shmiloy001/article/details/6292639

本文帮你解决以下疑问:影像数据是以怎样的方式保存在SDE等数据库中的,影像数据如何入库。

空间数据库技术

空间数据库技术用关系数据库管理系统(RDBMS)来管理空间数据,主要解决存储在关系数据库中的空间数据与应用程序之间的数据接口问题,即空间数据库引擎( Spatial Database Engine)。更确切地说,空间数据库技术是解决空间数据对象中几何属性在关系数据库中的存取问题,其主要任务是:

1)用关系数据库存储管理空间数据;

2)从数据库中读取空间数据,并转换为GIS应用程序能够接收和使用的格式;

3)将GIS应用程序中的空间数据导入数据库,交给关系数据库管理。因此空间数据库技术是空间数据进出关系数据库的通道。

建库目的

建立影像数据库的目的是将分幅分层生产的海量影像数据进行整理,使之符合统一的规范和标准;并对数据进行有效组织、管理,便于空间数据的查询、分发及其它应用。建库之后的数据是标准化、规范化的,采用统一的编码和统一的格式;数据是有效组织的,在平面方向,分幅的数据要组织成逻辑上无缝的一个整体,在垂直方向,各种数据通过一致的空间坐标定位能够相互叠加和套合;具有高效的空间数据查询、调度、漫游以及数据分发等功能,并且能够与其它系统无缝集成,为其它应用服务。从应用的角度讲,建立影像库的总体目标是能够管理多比例尺、多分辨率、多数据源的正射影像数据,能够作到在局域网或广域网上由全貌到细节、由整体到局部、由低分辨率到高分辨率快速、无缝的进行影像漫游、浏览和应用,支持图像数据集中式和分布式(局域网范围内分布式的存贮)的存贮与管理,为海量数据的应用提供一个高效的无缝平台。

建库原理

简而言之就是"两种方式,分层分块"。"两种方式"是指:栅格数据集(RasterDatset)和栅格目录(Raster Catalog)。它的存储和管理方式,这就是"分层分块"。在Personal Geodatabase中,栅格数据可以作为栅格目录表(Raster Catalog)或栅格数据集(Raster Dataset)来存储。栅格数据集表现为连续的单幅数据。而栅格目录表是多个栅格的集合。每种存储方式都有各自的优势和局限性,但也有一些规则是两种方式都要遵守的。

栅格目录表和栅格数据集都可以先创建成一个空的容器,然后再向其中加载数据,或者可以动态创建。创建和加载栅格目录表或栅格数据集可以用ArcToolbox中的数据管理工具。这些工具可以在ArcCatalog的用户界面中找到。

栅格数据集

简单的说,"栅格数据集"就是ArcGIS对栅格数据模型的抽象,其英文为RasterDataset,任何一种物理栅格文件(如Erdas Imagine文件、ArcGIS Ascii Grid文件,Tiff文件等)经过ArcGIS的栅格数据模型抽象在内存中都是以RasterDataset形式存在的,RasterDatset一般由至少一个波段的RasterBand组成,如简单的灰度图像就是由一个波段的数据组成,普通的彩色合成影像就由三个或者三个以上波段组成,其中多光谱由多个通道(我们又把RasterBand称为通道)。由于计算机显示器一般提供三个通道的显示信道,分别为R(红)、G(绿)、B(蓝),因此即使我们手头有一个多波段的影像数据,我们也只能同时显示其三个波段数据,如对于TM影像的5、4、3波段分别用红、绿、蓝进行显示。我们也可以这么理解栅格数据模型,
RasterDatset由多个波段组成,我们把波段理解为"层"的概念,那么这样每个RasterDatset就是由多个"层"叠加组合而成,每个层又是由具有行列属性的二维数组组成,为了将内部实现抽象起来,ArcGIS利用RasterBand类包装了这个二维数组,并且其提供了各种方法操作其内部二维数组。

栅格数据集比较适合带有标准坐标系的航片或卫片,当以这种方式导入影像文件的时候,SDE会将它们拼接(mosaic)成一张完整的大地图,但这种方式对各个图幅的要求就非常严格,要实现拼接必须满足几个条件:相邻图幅的相邻边不能有一丁点重叠错位;图幅必须带坐标系等等。但这种把图幅全拼起来的管理方式也有问题,就是如果将来要更新其中的某一小块区域的图像怎么办呢?比如纽约的影像图,世贸大厦被撞没了,其实只需要更新一下曼哈顿那一点地方的数据就可以了,可要是以Raster Map方式管理全纽约的影像地图的话那么就意味着要全部删掉原来的数据,再重新导入一遍全城的航片,几十个G,不是小数目,如果是1:10000的话估计纽约的影像数据量应该在300个G左右,怎么也得导几天才能导完吧。

栅格目录

"栅格目录"可以简单的理解为一种普通表格数据模型,其英文为RasterCatalog,"栅格目录"中的每条记录就是由"栅格数据集"和描述该"栅格数据集"的多种元数据信息组成。通过这种定义我们可以看出对于构建一个基础数据库,利用"栅格目录"管理分幅影像数据具有很大的优势,因为分幅影像数据经常具有很多元数据属性。"栅格目录"管理也为我们开发基础数据系统提供了很方便的入口。

栅格目录说白了就是个相册。可以把任何东西的照片都存进去,SDE只管存储和为它们维护一个目录,这一点可以从观察Raster Catalog对应的Oracle Spatial表看出来,感觉就像一个被肢解了的图片的集中营。如果用ESRI的桌面工具(比如ArcMap,ArcCatalog)来预览这个Raster Catalog的时候,你将看到一张经过拼接的美图!使用这种方式管理航片就没有前面Raster Map方式最后说的那种问题,比如世贸大厦没了,那么我们就重新在那里拍一张,再更新原来Raster Catalog中对应的那一个图幅就可以了,其它的则没必要去动。

"栅格数据集"与"栅格目录"

总之,对于"栅格数据集"和"栅格目录"其实就是ArcGIS 对于栅格数据抽象的一种内存模型,"栅格数据集"作为Geodatabase核心数据模型在基础库中一般存储地理背景数据,其要求是数据不经常变化(如经常更新背景数据就不适合利用RasterDataset进行存储);"栅格目录"一般用于管理具有属性信息的影像数据,如分幅数据或者同一地区多期数据,需要注意的是,同一个"栅格目录"必须具有相同的空间参考。

当创建栅格目录表时,必须设置XY域(所有输入栅格的空间范围的集合),而栅格数据集则不需要。和ArcGIS中所有其它数据集一样,我们强烈建议,要导入目录表或数据集的栅格数据一定要预先定义空间参考,地理坐标系统或投影坐标系统。而这种坐标系统不必要一定和目录表或数据集的坐标系统一致。

栅格数据集有一个空间参考,在拼接(Mosaic)的过程中,不同坐标系统中的像元会被动态投影到正确的位置上。而在栅格目录表中,每个栅格都会有自己的空间参考,它们和几何空间参考以及栅格列的空间参考都不一样,这些栅格只是在进行显示或分析的时候才会被动态投影。

影像金字塔

"分层"是指:影像金字塔(pyramid)索引。其基本思想就是利用采样自底向上生成金字塔,根据需求直接取其中某一级作为操作对象,以提高整体效率。当然就像这个世界中的其它事物一样,效率的提高是有代价的,这就是建塔带来的额外空间开销,建的级越多,越方便查询,当然数据冗余也越大。

如果为大的栅格影像建立了金字塔的话,这些影像便能快速进行显示。除了在屏幕上显示外,金字塔还包含了很多其他信息。如果没有金字塔,那么在显示时就要访问整理栅格数据集,然后进行大量计算来选择哪些栅格像元被显示。金字塔是一种能对栅格影像按逐级降低分辨率的拷贝方式存储的方法。通过选择一个与显示区域相似的分辨率,只需进行少量的查询和少量的计算,从而减少显示时间。

每次用ArcGIS打开一幅影像的时候,都会在状态栏中看到Creating pyramids,这时就是在构建影像的金子塔。现在的google map,visual earth,mapbar这些portal应用都采用的是把地图预先处理成影象金字塔,切块后做四叉树编码。在进行zoom,pan操作的时候动态调用那些maptile。这种架构省略掉了制图引擎这些对服务器性能消耗大的环节。

每一层影像金字塔都有其分辨率的,那么根据你当前操作,比如说放大(无论是拉框放大、还是固定比例放大)、缩小、漫游(此操作不涉及到影像分辨率的改变)计算出进行该操作后所需的影像分辨率及在当前视图范围内会显示的地理坐标范围,然后根据这个分辨率去和已经建好的影像金字塔分辨率匹配,哪层影像金字塔的分辨率最接近就用哪层的图像来显示,并且根据操作后当前视图应该显示的范围,来求取在该层影像金字塔上,应该对应取哪几块,然后取出来画上去就可以了。

按图块(block/tile)存储

"分块"是指每个图幅是按图块(block/tile)存储的,并使用格网索引。在将图幅存储于数据库中时,SDE不是傻乎乎的一行一行的存进去,而是将图幅划分成若干个大小相同的图块,每块大小不能超过16K,一般就取128×128。划分的顺序是从上到下,从左至右的,分块的好处在于可以减少磁盘I/O。但是哪有那么好的图幅,长宽都是128的整数倍?而事实上就几乎没有这么好的图幅,图幅的长和宽都除不开128的情况先,SDE的策略就是--补零。在图幅的右侧和下侧补上若干零元(RGB:000000),也就是黑点,这样处理过的图幅就可以进行划分了。

建库过程

当所有软硬件都准备齐全后(这里包括在ArcSDE软件的安装过程中已经创建好了SDE数据库文件)就可以建立影像数据库了。在企业级数据库中,栅格数据的存储结构包括分块、索引、建立影像金字塔,并且常常经过压缩处理。正是因为数据具有分块、索引以及金字塔结构等属性,每次对栅格数据进行查询时,只有满足查询范围和精度的数据块才会返回,而不是每次都返回整个数据集。压缩可以降低客户和服务器间的数据交换量,使存储大的无缝栅格数据集以及达到几个TB的栅格目录并使他们能够在客户端快速显示成为可能。

(1)数据准备

由于影像数据库对入库原始数据的要求比较严格,这也是保证影像数据库完整性的一部分,因此在入库之前应将原始影像整理放置,同时确保每个原始影像文件配有唯一一个正确的坐标文件存放在相同目录中,统计一下数据量以备后用。

(2)压缩方式

由于影像数据量巨大,为了减少存贮空间,提高显示效率, 在栅格数据存入地理数据库之前对其块的大小进行压缩。使用的压缩方式可以是有损的(JPEG和JPEG2000)或无损的(LZ77)。无损压缩意味着栅格数据集中像元的值不会被改变。压缩的量取决于像元数据的类型;影像越一致,压缩的比例越高。

对数据进行压缩最主要的好处是可以节省存储空间。另一个好处是从总体上提供了性能,因为降低了服务器和客户应用间交换的数据包。

因为以下原因,可以选择有损压缩:

如果栅格数据只是用作背景图像,而且无需对其进行分析。

数据加载和检索快捷

所需的存储空间小,因为压缩比例可以达到5:1或10:1(若选择JPEG2000可以获得更多的压缩比例,如10:1或20:1)

因为以下原因,可以选择无损压缩

栅格数据集是用来获取新的数据或用于视觉分析

需要的压缩比例在1:1和1:3之间

不打算保留原始数据

输入的数据已经被有损压缩过

即使不对栅格数据进行压缩,企业级地理数据库的存储能力也可以满足要求,但是,还是推荐进行栅格数据压缩。如果无法确定使用何种压缩方法,那就用默认的LZ77(无损压缩)。

(3)数据入库 

ArcSDE 管理影像方式主要有连续的栅格数据集和栅格目录两种。栅格目录具有每个栅格都是独立的,利于更新和数据库维护;可查询访问单个数据集,可以根据用户定义的属性在表中加入用户定义字段。因此,采用栅格目录Raster Catalog这种方式存储影像数据。

具体步骤如下:

1.成功连接数据库服务器后(连接过程前面有详细介绍),新建栅格目录。右键"new"--"Raster Catalog"。

2..在栅格目录中导入数据。右键"栅格目录"--"load"--"load data",导入栅格数据。

(4)建金字塔 

经过较长时间的大量数据入库后,利用ArcCatalog工具连接好数据库后选中影像数据库项,点击鼠标右键,选择"Build Pyramids"项后,系统就开始创建影像金字塔了。创建完金字塔后影像数据库就基本建立完成了,为了配合影像使用可以再向数据库中导入矢量数据,这样才能够形成具有真正意义的影像数据库。

创建金字塔时,一个降低分辨率的数据集(.rrd)文件将被创建。对于一个未经过压缩的栅格数据集,它产生的(.rrd)文件的大小近似于源栅格数据集的8%。用户不能为栅格目录创建金字塔,但可以对其中的每个栅格据集创建金字塔。

在 ArcCatalog 中创建金字塔(索引)

1.在Catalog树中右击栅格数据集。

2.单击Build Pyramids按钮。

3.如果还没有选中,则指向用户要创建金字塔的栅格数据集。

4.单击Ok。

为创建金字塔改变缺省设置

1. 单击Tools菜单,并单击 Options。

2. 单击Raster选项卡。

3..单击描述创建金字塔时的合适选项. 

========

资源

http://blog.csdn.net/linghe301/article/details/6214641

ArcSDE安装介绍
http://blog.csdn.net/linghe301/article/details/6602442
ArcSDE常见问题总结
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ArcGIS ArcSDE数据库