Click here to load reader

comet.lamost.orgcomet.lamost.org/download/micaps2.doc · Web view气象信息综合分析处理系统 MICAPS V2.0 系统管理员手册 北京·中国气象局 华云公司. MICAPS系统开发组

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

9210工程人机交互系统

华云公司

气象信息综合分析处理系统

MICAPS V2.0 系统管理员手册

北京·中国气象局

华云公司

MICAPS系统开发组

本手册由中国气象局MICAPS系统开发组于2002年编写。

本手册的内容是向MICAPS第二版系统管理员说明到2002年10月1日以前完成的MICAPS系统第二版的系统功能、运行环境及系统管理所需了解的各种信息。本手册与“MICAPS V2.0用户手册”一起构成MICAPS用户使用的完整文档。

引言

编写目的

本手册与“MICAPS V2.0用户手册”一起向MICAPS系统管理员和预报员全面描述MICAPS系统的功能、性能、运行环境、系统管理和使用过程等信息。

本手册面向MICAPS系统的管理人员和使用人员。要求读者比较熟悉WINDOWS系列的操作系统。

背景

本手册描述的系统:气象信息综合分析处理系统,其英文缩写为MICAPS。

MICAPS系统第二版的开发任务由中国气象局提出,目的是在MICAPS第一版的基础上开发一个充分利用WINDOWS操作系统资源、功能更强大、适用范围更广的预报员工作平台。

MICAPS系统第二版由中国气象科学研究院、国家气象中心及北京市气象局联合开发。

MICAPS系统第二版开发完成后,将安装在地区级以上气象台和部分县气象局。经过商业化包装后将作为软件商品向气象部门以外的用户推广。

系统概况

MICAPS系统第二版的主要用途是为预报员提供一个业务预报的工作平台,其功能是:检索各种气象数据、显示各种气象数据的图形图象、对数据进行编辑、图形和数据的输出。MICAPS系统的第二版共享MICAPS第一版的数据接口和外围程序。因此MICAPS第二版使用的数据与第一版完全兼容。MICPAS第一版的二次开发功能,在第二版完全支持。因此在MICAPS第一版基础上进行的二次开发工作,在第二版基础上完全可以继续使用。

MICAPS 系统的结构和组件

MICAPS系统的第二版在PC计算机、WINDOWS操作系统上运行,结构采取了核心软件加组件的形式。当启动核心软件时,它将自动连接由WINDOWS操作系统特有的动态连接库和ACTIVE X控件组成的组件。核心软件与组件共同实现系统的各种功能。用户选择安装不同的组件,将使系统具有不同的功能,能够满足各行各业的不同需要。

在组件中,目前包含了一个动态连接库和四个ACTIVE X控件,动态连接库用于读取数据。4个控件是:参数检索控件、辅助图表控件、数据分析控件和地理信息控件。每个控件都有自己的窗口,用户在窗口中按照该控件的说明进行操作,即可实现有关的功能。MICAPS系统目前允许最多可以同时安装3个组件。关于组件的详细说明见后面的章节。

MICAPS第二版运行环境

· 主机型号:P III 850以上微机

· 内存容量:128 MB以上

· 系统硬盘剩余空间:2 GB以上

· CD ROM 驱动器

· WINDOWS98 /WINDOWS 2000以上操作系统

· 网卡

· NFS网络软件(可选)

本手册的内容:

本手册中在数据接口和二次开发方面与第一版重复的内容就不再包括。

第一章:系统安装。描述把MICAPS系统从磁带或软盘安装到硬盘的过程。

第二章:数据接口。与第一版一致,但按近几年9210数据的变化进行了修改。还包括与9210数据库的连接及第二版扩展的数据格式。

第三章:核心软件系统配置。包括组件的管理、各配置文件的格式和用途方法

第四章:中短期组件的配置。介绍中短期组件各配置文件的格式和用途。

第五章:新的二次开发功能。详细描述新的二次开发功能,主要是组件的开发。

第六章:系统的日常维护。描述系统日常维护需注意的问题。

第一章

系统安装

1·1 MICAPS的安装

由于系统正式版还没有完成。系统安装部分暂略。

第二章

数据接口

本章描述的数据接口与第一版一致。但根据近几年来9210数据的变化进行了修改。在本章最后,将描述MICAPS第二版与9210数据库的连接和对第一版数据格式的一些扩展及新增加的数据格式。

MICAPS系统第一版在c:\micaps\datatran子目录下提供了负责数据获取及数据格式转换的一系列数据接口程序。在系统安装后,系统管理员首先就要熟悉,并且必要时修改本地的数据接口。当微机版与工作站版通过NFS连接时,由于工作站已有数据接口,微机用户可直接使用虚盘数据,不必再做数据接口。

数据接口软件要完成的主要功能如下:

数据接口处理框图如下:

整个数据接口的处理过程是由一个定时控制程序mtimer.exe来控制。该程序的功能是根据定时时间表文件ws.dat中的内容启动相应的程序。在定时时间表文件中指定了一组程序及与它们对应的运行时间,当机器时钟到达某一个程序的运行时间时mtimer程序即启动该程序。被启动的程序可以是任何可执行程序。在数据接口中主要是定时启动数据传输程序transdat.exe或transdb.exe。数据传输程序负责根据一个数据时间表文件datatime.tab或dbtime.tab从服务器调入数据。在数据时间表文件中指定了各种数据的文件名、调入时间等参数,数据传输程序每次运行都将检查机器时钟,把应该调入的数据调入。数据调入后将进行数据格式转换,将原始数据转换为MICAPS格式的数据。数据格式转换程序可以在数据时间表中指定,由数据传输程序自动调用,也可以在定时时间表文件中指定,由定时控制程序运行。

下面详述这些功能及实现这些功能的有关程序和数据文件。系统管理员在必要时可以根据本地情况调整和修改这些程序和文件。

2·1 数据获取

原始数据的获取即根据一个时间表文件,定时地将原始数据从服务器传输到MICAPS主机上。

2·1·1 原始数据的位置

原始数据的种类及它们在服务器中的指定目录为:

· 常规数据(地面、高空、台风等报文)放在dmsg子目录

· 传真图放在fax子目录

· 各种数值预报格点报(GRID码)放在grid子目录

· 各种数值预报格点报(GRIB码)放在grib子目录

· 云图数据放在star子目录

· 雷达数据放在rad子目录

· 其它如本地产生的各种数据可自行指定合适的目录存放

2·1·2 数据传输程序

MICAPS第一版提供了两种数据传输方式,一种是从节点机直接将原始数据文件传输到本地盘,另一种是从9210工程的数据库中检索原始数据,在本地盘上形成原始数据文件。

2·1·2·1 文件传输

原始数据文件的获取由数据传输程序:transdat.exe程序实现。该程序的任务是根据一个数据时间表文件datatime.tab自动将原始数据从服务器拷贝(或用FTP命令传输)到本地盘上。

数据时间表文件中指定了要传输的各原始数据的文件名、传输方式、服务器地址、在服务器中哪个目录、要传入本地盘的哪个目录、传输后要进行的后处理程序、传输的起始时间和终止时间及该数据是否已被正常传输的标志等。当机器时钟达到某数据传输的起始时间时,transdat.exe程序就开始到指定的服务器指定目录下查找该数据文件,找到后即按指定的传输方式将该数据文件传入指定的本地目录中。若未找到或未能正常传输,则在终止时间之前,每次运行transdat.exe程序时都要查找该数据文件。

关于本程序的详细说明见附录D。

2·1·2·2 数据库检索

本节描述的数据库检索还是MICAPS第一版的检索,其功能是将数据从9210数据库中读取,形成MICAPS文件放入本地数据库。而不是直接检索数据。

MICAPS第二版可以通过中短期组件中的动态连接库直接读取数据库中的数据。说明见后面的章节。

检索数据库并形成原始数据文件的工作由程序:transdb.exe程序实现。该程序的任务是根据一个数据时间表文件dbtime.tab自动检索数据库,并在本地盘上形成原始数据文件。

数据时间表文件中指定了要产生的各原始数据的文件名、检索方式、数据库服务器名字、数据时间等参数、形成的文件放入本地盘的哪个目录、数据文件形成后要进行的后处理程序、数据检索的起始时间和终止时间及该数据是否已被正常传输的标志等。当机器时钟达到某数据传输的起始时间时,transdb.exe程序就开始到指定的数据库服务器中检索指定的数据并形成相应的数据文件,放入指定的本地目录中。若未找到数据或未能正常传输,则在终止时间之前,每次运行transdb.exe程序时都要查找该数据。

关于本程序的详细说明见附录D。

2·1·3 定时控制

为了定时运行transdat.exe程序,MICAPS提供了定时程序:mtimer.exe,它根据时间表文件ws.dat中的内容定时地执行指定的程序。在ws.dat文件中指定了各程序执行的年、月、日、时、分、程序文件名及检测机器时钟的时间间隔。mtimer.exe程序根据ws.dat文件中指定的时间间隔定时检测机器时钟,到达某一程序执行的时间时即启动该程序(详细说明见附录D)。MICAPS安装后缺省设置为每半小时执行一次transdat.exe。

关于本程序的详细说明见附录D。

2·2 数据格式转换

原始数据获取后,还须转换成MICAPS的数据格式,并放入指定的目录中,才能由MICAPS系统正常使用。

MICAPS定义了19类文件格式(见附录A)。MICAPS系统的数据接口程序能够自动将原始数据转换成MICAPS格式,并放入本地数据库中(数据库的结构见附录C,MICAPS系统安装后,各数据目录已经自动建立)。这些程序将在“定时程序:mtimer.exe和数据传输程序:transdat.exe”的控制下定时地自动运行。

MICAPS系统安装后,在datatran子目录中可以找到所有格式转换程序,下面各节将描述这些格式转换程序。

2·2·1 常规数据转换程序

常规报数据在服务器的 /dmsg 子目录中。这些数据被接收到后,一般来说,应该放在本地的datatran子目录中。

常规数据的预处理和格式转换是由一组程序完成的,其流程如下:

常规数据处理时,首先把所有的报文文件拷贝到一个单一的文件fn.dat中,以减少打开文件的次数。同时由makewsdat.exe程序根据机器时钟产生日期文件wsdat.dat,所有的常规数据处理程序都将根据此文件中的日期确定自己要处理的数据的日期和时次(因此通过设置wsdat.dat中的日期,常规数据处理程序也可以处理历史数据)。然后运行ptrans0.exe程序对报文进行译码,产生中间文件aaxx1.dat和ttaa1.dat。然后运行ptransax.exe或ptranstp.exe产生综合填图和单要素填图数据,运行ptransbx.exe和ptransbb.exe程序处理船舶报并加入到填图数据中,运行ptranscs.exe产生城市预报数据,同时产生中间文件dm????.dat和gg????.dat。然后运行pwdemi.exe或pwgako.exe程序产生等值线和流线数据。最后运行ptransty.exe和ptransto.exe程序产生台风路径数据。对高空数据可运行pwphyl.exe程序产生诊断物理量数据。另外,MICAPS还提供了一个将第4类数据(用于画等值线的格点数据)转换为第13类数据(图象数据)的程序。

综上所述,有关常规报的预处理和格式转换程序有13个,下面对这些程序进行详细的描述。

makewsdat.exe – 根据命令行给定的参数自动生成日期字符串放入命令行给定的输出文件中(C语言编程)

运行命令格式:makewsdat <日期或日期代码+时次> <输出文件>

· 例子:makewsdat ######12 wsdat.dat

· 日期代码定义:@@@@@@ 表示当天的年、月、日;###### 表示前一天的年、月、日。程序将根据日期代码和机器时钟自动产生具体的日期。

输入文件:无

输出文件:

1. 命令行给定的输出文件。

· 内容:只有一行:YYMMDDHH

其中:YY为年、MM为月、DD为日、HH为时次。

ptrans0.exe --- 常规报解码程序。(FORTRAN语言编程)

运行命令格式:ptrans0

输入文件:

1. 由makewsdat程序产生日期文件,例如 wsdat.dat

2. 由所有有关的*.abj文件产生的单一文件fn.dat,作为原始报文的输入数据。

3. path0.dat包含了程序的工作目录、输入数据的目录及输出数据的目录。格式为:

第一行为工作目录、第二行为输入数据的目录、第三行为输出数据的目录

4. limitdm.txt 地面极值检查中各要素临界值。

5. limitgk.txt 高空极值检查中各要素临界值。

输出临时文件:

1. aaxx1.dat(地面)或ttaa1.dat(高空)

ptransax.exe -- 地面常规数据格式转换

运行命令格式:ptransax

输入文件:

1. ptrans0产生的aaxx1.dat

2. pathax.dat包含了各输出文件的目录。格式为:

第一行为aaxx1.dat所在的目录。

第二行为地面数据存放的顶级子目录。

第三和第四行为参数文件所在的目录。

第五行为地面综合填图数据的子目录。

以后各行为各地面要素的单要素填图的子目录。

3. aaxxdat.dat为地面站号表。格式为:

第一行为测站总数,以后各行为各测站的站号、经度、纬度、海拔高度、放大级别。其中经度、纬度单位为度,均保留两位小数但不写小数点。海拔高度单位为米。放大级别为产生出的综合填图数据中各站的放大级别,其数值应为2的幂。放大级别的意义是:在地面综合填图中当底图放大到该级别以上时才显示该站的数据,这样就可以防止由于测站过密而导致显示的数据重叠。修改此文件中某站的放大级别就可以改变本程序产生出的综合填图数据中相应站的放大级别。

4. data3dm.txt为第三类数据的参数文件。格式为:

前若干行为格式说明,后面为各要素的参数。每个要素包括如下参数:

要素名

需要画的等值线条数

等值线值1 等值线值2 ......

平滑系数 加粗线值 裁剪框的点数 控制数(0:经纬度值为整数,1:经纬度值为实数)

经纬度值1 经纬度值2 ......

输出文件:具有MICAPS格式的各地面填图数据文件

pwdemi.exe -- 地面常规数据客观分析

运行命令格式:pwdemi

输入文件:

1. ptransax产生的中间文件

2. pathdm.dat包含了各输出文件的目录,格式与pathax.dat相同。

3. aaxxdat.dat为地面站号表

4. pwaread.dat客观分析范围

格式为:

最小纬度 最大纬度 最小经度 最大经度 纬向格点数 经向格点数 层数

以上均为整数,经纬度均乘以10(保留一位小数)

输出文件:具有MICAPS格式的各地面格点数据文件(即等值线和流线数据)

ptranstp.exe -- 高空常规数据格式转换

运行命令格式:ptranstp

输入文件:

1. ptrans0产生的ttaa1.dat

2. pathtp.dat包含了各输出文件的目录,格式与pathax.dat相同。

3. ttaadat.dat为高空站号表,格式与aaxxdat.dat相同。

4. data3gk.txt为第三类数据的参数文件。格式为:

前若干行为格式说明,后面为各层次的参数。每个层次包括如下参数:

年 月 日 时次 层次

需要画的等值线条数

等值线值1 等值线值2 ......

平滑系数 加粗线值 裁剪框的点数

经纬度值1 经纬度值2 ......

输出文件:具有MICAPS格式的各高空填图数据文件

pwgako.exe -- 高空常规数据客观分析

运行命令格式:pwgako

输入文件:

1. ptranstp产生的中间文件

2. pathgk.dat包含了各输出文件的目录,格式与pathtp.dat相同。

3. ttaadat.dat为高空站号表

4. pwareag.dat高空客观分析范围

格式:

最小纬度 最大纬度 最小经度 最大经度 纬向格点数 经向格点数 层数

以上均为整数,经纬度均乘以10(保留一位小数)

输出文件:具有MICAPS格式的各高空格点数据文件(即等值线和流线数据)

pwphyl.exe -- 高空物理量计算

运行命令格式:pwphyl

输入文件:

1. updata.dat pwgako.exe产生的中间文件

2. pathpy.dat包含了各输出文件的目录,格式与pathgk.dat相同。

3. physic.txt 包含各物理量的等值线参数

4. pwareag.dat 高空客观分析范围

5. ts.dat 为查算沙氏指数的表

输出文件:具有MICAPS格式的各高空物理量数据文件

ptransbx.exe和ptransbb.exe – 船舶报数据格式转换

运行命令格式:ptransbx和ptransbb

输入文件:

1. fn.dat

2. pathbx.dat包含了输入文件目录、参数文件目录及输出中间文件目录

3. pathbb.dat格式与pathax.dat类似

输出文件:加入了船舶数据的地面填图数据

ptransty.exe和ptransto.exe – 台风报数据格式转换

运行命令格式:ptransty(台风路径和主观预报)和ptransto(客观预报)

输入文件:

1. fn.dat

2. pathty.dat包含了输入文件目录、参数文件目录及输出文件目录

输出文件:具有MICAPS格式的台风数据文件

ptranscs.exe – 城市预报数据格式转换

运行命令格式:ptranscs

输入文件:

1. fn.dat

2. pathcs.dat包含了输入文件目录、参数文件目录及输出文件目录

输出文件:具有MICAPS格式的城市预报数据文件

上述各程序被包装在处理各时次常规数据的批处理程序中:

cl02s.bat ---- 处理02地面数据

cl05s.bat ---- 处理05地面数据

cl08s.bat ---- 处理08地面数据

cl11s.bat ---- 处理11地面数据

cl14s.bat ---- 处理14地面数据

cl17s.bat ---- 处理17地面数据

cl20s.bat ---- 处理20地面数据

cl23s.bat ---- 处理23地面数据

cl08h.bat ---- 处理08高空数据

cl20h.bat ---- 处理20高空数据

在datatran子目录中可以找到这些程序。

对常规数据的处理,系统管理员可以根据本地情况进行如下修改:

· 修改站号表文件aaxxdat.dat和ttaadat.dat。增加需要的测站,删除不需要的测站。

· 修改极值检查文件limitdm.txt和limitgk.txt。控制数据质量。

· 修改第三类数据参数文件data3dm.txt和data3gk.txt。改变第三类数据的特性,例如改变等值线的值、剪切框等。

· 修改客观分析范围文件pwaread.dat和pwareag.dat。改变客观分析范围等。

· 修改物理量等值线参数文件physic.txt。改变物理量的等值线间隔等参数。由于物理量的数值很复杂,修改这个文件有时是很必要的。

2·2·2 日本等数值预报格点数据转换程序

欧洲数值预报数据格式已经改为GRIB码格式,因此下面的描述已经不适用于欧洲数值预报,欧洲数据的处理见2·2·3节。日本数值预报产品的格式也有小的变化,处理程序也改变了。请注意后面的修改。

micapsgd.exe(美国)、micapsrj.exe(日本)

日本、美国数值预报格点数据在服务器的 /grid 子目录中,数据格式是已经解码的要素数据,格式转换程序只要将原有文件头换成MICAPS的文件头即可。对标量数据,转换程序将其转换为一个MICAPS第四类数据和一个用于填图的第三类数据,同时产生一个其24小时变量的第四类数据和一个用于填图的第三类数据。对于矢量数据,如风场,则转换为一个MICAPS第11类数据和一个用于填图的第2类数据。其运行格式为:

micapsgd <配置文件>(美国)

micapsrj <配置文件>(日本)

注:文件名中可以包含日期代码(日期代码的定义参见附录D)

其中配置文件的格式如下:

每个要处理的数据占一行,各行内容为:

转换前文件名 转换后等值线文件名 转换后填图文件名 转换后24小时变量等值线文件名 转换后24小时变量填图文件名 要素说明 等值线间隔 24小时变量的等值线间隔

目前缺省的配置文件为:

日本:rj.cfg

美国:kw.cfg

例子:micapsrj rj.cfg

上述程序被包装在下述批处理程序中:

clrj.bat ---- 处理日本数值预报

clkw.bat ---- 处理美国数值预报

2·2·3 GRIB格点数据转换程序:procnwp.exe

GRIB编码的数值预报格点数据在服务器的 /grib 子目录中,数据格式为GRIB码数据。对标量数据,转换程序将其转换为一个MICAPS第四类数据和一个用于填图的第三类数据,对于矢量数据,如风场,则转换为一个MICAPS第11类数据和一个用于填图的第2类数据。另外,程序还根据转换后的数据产生TlnP图的预报数据。其运行格式为:

procnwp <日期时间> <配置文件> <文件名列表文件>

其中:

1. 日期时间为模式计算的起始日期和时间。其格式为YYMMDDHH,YY为年、MM为月、DD为日、HH为时次。日期中可以包含日期代码(见附录D)。例如T106模式的日期时间为######20,表示用前一天20点资料计算的。

2. 配置文件包含了模式产品的参数,T213模式的配置文件缺省为t213nwp.cfg,HLAFS模式为hlafsnwp.dat,欧洲模式为ecnwp.cfg。其格式为:

· 第一行为数值模式的名字

· 第二行为转换后的数据文件存放的目录

· 第三行为数值产品原始数据的编码格式和数据排列顺序(xy表示先行后列,yx表示先列后行)

· 第四行开始为各预报区域的参数。开始为区域数,以后每行包括:区域名 代码(在原始数据文件名中代表该区域的字符串) 经距 纬距 起始经度 终止经度 起始纬度 终止纬度。

· 区域参数后为各要素的参数。开始为要素数,以后各行包括:要素名 代码(在原始数据文件名中代表该要素的字符串) 格点数据子目录(转换后的第四类数据的目录) 填图数据子目录(转换后的第三类数据的目录) 等值线间隔 线性变换系数 线性变换常数(线性变换用于改变原始数据的量纲使其符合预报员的习惯,例如温度应减273.16、涡度应乘十万等) 起始经度 终止经度 起始纬度 终止纬度(这四个数定义了该要素计算的范围)

· 要素参数后为各层次参数。开始为层次数,以后各行包括:层次名 代码(在原始数据文件名中代表该层次的字符串) 该层次子目录

· 层次参数后为各时效参数。开始为时效数,以后各行包括:时效名 代码(在原始数据文件名中代表该时效的字符串)

· 最后是要产生TlnP图数据的范围。格式为:最小经度 最小纬度 最大经度 最大纬度。注意,该范围内包含的格点数应小于300,另外,如果最小经度大于等于最大经度或最小纬度大于等于最大纬度,则将不产生TlnP图数据。

3. 文件名列表文件中存放了要处理的原始数据文件的所有文件名。程序将只处理此文件中包含的那些文件。T213的缺省列表文件为t213file.dat,HLAFS的缺省列表文件为hlafs08.dat和hlafs20.dat,欧洲模式为ecfile.dat。

上述程序被包装在批处理程序clt213.bat、clhlfs08.bat、clhlfs20.bat、clec.bat中。

例子:procnwp 97060820 t213nwp.cfg t213file.dat

注意:T213和HLAFS产品的数据量都很大。为了减少数据量,可以采取如下的措施:1、修改它们的CFG文件,将不需要的要素、时次和层次删除。2、修改CFG文件中各要素的范围和TlnP图的计算范围,缩小范围则可减少数据量。3、修改文件名列表文件,将其中不需要的文件删除。另外,由于产生TlnP的计算量较大,如果计算机速度较慢,则需要很长时间,此时可修改CFG文件中TlnP图的计算范围,使其不产生TlnP图数据即可。

2·2·4 云图数据转换程序

云图数据在服务器的 star 子目录中,数据格式为9210工程通讯系统规定的云图格式。转换程序将它们转换为MICAPS第13类数据。其运行格式为:

micapscc <转换前文件名> <转换后文件名> <日期时间>

注:文件名中可以包含日期代码(日期代码的定义参见附录D)。在日期时间参数中也可有日期代码,当在MICAPS中显示云图时,从命令行输入的日期时间参数将出现在显示设置窗口的数据说明中,此日期时间可以与原始数据文件中的日期时间不同。

例子:由于GMS云图为半点开始接收,接收完成时已将近下一时次,因此可以设置日期时间比文件时间晚一小时。

micapscc eilu@@31.awx c:\micaps\cloud\ir\l\@@@@@@11.000 @@@@@@12

注意:

在MICAPS系统定义的底图中至少要有一个在中央经度和投影上与该图象数据保持一致。

2·2·5 传真图数据转换程序

传真图数据转换程序实际上即为传真图的T6解码程序。程序名为:T6DWIN95.EXE

运行命令行格式为:T6DWIN95 原始文件名 解码后文件名

2·2·6 雷达拼图程序

雷达拼图数据已经改为从9210主站直接下发拼好图的程序,因此本地的拼图已不需要。本节原有内容全部删除。

2·3 本地数据接口建立过程图

仔细阅读完前面的叙述和附录D后,即可根据本地情况建立和修改数据接口。系统管理员建立和修改数据接口的过程建议按如下框图进行:

在数据接口的本地化过程中和完成后,系统管理员应该不断进行测试,防止遗漏,以保证完成后的数据接口正常运转。

数据接口完成后,应该启动MICAPS的图形显示和编辑模块,一方面用验证数据对该模块进行测试,另一方面进一步对数据接口进行测试。详见下一章内容。

以下各节为MICAPS第二版新增的内容,请仔细阅读。

2·4 与9210数据库的连接

MICAPS第二版的组件中,包括了一个动态连接库(DLL)用于读取数据。MICAPS核心程序不直接读取数据,所有数据均通过此DLL读取,再传输给核心程序。

因此,前面描述的数据格式转换程序功能均可以由这个DLL代替。即,MICAPS第二版可以通过这个DLL直接读取原始数据,再在DLL中按照MICAPS数据格式将数据传送给核心程序进行显示。与9210数据库的连接就是由这个DLL与参数检索控件共同实现的。

MICAPS第二版可以同时连接三个组件,其中第一个组件的DLL可以有两个版本,一个用于读文件,一个用于读数据库。两个版本的切换可以通过核心程序菜单“选项”->“数据库设置”来交互实现(参见《MICAPS V2.0用户手册》2·6节)。也可以通过修改MICAPS工作目录下的db.cfg文件指定数据库的参数。

db.cfg的格式如下:

指示码 服务器名 数据库名 用户名 口令

其中:指示码指示是否使用连接数据库的DLL,0表示不使用,1表示使用;服务器名、数据库名、用户名和口令均为数据库的参数。口令为0时,表示没有口令。

数据库数据的检索,只能通过参数检索控件来实现。用户在参数检索控件中选择数据的参数(时间、层次、要素等)后,控件调用DLL读取数据,DLL则根据用户选择的参数到数据库中将数据取出。

中短期组件的参数检索控件可以检索9210数据库。但要该控件能够检索9210数据库,必须将中短期组件安装为第一个组件。

关于中短期组件的详细说明见第四章。

2·5 数据格式的扩展及新增数据类型

MICAPS第二版功能比第一版功能有较大的增强。数据的格式也进行了扩展,数据类型增加了若干。已有数据格式被扩展的主要是站点填图数据(第三类)、等值线数据(第四类)、图象数据(第13类)和气象图元数据(第14类)。增加的数据类型有邮票图、表格、折线图、直方图、饼图和玫瑰图的数据。下面进行详细的描述。

2·5·1 第三类数据格式的扩展

主要是测站的数据可以为字符串。其他没有什么改变。

2·5·2 第四类数据格式的扩展

主要有如下扩展。

1. 第4类数据用于画格点数据的等值线。第一版只能用经纬度格点数据,第二版则扩展为可以用直角坐标数据。相应第4类数据格式也进行了扩展。其扩展并不增加或减少数据项,而是改变了文件头中一些数据的意义。当使用直角坐标数据时,文件头做如下修改:1)将等值线终止值改为-1(直角坐标在兰勃托投影下)或-2(直角坐标在麦开托投影下)或-3(直角坐标在北半球投影下)。2)把网格经度间隔和纬度间隔改为格点数据第一行最后一个点的经纬度。3)把起始经度和起始纬度改为格点数据第一行第一个点的经纬度。4)把终止经度和终止纬度改为格点数据最后一行最后一个点的经纬度。

2. 由于第二版中增加了等值线图填格点值功能。可以在第4类数据文件头中就指定必须填图。修改方法为:1)把加粗线值改为-1,表示画等值线同时填图,2)改为-2表示只填图,不画等值线。

2·5·3 第13类数据格式的扩展

MICAPS第二版显示图象的方法与第一版不同,因此在文件头做了一些改动。

主要是需要增加中心经纬度的参数。如果文件头中的放大系数大于0,则中心经纬度由辅助数组获得(见附录)。若放大系数为0,则文件头中最后16个字节,前8个字节为中心经度,后8个字节为中心纬度。

当图象为地形高度数据时,所有中心经纬度改为右上角经纬度。

2·5·4 第14类数据格式的扩展

主要是扩展了天气区。由于第二版的线条编辑增加了标天气区的功能,为了保存天气区的参数,在第14类数据的尾部增加天气区参数。

天气区数据格式如下:

WEATHER_REGION: 天气区的个数

第一个天气区的天气代码 外围线点数

第一点经度 第一点纬度 0.0 第二点经度 第二点纬度 0.0……………………………………

第二个天气区的天气代码 外围线点数

第一点经度 第一点纬度 0.0 第二点经度 第二点纬度 0.0……………………………………

…………………………………………………………

其中天气代码为:1—雨区、2—雪区、4—雷暴区、8—雾区、16—大风区、32—沙暴区。

下面为例子数据:

diamond 14 例子数据

2002 10 19 12 0

LINES: 3

1 25 163.97 52.92 0.0 161.36 52.59 0.0 158.93 52.14 0.0 156.44 51.54 0.0 152.60 50.85 0.0 148.97 50.15 0.0 145.32 49.67 0.0 140.69 49.62 0.0 136.18 49.91 0.0 131.58 50.30 0.0

127.01 50.76 0.0 122.37 51.05 0.0 117.87 51.28 0.0 115.03 51.43 0.0 112.19 51.63 0.0 109.49 51.77 0.0 103.65 52.48 0.0 97.75 53.31 0.0 91.68 53.87 0.0 86.46 54.06 0.0

81.39 54.10 0.0 76.41 54.10 0.0 73.70 54.31 0.0 71.22 54.40 0.0 68.78 54.61 0.0

26 2

163.97 52.92 0.0

68.78 54.61 0.0

LINES_SYMBOL: 0

SYMBOLS: 0

CLOSED_CONTOURS: 2

1 34 128.18 46.52 0.0 128.68 44.78 0.0 128.79 42.84 0.0 128.72 40.81 0.0 128.11 39.27 0.0 127.27 37.78 0.0 126.02 36.60 0.0 122.91 36.19 0.0 119.66 36.19 0.0 117.36 35.28 0.0

116.82 33.72 0.0 116.61 31.67 0.0 116.19 29.65 0.0 114.80 28.17 0.0 112.82 27.31 0.0 110.90 27.23 0.0 109.20 27.94 0.0 107.80 29.23 0.0 106.56 30.75 0.0 105.12 32.62 0.0

104.11 34.52 0.0 103.67 36.46 0.0 103.98 38.70 0.0 105.17 40.62 0.0 107.17 42.18 0.0 109.86 43.33 0.0 112.92 43.92 0.0 116.04 44.41 0.0 119.01 45.46 0.0 122.09 46.43 0.0

125.45 46.79 0.0 126.23 46.81 0.0 127.14 46.68 0.0 128.18 46.52 0.0

20 1 128.18 46.52 0.0

1 25 112.49 40.70 0.0 113.22 38.82 0.0 114.03 36.82 0.0 114.64 34.59 0.0 114.80 33.24 0.0 114.71 32.03 0.0 114.40 30.95 0.0 113.18 30.28 0.0 111.41 30.08 0.0 109.76 30.45 0.0

107.96 31.52 0.0 106.69 33.06 0.0 105.98 34.74 0.0 105.76 36.20 0.0 105.93 37.44 0.0 106.66 38.70 0.0 107.55 39.83 0.0 108.89 40.72 0.0 110.56 40.97 0.0 110.70 41.10 0.0

110.97 41.10 0.0 111.25 40.97 0.0 111.67 40.96 0.0 112.08 40.83 0.0 112.49 40.70 0.0

30 1 112.49 40.70 0.0

STATION_SITUATION

54511 20.0

WEATHER_REGION: 6

1 25 102.96 48.97 0.0 103.29 46.37 0.0 103.43 43.88 0.0 102.98 41.61 0.0 101.33 39.38 0.0 99.09 37.42 0.0 96.41 35.72 0.0 92.55 34.10 0.0 88.86 33.22 0.0 85.57 33.82 0.0

83.15 35.86 0.0 81.42 38.76 0.0 80.69 41.99 0.0 80.93 44.19 0.0 82.01 46.06 0.0 83.85 47.56 0.0 87.18 48.91 0.0 91.10 49.46 0.0 95.35 49.04 0.0 96.36 48.91 0.0

97.55 48.66 0.0 98.71 48.52 0.0 99.97 48.63 0.0 101.39 48.74 0.0 102.96 48.97 0.0

2 22 83.99 58.36 0.0 82.61 56.43 0.0 81.34 54.48 0.0 79.70 52.39 0.0 75.97 49.10 0.0 71.74 46.76 0.0 67.16 46.57 0.0 64.21 47.82 0.0 61.83 49.61 0.0 60.61 51.63 0.0

61.34 53.90 0.0 64.23 55.90 0.0 68.05 57.61 0.0 71.08 59.18 0.0 74.77 60.24 0.0 80.66 59.80 0.0 83.01 59.21 0.0 84.85 58.64 0.0 85.06 58.29 0.0 84.62 58.35 0.0

84.17 58.40 0.0 83.99 58.36 0.0

2·5·3 表格数据格式

表格数据格式是新增加的一类数据格式,MICAPS将弹出一个窗口显示数据文件规定的表格。表格中将填写数据文件中指定的字符串,也可以填地面多要素的填图。填图的要素和格式与地面填图特征文件一致。

表格数据为MICAPS第20类数据格式。格式为:

diamond 20 数据说明

年 月 日 时 行数 列数

第一行第一列字符串 第一行第二列字符串 ………………

第二行第一列字符串 第二行第二列字符串 ………………

……………………………………………………………………

填图测站总数

第一个站的站号 填图的行 填图的列 总云量 风向 风速 气压 三小时变压 过去天气1 过去天气2 6小时降水量 低云状 低云量 低云高 露点 能见度 现在天气 温度 中云状 高云状 1 2 24小时变温 24小时变压

第二个站的站号 填图的行 填图的列 总云量 风向 风速 气压 三小时变压 过去天气1 过去天气2 6小时降水量 低云状 低云量 低云高 露点 能见度 现在天气 温度 中云状 高云状 1 2 24小时变温 24小时变压

……………………………………………………………………

………………………………………………………………………

在上述格式中,要进行填图的某行某列中的字符串用~号代替。

下面是一个例子数据:

diamond 20 2001年8月17日20点大城市预报

2001 08 17 20 4 5

要素 北京 天津 上海 广州

温度 ~ ~ 25.6 30.2

湿度 50% 50% 70% 80%

风速 3 4 4 2

2

54511 2 2 0 70 1 312 10 0 0

0 9999 0 9999 -7.9 20.0 0 4.6 9999 9999 1 2 -9 12

54102 2 3 0 200 4 307 -2 0 0

0 9999 0 9999 -12.1 30.0 0 -7.2 9999 9999 1 2 -3 3

2·5·4 邮票图数据格式

邮票图是针对集合预报产品增加的一个新数据类型。它将集合预报各成员的等值线图并列显示在窗口内,每张图都变得很小,象邮票一样,因此叫邮票图。

邮票图为MICAPS第111类数据。其数据格式如下:

diamond 111 数据说明

成员总数

第一个成员的目录和文件名

第二个成员的目录和文件名

…………………………

注意:各成员的数据文件必须是MICAPS的第4类,即等值线数据。

下面是将各标准层高度场作为成员的例子数据:

diamond 111 邮票图测试数据

11

c:\micaps\high\height\1000\01111908.000

c:\micaps\high\height\925\01111908.000

c:\micaps\high\height\850\01111908.000

c:\micaps\high\height\700\01111908.000

c:\micaps\high\height\500\01111908.000

c:\micaps\high\height\400\01111908.000

c:\micaps\high\height\300\01111908.000

c:\micaps\high\height\250\01111908.000

c:\micaps\high\height\200\01111908.000

c:\micaps\high\height\150\01111908.000

c:\micaps\high\height\100\01111908.000

2·5·5 折线图数据格式

一维图形显示是MICAPS第二版新增加的功能。相应地需要增加一批一维图形的数据类型。目前增加了折线图、直方图、饼图和玫瑰图的数据类型。

折线图的数据为MICAPS第777类数据。其格式为:

diamond 777 数据说明

X标值总数 起始X标值 终止X标值

第一个X标值 第二个X标值 ………………………………

Y标值总数 起始Y标值 终止Y标值

第一个Y标值 第二个Y标值 ………………………………

X标值间的细分区间数 Y标值间的细分区间数

折线线型

数据个数

第一个数据的X坐标 第一个数据的Y坐标

第二个数据的X坐标 第二个数据的Y坐标

………………………………………………

其中 X 和 Y 标值表示在 X 轴和 Y 轴上标数值。起始X、Y标值和终止X、Y标值为在图形开始显示时,在窗口内显示的X、Y坐标的范围。X、Y标值间的细分区间数为在底图上显示坐标线时,两个相邻的X或Y坐标的标值之间再细分为多少个区间。折线的线型可以取值0到4,分别对应实线、虚线、点线、点划线、双点划线。

下面是一个例子数据:

diamond 777 一维线图测试数据

50 14 23

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

20 21 22 23 24 25 26 27 28 29

30 31 32 33 34 35 36 37 38 39

40 41 42 43 44 45 46 47 48 49

21 4 14

-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

10 10 4

50

0 -3 1 0 2 -2 3 3 4 2 5 -1 6 1 7 -3 8 4 9 -4 10 -3 11 0 12 -2 13 3 14 2 15 -1 16 1 17 -3 18 4 19 -4 20 -3 21 0 22 -2 23 3 24 2 25 -1 26 1 27 -3 28 4 29 -4 30 -3 31 0 32 -2 33 3 34 2 35 -1 36 1 37 -3 38 4 39 -4 40 -3 41 0 42 -2 43 3 44 2 45 -1 46 1 47 -3 48 4 49 -4

2·5·6 直方图数据格式

直方图的数据格式为MICAPS第778类数据。其格式与折线图完全一样。只是把其中的折线类型换成矩形类型。矩形的类型可以取0到7,分别对应填充花纹为实心、上斜线、斜交、直交、下斜线、横线、竖线的矩形及立体矩形。

下面是一个例子数据:

diamond 778 一维直方图测试数据

50 14 23

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

20 21 22 23 24 25 26 27 28 29

30 31 32 33 34 35 36 37 38 39

40 41 42 43 44 45 46 47 48 49

21 4 14

-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

10 10 7

50

0 -3 1 0 2 -2 3 3 4 2 5 -1 6 1 7 -3 8 4 9 -4 10 -3 11 0 12 -2 13 3 14 2 15 -1 16 1 17 -3 18 4 19 -4 20 -3 21 0 22 -2 23 3 24 2 25 -1 26 1 27 -3 28 4 29 -4 30 -3 31 0 32 -2 33 3 34 2 35 -1 36 1 37 -3 38 4 39 -4 40 -3 41 0 42 -2 43 3 44 2 45 -1 46 1 47 -3 48 4 49 -4

2·5·7 饼图数据格式

饼图的数据格式为MICAPS的第779类数据。格式如下:

diamond 779 数据说明

年 月 日 时

类型 扇区个数

第一扇区的说明字符 第二扇区的说明字符 ………………

第一扇区的数值 第二扇区的数值 ……………………

其中类型可以取0到7,分别对应填充花纹为实心、上斜线、斜交、直交、下斜线、横线、竖线的饼图及立体饼图。

下面为一个例子数据:

diamond 779 饼图测试数据

01 08 19 08

7 5

北京 天津 上海 广州 武汉

10 30 15 60 45

2·5·8 玫瑰图数据格式

玫瑰图的数据格式为MICAPS的第780类数据。格式如下:

diamond 780 数据说明

年 月 日 时

数据个数

第一数据的角度 第二数据的角度 ………………

第一数据的数值 第二数据的数值 ……………………

下面为一个例子数据:

diamond 780 玫瑰图测试数据

01 08 19 08

16

22.5 45.0 67.5 90.0 112.5 135.0 157.5 180.0 202.5 225.0 247.5 270.0 292.5 315.0 337.5 360.0

10 30 15 60 45 80 60 20 65 70 50 35 55 90 120 100

第三章

核心软件系统配置

MICAPS第二版安装以后,核心软件安装在micaps20子目录下面。

核心软件工作目录下的主要内容包括了二维显示系统、一维显示系统、三维显示系统和组件管理系统等4部分功能的程序、配置文件和目录等。下面按功能分别列出目录中的内容、用途、配置等。

3·1 二维显示系统

二维显示系统运行如下程序:micaps20.exe 。

3·1·1 程序初始化配置

系统初始化文件:micaps20.ini。本文件指定MICAPS二维显示窗口弹出时的位置和立即显示哪些工具条。

文件格式和例子为:

[窗口初始位置]

0 0 1024 768

[工具条初始设置]

工具条采用WORD风格(y/n)= n

工具栏图标(on/off)= on

文件工具条(on/off)= on

调色板工具条(on/off)= off

窗口工具条(on/off)= off

线条编辑工具条(on/off)= off

符号编辑工具条(on/off)= off

格点编辑工具条(on/off)= off

等值线工具条(on/off)= off

其中窗口初始位置4个数全为0时,表示取全屏幕。

除直接编辑修改外,本文件可以通过micaps20.exe的菜单的“选项”->“工具条设置”项,交互式地修改。

数据库配置文件:db.cfg。该文件的格式和用途已在2·4节描述过了。

显示页初始化文件:micaps_0.cfg到micaps_3.cfg。它们分别对应4个显示页。指定每个显示页初始的状态。文件格式和例子为:

文件检索起始目录: C:\micapsdata\high\height\500\01051420.000

综合图文件检索起始目录: c:\micaps20\combine\*.*

县界文件检索起始目录: C:\micaps20\province\*.*

区域文件检索起始目录: C:\micaps20\regions\北京地区

河流文件检索起始目录: C:\micaps20\river\*.*

地形综合图检索起始目录: C:\micaps20\topography

调色板文件检索起始目录: C:\micaps20\colormap

线条编辑结果保存起始目录: C:\micaps20\update\02060420.001

初始标准经纬度: 105 30

初始中心经纬度: 116.00 40.00

初始底图投影: 1

初始放大倍数: 2

初始放大方式: window

初始是否底图填色: yes

初始平滑算法: running_mean

锋面加锯齿: no

填充颜色数: 32

0 0 0 255

1 8 16 246

2 16 32 238

3 24 49 230

4 32 65 222

5 41 82 213

6 49 98 205

7 57 115 197

8 65 131 189

9 74 148 180

10 82 164 172

11 90 180 164

12 98 197 156

13 106 213 148

14 115 230 139

15 123 246 131

16 131 246 123

17 139 230 115

18 148 213 106

19 156 197 98

20 164 180 90

21 172 164 82

22 180 148 74

23 189 131 65

24 197 115 57

25 205 98 49

26 213 82 41

27 222 65 32

28 230 49 24

29 238 32 16

30 246 16 8

31 254 0 0

除直接编辑修改外,本文件可以通过micaps20.exe的菜单的“选项”->“初始值设置”项,交互式地修改。在哪个显示页中修改,则修改的就是该显示页对应的初始化文件。

显示页底图剪切配置文件:clip_0.cfg到clip_3.cfg。它们指定每个显示页底图的剪切范围,MICAPS将只显示剪切范围内的图形,剪切范围外的图形将不被显示。

这些文件并不一定存在,当某页底图不做剪切时,相应的文件就不存在。文件的格式为:

格式1 : 0 经度差 最小纬度 最大纬度

格式2 : 剪切线的点数 第一点经度 第一点纬度 …………

在格式1中,剪切范围是一个经纬度范围。剪切的最小经度为标准经度减经度差,最大经度为标准经度加经度差。

在格式2中,剪切范围是文件中指定剪切线内部的区域,剪切线必须是闭合的。

例子数据为:

0 180.000000 -90.000000 90.000000

除直接编辑修改外,本文件可以通过micaps20.exe的菜单的“选项”->“初始值设置”项,交互式地修改。在哪个显示页中修改,则修改的就是该显示页对应的剪切配置文件。

显示页底图颜色配置文件:mapcolor.0到mapcolor.3。这些文件指定了每个显示页底图的海洋和陆地的填充颜色。格式为:

海洋颜色 陆地颜色

这些颜色均为十六进制数,由3个字节组成,从左到右分别对应兰色、绿色和红色分量。

本文件很少直接编辑修改,一般是通过micaps20.exe的菜单的“底图”->“底图填色”项,交互式地修改。在哪个显示页中修改,则修改的就是该显示页对应的配置文件。

外部程序配置文件:product.dat。指定外部程序及参数。其格式与第一版的完全兼容。本文件除直接编辑修改外,还可以通过micaps20.exe的菜单的“外部程序”->“外部程序管理器”项,交互式地修改。

3·1·2 显示格式配置

图形显示格式配置文件,包括:

SurfacePlot.cfg —— 地面填图

HighPlot.cfg ———— 高空填图

Plot.cfg —————— 通用站点标量填图

Isoline.cfg ————— 等值线图

Typhoon.cfg ————— 台风路径

CityPlot.cfg ————— 城市预报填图

Streamline.cfg ———— 流线

Palette.cfg ————— 云图调色板

这些文件指定了各种图形显示的格式。这些文件一般都是通过图形显示的特征设置功能来修改的。参见“用户手册”的有关内容。

3·2 一维显示系统

一维显示系统运行如下程序:micaps1d.exe 。

3·2·1 程序初始化配置

系统初始化文件:micaps1d.cfg。本文件指定MICAPS一维显示的初始化参数。

文件格式和例子为:

c:\micaps20\*.* ———— 文件检索初始目录

c:\micaps20\*.* ———— 综合图检索初始目录

16 ———— 图形颜色数

0 0 255 ———— 第一个图形颜色的RGB分量

255 0 0 ———— 第二个图形颜色的RGB分量

0 127 0

0 0 0

127 0 0

255 0 0

0 0 255

255 0 0

0 0 255

255 0 0

0 0 0

0 0 255

255 0 0

0 255 127

0 127 255

127 0 255

其中各图形颜色按图形调入的顺序指定该图形显示的颜色。

3·3 三维显示系统

三维显示系统运行如下程序:micaps3d.bat 。三维显示系统的程序和参数都在MICAPS工作目录下的micaps3d子目录下,实际运行程序为3d.exe。三维显示系统是用IDL软件开发的,是与MICAPS其它系统相对独立的系统。其说明暂略。

3·4 组件管理

MICAPS系统采用了核心程序加组件的结构,因此组件管理很重要。组件管理可以通过组件管理程序来进行,也可以手工进行。

3·4·1 手工管理组件

组件是由一个DLL和4个控件组成。

手工管理组件方法如下。

1、添加DLL。对应三个组件的DLL文件都在MICAPS工作目录下,文件名为:

ReadFile.dll —— 第一个组件用于读文件的DLL

ReadDb.dll —— 第一个组件用于读数据库的DLL

ReadData1.dll —— 第二个组件读数据的DLL

ReadData2.dll —— 第三个组件读数据的DLL

要添加使用某个组件的DLL,只要把该组件的DLL拷贝到MICAPS的工作目录下,覆盖原有的DLL即可。拷贝时要注意该组件要作为第几个组件使用,拷贝与其相应的文件,不要拷贝所有的文件。同时还要注意把相关的配置文件等拷贝到MICAPS的工作目录下。

2、添加控件。MICAPS安装时,所有组件的控件都已经在同一个目录中被注册。当前的测试版中,该目录为

c:\program files\micaps20\groupcontrols

要添加使用某个组件中的控件时,只要把该组件的控件文件拷贝到上述目录下,覆盖原有的控件文件即可。拷贝时要注意该组件要作为第几个组件使用,拷贝与其相应的文件,不要拷贝所有的文件。同时还要注意把相关的配置文件等拷贝到MICAPS的工作目录下。各控件的文件名如下:

analysis.ocx —— 第一个组件的分析控件

analysis1.ocs —— 第二个组件的分析控件

analysis2.ocx —— 第三个组件的分析控件

assistant.ocx —— 第一个组件的辅助图表控件

assistant1.ocx —— 第二个组件的辅助图表控件

assistant2.ocx —— 第三个组件的辅助图表控件

geoinfor.ocx —— 第一个组件的地理信息控件

geoinfor1.ocx —— 第二个组件的地理信息控件

geoinfor2.ocx —— 第三个组件的地理信息控件

getdata.ocx —— 第一个组件的参数检索控件

getdata1.ocx —— 第二个组件的参数检索控件

getdata2.ocx —— 第三个组件的参数检索控件

3、删除组件。在MICAPS工作目录下有一个groups子目录,在该目录下有一个none子目录。在该子目录下所有的DLL和控件都是空壳程序。因此要删除某个组件的某个DLL或控件,只要把该目录下的对应文件拷贝到原有文件的目录中,覆盖原有文件即可。

3·4·2 组件管理程序

组件管理也可以通过组件管理程序来交互地实现。

组件管理系统运行如下程序:GroupSetup.exe 。

组件配置文件:group.cfg。本文件记录了当前系统安装的组件的参数。

文件格式为:

控件注册目录

第一个组件名称 第一个组件程序所在目录

第二个组件名称 第二个组件程序所在目录

第三个组件名称 第三个组件程序所在目录

其中控件注册目录是MICAPS安装时所有组件的控件在哪个目录中被注册。目前测试版是在

c:\program files\micaps20\groupcontrols

目录下。

MICAPS可以同时安装三个组件。组件名称是组件安装是人为给组件起的名称。组件所在目录是该组件所有的分量(包括DLL和控件程序等)所在的目录。当没有组件时名称和目录都为0。

组件配置文件的例子:

c:\groupcontrols

中短期 c:\micaps20\groups\zdq

0 0

0 0

在此文件中,所有组件的控件都是在c:\groupcontrols目录下注册的。只安装了一个中短期组件,第二和第三个组件都没有。

组件配置文件是由组件管理程序修改的,一般不要人工修改。

组件管理程序的使用:

运行GroupSetup.exe程序,将弹出组件管理窗口:

在窗口上方为已安装组件名称的列表。

删除组件:在列表中选择某个已安装的组件的名称,然后选择“删除”按钮,可以删除该组件。

添加组件:在列表中选择某个没有组件的位置(暂无组件),在新组件名称编辑框中输入要添加的组件的名称,在新组件目录中输入要添加的组件所在的目录,最后选择“添加“按钮,即可添加新的组件。

第四章

中短期组件的配置

中短期组件包括了一个动态连接库(DLL)和参数检索、辅助图表和分析工具三个控件。由于在核心系统中已包含了基本的地理信息,因此不需要地理信息控件。

如前所述,如果中短期组件作为第一个组件,则可以使用读文件和读数据库两个DLL。如果不作为第一个组件,则只能使用读文件的DLL。

MICAPS安装以后,中短期组件的所有程序和配置文件都在MICAPS工作目录下的groups\zdq子目录下。

要使用中短期组件,所有的配置文件都必须拷贝到MICAPS的工作目录下。如果要把中短期组件作为第一个组件使用,则必须把ReadFile.dll、ReadDb.dll拷贝到MICAPS工作目录下,把analysis.ocx、assistant.ocx和getdata.ocx拷贝到控件注册的目录下;如果要把中短期组件作为第二个组件使用,则必须把ReadData1.dll拷贝到MICAPS工作目录下,把analysis1.ocx、assistant1.ocx和getdata1.ocx拷贝到控件注册的目录下;如果要把中短期组件作为第三个组件使用,则必须把ReadData2.dll拷贝到MICAPS工作目录下,把analysis2.ocx、assistant2.ocx和getdata2.ocx拷贝到控件注册的目录下。

下面说明中短期组件的各配置文件的格式和用途。

4·1 9210数据库检索辅助文件

为了连接9210数据库,ReadDb.dll使用了一个数据库接口动态连接库LibUI.dll。

为了实现数据库的翻页检索,使用了一个数据时间特征的文件:datatime.cfg。文件格式为:

第一种数据的代码 第一种数据的时次间隔 第一种数据的最大时次或时效

第二种数据的代码 第二种数据的时次间隔 第二种数据的最大时次或时效

……………………………………………………

例子:

surface 3 23

high 12 20

ecmwf 24 144

japan 24 72

kwbc 24 72

用户可以根据数据变化情况修改此文件。

4·2 参数检索配置

参数检索控件对每类数据都有一个配置文件,控制参数检索窗口显示的内容。用户可修改这些文件,改变参数检索窗口的内容。

下面对每类数据介绍其配置文件。

4·2·1 地面数据检索

配置文件名为:surface.dat。

格式例子为:

20

地面填图 surface\plot

1

等压线 surface\p0

4

等温线 surface\t0

4

等露点线 surface\td

4

6小时降水量线surface\r6

4

5点24小时降水量线surface\r24-5

4

8点24小时降水量线surface\r24-8

4

流线

surface\uv

11

全风速等值线

surface\vv

4

气压填图

surface\p0-p

3

气温填图

surface\t0-p

3

露点填图

surface\td-p

3

最高气温填图

surface\tmax-p3

最低气温填图

surface\tmin-p3

6小时降水量填图surface\r6-p

3

5点24小时降水量填图surface\r24-5-p3

8点24小时降水量填图surface\r24-8-p3

3小时变压填图

surface\p3-p

3

24小时变压填图 surface\p24-p

3

24小时变温填图 surface\t24-p

3

第一行为数据总数。以后每行对应一个数据,包括数据名称、数据目录、数据类型。注意,要使用数据库检索某个数据时,其数据类型前必须加负号。

4·2·2 高空数据检索

配置文件名为:upper.dat。

格式例子为:

14

高空填图

high\plot

-2

等高线

high\height

4

等温线

high\temper

4

等温度露点差线

high\t-td

4

等全风速线

high\vv

4

流线

high\uv

11

高度填图

high\height-p

3

温度填图

high\temper-p

3

温度露点差填图

high\t-td-p

3

风场填图

high\wind

2

全风速填图

high\vv-p

3

24小时变高填图 high\dh-p

3

24小时变温填图 high\dt-p

3

探空和剖面

high\tlogp

5

格式与前相同。可以看到“高空填图”设置为使用数据库检索。

4·2·3 欧洲、日本数据检索

配置文件名为:ecmwf.dat和japan.dat。

格式与前面相同。

4·2·4 T213数据检索

配置文件名为:t213.dat。

格式例子为:

14

高度等值线t213\height

0

4

温度等值线t213\temper

0

4

T-TD等值线 t213\t-td

04

气压等值线t213\pressure

04

流线

t213\uv

011

高度填图t213\height-p

03

气压填图t213\press-p

03

温度填图t213\temper-p

03

风场填图t213\wind

02

12小时降水量填图 t213\rain-p0

3

K指数填图 t213\ki-p

0

3

垂直速度等值线

t213\wp

04

垂直速度填图

t213\wp-p

03

探空图

t213\t-logp

0

5

16

无层次

NO

地面

999

1000Hpa 1000

975Hpa

975

950Hpa

950

925Hpa

925

850Hpa

850

700Hpa

700

600Hpa

600

500Hpa

500

400Hpa

400

300Hpa

300

250Hpa

250

200Hpa

200

150Hpa

150

100Hpa

100

15

0

6

12

18

24

30

36

42

48

60

72

96

120

144

168

开始为要素数。以后每行对应一个要素,包括要素名称、数据目录、时间转换指示码和数据类型。其中时间转换指示码表示数据文件名中是否使用的是世界时,如果是则为1,表示要进行时区的转换,否则为0。

要素后面为层次数。以后每行对应一个层次,包括层次名称、层次目录。

层次后面为时效数。以后为各时效的名称。

4·2·5 mm5数据检索

配置文件名为:mm5.dat。

格式例子为:

17

每小时降水量填图 mm5qh\hrain-p

03

3小时降水量填图 mm5qh\rain-p1

3

6小时降水量填图 mm5qh\rain6-p1

3

12小时降水量填图 mm5qh\rain12-p13

温度填图mm5qh\temper-p

13

风场填图mm5qh\wind

12

K指数填图 mm5qh\ki-p

1

3

探空图

mm5qh\t-logp

0

5

流线

mm5qh\uv

111

垂直速度等值线

mm5qh\ww

114

垂直速度填图

mm5qh\ww-p

13

高度填图mm5qh\height-p

13

气压填图mm5qh\press-p

13

高度等值线mm5qh\height

1

14

温度等值线mm5qh\temper

1

14

T-TD等值线 mm5qh\t-td

114

气压等值线mm5qh\pressure

114

11

无层次

NO

地表面

tbg

2米

2

10米

10

1000Hpa1000

975Hpa

975

950Hpa

950

925Hpa

925

850Hpa

850

700Hpa

700

500Hpa

500

开始为要素数。以后每行对应一个要素,包括要素名称、数据目录、时间转换指示码和数据类型。其中时间转换指示码表示数据文件名中是否使用的是世界时,如果是则为1,表示要进行时区的转换,否则为0。

要素后面为层次数。以后每行对应一个层次,包括层次名称、层次目录。

4·2·6 云图数据检索

配置文件名为:cloud.dat。

格式例子为:

2

日本GMS5

cloud

风云2B fy2

3

红外

ir

可见光

vis

水汽

vapour

2

兰勃托

l

麦开托

m

开始为云图种类数,以后每行对应一种云图,包括云图名称和数据目录。后面为通道数,以后每行对应一个通道,包括通道名称和目录。后面为投影数,以后每行对应一种投影,包括投影名称和目录。

4·2·7 台风数据检索

配置文件名为:typhoon.dat。

格式例子为:

1

北京 typhoon\babj

开始为发报中心数,以后每行对应一个发报中心,包括发报中心名称和目录及文件名的前4个字符(typhoon\babj)。

4·2·8 传真数据检索

配置文件名为:fax.dat。

格式例子为:

1

08点JFXFE572

fax\jfxfe572.bi0

开始为传真图数,以后每行对应一个传真图,包括传真图名称和目录及文件名。

4·2·9 常用综合图检索

配置文件名为:retrlogi.dat。

格式例子为:

综合图

45

系统缺省调色板 c:\micaps\code\colormap.dat

云图调色板-1 c:\micaps\colormap\colormap.001

云图调色板-2 c:\micaps\colormap\colormap.002

云图调色板-3 c:\micaps\colormap\colormap.003

云图调色板-4 c:\micaps\colormap\colormap.004

云图调色板-5 c:\micaps\colormap\colormap.005

云图调色板-6 c:\micaps\colormap\colormap.006

云图调色板-7 c:\micaps\colormap\colormap.007

地形图调色板-8 c:\micaps\colormap\colormap.008

地形图调色板-9 c:\micaps\colormap\colormap.009

地形图调色板-10 c:\micaps\colormap\colormap.010

地形图调色板-11 c:\micaps\colormap\colormap.011

地形图调色板-12 c:\micaps\colormap\colormap.012

VIS云图调色板-13 c:\micaps\colormap\colormap.013

雷达拼图调色板-14 c:\micaps\colormap\colormap.014

地形图调色板-15 c:\micaps\colormap\colormap.015

填充图调色板-16 c:\micaps\colormap\colormap.016

黄河长江 c:\micaps\map\river\river.dat

北部河流 c:\micaps\map\river\river21

南部河流 c:\micaps\map\river\river22

站点信息 c:\micaps\inform\stations.dat

预报站点 c:\micaps\statable\station.12

T-极射赤面投影 c:\micaps\code\bbqmapxy.dat

T-兰勃脱投影 c:\micaps\code\lambertm.dat

T-麦卡特投影 c:\micaps\code\mecatorm.dat

T-经纬线性投影 c:\micaps\code\linearma.dat

P-中国地形图 c:\micaps\combine\bchina.zht

P-北半球地形图 c:\micaps\combine\ball.zht

L-中国地形图 c:\micaps\combine\lchina.zht

M-海区地形图 c:\micaps\combine\mall.zht

L红外卫星云图 c:\micaps\combine\satirl.zht

L可见卫星云图 c:\micaps\combine\satvisl.zht

M红外卫星云图 c:\micaps\combine\satirm.zht

M可见卫星云图 c:\micaps\combine\satvism.zht

雷达拼图 c:\micaps\combine\radar.zht

地面天气图 c:\micaps\combine\surface.zht

500百帕天气图 c:\micaps\combine\h500.zht

700百帕天气图 c:\micaps\combine\h700.zht

850百帕天气图 c:\micaps\combine\h850.zht

温度对数压力图 c:\micaps\combine\tlogp.zht

T106数值预报 c:\micaps\combine\t106.zht

HLAFS数值预报 c:\micaps\combine\hlafs.zht

欧洲数值预报 c:\micaps\combine\ecmwf.zht

日本数值预报 c:\micaps\combine\japan.zht

华盛顿数值预报 c:\micaps\combine\kwbc.zht

这是为与第一版兼容设置的综合图检索方式。格式与传真相似,只是在文件开始增加了一个说明(综合图)。

第五章

新的二次开发功能

MICAPS第二版的二次开发与第一版完全兼容。即第一版使用的带参数启动、包装、数据接口、外部程序、操作记录文件等功能在第二版中均可继续使用。

此外第二版还增加了动态连接库和控件的高级二次开发功能。下面详细介绍这些功能。

5·1动态连接库

在MICAPS中预设了1个动态连接库,用于数据输入。数据输入DLL的具体说明如下:

5·1·1 文件名

数据输入DLL的文件名为:

ReadData.dll、ReadDb.dll —— 第一个组件

ReadData1.dll —— 第二个组件

ReadData2.dll —— 第三个组件

要使用这些文件必须将其拷贝到MICAPS的工作目录下。

5·1·2 输出函数名

要被核心程序引用的函数必须在.def文件的输出列表中。输出的函数名为ReadData、SearchDataByTime和SearchDataByLevel。函数ReadData返回类型必须为BOOL,其它均为int。各函数详述如下:

5·1·3函数ReadData

用于读取数据。它包括五个参数,具体说明如下:

第一个参数的类型为短整数数组,即short *。该数组第一个元素是输入参数,指定数据的类型,即要检索的数据是MICAPS的第几类数据。当使用MICAPS文件系统时,函数读文件后应将其数据类型与本参数进行比较,如果不一致则应返回FALSE。当使用其它文件系统或数据库时,不用比较,本参数的作用是告诉MICAPS核心程序,当数据返回后用何种数据类型显示该数据。本参数数组的其他元素均为返回参数,用于对检索到的数据做补充说明可自行定义。但当检索的是传真图数据(第6类数据)时,返回的第2个元素必须为传真图的列数。当检索的是图象数据(第13类数据)时,则返回的第2个元素必须为图象在X方向的点数,第3个元素为Y方向的点数,第4个元素为图象中心经度乘以100的整数,第5个元素为图象中心纬度乘以100的整数。

第二个参数是输入的字符串,指定数据路径。当使用文件系统时,该参数为文件路径和文件名。当使用数据库时,则可根据数据库的结构将检索数据需要的库、表、属性等信息编成一个字符串放入本参数。但此时在本函数中应该有解析这个字符串,恢复库、表、属性等信息的语句。MICAPS核心程序一般情况下不处理本参数,只有在文件检索时核心程序才处理本参数,此时核心程序从打开文件对话框中获取文件路径和文件名,然后赋给本参数。在其它情况下,核心程序对本参数无任何操作,只起传递本参数的作用。例如在参数检索时,数据路径是由参数检索控件(见后面的说明)生成的,核心程序只是将控件生成的字符串直接赋给本参数。在翻页、动画或改变层次时,数据路径也是由本DLL的后面两个函数生成的,核心程序直接将生成的字符串赋给本参数。因此,本参数的字符串如何编制和解析完全由MICAPS的二次开发者自行决定,与核心程序无关。但若要保留核心程序的文件检索功能,则应保留例子程序中与文件检索有关的语句。

第三个参数是输出的字符串,返回读到数据的说明字符串。当本程序检索到的数据图形被显示在MICAPS窗口内时,该字符串将被显示在MICAPS的显示设置窗口中,使用户知道当前窗口内显示的是什么图。当使用MICAPS文件系统时,说明字符串已经在数据文件的文件头中,可直接使用。当使用其它文件系统或数据库时,则应在本函数中产生该说明字符串。

第四个参数是一个浮点数组,即float *。用于返回检索到的数据。对不同的MICAPS数据类型,该数组返回数据的格式和顺序都不同(参见附录),是非常复杂的。

整个函数当数据检索成功时,返回TRUE,否则返回FALSE。

第五个参数为一个长整数,是第四个参数浮点数组的字节数。

5·1·4 函数SearchDataByTime

用于根据输入参数查找另一个时次的数据,例如前后翻页和动画等。其参数有四个,说明如下:

第一个参数是输入的字符串,指明当前数据的数据路径,其意义与上一个函数中的第二个参数一样。这个参数实际上限定了数据的查找范围及查找的起始时间。在提供的例子程序中,这个参数只能接受MICAPS标准的数据文件名,即文件名必须是YYMMDDHH.TTT,其中YY为年、MM为月、DD为日、HH为时、TTT为时效。

第二个参数输入的长整数,指明要查找的数据的时间。其意义规定如下:当本参数为YYMMDDHH(YY为年、MM为月、DD为日、HH为时)时,函数查找与给定的年月日时相同的数据(不考虑时效);当本参数为大于0,同时小于10000的整数时,本函数将其认为是时效,此时本函数应查找年月日时与从第一个参数得到的当前数据的年月日时相同,且时效与本参数相同的数据;当本参数等于0时,本函数应查找比从第一个参数得到的当前数据的年月日时晚一个时次的数据,但当第一个参数给定的是预报数据(时效可能大于0)时,应查找年月日时与从第一个参数得到的当前数据的年月日时相同,而时效比第一个参数给定数据的时效长一个时效的数据;当本参数等于-1时,本函数应查找比从第一个参数得到的当前数据的年月日时早一个时次的数据,但当第一个参数给定的是预报数据(时效可能大于0)时,应查找年月日时与从第一个参数得到的当前数据的年月日时相同,而时效比第一个参数给定数据的时效短一个时效的数据;当本参数等于-2时,则查找年月日时为最新的数据;当本参数等于-3时,则查找年月日时与当前相同但时效为最新的数据。当修改本函数时,一定要注意满足上面对本参数的规定。

第三个参数是一个字符串,用于返回查找到的数据的数据路径。

第四个参数为一个长整数指针,用于返回查找到的数据的时间。对非预报数据返回年月日时,对预报数据则返回时效。

整个函数返回查找到的新数据的个数。查找成功时返回1,否则返回0。

5·1·5 函数SearchDataByLevel

用于根据输入参数查找另一个层次的数据。其参数有四个,说明如下:

第一个参数是输入的字符串,指明当前数据的数据路径,其意义与上一个函数中的第一个参数一样。这个参数实际上限定了数据的查找范围及查找的起始时间。

第二个参数输入的整数,指明要查找的数据的层次。其意义规定如下:当本参数为大于0的整数时,本函数将其认为是层次,此时本函数应查找时间与从第一个参数得到的当前数据的时间相同,且层次与本参数相同的数据;当本参数等于0时,本函数应查找与从第一个参数得到的当前数据的年月日时相同,但层次比其高一层的数据;当本参数等于-1时,本函数应查找与从第一个参数得到的当前数据的年月日时相同,但层次比其低一层的数据。当修改本函数时,一定要注意满足上面对本参数的规定。

第三个参数是一个字符串,用于返回查找到的数据的数据路径。

第四个参数为一个整数指针,用于返回查找到的数据的层次。

整个函数返回查找到的新数据的个数。查找成功时返回1,否则返回0。

5·2 ACTIVE X控件

在MICAPS中预设了4个ACTIVE X控件,一个用于数据的参数检索,一个用于调用辅助图表,一个用于调用分析工具,一个用于调用地理信息。所有控件都必须放到MICAPS安装时注册的目录下,因为核心程序只使用该目录下的控件。如果放在其它的目录下,则必须重新注册。

ACTIVE X控件的优点是除了可以象DLL一样修改内部程序外,还可以修改控件的窗口界面。但控件所有的消息和外部程序均不能修改。

MICAPS第二版核心程序设计为可以同时支持三个组件,因此下述每个控件都可以同时有三个版本。核心程序在弹出该控件的窗口时将同时并列弹出三个版本的窗口。三个版本使用三个不同的文件名,每个文件都必须放到MICAPS安装时注册目录下。

5·2·1 参数检索控件

在MICAPS基础版提供了中短期组件的参数检索控件作为例子。本控件有2个外部程序和1个外部消息。

5·2·1·1 文件名

参数检索控件的文件名为:GetData.ocx、GetData1.ocx、GetData2.ocx。

5·2·1·2 外部程序

控件中有两个外部程序:

ControlSize(short *x, short *y, short *w, short *h) 其中参数x返回显示控件时左上角的X坐标,y返回显示控件时左上角的Y坐标,w返回控件的宽度,h返回控件的高度。核心程序通过调用此函数获取控件的尺寸,以确定控件的显示位置。二次开发时,修改本函数的返回值可改变控件的显示位置。

ReadData(short *type,short *DataPath,short *inform,float *data) 其中参数type为短整数数组,第一个元素返回获取的数据的MICAPS数据类型,即指定核心程序以何种MICAPS数据类型显示该数据。后面的元素返回数据检索的一些参数,与核心程序无关,但以后当执行动画、翻页等操作时,这些参数将被核心程序传到数据输入DLL的相应程序,以检索新的数据。参数DataPath为短整数数组,其各元素对应数据路径的字符串中每个字符的ASCII码,字符串以-1结尾。数据路径的意义见DLL中的说明。参数inform为短整数数组,其各元素对应数据说明的字符串中各字符的ASCII码,字符串以-1结尾。参数data为浮点数组,返回读取的数据,其格式与前面的DLL中的data一样,在本控件的例子程序中是直接调用前面的DLL程序读取数据的。

5·2·1·3 外部消息:

ReadDataFromControl:通知核心程序调用控件的ReadData函数读取数据。

5·2·2 辅助图表控件

在MICAPS基础版提供了中短期组件的辅助图表控件作为例子。本控件有6个外部程序和1个外部消息。

5·2·2·1文件名

辅助图表控件的文件名为:Assistant.ocx、Assistant1.ocx、Assistant2.ocx。

5·2·2·2 外部程序

有六个外部程序:

ControlSize(short *x, short *y, short *w, short *h) 各参数意义与上一个控件相同。核心程序通过调用此函数获取控件的位置和尺寸,以确定控件的显示位置。

AssistantType(short * AssistanType, short * DataType) 其中AssistantType返回辅助图表的类型,该参数为1表示要用户选择一个点,为2表示要用户选择一条线。DataType返回该辅助图表所需要的MICAPS数据类型。

GetPoint(short x, short y, float longitude, float latitude, short * DataPath, float * data) 其中参数x和y为核心程序选择的一点的屏幕坐标,longitude和latitude为该点的经纬度,DataPath为核心程序要分析的数据路径,data为核心程序传入的底图参数,data数组各元素按顺序分别为:屏幕相对坐标的最小X、最小Y、最大X、最大Y、屏幕逻辑坐标的最小X、最小Y、最大X、最大Y、与底图投影有关的参数和标准经度。有了这些参数就可以调用例子程序提供的投影和反投影函数project和reverseProject进行屏幕坐标和经纬度之间的转换。

GetLine(short x1, short y1, short x2, short y2, float lon1, float lat1, float lon2, float lat2, short * DataPath, float * data) 其中参数x1,y1,x2,y2为核心程序选择的直线两端的屏幕坐标,lon1,lat1,lon2,lat2为直线两端的经纬度,DataPath为核心程序要分析的数据路径,data意义同上。

GetPolyline(short * x, short * y, float * longitude, float * latitude, short * DataPath, float * data) 其中参数x,y为短整数数组,为核心程序选择的折线上各点的屏幕坐标,longitude和latitude为浮点数组,为折线上各点的经纬度,DataPath为核心程序要分析的数据路径,data意义同上。

GetRectagleRegion(short x1, short y1, short x2, short y2, float lon1, float lat1, float lon2, float lat2, short * DataPath, float * data) 其中参数x1,y1,x2,y2为核心程序选择的矩形区域左上角和右下角的屏幕坐标,lon1,lat1,lon2,lat2为相应的经纬度,DataPath为核心程序要分析的数据的文件路径,data意义同上。

5·2·2·3 外部消息:

目前只设置了一个消息:SetAssistant。该消息无参数,功能是通知核心程序调用AssistantType程序获取选中的分析工具的类型和所需要的MICAPS数据类型。

5·2·3 分析工具控件

在MICAPS基础版中提供了中短期组件的分析工具控件作为例子。

5·2·3·1文件名

分析工具控件的文件名为:Analysis.ocx、Analysis1.ocx、Analysis2.ocx。

该控件功能很强大,共有29个消息和17个外部程序。

5·2·3·2 外部程序

控件的17个外部程序是:

1) void ControlSize(short *x, short *y, short *w, short *h) 各参数意义与上一个控件相同。核心程序通过调用此函数获取控件的位置和尺寸,以确定控件的显示位置。

2) void GetWindow(short x, short y, short dx, short dy, float *Parameters) 参数x,y是MICAPS窗口左上角坐标,dx,dy是窗口的宽和高,Parameters为其它参数(待定)。

3) void GetBackground(floatStandardLon, float rAlpha, float CenterLon, float CenterLat, short zoom, short xmin, short ymin, short xmax, short ymax, float xxmin, float yymin, float xxmax, float yymax, short *BackFile, BOOL BackFill) 参数StandardLon为标准经度,rAlpha为投影参数,CenterLon为中心经度,CenterLat为中心纬度,zoom为放大倍数,xmin, ymin, xmax, ymax为窗口逻辑坐标的最小X和Y及最大X和Y,xxmin, yymin, xxmax, yymax为相对坐标的最小X和Y及最大X和Y,BackFile数组为底图文件名,BackFill为底图是否填色的标志。

4) void GetColormap(short ColorNumber, short *index, short *rr, short *gg, short *bb, short *ColorFile) 参数ColorNumber为颜色数,index数组为各颜色的索引值,rr, gg, bb数组为各颜色的红、绿、蓝分量,ColorFile为调色板文件名。

5) void GetDisplaySetting( short DataNumber, short *DataName, short *DataPath, short *DataType, short *status, BOOL *select) 参数DataNumber为当前MICAPS窗口内显示的图形数,数组DataName为每个显示的图形说明,数组DataPath为每个显示的图形数据的数据路径,数组DataType为每个显示数据的MICAPS类型,数组status为每个显示图形的当前状态,数组select为每个显示图形当前是否被选择。其中DataName和DataPath均为把字符串数组变为整数的一维数组,数组中每个元素对应字符串中一个字符的ASCII码,每个字符串结束时数组元素为-1。

6) void GetFlags( short n, short *FlagID, short *Flags) 参数n为标志数,数组FlagID为各标志的代码,数组Flags为各标志的值。FlagID的值为:0表示Flags中的值为当前窗口是单屏显示还是4分屏显示,Flags的值为1表示为单屏显示,4表示为4分屏显示;1表示Flags中的值为当前活动窗口的序号;2表示Flags中的值为当前等值线的平滑方式,Flags为0表示不平滑,1表示样条平滑,2表示抹角平滑;3表示Flags中的值指示当前的放大方式,Flags为1时表示拉窗放大,2表示鼠标放大。

7) void ReadData(short *type, short *DataPath, short *inform, float *data) 此函数与GetData控件中的相应函数相同。

8) void TakeMouseMove(short nFlags, short x, short y, float lon, float lat, short rr, short gg, short bb) 参数nFlags为鼠标状态,其意义与MFC中OnMouseMove函数的第一个参数一致,x为鼠标当前的X坐标,y为鼠标当前的Y坐标,lon为鼠标当前位置的经度,lat为鼠标当前位置的纬度,rr, gg, bb为鼠标当前位置颜色的红、绿、蓝分量。

9) void TakePoint(short n, short FAR* x, short FAR* y, float FAR* lon, float FAR* lat, short FAR* rr, short FAR* gg, short FAR* bb, short FAR* DataPath, float FAR* Parameters) 参数n为点数,数组x为各点的X坐标,数组y为各点的Y坐标,数组lon为各点的经度,数组lat为各点的纬度,数组rr, gg, bb为格点颜色的红、绿、蓝分量,数组DataPath为当前处于分析状态的数据的数据路径(每个数组元素对应数据路径字符串中的一个字符,最后以-1结尾),数组 Parameters为底图参数等其它参数。

10) void TakeLine(short n, short FAR* x1, short FAR* y1, short FAR* x2, short FAR* y2, float FAR* lon1, float FAR* lat1, float FAR* lon2, float FAR* lat2, short FAR* DataPath, float FAR* parameters) 参数n为直线数,数组x1,y1,x2,y2为各直线的起始X、Y坐标和终止X、Y坐标,数组lon1,lat1,lon2,lat2为各直线起始点的经纬度和终止点的经纬度,数组DataPath为当前处于分析状态的数据的数据路径(每个数组元素对应数据路径字符串中的一个字符,最后以-1结尾),数组 Parameters为底图参数等其它参数。

11) void TakePolyline(short n, short FAR* x, short FAR* y, float FAR* lon, float FAR* lat, short FAR* DataPath, float FAR* parameters) 参数n为折线数,数组x,y为各折线顶点的X、Y坐标,先放第一条折线的坐标,然后放第二条折线的坐标,等等,每条折线的坐标之间以-1隔开,数组lon,lat为各折线顶点的经纬度,每条折线的经纬度之间以9999隔开,数组DataPath为当前处于分析状态的数据的数据路径(每个数组元素对应数据路径字符串中的一个字符,最后以-1结尾),数组 Parameters为底图参数等其它参数。

12) void TakePolygon(short n, short FAR* x, short FAR* y, float FAR* lon, float FAR* lat, short FAR* DataPath, float FAR* parameters) 参数n为多边形数,数组x,y为各多边形顶点的X、Y坐标,每条多边形的坐标之间以-1隔开,数组lon,lat为各多边形顶点的经纬度,每条多边形的经纬度之间以9999隔开,数组DataPath为当前处于分析状态的数据的数据路径(每个数组元素对应数据路径字符串中的一个字符,最后以-1结尾),数组 Parameters为底图参数等其它参数。

13) void TakeRectangle(short n, short FAR* x1, short FAR* y1, short FAR* x2, short FAR* y2, float FAR* lon1, float FAR* lat1, float FAR* lon2, float FAR* lat2, short FAR* DataPath, float FAR* parameters) 参数n为矩形数,数组x1,y1,x2,y2为各矩形左上角X、Y坐标和右下角X、Y坐标,数组lon1,lat1,lon2,lat2为各矩形左上角的经纬度和右下角的经纬度,数组DataPath为当前处于分析状态的数据的数据路径(每个数组元素对应数据路径字符串中的一个字符,最后以-1结尾),数组 Parameters为底图参数等其它参数。

14) void TakeIsoLine(short n, float FAR* lon, float FAR* lat) 参数n为等值线数,数组lon和lat为等值线上各点的经纬度,各等值线经纬度之间用9999隔开,最后一条等值线以9999结尾以后,再以-9999结尾。

15) void TakeSymbolLine(short n, short FAR* SymbolLineID, float FAR* lon, float FAR* lat) 参数n为天气系统线条数,SymbolLineID为天气系统线条代码,数组lon和lat为各线条上各点的经纬度,各线条经纬度之间用9999隔开。天气系统线条代码定义如下:1—槽线,2—冷锋,4—暖锋,8—静止锋,16—锢囚锋,32—霜冻线,64—高温区线。

16) void TakeSymbols(short n, short FAR* SymbolID, float FAR* lon, float FAR* lat) 参数n为符号数,SymbolID为天气符号代码。数组lon和lat为各符号的经纬度。天气符号代码定义如下:1—晴,2—多云,3—阴,4—小雨,5—中雨,6—大雨,7—暴雨,8—阵雨,9—雨加雪,10—小雪,11—中雪,12—大雪,13—暴雪,14—阵雪,15—雷暴,16—冰雹,17—雨淞,18—冻雨,19—扬沙,20—沙暴,21—轻雾,22—雾,23—霜冻,24—静风,25—3、4级风,26—4、5级风,27—5、6级风,28—6、7级风,29—7、8级风,30—8、9级风,31—旋转风,32—台风。

17) void TakeSymbolRegion(short n, short FAR* SymbolRegionID, float FAR* lon, float FAR* lat) 参数n为天气区数,SymbolregionID为天气区代码,数组lon和lat为各天气区外围线上各点的经纬度,各外围线经纬度之间用9999隔开。天气区代码定义如下:1—雨区,2—雪区,4—雷暴区,8—雾区,16—大风区,32—沙暴区。

5·2·3·3 外部消息

29个消息是:(注意:若自己建立下面的控件消息时,一定要严格按照下面的先后顺序来建立,否则消息事件的ID码将改变,核心程序将无法响应这些消息)

1) ControlSize() 表示控件尺寸发生改变。核心程序将调用ControlSize函数重新计算该控件显示位置,并重新显示控件。

2) WantPoint(short n) 要用户在MICAPS窗口中选择n个点。核心程序将让用户输入n个点,然后调控件的TakePoint程序把这些点的参数告诉控件。

3) WantLine(short n) 要用户在MICAPS窗口中选择n条直线。核心程序将让用户输入n个直线,然后调控件的TakeLine程序把这些直线的参数告诉控件。

4) WantPolyline(short n) 要用户在MICAPS窗口中选择n条折线。核心程�