-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy path说明Fy4HDF5Dat类库.txt
42 lines (35 loc) · 8.55 KB
/
说明Fy4HDF5Dat类库.txt
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
大家好!
今年5月初,CMACast开始广播下发FY4号卫星扫描辐射计观测数据。其中成像仪数据包含1个500米分辨率可见光通道、3个1公里分辨率可见光通道、7个2公里分辨率可见光、近、中红外通道、14个4公里可见光、近、中、远红外通道的数据。大约15分钟即可完成一次观测循环,使我们得到的卫星数据空间、时间分辨率、光谱通道数得到革命性提高。一个小时的数据量可达4GB以上。如此巨大的高质量数据真正把我们气象工作者带进了国际气象行业的“富人”俱乐部。那么这些数据我们怎么用呢?怎么才能成为一个真正的富人而不是“土豪”呢?无疑要求我们必须定量使用、科学使用。可是FY4号卫星数据结构复杂、体量巨大,很多朋友从底层做起有很多障碍,如果投入过多精力势必转移了对气象本专业的关注,费神、费力。我通过近一段时间的努力,开发完成了FY4卫星成像仪数据应用类库,为庞大、繁杂的数据设计了一个调用接口,目前适应Windows系统.NET托管代码环境,使用.NET框架的朋友们可以直接引用、调用这个类库,从而大大简化、甚至不用再去关心具体的数据组织形式,可以更多、更快的集中精力在气象应用问题上。下面介绍这个类库及类库的主要成员和方法。
一、Fy4HDF5Dat.dll:Fy4卫星成像仪HDF数据类库说明。Fy4HDF5Dat.dll是主文件,他是.NET的托管动态链接库,因此在你的工程中直接添加引用就行了。对卫星成像仪数据操作的主要功能都在这个库中实现,同时,这个库也屏蔽了HDF5的很多复杂的概念、和操作,使得FY4成像仪数据调取变得更直接、简单。
1、新版(2019新年版)的这个纠正了以前老版(2018年7月—10月)中的个别错误以外(此前已经下载使用的朋友们,建议要改用这个新的,新版兼顾了老版中对类库方法的引用形式,无需另行修改程序),特别值得注意的是:
首先,增加了对提取数据算法的选择。此前的成像仪数据类库,在提取数据方面仅支持了公式换算值取整的算法,这次提供的新版类库增加支持了网格数据双线性插值算法。用户在调用这个类库时可根据应用目标自行选择提取数据的算法。
其次,增加了对成像仪观测数据伴随的、相对应的卫星天顶角、方位角,太阳天顶角、方位角以及阳光闪烁角等地理数据提取的支持。即:对于数据处理方面的应用而言,你得到观测数据的同时,相应点的卫星、太阳天顶角、方位角及这个点的阳光闪烁角也可同时一并得到。
第三,19新年版类库尽量多的支持了并行运算、直接寻址,从而大大提高了计算速度,特别对于多核处理器,19新年版类库的强劲动力表现的淋漓尽致,如果你是此前老版的用户,你将会在处理速度上获得令你耳目一新的体验。
2、数据类库的主要成员:
Fy4HDF5Dat.datSetsNum:HDF5文件内的单组/根组下数据集的个数。
Fy4HDF5Dat.datSetsNames:HDF5文件内的单组/根组下数据集们的名称。
Fy4HDF5Dat.ranks:HDF5文件内的单组/根组下数据集们的各自的维度数。
Fy4HDF5Dat.dims:HDF5文件内的单组/根组下数据集们的各自的维度的大小。
Fy4HDF5Dat.datColumn:HDF5文件内的单组/根组下数据集们的各自的数据,在维度是1或2时,其列数。
Fy4HDF5Dat.datRow:HDF5文件内的单组/根组下数据集们的各自的数据,在维度是1或2时,其行数。
Fy4HDF5Dat.typeNames:HDF5文件内的单组/根组下数据集们的各自的数据的数据类型。
Fy4HDF5Dat.cbAttributeLst:用于装载所有属性名和属性值的列表。
Fy4HDF5Dat.theFileName:Fy-4文件HDF5格式文件名。
Fy4HDF5Dat.bSucceed:用于表达本类实例化是否成功的标志。
Fy4HDF5Dat.strStatus:程序状态字符串,用于了解本类方法中发生的意外情况,以便调用者查找意外问题。
上述类成员主要是包装了HDF5格式文件中的需要关心的主要参数。
3、数据类库的主要方法:
Fy4HDF5Dat.Fy4HDF5Dat(string Fy4HDF5Filename):以HDF5格式文件实例化FY-4AHDF5格式的数据类(事实上可以用任何HDF5格式的单组文件来实例化,但类库的方法仅针对Fy4成像仪HDF5文件)。用户调用这个方法,只需要将文件名参数指向FY4成像仪HDF格式文件即可。包括指向成像仪数据文件和天顶角、方位角等地理数据文件。
Fy4HDF5Dat.GetaChannelWholeImg(ref bool bAddGrid, ref string datSetName, out Bitmap objBitmap):获取Fy-4某通道数据集全区域的灰度图像。当数据类被成功初始化后,调用这个方法将得到相应通道(dataSetName指向)的全区域标称投影灰度图像(是否带网格可选择)。
Fy4HDF5Dat.GetaChannelWholeDat(ref string datSetName, out int rowB, out int colB, out int rowE, out int colE, out int[,] arrGrays, out float[,] arrValues):获取Fy-4某通道数据集全区域的数据值。当数据类被成功初始化后,调用这个方法将得到相应通道(dataSetName指向)的全区域标称投影灰度数据和要素数据。
Fy4HDF5Dat.GetaPointValue(ref string datSetName, ref int iLat, ref int iLong, out int iGray, out int iBright, int iAlgorithem):获取给定经纬网格点对应的Fy-4卫星某个单一通道的图像灰度值和亮度温度值/反照率值,使用算法可选择。
Fy4HDF5Dat.GetaPointSet(ref int iLat, ref int iLon, out string[] nameChannel, out int[] aGray, out int[] aBright, int iAlgorithem):获取给定经纬网格点对应的Fy-4卫星所有数据通道图像灰度值值和亮度温度值/反照率值,使用算法可选择。
Fy4HDF5Dat.GetaChannelAreaData(ref string datChannel, ref int iLatB, ref int iLonB, ref int iLatE, ref int iLonE, ref int iStep, out int[,] grayRanks, out float[,] brightRanks, int iAlgorithem):获取Fy-4扫描仪某通道某区域的数据,包括灰度的数据和亮温数据,使用算法可选择。
Fy4HDF5Dat.GetaChannelAreaImage(ref string datChannel, ref int iLatB, ref int iLonB, ref int iLatE, ref int iLonE, ref int iStep, out Bitmap objBitmap, int iAlgorithm):获取Fy-4扫描仪某通道某区域的灰度图像,使用算法可选择。
Fy4HDF5Dat.GetZenithAzimuthGlint(ref int iLatB, ref int iLonB, ref int iLatE, ref int iLonE, ref int iStep, out float[][,] fZAG, int iAlgorithem):提取FY4卫星成像仪对相应经纬区域中观测经纬点的卫星、太阳天顶角、方位角及阳光闪烁角的数据,使用算法可选择。
二、Fy4卫星成像仪HDF数据类库Fy4HDF5Dat.dll的使用:Fy4HDF5Dat.dll极大地简化了对Fy4号卫星成像仪HDF5格式文件的操作,使我们可以专注于具体的数据处理。它的实质,是屏蔽了HDF5操作类的繁杂,把问题简化为比如:取某个通道某一个点的值,取某一个区域的图像等等直接的方式上。因此,使用这个Fy4HDF5Dat.dll动态链接库,要同时引用HDF5操作类库。那么他们包含这五个文件:HDF5DotNet.dll;hdf5_hldll.dll;hdf5dll.dll;szip.dll;和zlib.dll。这五个动态链接库是美国HDF网站上公开公布的HDF5数据函数库,它们提供了操作HDF5格式数据的众多普适的接口函数。因此,当你引用Fy4HDF5Dat.dll时,要把这五个文件一并拷贝进你打算引用的路径下,但在你的工程中引用时,则只需要引用Fy4HDF5Dat.dll和HDF5DotNet.dll这两个动态链接库即可。其它的链接是由这两个库自行链接的。
三、关于Fy4HDF5Dat.dll的引用示范:为了展示如何使用这个工具类库致力于您的项目,我编制了这个类库的测试程序,但随着时间的推移,我已经将这个类库的测试程序,改进成了一个“Fy4号卫星成像仪数据处理应用程序”。准备投入Fy4号卫星应用开发的同仁,可以参考这个测试程序的代码。测试程序的说明将在:说明Fy4ClassTest.txt文件中给出。
2018年07月01日(发布)——>22日(修订)——>08月07日(升级修订)——>09月07日(升级修订)——>10月02日(升级修订)——>
2019年01月02日(升级)
特别声明:未经许可,谢绝下载者传播或销售,作者保留追责权力。
欢迎质询、咨询、讨论、拍砖!电话:0991-2695070。QQ:591589408