基于ArcEngine的影像数据管理系统研制

如果批处理,速度很慢,效率低。

详情如下:

分成很多小块的影像数据,要达到连续显示的效果,并导入ArcSDE for SQL Server中以方便管理。在ArcEngine的开发包中,提供两种实现方式:

1)        MosaicRaster类的append方法可用于将多个栅格数据镶嵌到一块,再利用该类的saveAs方法就把镶嵌到一块的栅格数据集保存到本地、个人Geodatabase或者ArcSDE中。这种方式的优点是实现容易、代码简洁;缺点是:如果要镶嵌的小块数据比较多,数据量比较大时,会比较慢,效率低,这是因为该方式是先将要镶嵌的所有栅格数据都读到内存镶嵌,然后再保存。这种方式适合数据量小的影像数据镶嵌入库。

2)        IRasterLoader接口同样可以实现栅格数据的镶嵌与入库,并且它有两个方法都可以达到目的。它的loadRasters方法用于多个影像一次镶嵌入库的情况,这个方法与第一种方式类似,也是把全部数据都读入内存同时进行镶嵌入库,故它也是适合数据量小的影像数据镶嵌入库;load方法适合单个影像的镶嵌入库,但如果循环使用就可以达到将一幅幅影像都镶嵌入库的目的,该方式的好处是一次只需要读入一幅影像,内存消耗少,速度快。

按照需求要把影像数据镶嵌入库,因为要进行处理的数据量比较大,故使用IRasterLoader接口的load方法循环实现,load方法要求必须有个已存在的IRasterDataset,这就要首先在ArcSDE中新建一个IRasterDataset,利用接口IRasterWorkspaceEx的createRasterDataset方法在ArcSDE数据库中建立一个新的栅格数据集。要注意其中几个参数的设置,ISpatialReferenceFactory3、ISpatialReference、IRasterDef接口空间参照设置,要注意与入库影像数据的空间参照一致,IRasterStorageDef接口的设置比较关键,该接口用来设置是否建立金字塔、用来建立金字塔的级别数、建立方法、压缩方式、分块大小等。值得注意的是在入库的时候最好先不要建立金字塔,这样会大大的加快入库的速度,待入库完成后再一次建立金字塔。因为建金字塔是比较耗时间的,每入一幅影像都建立金字塔,处理起来会非常的慢。rstPixelType用来设置像素的类型,设置时要保持原始影像的精度。

在新建栅格数据集后,用IRasterLoader接口的load方法继续追加影像数据,并镶嵌为一个整体,在SDE数据库中保存。当需要更新某一个范围的数据时,只要重复以上方法将新数据追加到需要更新的栅格数据集上,就实现了影像数据的更新。

http://www.cnblogs.com/curtful/category/281739.html

基于ArcEngine的影像数据管理系统研制的更多相关文章

  1. easyconf——基于AugularJS的配置管理系统开发框架

    目录 1 easyconf的诞生2 easyconf的设计理念 2.1 总体设计 2.2 细节设计 2.2.1 CRUD操作 2.2.2 即时校验 2.2.3 下拉框设计3 easyconf使用指南 ...

  2. 【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自己定义工作流)

    基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自己定义工作流) 课程讲师:张弘 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring  ...

  3. 基于SSH实现员工管理系统之框架整合篇

    本篇文章来源于:https://blog.csdn.net/zhang_ling_yun/article/details/77803178 以下内容来自慕课网的课程:基于SSH实现员工管理系统之框架整 ...

  4. 原创:XXX公司-基于SAP的库存管理系统解决方案

    XXX公司-基于SAP的库存管理系统 解决方案 版本:V0.3.0 Excel_Cortan 文件状态: [ ] 草稿 [ ] 正式发布 [√] 正在修改 文件标识:   当前版本: V0.3 作 者 ...

  5. 基于UML的毕业设计管理系统的分析与设计

    基于UML的毕业设计管理系统的分析与设计 <本段与标题无关,自行略过 最近各种忙,天气不错,导师心情不错:“我们要写一个关于UML的专著”,一句话:“一个完整的系统贯穿整个UML的知识”:我:“ ...

  6. 11 基于django的图书管理系统 多表

    1.需求 作业需求:1.列出图书列表.出版社列表.作者列表2.点击作者,会列出其出版的图书列表3.点击出版社,会列出旗下图书列表4.可以创建.修改.删除 图书.作者.出版社 踩分点:1.满足需求1,2 ...

  7. 基于S2SH开发病房管理系统的设计与实现 源码

    基于S2SH开发病房管理系统的设计与实现: 开发环境: Windows操作系统 开发工具:Eclipse/MyEclipse+Jdk+Tomcat+MySQL数据库 运行效果图:       此源码经 ...

  8. 基于Web的实验室管理系统技术简要报告

    基于Web的实验室管理系统技术简要报告 Copyright 朱向洋 Sunsea ALL Right Reserved 一.网站架构 该网站使用C#语言,利用SQL Server2008数据库,采用V ...

  9. 基于SSM的健身房管理系统

    基于SSM的健身房管理系统 The project was made in 2020-05-05~2020-05-10 谨以此片博文记录下我的第一个Java小Demo 项目展示 用户登录页 用户注册页 ...

随机推荐

  1. JSP 最佳实践: 用 jsp:include 控制动态内容

    在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页脚和导航组件之类的静态内容包含到 Web 页面中.和服务器端包含一样,JSP include  ...

  2. grep 和 perl多个条件匹配

    grep和perl多个条件匹配使用‘|’作为分割符号 grep -E 'abc|def' perl if(/abc|def/)

  3. Android Permissions管理之用户拒绝授权

    Android Permissions管理之用户拒绝授权,在Marshmallow之前的安卓版本,应用的权限只需要注册一下,应用就会获取到,在Marshmallow之后,为了安全,全新的权限模型出现, ...

  4. MUD教程--巫师入门教程3

    1. 指令格式为:edit <档名>,只加文件名,默认为当前目录,加here,表示编辑你当前所处的房间, 回车后即进入线上编辑系统. 2. 如果这是一个已经有的档案,你可以使用 z 或 Z ...

  5. 分支-03. 三天打鱼两天晒网-B3

    /*B3-分支-03. 三天打鱼两天晒网 *Main.c *测试通过 */ #include <stdio.h> #include <stdlib.h> int main() ...

  6. TensorFlow 深度学习笔记 Logistic Classification

    Logistic Classification Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地 ...

  7. MYSQL 二进制还原

    解决方法: mysqlbinlog bin_log_file_path_and_name | mysql -uroot -p 如: mysqlbinlog E:\DB\mysql_log\mysql_ ...

  8. 适应多行长文本的Android TextView

    适应多行长文本的Android TextView

  9. Codeforces 306B

    #include <cstdio> #include <algorithm> #include <cstring> #include <cstdlib> ...

  10. nodejs递归创建目录,同步和异步方法

    nodejs递归创建目录,同步和异步方法.在官方API中只提供了最基本的方法,只能创建单级目录,如果要创建一个多级的目录(./aaa/bbb/ccc)就只能一级一级的创建,感觉不是很方便,因此简单写了 ...