| 
 
	积分488贡献 精华在线时间 小时注册时间2020-12-24最后登录1970-1-1 
 | 
 
| 
本帖最后由 betasy 于 2022-1-25 19:43 编辑
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 源码:"""
 @Time : 2022/1/25 17:47
 @Author : dengs
 @File : site_extract.py
 @Software: PyCharm
 @Version: 0.1
 @Description:
 """
 import json
 import numpy as np
 import xarray as xr
 # --------------------------------------------------------
 json_file = r"r.json"
 site_file = r"sites.csv"
 
 jsondata = json.loads(open(json_file).read()) # 读json数据
 slat, slon, count_lat, count_lon, lat_step, lon_step = jsondata.get('startLat'), jsondata.get("startLon"), \
 jsondata.get("latCount"), jsondata.get("lonCount"), jsondata.get("latStep"), jsondata.get("lonStep") # 取有用的参数
 lats = np.array([slat + i * lat_step for i in range(count_lat)]) # 产生所有格点的纬度
 lons = np.array([slon + i * lon_step for i in range(count_lon)]) # 产生所有格点的经度
 dataset = np.array(jsondata.get("DS")) # 读取矩阵数据
 da = xr.DataArray(dataset, coords=[lats, lons], dims=["lat", "lon"]) # 创建xarray,设置经纬度为数据维度
 site_lon, site_lat = 103.870000, 30.750000 # 输入站点经纬度
 sel_lons = lons[np.argmin(np.abs(site_lon - lons))] # 取最近的格点经度
 sel_lat = lats[np.argmin(np.abs(lats - site_lat))] # 取最近的格点纬度
 sel_data = da.sel(lon=sel_lons, lat=sel_lat) # 选择数据
 print(sel_data)
 
 
 [size=13.0667px]<xarray.DataArray ()>array(275.17838)Coordinates:    lat      float64 30.75    lon      float64 103.9[size=13.0667px]
 自天擎接口获得数据常是json格式的,有时需要提取站点数据,这里给出一个简单的示例程序
 
 
 
 | 
 |