本发明涉及动态编目,尤其涉及一种基于网络爬虫和接口测试策略的动态编目方法。
背景技术:
1、气象信息作为与人们的社会生产生活密切相关的服务,“东边日出西边雨”,在人们日益频繁出现活动,尤其是在当今网络发达的情况下,当前获取气象信息一般都是通过气象数据平台通过接口向用户提供数据,但是气象数据平台存在元数据不全且更新不及时的问题,为用户对数据的了解和使用带来了一定的障碍,需要进一步优化。
技术实现思路
1、鉴于此,本发明的目的在于提供一种基于网络爬虫和接口测试策略的动态编目方法,以解决或至少部分解决现有技术中所存在的上述问题。
2、为实现上述目的,本发明提供一种基于网络爬虫和接口测试策略的动态编目方法,所述方法包括以下步骤:
3、s101、利用时间点测试动态编目算法,通过多次接口测试,精确气象数据资料的起止时间至日级别;
4、s102、基于气象数据资料推断最终的气象数据的时间分辨率;
5、s103、基于气象数据资料确定气象数据的空间分辨率;
6、s104、基于气象数据资料识别气象数据的气象要素;
7、s105、基于步骤s101-s104,自动生成包含完整元数据的数据清单。
8、进一步的,所述精确气象数据资料的起止时间至日级别,包括以下步骤:
9、s11、初始化时间点列表:设定当前时间为t,即当前年份的1月1日0时;创建一个时间点列表t_list,包含从t往前50年的逐年时间点;
10、s12、执行接口测试:使用时间点列表t_list作为测试时间点,通过接口测试从气象大数据云平台下载气象数据资料;分析下载气象数据资料的时间列或包含时间的文件名;
11、s13、确定精确到年的起始时间:当下载的气象数据资料起始时间等于时间点列表t_list中的初始时间点,扩展时间点列表t_list,重复接口测试步骤;当下载的气象数据资料起始时间等于时间点列表t_list中的非初始时间点,确定气象数据资料的真实起始时间年份表示如下:
12、ts-1y
13、其中,ts表示为起始时间点,y表示为年数;
14、s14、确定精确到年的结束时间:当下载的气象数据资料的结束时间为te,真实结束时间表示如下:
15、te≤t0≤t1
16、其中,t0表示为真实结束时间,t1表示为当前时间;
17、当下载的气象数据资料的结束时间为时间点列表t_list中的时间点te,真实结束时间表示如下:
18、te≤t0≤te+1y
19、其中,te表示为结束时间,y表示为年数;
20、s15、确定精确至月份的起止时间:创建时间点列表测试并确定下载的气象数据资料的真实起始月份ts_m,表示如下:
21、[ts-1y+1m,ts-1y+2m,...,ts]
22、其中,m表示为月数,ts表示为起始时间;
23、通过测试时间列表确定下载的气象数据资料的真实结束月份te_m,表示如下:
24、[te,te+1m,...,te+1y]
25、其中,te表示为结束时间;
26、s16、确定精确至日的起止时间:采用时间点列表测试并精确下载的气象数据资料的真实起始日,表示如下:
27、[ts_m-31d,ts_m-30d,...,ts_m]
28、其中,d表示为天数;
29、通过测试时间列表,确定下载的气象数据资料的真实结束日,表示如下:
30、[te_m+1d,te_m+2d,...,te_m+31d]
31、其中,te_m表示为真实结束月份。
32、进一步的,所述推断最终的气象数据的时间分辨率,包括通过接口测试下载的气象数据资料的时间列或包含时间的文件名,推测数据的时间分辨率(dt1),结合气象数据资料名称中的时间信息,进一步推断气象数据的时间分辨率(dt2);
33、计算接口测试下载的气象数据资料的时间间隔,确定普遍的时间间隔(dt3);
34、将上述dt1、dt2、dt3进行结合,确定最终的气象数据的时间分辨率dt。
35、进一步的,所述确定气象数据的空间分辨率,包括:将通过接口测试下载的气象数据资料分为站点类型和格点类型;
36、对站点类型数据,统计一段时间内的平均站点数以确定空间分辨率;
37、对格点类型数据,读取文件并计算格点的经纬度间隔,确定空间分辨率。
38、进一步的,通过接口的要素参数,筛选并得到数据包含的气象要素列表;
39、利用网络爬虫技术,爬取资料介绍页面的中英对照要素列表;
40、将气象要素列表与通过网络爬虫技术爬取的中英对照要素列表进行结合,确定数据包含的所有气象要素。
41、进一步的,通过网络爬虫技术、动态编目算法获得气象数据资料的元数据,所述元数据在算法的过程中以pandas.dataframe的列的形式存在,把pandas.dataframe输出到csv文件或者excel文件,得到包含完整元数据的数据清单。
42、与现有技术相比,本发明的有益效果是:
43、本发明提出一种基于网络爬虫和接口测试策略的动态编目方法,能够自动推测气象大数据云平台的所有气象数据资料的元数据信息,包括起止时间、时间分辨率、空间分辨率、气象要素等,并生成实时动态更新的数据清单,节省了人力和时间,实时掌握气象大数据云平台上的气象数据情况。
1.一种基于网络爬虫和接口测试策略的动态编目方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的一种基于网络爬虫和接口测试策略的动态编目方法,其特征在于,所述精确气象数据资料的起止时间至日级别,包括以下步骤:
3.根据权利要求2所述的一种基于网络爬虫和接口测试策略的动态编目方法,其特征在于,所述推断最终的气象数据的时间分辨率,包括通过接口测试下载的气象数据资料的时间列或包含时间的文件名,推测气象数据的时间分辨率(dt1),结合气象数据资料名称中的时间信息,进一步推断气象数据的时间分辨率(dt2);
4.根据权利要求1所述的一种基于网络爬虫和接口测试策略的动态编目方法,其特征在于,所述确定气象数据的空间分辨率,包括:
5.根据权利要求1所述的一种基于网络爬虫和接口测试策略的动态编目方法,其特征在于,所述识别气象数据的气象要素,包括:
6.根据权利要求1所述的一种基于网络爬虫和接口测试策略的动态编目方法,其特征在于,所述自动生成包含完整元数据的数据清单,包括通过网络爬虫技术、动态编目算法获得气象数据资料的元数据,所述元数据在算法的过程中以pandas.dataframe的列的形式存在,把pandas.dataframe输出到csv文件或者excel文件,得到包含完整元数据的数据清单。