请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 312|回复: 0

[源代码] 矩阵数据的站点提取程序

[复制链接]

新浪微博达人勋

发表于 2022-1-25 19:36:57 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

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格式的,有时需要提取站点数据,这里给出一个简单的示例程序


密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表