中国国家级气象站站点分布 |
您所在的位置:网站首页 › 全国气象站编号查询 › 中国国家级气象站站点分布 |
一、中国2421个国家级气象观测站点空间分布 我们的数据来源是中科院资源环境科学与数据中心,中国气象要素站点观测逐日数据集中的站点数据,原始文件为https://www.resdc.cn/data.aspx?DATAID=230 下载网站的原始文件,得到一个station-wgs的压缩包 解压之后通过QGIS打开shp文件 就可以看到站点的空间分布情况 打开属性,即可看到站点的数据属性 二、使用python处理上述的shp文件,生成csv和json格式 # -*- coding: utf-8 -*- import csv import json try: from osgeo import gdal from osgeo import ogr from osgeo import osr except ImportError: import gdal import ogr import osr # 读shp文件 def readShp(): # 支持中文路径 gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES") # 支持中文编码 gdal.SetConfigOption("SHAPE_ENCODING", "GBK") # 注册所有的驱动 ogr.RegisterAll() # 打开数据 ds = ogr.Open("./station/stations-geo.shp", 0) if ds is None: return "打开文件失败!" # 获取数据源中的图层个数,shp数据图层只有一个,gdb、dxf会有多个 layer_count = ds.GetLayerCount() print("图层个数 = ", layer_count) # 获取第一个图层 layer = ds.GetLayerByIndex(0) if layer == None: return "获取图层失败!" # 对图层进行初始化 layer.ResetReading() # 输出图层中的要素个数 num = layer.GetFeatureCount(0) print("要素个数 = ", num) print("属性表结构信息:") attrs = [] lydefn = layer.GetLayerDefn() iFieldCount = lydefn.GetFieldCount() for iAttr in range(iFieldCount): oField = lydefn.GetFieldDefn(iAttr) attrs.append(oField.GetNameRef()) print("%s: %s(%d.%d)" % ( oField.GetNameRef(), oField.GetFieldTypeName(oField.GetType()), oField.GetWidth(), oField.GetPrecision())) result_list = [] # 获取要素 for i in range(num): ofeature = layer.GetFeature(i) data = {} for j in attrs: data.setdefault(j, ofeature.GetFieldAsString(j)) for key in data: if key != 'sheng' and key != 'name' and key != 'type' and key != 'memo': data[key] = eval(data[key]) if key == 'NO': data[key] = int(data[key]) elif key == 'stationid': data[key] = int(data[key]) result_list.append(data) ds.Destroy() del ds print(result_list) new_s = sorted(result_list, key=lambda e: e.__getitem__('NO')) f = open('test1.csv', 'w', encoding='utf8', newline='') # 指定newline=‘’参数 writer = csv.DictWriter(f, fieldnames=data.keys()) writer.writeheader() # 将字段写入csv格式文件首行 for line in new_s: writer.writerow(line) with open("test1.json", 'w', encoding="utf-8") as f: json.dump(new_s, f, ensure_ascii=False) return result_list readShp()得到原始文件的csv和json格式 并对经纬度进行逆地理编码得到csv文件 关于评论区对中科院站点数据和国家气象信息中心的日值资料经纬度不同的解释说明: 评论区中有提到:《中国地面气候资料日值数据集(V3.0)》中所显示的站点数据的经纬度坐标有很大出入,以绵阳站(56196)为例:国家气象信息中心是(104.6833333,31.46666667),中科院是(104.73333,31.45) 因为站点可能存在迁移的可能性,所以如果是旧的数据集,可能站点的经纬度较老,中科院的数据是比较新的,其中我查询了资料(不是国家气象信息中心共享的外部资料http://data.cma.cn/data/detail/dataCode/A.0012.0001.html,该数据集只有28个要素) SURF_CHN_MUL_HOR(中国地面逐小时资料)的全要素(118个要素)显示该站点的经纬度是:(104.73,31.45)和中科院的经纬度基本一致,因此大家放心使用即可。 关于数据分享的说明: 我这边有一些历史数据,正在整理中,整理完成后会放到百度网盘中分享给大家,请大家耐心等待一下。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |