- 积分
- 488
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2020-12-24
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 betasy 于 2022-1-25 19:43 编辑
源码:"""
@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格式的,有时需要提取站点数据,这里给出一个简单的示例程序
|
|