赞
踩
数据对于美赛E题的解答来说是非常重要的,然而也是建模之后最难的部分,数据查找的方法有很多,这里推荐比赛中用到的几个比较好用的数据网站。
在这个网站里可以查找到国家,省份的数据, 例如常见的人口密度,GDP,教育水平,医疗水平,保险收入和赔付都可以找到。如果只想用中国的数据解题,这个网站基本够用了.不过显示要会员才能免费,但是我当时是通过图书馆进入,然后注册后就可以免费使用了。所以如果遇到需要会员的情况的话,最好是通过学校图书馆进入这个网站,这样子数据都是免费的。
图示:
在这个网站里可以查找到各国家的数据, 例如常见的人口密度,GDP,灾难数据,而且都是免费的。下载的数据的格式是.csv文件格式,可以用来用地图,而且如果不会画也可以直接使用所给的图片(23年的E题有一篇O奖就是直接使用的),可以使论文看起来比较高级。
图示:
数据下载的地方:
这个网站的数据主要是国内的数据(也是免费的),国内的数据和"中经数据全站查"的数据差不多,但是如果"中经数据全站查"里找不到想要的数据,可以在这个网站试一试。除了国内的数据,还有一部分国际的数据,这个我也是后来发现的,可以找到各国国民经济,贸易等的数据,也是非常好用的。
图示:(搜索的时候直接搜加上对应的国家就可以跳到对应的国家界面)
这个网站也是各个国家的数据,主要有国民经济核算,生产,建筑及房地产业等数据,也是一个非常好的网站。
图示:
CRU TS 是目前使用最广泛的气候数据集之一,由英国国家大气科学中心 (NCAS) 制作。CRU TS 提供全球1901 年至 2020 年覆盖陆地表面的 0.5° 分辨率的月度数据。该数据集拥有基于近地表测量的10 套数据,分别是:温度(平均值、最小值、最大值和昼夜温差)、降水量(总量,雨天数)、湿度(如蒸气压)、霜天数、云量和潜在的蒸腾作用。气象的数据好难查找,比赛的时候气象的数据基本用的都是来源于这个网站。有个缺点就是这个数据需要处理才能提取出来用。
图示:
数据提取——将想要的目标数据从.nc文件转换为excel文件格式
- from netCDF4 import Dataset
- import numpy as np
- import pandas as pd
-
- # 定义NetCDF文件路径
- nc_file = 'cru_ts4.07.2021.2022.pre.dat.nc'
-
- # 打开NetCDF文件
- nc_data = Dataset(nc_file, 'r')
- print(nc_data.variables.keys()) # 查看文件所含的变量名
-
- # 假设降水变量名为'pre'
- precipitation_variable_name = 'pre'
-
- # 获取纬度和经度坐标
- lats = nc_data.variables['lat'][:]
- lons = nc_data.variables['lon'][:]
-
- # 获取时间维度
- time = nc_data.variables['time'][:]
-
- # 获取降水数据
- precipitation_data = nc_data.variables[precipitation_variable_name][:]
-
- # 关闭文件
- nc_data.close()
-
- # 定义日期
- dates = pd.to_datetime(time, origin='1900-01-01', unit='D')
- # 这句代码的作用是将从NetCDF文件中提取的时间数据转换为Pandas中的日期时间格式。
- # 具体来说:
- # pd.to_datetime() 是 Pandas 库中用于将一列数据转换为日期时间格式的函数。
- # time 是从 NetCDF 文件中提取的时间数据,以天为单位表示自 1900 年 1 月 1 日至今的天数。
- # origin='1900-01-01' 指定了日期的起始点,即基准日期为 1900 年 1 月 1 日。
- # unit='D' 表示时间数据的单位是天(Day)。
- # 因此,这行代码的作用是将从 NetCDF 文件中提取的时间数据转换为 Pandas 中的日期时间格式,以便后续在数据分析和可视化中进行更方便的处理和操作。
- locations = {
- 'United States': (39.8283, -98.5795),
- 'United Kingdom': (55.3781, -3.4360),
- 'China': (35, 105),
- 'India': (20, 78),
- 'Australia': (-25.2744, 133.7751),
- 'Germany': (51.1657, 10.4515),
- 'Canada': (56.1304, -106.3468),
- 'France': (46.6034, 1.8883),
- 'South Korea': (35.9078, 127.7669),
- 'Spain': (40.4637, -3.7492),
- 'Italy': (41.8719, 12.5674),
- 'Saudi Arabia': (23.8859, 45.0792),
- 'Japan': (36.2048, 138.2529),
- 'Mexico': (23.6345, -102.5528),
- 'Turkey': (38.9637, 35.2433),
- 'Russia': (61.5240, 105.3188),
- 'Argentina': (-38.4161, -63.6167),
- 'South Africa': (-30.5595, 22.9375),
- 'Iran': (32.4279, 53.6880),
- 'Egypt': (26.8206, 30.8025),
- 'Iraq': (33.2232, 43.6793),
- 'Brazil': (-14.2350, -51.9253),
- 'Malaysia': (4.2105, 101.9758),
- 'Pakistan': (30.3753, 69.3451),
- 'Vietnam': (14.0583, 108.2772),
- 'Philippines': (12.8797, 121.7740),
- 'Thailand': (15.8700, 100.9925),
- 'Nigeria': (9.0820, 8.6753),
- 'Bangladesh': (23.6850, 90.3563),
- 'Indonesia': (-0.7893, 113.9213)
- }
-
- data_dict = {'Date': dates}
- df = pd.DataFrame(data_dict)
-
- # Extract precipitation data for each location
- for location, (lat, lon) in locations.items():
- # Find the closest latitude and longitude indices
- lat_index = np.abs(lats - lat).argmin()
- lon_index = np.abs(lons - lon).argmin()
-
- try:
- # Add precipitation data to DataFrame
- df[location] = precipitation_data[:, lat_index, lon_index]
- except OverflowError as e:
- print(f"Error: {e}. Skipping location '{location}'.")
-
- # Save DataFrame to Excel file
- df.to_excel('all_data_1991_2020.xlsx', index=False)
CRU相关教程:
http://t.csdnimg.cn/4Og4nhttps://so.csdn.net/so/search?q=CRU%20TS&t=&u=&urw=http://t.csdnimg.cn/4Og4n
1901年-2020年全球气象数据CRU TS介绍、下载与使用教程|降水|栅格|arcgis|插值|ts_网易订阅
还有一些有趣的数据网站:
还有很多其它的数据网站,不过不怎么用到,需要的也可以下载,是由数学建模老哥总结的数据库"数学建模数据库汇总(B 站:数学建模老哥)"。
网盘链接:https://pan.baidu.com/s/1bvpTWrakkUsv5vrq1AMJkg?pwd=2103
提取码:2103
数据篇总结到此,希望能对大家有帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。