精华内容
下载资源
问答
  • PIE SDK波谱运算

    2018-12-21 17:42:00
    1.算法功能简介 波谱运算(Spectral Math)是种灵活波谱... 如图1为波谱运算的简单示意图——求三波谱曲线和。在表达式s1+s2+s3中(波谱运算变量是以s开头),可以分别给s1、s2、s3指定为条波谱曲线...

     

    1.算法功能简介

        波谱运算(Spectral Math)是一种灵活的波谱处理工具,可以用数学表达式或IDL程序对波谱曲线(以及选择的多波段图像)进行处理。波谱曲线可以来自一幅多波段图像的Z剖面、波谱库或ASCII文件。

        如图1为波谱运算的简单示意图——求三个波谱曲线的和。在表达式s1+s2+s3中(波谱运算中的变量是以s开头),可以分别给s1、s2、s3指定为一条波谱曲线,得到的结果是一条波谱曲线(x值与s1、s2、s3一样,y值是三者之和);也可以s1是一个多波段图像文件(其实是每个像素点的Z-剖面),s2和s3分别是两条波谱曲线,得到的结果是一个与输入的多波段图像一样波段数和行列数的图像。

     

    图1波谱运算示意图

        PIE SDK支持算法功能的执行,下面对波谱运算算法功能进行介绍。

    2.算法功能实现说明

    2.1.  实现步骤

    第一步

    算法参数设置

    第二步

    算法执行

    第三步

    结果显示

    2.2. 算法参数

    C#算法名称

    PIE.CommonAlgo. BandSpecAlgo

    参数结构体

    BandOper_Exchange_Info

    参数说明

    StrExp

    String

    波段运算公式,如"(b4-b3)/(b4+b3)";

    SelectFileBands

    IList<Int>

    选中的图像对应的波段band编号(是波段编号而非波段索引),根据波段运算公式的波段大小先后顺序b3、b4确定顺序。new List<int> {3, 4}

    SelectFileNames

    IList<String>

    选中的图像对应的文件file名称,根据波段运算公式的波段大小先后顺序b3、b4确定顺序。new List<String> {b3对应文件路径, b4对应文件路径}

    OutputFilePath

    String

    输出文件路径

    FileTypeCode

    String

    根据输出类型获得文件编码类型

    .tif/.tiff——GTiff

    .img—————HFA

    其他—————ENVI

    FuncName

    String

    C#算法名称

    2.3. 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/10.算法调用/多功能工具/  FundamentalToolDemo.BandSpecDemo 

    数据路径

    百度云盘地址下/ PIE示例数据/栅格数据/04.World/World.tif

    视频路径

    百度云盘地址下/PIE视频教程/10.算法调用/多功能工具/波谱运算算法.avi

    示例代码

     1          /// <summary>
     2         ///波谱运算算法测试,本算法实现了将World.tif文件的全部波段(称为一个光谱文件)生成World4.tif文件
     3         /// </summary>
     4         private void Test_KrigingInterpolationAlgo()
     5         {
     6             #region 1、参数设置
     7             PIE.CommonAlgo.BandOper_Exchange_Info info = new PIE.CommonAlgo.BandOper_Exchange_Info();
     8             info.StrExp = "s1";
     9             info.SelectFileBands = new List<int> { 1 };
    10             info.SelectFileNames = new List<string> { @"D:\Data\World.tif", @"D:\Data\World.tif" };
    11             info.OutputFilePath = @"D:\Data\World4.tif";
    12             info.FileTypeCode = "GTiff";
    13 
    14             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.BandSpecAlgo");
    15             if (algo == null) return;
    16 #endregion
    17 
    18             //2、算法执行
    19             PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
    20             algo.Name = "波谱运算";
    21             algo.Params = info;            PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);           
    22             //3、结果显示
    23 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\World4.tif");
    24             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);          m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);                      
    25                     }
    View Code

    2.4. 示例截图

     

    转载于:https://www.cnblogs.com/PIESat/p/10157179.html

    展开全文
  • 程序是如何运行

    2020-02-11 17:14:47
    为了解具体过程,我们不妨先来看一下程序从硬盘到CPU过程示意图运算单元:是CPU大脑,负责加减乘除、比较、位移等运算工作,每种运算都有对应电路支持,速度很快。 寄存器(Register):是CPU内部非常小...

    对于CPU来说,内存是一个存放指令和数据的地方,并不能在内存中完成计算功能,例如要计算 a = b + c,必须将 a、b、c 都读取到CPU内部才能进行加法运算。为了解具体的过程,我们不妨先来看一下程序从硬盘到CPU的过程示意图。
    在这里插入图片描述
    运算单元:是CPU的大脑,负责加减乘除、比较、位移等运算工作,每种运算都有对应的电路支持,速度很快。

    寄存器(Register):是CPU内部非常小、非常快速的存储部件,它的容量很有限,对于32位的CPU,每个寄存器一般能存储32位(4个字节)的数据,对于64位的CPU,每个寄存器一般能存储64位(8个字节)的数据。嵌入式系统功能单一,寄存器数量较少。

    寄存器在程序的执行过程中至关重要,不可或缺,它们可以用来完成数学运算、控制循环次数、控制程序的执行流程、标记CPU运行状态等。

    那么,在CPU内部为什么又要设置缓存呢?虽然内存的读取速度已经很快了,但是和CPU比起来,还是有很大差距的,不是一个数量级的,如果每次都从内存中读取数据,会严重拖慢CPU的运行速度,CPU经常处于等待状态,无事可做。在CPU内部设置一个缓存,可以将使用频繁的数据暂时读取到缓存,需要同一地址上的数据时,就不用大老远地再去访问内存,直接从缓存中读取即可。

    内存是为了解决硬盘速度慢,CPU中的缓存是为了解决内存速度慢

    缓存的容量是有限的,CPU只能从缓存中读取到部分数据,对于使用不是很频繁的数据,会绕过缓存,直接到内存中读取。所以不是每次都能从缓存中得到数据,这就是缓存的命中率,能够从缓存中读取就命中,否则就没命中。

    这里说明了CPU的简单构造,重点是让大家认识程序在运行中整个加载与执行过程。
    作者:没我找不到电子书
    链接:https://www.jianshu.com/p/f42ad2f9af73
    来源:简书
    侵权联系删除

    展开全文
  • 先把服务端项目完整结构示意图展示出来: 1、创建提供webservice服务服务接口 创建一个Web项目,并创建一个提供WebService服务服务接口 该接口提供服务:加法运算和乘法运算 2、创建提供webservice服务...

    一、服务端

    创建一个普通的web项目:JaxWS_ri_calculator_server
    先把服务端项目完成之后完整的结构示意图展示出来,方便你们做参考:
    

    在这里插入图片描述

    1、创建提供webservice服务的服务接口

    创建一个Web项目,并创建一个提供WebService服务的服务接口
    该接口提供的服务:加法运算和乘法运算
    

    服务接口

    2、创建提供webservice服务的服务接口的实现类

    创建提供WebService服务的服务接口实现类
    

    服务接口实现类

    3、将JAX-WS RI组件lib目录下的jar包导入工程

    使用JAX-WS RI组件来发布webservice服务到服务器上
    需要用到JAX-WS RI组件的相应jar包(我是用的是 jaxws-ri-2.3.2 )
    为了缺包找不到类的情况出现,所以把所有jar包都导入。
    

    找到lib目录
    在这里插入图片描述

    4、配置sun-jaxws.xml文件

    关于该文件中的配置:从*JAX-WS RI组件*安装目录下的 *docs目录* 中找到sun-jaxws.xsd文件,将其中的部分配置复制出来即可。
    

    先找到sun-jaxws.xsd文件:
    在这里插入图片描述

    再复制如下代码:
    在这里插入图片描述

    最后,手动在工程的/WEB-INF目录下创建sun-jaxws.xml配置文件并进行配置,如下:
    在这里插入图片描述

    5、配置web.xml

    使用JAX-WS RI组件,需要配置一个监听器:WSServletContextListener
    当客户端访问webservice服务的时候,该监听器就会监听到,并找到同样配置在web.xml中的WSServlet,交给它来找寻webservice服务。
    

    在这里插入图片描述

    6、部署到tomcat服务器并访问服务

    将我们的项目添加到tomcat服务器中(跟其他项目一样的添加方式),并启动服务器。
    打开浏览器,地址栏输入访问wsdl文件的路径:http://localhost:8080/JaxWS_ri_calculator_server/calculatorService?wsdl
    
    • wsdl路径简介:
    • localhost :使用tomcat服务器部署,只能在本地自己测试,所以是localhost,也可以是127.0.0.1
    • 8080 : 端口号
    • JaxWS_ri_calcalator_server :项目名
    • calculatorService : 配置文件配置的提供webservice服务的服务接口实现类
    • wsdl : 请求参数,表示访问该webservice服务的wsdl文件

    出现如下页面,即表示部署成功:
    在这里插入图片描述

    二、客户端

    创建一个普通的java项目:JaxWS_ri_calculator_client
    先把客户端项目完成之后完整的结构示意图展示出来,方便你们参考:
    

    在这里插入图片描述

    1、获取服务端文件

    你如果接触过最简单的webservice程序,你就会会知道,模拟一个客户端去调用服务端的服务,需要知道的参数有:
    wsdl文件路径
    提供webservice服务的服务接口源文件(.java)
    服务接口实现类中@WebService注解上targetNamespace属性的值(wsdl文件中可以得知)
    服务接口实现类中@WebService注解上serviceName属性的值(wsdl文件中可以得知)
    因此,获取起来相对麻烦。
    
    而JDK1.6自带了wsimport.exe工具,就是专门为了方便客户端获取服务端文件以及调用webservice服务的。
    该工具位于JDK安装目录的lib目录下。
    
    使用方法:
    进入命令提示符界面
    切换到JDK安装路径的lib目录下
    输入wsimport, 回车,就可以看到该工具的参数,根据需要选择,通常是 -keep 表示保存文件  -s 保留源文件
    
    格式:wsimport -keep -s 保留源文件的路径  wsdl文件路径
    

    命令提示符界面如下:
    在这里插入图片描述

    由图可知,我设置了将生成的.java源文件放在D:/haha/jax_ws_ri目录中,查看之后文件如下:
    在这里插入图片描述
    在这里插入图片描述

    2、将生成的文件加入我们的工程

    在工程中,按照生成的包路径创建包(为了防止包路径提示错误),然后将生成的文件加入到工程中,如下:
    

    在这里插入图片描述

    3、创建调用服务的客户端程序

    创建一个client.java来模拟客户端,然后调用webservice服务
    

    在这里插入图片描述

    4、结果显示
    在这里插入图片描述

    展开全文
  • 冯诺依曼体系 ...【图 早期冯诺依曼机结构示意图】 CPU = 运算器 + 控制器 即存储器和CPU分离,导致了一个问题,称为冯诺依曼瓶颈:CPU和存储器速率之间问题无法调和。这会导致CPU经常空转等待数

    冯诺依曼体系

    将程序指令和数据一起存储的计算机设计概念结构
    必须有一个存储器、控制器和运算器、输入设备、输出设备
    现代计算机都是冯诺依曼机

    能够把需要的程序和数据送至计算机中
    能够长期记忆程序、数据、中间结果及最终运算结果的能力
    能够具备算数、逻辑运算和数据传送等数据加工处理的能力
    能够按照要求将处理结果输出给用户

    早期冯诺依曼机的示意图
    【图 早期冯诺依曼机的结构示意图】
    CPU = 运算器 + 控制器
    即存储器和CPU分离,导致了一个问题,称为冯诺依曼瓶颈:CPU和存储器速率之间的问题无法调和。这会导致CPU经常空转等待数据传输。

    现代计算机的结构

    现代计算机在冯诺依曼体系结构的基础上进行了修改
    解决了CPU与存储设备之间的性能差异问题
    现代计算机的结构
    【图 现代计算机的结构】
    CPU = 运算器 + 控制器 + 存储器(主要是内存和CPU的寄存器)

    解释程序和编译程序

    解释程序
    所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。

    编译程序
    这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。 编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。

    值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。

    在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间。

    计算机的层次和编程语言

    在这里插入图片描述
    硬件逻辑层
    门电路、触发器等逻辑电路组成,属于电子工程的领域。

    微程序机器层
    编程语言是微指令集,微指令所组成的微程序直接交由硬件执行。

    传统机器层
    编程语言是CPU指令集(机器指令),编程语言和硬件是直接相关的,不同架构的CPU使用不同的CPU指令集。
    一条CPU指令(机器指令)对应一个微程序,一个微程序对应一组微指令。

    操作系统层
    向上提供了简易的操作界面,向下对接了指令系统,管理硬件资源。操作系统是在软件和硬件之间的适配层。

    汇编语言层
    编程的语言是汇编语言,汇编语言可以翻译成可直接执行的机器语言。汇编器是将汇编语言翻译为机器语言的程序。

    高级语言层
    高级语言层的编程语言为广大程序员所接受的高级语言,高级语言的种类达上百种,常见的高级语言有Python、Java、C/C++、Golang等。

    应用层
    满足计算机针对某种用途而专门设计。

    分层的目的是为了便于理解,而分层并不是固定的。

    计算机的计算单位

    容量单位
    在物理层面,高低电平记录信息,理论上只认识0/1两种状态。0/1称为bit(比特位)。但0/1能够表示的内容太少了,需要更大的容量表示方法。
    字节:1 Byte = 8 bits
    千字节:1 KB = 1024 B(寄存器)
    兆字节:1 MB = 1024 KB(高速缓存)
    吉字节:1 GB = 1024 MB(内存/硬盘)
    太字节:1 TB = 1024 GB(硬盘)
    拍字节:1 PB = 1024 TB(云硬盘)
    艾字节:1 EB = 1024 PB(数据仓库)

    为什么网上买的移动硬盘500G,格式化之后就只剩465G了?因为硬盘商一般用10进制标记容量。

    速度单位

    网络速度:如100M即100Mbps
    为什么电信拉的100M光线,测试峰值速度只有12M每秒?因为网络常用单位为Mbps。

    CPU速度
    CPU的速度一般体现为CPU的时钟频率,CPU的时钟频率的单位一般是赫兹(Hz),主流CPU的时钟频率都在2GHz以上。Hz并不是描述计算机领域所专有的单位。
    2GHZ = 2 × (103)3 = 每秒20亿次

    计算机的字符与编码集

    ASCII码和Extended ASCII码
    ASCII码用7bit即可表示,但后来对其进行了扩充,用8bit表示,就有了Extended ASCII码。

    中文编码集
    GB2312 即 《信息交换用汉字编码字符集——基本集》,一共收录了7445个字符,包括6763个汉字和682个其它符号。
    GBK 即 《汉字内码扩展规范》 ,向下兼容GB2312,向上支持ISO标准,收录了21003个汉字,支持全部中日韩汉字。
    Unicode:统一码、万国码、单一码,Unicode定义了世界通用的符号集,UTF-*实现了编码,UTF-8以字节为单位对Unicode进行编码。编程推荐使用UTF-8编码,Windows系统默认使用GBK编码。

    展开全文
  • 教材学习内容总结 ...栈的示意图 栈的基本运算 (1)InitStack(S) 构造一个空栈S。 (2)StackEmpty(S) 判栈空。若S为空栈,则返回TRUE,否则返回FALSE。 (3)StackFull(S) 判栈满...
  • 【算法导论】链表队列

    千次阅读 2013-12-06 17:52:50
    链表队列很简单,之前看到过,没有用程序实现。其原理就是遵循FIFO原则...和单链表一样,为了运算方便,我们也在队头节点前附加一个头结点,且头指针指向头结点。其链表队列的示意图如下: 下面是具体的程序实现: #i
  • 在写程序或研究任何指令之前,必须了解微处理器内部配置 8086寄存器组分成8通用...寄存器示意图如下:、通用寄存器1、数据寄存器 AX 称为累加器,使用频率最高,用于算术、逻辑运算以及与外设传递信息等。 B
  • 本文记录了笔者一个Java程序,基于Java抽象窗口工具(abstract window toolkit , AWT)和Swing(Swing属于Java Foundation Classes一部分)实现建议计算器,由于笔者经验有限,初学Java,代码略带bug,无法...
  • 1、MapReduce核心思想的示意图 步骤: 1)分布式的运算程序往往需要分成至少2个阶段。 2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。 3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖...
  • 函数结构体具有很好封装作用,但是一旦堆栈过深,就会陷入陷阱,总结一下最近遇到的一个问题。我现在是基于vb.net结合AutoCAD绘制出矿井立体示意图,由于需要计算出双线条数据。因此需要从已知单线条数据向双线条...
  • 二、实验要求:编写两个程序,分别调用下列两函数测试它们在不同计算规模时运行时间并验证其时间复杂度,并画出计算时间相对于计算规模函数曲线示意图。(1) 在三重循环下基本加法运算的计算时间与计算...
  • 1.3 第一个Java程序:永远“Hello World !” 11 1.4 第一个程序解释 12 1.5 CLASSPATH 14 本章小结 15 课后习题 16 第2章 程序基本概念 17 2.1 Java注释 17 2.2 标识符与关键字 19 2.3 数据类型划分 20...
  • Matlab基础(笔记)

    2020-06-19 15:39:53
    它将矩阵运算、数值分析、图形处理、编程技术等集成一体,为广大科研人员提供了一个强大分析、计算、程序设计与仿真工具,是科学计算最佳平台。 2、特性 口强大计算功能 口编程语言简单、内涵丰富 口强大2D...
  • Hadoop简介(分布式系统基础架构)

    千次阅读 2015-08-21 09:47:13
    Hadoop示意图 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节情况下,开发分布式程序。充分利用集群威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop ...
  • Hadoop

    千次阅读 2013-03-04 22:06:59
    Hadoop示意图 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节情况下,开发分布式程序。充分利用集群威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop ...
  • 本课程针对上述问题进行了改进 (1) 授课方式采用语法讲解+内存布局示意图+项目方式,让课程生动有趣好理解 (2) 系统全面讲解了C语言核心技术点,还配套录制了《全国计算机二级C语言真题精讲》,让学员在掌握...
  • Hadoop介绍

    千次阅读 2011-12-05 12:11:00
    Hadoop示意图 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节情况下,开发分布式程序。充分利用集群威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop ...
  • Hadoop(百科介绍)

    2012-04-24 14:03:23
    Hadoop示意图 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节情况下,开发分布式程序。充分利用集群威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop ...
  • Hadoop简介

    千次阅读 2012-09-04 09:36:38
    Hadoop示意图 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节情况下,开发分布式程序。充分利用集群威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop ...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

一个运算程序的示意图