基于ArcEngine的影像数据管理系统研制
基于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的影像数据管理系统研制的更多相关文章
- easyconf——基于AugularJS的配置管理系统开发框架
目录 1 easyconf的诞生2 easyconf的设计理念 2.1 总体设计 2.2 细节设计 2.2.1 CRUD操作 2.2.2 即时校验 2.2.3 下拉框设计3 easyconf使用指南 ...
- 【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自己定义工作流)
基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自己定义工作流) 课程讲师:张弘 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring ...
- 基于SSH实现员工管理系统之框架整合篇
本篇文章来源于:https://blog.csdn.net/zhang_ling_yun/article/details/77803178 以下内容来自慕课网的课程:基于SSH实现员工管理系统之框架整 ...
- 原创:XXX公司-基于SAP的库存管理系统解决方案
XXX公司-基于SAP的库存管理系统 解决方案 版本:V0.3.0 Excel_Cortan 文件状态: [ ] 草稿 [ ] 正式发布 [√] 正在修改 文件标识: 当前版本: V0.3 作 者 ...
- 基于UML的毕业设计管理系统的分析与设计
基于UML的毕业设计管理系统的分析与设计 <本段与标题无关,自行略过 最近各种忙,天气不错,导师心情不错:“我们要写一个关于UML的专著”,一句话:“一个完整的系统贯穿整个UML的知识”:我:“ ...
- 11 基于django的图书管理系统 多表
1.需求 作业需求:1.列出图书列表.出版社列表.作者列表2.点击作者,会列出其出版的图书列表3.点击出版社,会列出旗下图书列表4.可以创建.修改.删除 图书.作者.出版社 踩分点:1.满足需求1,2 ...
- 基于S2SH开发病房管理系统的设计与实现 源码
基于S2SH开发病房管理系统的设计与实现: 开发环境: Windows操作系统 开发工具:Eclipse/MyEclipse+Jdk+Tomcat+MySQL数据库 运行效果图: 此源码经 ...
- 基于Web的实验室管理系统技术简要报告
基于Web的实验室管理系统技术简要报告 Copyright 朱向洋 Sunsea ALL Right Reserved 一.网站架构 该网站使用C#语言,利用SQL Server2008数据库,采用V ...
- 基于SSM的健身房管理系统
基于SSM的健身房管理系统 The project was made in 2020-05-05~2020-05-10 谨以此片博文记录下我的第一个Java小Demo 项目展示 用户登录页 用户注册页 ...
随机推荐
- winow.open打开窗口被拦截的解决方法
自己遇到的使用window.open打开新窗口被拦截的几种情况(使用的chrome浏览器,其他浏览器未测): 第一次:window.open("www.baidu.com"),打开 ...
- Spark Streaming 实现读取Kafka 生产数据
在kafka 目录下执行生产消息命令: ./kafka-console-producer --broker-list nodexx:9092 --topic 201609 在spark bin 目 ...
- int指令(软件中断指令)
INT(软件中断指令)是CALL指令的一种特殊形式.call指令调用调用的子程序是用户程序的一部分,而INT指令调用的操作系统提供的子程序或者其他特殊的子程序. 中断服务子程序和标准过程的最大区别是 ...
- juce中的timer
juce中timer总体说还是比较好用的,使用时只需继承timer类, 重写callback然后调用start就可以了,juce的timer比较特别,自己通过线程实现,starttimer的时候会创建 ...
- MySql的like语句中的通配符:百分号、下划线和escape 的使用
MySql的like语句中的通配符:百分号.下划线和escape %代表任意多个字符 select * from user where username like '%huxiao'; select ...
- Bootstrap之Button.js
查看Button.js的源代码 +function ($) { 'use strict'; // BUTTON PUBLIC CLASS DEFINITION // ================= ...
- EOFError:EOF when reading a line
Sublime2编译Python程序EOFError:EOF when reading a line: 是因为Sublime2对于python中运行含有input或者raw_input的python代 ...
- text-overflow: ellipsis;省略号颜色设置
参考stackoverfolow 想要给元素添加text-overflow: ellipsis;样式,必须保证改其父元素是块级元素,如果其是行级元素,可以通过设置display:block;或者dis ...
- 关于 java.io.IOException: open failed: EACCES (Permission denied)
今天解决了一个问题,不得不来和大家分享.就是关于 java.io.IOException: open failed: EACCES (Permission denied)的问题,网上也有很多人把这个问 ...
- laravel5.1框架简介及安装
最近自己出来实习了,进入了一个新的环境,不仅是生活中,在代码和架构中也完全是一个新的架构.由于公司使用laravel5.1框架,所以最近学习了laravel5.1框架,好了接下来就简单介绍一下lara ...