The Interactive Data Language

Slides:



Advertisements
Similar presentations
作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
Advertisements

第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
統 計 程 式 語 言.
Dr. Baokun Li 经济实验教学中心 商务数据挖掘中心
第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
操作系统结构.
第4章 VHDL设计初步.
第五章 信息系统开发能力培养.
Oracle数据库 Oracle 子程序.
程設一.
關聯式資料庫.
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
第一章 C语言概述.
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
Basis基本操作、使用者 管理與權限設定
簡易 Visual Studio 2010 C++ 使用手冊
資料庫安全 (Database Security)
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
彰化縣政府補助辦理網頁設計資料庫應用班 資料庫簡介 建國技術學院資管系 饒瑞佶.
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
中国散裂中子源小角谱仪 的实验数据格式与处理算法 报告人:张晟恺 中国科学院高能物理研究所 SCE 年8月18日
Transact-SQL 語言設計教學.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
Matlab M檔案 方煒 台大生機系.
課務組 Curriculum Section
SQL Server 2000 数据库入门.
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
課程名稱:資料庫系統 授課老師:李春雄 博士
创建型设计模式.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
IDL程序1 基础语法与数据处理 授课人:李景刚 手机:
SVN服务器的搭建(Windows) 柳峰
走进编程 程序的顺序结构(二).
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
第三章 项目设定.
資料庫系統導論.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第九單元 Classes and data abstraction I
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
簡易 Visual Studio 2005 C++ 使用手冊
第3章 認識處理元.
PubMed整合显示图书馆电子资源 医科院图书馆电子资源培训讲座.
服務於中國研究的網絡基礎設施 A Cyberinfrastructure for Historical China Studies
Microsoft SQL Server 2008 報表服務_設計
CH03 行銷資訊系統資料庫模組--資料庫概論
SAP R/3架構及前端軟體安裝 Logical View of the R/3 System SAP Frontend 6.2安裝
資料庫 靜宜大學資管系 楊子青.
高正宗 System Consultant Manager
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
软件设计任务 从工程管理的角度来看,软件设计分两步完成。 概要设计,将软件需求转化为数据结构和软件的系统结构。
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
MATLAB 程式設計入門篇 初探MATLAB
豪雅科技股份有限公司 iSeries Professional Consultant P. 1
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Create and Use the Authorization Objects in ABAP
Delphi 7.0开发示例.
第六章 类属B树索引技术 对基于树的索引方法给出一种通用算法。该算法是建立在类属B树的概念之上开发的。它将类型系统开放,使系统能支持用户自定义的数据类型、函数和某些特殊的查询谓词的集合。并且,将新的数据类型、函数、查询谓词等登记到数据库管理系统中,
数数据的基本操作 电子工业出版社.
2017学考复习 信息管理(导引P37).
Arguments to the main Function and Final Project
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
MGT 213 System Management Server的昨天,今天和明天
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

The Interactive Data Language 交互式数据语言

功能简介 IDL是进行数据分析、可视化及跨平台应用开发的最佳选择。IDL集可视、交互分析、大型商业开发为一体,为您提供了最完善、最灵活最有效的开发环境。 (参考 idl5.5.ppt)

IDL培训提纲 对象图形 IDL简介及应用 对象操作 IDL程序特点 参数传递 命令行操作 与外部语言接口 数据输入输出 数据库接口 例程分析 回答问题 IDL简介及应用 IDL程序特点 命令行操作 数据输入输出 图像与信号处理 矩阵操作 界面设计

IDL程序特点 ——宽松的语法检查机制 分隔符为“,”,而非空格 不分大小写 变量无需事先说明

IDL符号 $ ;后面是注释 @ 批作业 如:@test 作为一行的第一个字符时,返回到操作系统下,如:$ dir 作为一行的最后一个字符时,相当于一行未写完,换行。 ;后面是注释 @ 批作业 如:@test

IDL命令行 A=dist(100) Plot,a Tv,a Erase Tvscl,a Surface,a Shade_surf,a Shade_surf,a,az=60 Zvalue=0.5 Contour,a Contour,a,nlevels=10 Contour,a,nlevels=10,$,/fill Contour,a,nlevels=10,$,/follow Contour,a,nlevels=10,$,/t3d

变量命名规则 正确: reade6_$file only_8_bit ComputerType variables _day_of_year 错误: name.last third%file 4th_list $temp 变量名称长度不超过255个字符,但变量大小取决于计算机配置和 操作系统。

IDL变量类型 Type Len Creation Array Conversion Byte 1 A=5B Bytarr Integer 2 B=0;b=0S Intarr Fix Uint C=0U Uintarr unit Long 4 D=0L Lonarr Ulong E=0UL Ulonarr Long64 8 F=0LL Long64arr Ulong64 G=0ULL Ulon64arr Float H=0.0 Fltarr Double I=0.0D Dblarr Complex J=complex(1.0,0.0) Complexarr Dcomplex 16 K=dcomplex(1.0,0.0) Dcomplexarr String ? L=’hello’ Strarr Pointer M=ptr_new() Ptrarr --- Object N=obj_new() Objarr

IDL 变量 Scalar Array (1—8维) Structure(结构)

系统 Keyword 系统Keyword !dpi (3.1415926) !p 控制显示 如:!p.font, !p.color !d (device,对设备进行控制) 如:device,get_screen_size=view 24bit显卡下显示8位假彩色图像,用 Device,decompose=0,(设置成8bit 256色)

矩阵操作 A=bytarr(512,512) 列 行 b=tan(a)+10 子区处理: A(*,1)表示第2行的所有列 A(*,1:10)

矩阵操作 若a为一二维数组,c=[10,15,20], 则A(c)将是一稀疏矩阵,只提取a中第10,15,20个元素,如可用来提取河流。 C=where(a,max=15,min=0) a( c)=255 将a中很暗的值变为255。 取字区还可实现非常多的局部操作。

WHERE 函数 Indices=where(data gt 0.4 and data lt 0.5) Data[indices]=1.0

矩阵操作 search2D 二维数组中在一定值域范围内以一初始点为准,搜索与它连通的范围,相当于a(c) 应用:给定步长,可实现半自动矢量化,半自动跟踪一条线。

矩阵操作 A#B 表示 A的列乘以B的行 A##B表示 A的行乘以B的列 Transpose 矩阵转置 a[i,j] = a[j,i] ……

IDL 数据I/O ASCII_TEMPLATE 和 READ_ASCII BINARY_TEMPLATE 和 READ_BINARY IDL LIVE_TOOLS DIALOG_READ_IMAGE 和DIALOG_WRITE_IMAGE

IDL程序结构 主程序 Procedure Function method

主程序(两种表现形式) 1、程序体 end 文件名为test.pro,没有名称的主程序必须放在程序最后面。 … end 文件名为test.pro,没有名称的主程序必须放在程序最后面。 源代码编译后,直接执行没有名称的放在最后的主程序

主程序(两种表现形式) pro test 程序体 … end 文件名为test.pro。 源代码编译后,直接执行与文件名同名的主程序

主程序(两种表现形式) pro 程序名 程序体 end

主程序例程 For example, here is a main program that plots ten random numbers. It is placed in a file named pnums.pro. numbers = randomu(seed, 10) * 20.0 plot, numbers end Execute this main program using the .RUN executive command. IDL> .run pnums

Procedure 结构: pro 子程序名称,变量V1,V2, … ,k1=k1,k2=k2 程序体 end keyword起重要作用

Procedure The procedure is placed in the file twoplot.pro. pro twoplot, one, two loadct, 5 plot, one, COLOR=125 oplot, two, COLOR=180 End 调用时: IDL> twoplot, var1, var2

Function(函数) Function test 变量 V1,V2, … , return, Value end 关键字 k1=k1,k2=k2 程序体 return, Value end

Function(函数) a file named mean.pro. function mean, array average = total(array)/n_elements(array) return, average end Call MEAN from the command line and return its output to a named variable: IDL> avgarray = mean(findgen(10))

定义对象的method pro class_name:: test,变量V1,V2, … ,k1=k1,k2=k2 程序体 … end

调用方法 调用routines: 调用Function: test, v1,v2,…,k1=k1,k2=k2, … keyword 可有可无,若没有,用缺省值。 调用Function: result=test(v1,v2, …,k1=k1,k2=k2, …)

调用方法 调用method: Object -> test, v1,v2…

IDL 程序条件语句 Begin – End If – Then – Else For – Do While – Do Repeat – Until Case X of – else – endcase Expr? Expr1:expr2 (条件判断语句)

界面设计 两种方式 GUI方式 程序方式

程序方式创建界面 pro test ;主程序 base=widget_base(/column) end button1=widget_button(base,value='打开',uvalue='op') draw=widget_draw(base,uvalue='dra',xsize=800,ysize=600);, $ ;x_scroll_size=1000,y_scroll_size=1000) button2=widget_button(base,value='退出',uvalue='ex') widget_control,base,/realize xmanager,'test',base;,event='test_event' end

程序方式创建界面 pro test_event, ev ;事件处理程序 widget_control,ev.id, get_uvalue=uv case uv of 'op':begin shade_surf,dist(100) end 'ex':begin widget_control,ev.top,/destroy endcase

IDL控件实例 PRO widget2 ;主程序 base = WIDGET_BASE(/COLUMN) button1 = WIDGET_BUTTON(base, VALUE='One', UVALUE='ONE') button2 = WIDGET_BUTTON(base, VALUE='Two', UVALUE='TWO') text = WIDGET_TEXT(base, XSIZE=20) button3 = WIDGET_BUTTON(base, value='Done', UVALUE='DONE') WIDGET_CONTROL, base, SET_UVALUE=text WIDGET_CONTROL, base, /REALIZE XMANAGER, 'Widget2', base END

IDL控件实例 PRO widget2_event, ev ;事件处理程序 WIDGET_CONTROL, ev.top, GET_UVALUE=textwid WIDGET_CONTROL, ev.id, GET_UVALUE=uval CASE uval OF 'ONE' : WIDGET_CONTROL, textwid, SET_VALUE='Button One Pressed' 'TWO' : WIDGET_CONTROL, textwid, SET_VALUE='Button Two Pressed' 'DONE': WIDGET_CONTROL, ev.top, /DESTROY ENDCASE END

Color in IDL 8 bit Color — Color Lookup Tables(LUT) 24 bit Color — 指定RGB颜色 在程序开始时将decomposed选相关掉 Device, decomposed=0 或:根据颜色深度指定颜色 察看系统颜色信息: Device,get_visual_depth=vd Sysdevinfo Help,/device 浏览彩色表:cindex, xloadct

IDL Direct and Object Graphics直接图形法和对象图形法 直接图形法: 创建2D图形时常用,如:plot, mapping, contours. 简单、快速,但需反复重画; 对象图形法: 加速3D系统显示,灵活,交互性强,充分控制对象,对象驻留内存,不需反复重画。

Live Tools 对象编程 Live_contour Live_oplot Live_control Live_plot 高效快捷的对象分析工具,提供如下函数: Live_contour Live_control Live_destroy Live_export Live_Image Live_info Live_load Live_oplot Live_plot Live_print Live_rect Live_surface Live_text Live_style

IDL定义对象 定义类的Structure Structure={IDLexModelManip, $ INHERITS, IDLgrModel, 常量及新的对象} The following is an example of a structure definition procedure that defines a structure that will be used for the class CNAME. PRO CNAME__DEFINE struct = { CNAME, data1:0L, data2:FLTARR(10) } END

IDL定义对象 定义类的method: PRO ClassName::Method IDL statements END or FUNCTION ClassName::Method, Argument1 RETURN, value

创建对象 Result = OBJ_NEW([ObjectClassName [, Arg1 ...Argn]]) 如:a=obj_new(‘idlgrmodel’)

删除对象 OBJ_DESTROY, ObjRef [, Arg1, , Argn]

IDL中对象种类 四大类: 容器:View, Window 模型:idlgrmodel,是容器对象的子对象 起承上启下作用 原子:image,surface,polyline,ploygon,光源(均可直接显示) 属性:符号,IDLgrFont,(无法直接显示)

IDL对象关系 四类对象呈树状关系 一个只能有一个父对象 Model Model Model View View Scene Graphics Atom Graphics Atom Graphics Atom Graphics Atom Model Model Model View View Scene

参数传递 调用 时传递 Surface,a,color=[255,0,0] 限制性强 公共区传递 Common fd,a,b,c 公共区占用 PRO MULT, M COMMON SHARE2, E, F, G M = E * F * G PRINT, M, E, F, G RETURN END PRO DIV, D COMMON SHARE2 D = E / F PRINT, D, E, F, G 固定内存 用uservalue传递参数 Keyword传递

IDL Pointer 指针 与C、C++中指针不同,只是IDL堆变量的索引,不存在真正的内存地址。 相关函数: PTR_NEW, PTR_VALID,PTR_FREE 调用方法: a=findgen(10) aptr=ptr_new(a) Print,*aptr

IDL 坐标系统 Data 数据坐标 缺省的坐标系统,plot, contour, surface常用 Device 设备坐标 以像素为单位的物理坐标,tv, tvscl常用 Normal 归一化坐标,从0到1,对象图形法常用

外部语言接口 Spawn 子进程 Active X 控件 RPC 远程进程调用 Call_external Link_image Callable IDL

Spawn 子进程 Windows下可执行操作,无法返回信息。 Spawn,’cd/windows’ 单用spawn,可到dos操作系统下。 Unix下,可以多进程使用,非常有用。

Active X 控件 Vb调用IDL 界面由VB设计,触发事件可有VB或IDL控制。 控件初始化 IDL程序初始化

RPC (Remote Procedure Calls) 只支持UNIX平台 allows IDL to be run as an RPC server and your own program to be run as a client. IDL commands can be sent from your application to the IDL server, where they are executed. Variable structures can be defined in the client program and then sent to the IDL server for creation as IDL variables. Similarly, the values of variables in the IDL server session can be retrieved into the client process.

RPC (Remote Procedure Calls) 将IDL作为Server端 IDL命令环境 IDLDE 开发环境 在Server端运行IDL时 idlrpc -server= server_number 将IDL作为Client端 IDL_VARIABLE 结构对变量作说明 IDL_RPCGetMainVariable Linking to the Client Library, libidl.rfc.h

Call_external 通过目标码进行传递,可调用任何语言的Code(如c和Fortran),适合任何操作平台。 X = FINDGEN(10) S = CALL_EXTERNAL('example.so', $ 'sum_array' X, N_ELEMENTS(X), /F_VALUE) In this example, example.so is the name of the sharable image file, sum_array is the name of the entry point, and X and N_ELEMENTS(X) are passed to the called routine as parameters. The F_VALUE keyword specifies that the returned value is a floating-point number rather than an IDL_LONG. 缺点:数据在传递时数据大小和类型都必须已知,且不能传递虚拟变量。 建议:写错误捕捉子程序。

Link_image 把外部程序变为内部程序 须了解IDL的内部结构 IDL internals 调用 n=link_image() 传递变量 Keyword的处理:Signals:捕捉,控制 Unix操作系统允许多进程

Callable IDL 效率高 与RPC接近(在RPC中,必须先启动IDLRPC Server) 比较复杂 IDL can be called as a subroutine from other programs. This capability is referred to as Callable IDL to distinguish it from the more common case of calling your code from IDL via CALL_EXTERNAL or LINKIMAGE. IDL for Windows has a small driver program linked to a Dynamic Link Library (DLL). 效率高 与RPC接近(在RPC中,必须先启动IDLRPC Server) 比较复杂

IDL DataMiner The IDL DataMiner is an Open Database Connectivity (ODBC) interface that allows IDL users to access and manipulate information from a variety of database management systems. Research Systems, Inc., developed IDL DataMiner so that IDL users can have all the connectivity advantages of ODBC without having to understand the intricacies of ODBC or SQL (Structured Query Language).

IDL DataMiner allow you: Connect to a database management system (DBMS) Query data from a DBMS Get information about the available database tables in a DBMS Access a table in a DBMS Create a table in a DBMS Delete a table in a DBMS Perform standard SQL operations in the DBMS Get information about the columns in a selected table Add/Change/Delete records in a table

IDL DataMiner The IDL DataMiner provides two IDL objects for accessing databases:  Database object (IDLdbDatabase)  Recordset object (IDLdbRecordset)

IDL DataMiner status = DB_EXISTS() objDB = OBJ_NEW('IDLdbDatabase') status = DIALOG_DBCONNECT(objDB) sources = objDB->GetDatasources()

IDLdbDatabase myDB = OBJ_NEW('IDLdbDatabase') OBJ_DESTORY, myDB status = DIALOG_DBCONNECT(DBobj) status = DB_EXISTS()

IDLdbDatabase IDLdbDatabase::Connect IDLdbDatabase::ExecuteSQL IDLdbDatabase::GetDatasources IDLdbDatabase::GetProperty IDLdbDatabase::GetTables IDLdbDatabase::SetProperty

Connect ODBC for Oracle Connect ODBC for Oracle supports two separate drivers. Connect ODBC for Oracle 7(the Oracle driver) supports the Oracle 7 database system. Connect ODBC for Oracle 8 (the Oracle 8 driver)supports the Oracle 8 database system. The Oracle 8 driver is supported in the Windows 9x, Windows NT,Macintosh Power PC, and UNIX environments. See the README file shipped with your INTERSOLV DataDirect product for the file names of the Oracle drivers.

IDLdbRecordset The IDLdbRecordset object contains a database table or the results from an SQLquery. RSObj = OBJ_NEW('IDLdbRecordset', DBobj, KEYWORD) OBJ_DESTROY, RSObj

IDLdbRecordset IDLdbRecordset::AddRecord IDLdbRecordset::CurrentRecord IDLdbRecordset::DeleteRecord IDLdbRecordset::GetField IDLdbRecordset::GetProperty IDLdbRecordset::GetRecord IDLdbRecordset::MoveCursor IDLdbRecordset::NFields IDLdbRecordset::SetField

网上相关资源 www.rsinc.com www.dfanning.com … …

Questions? 谢 谢!