参数 | 含义 |
---|---|
amplitude | SSH最高点与有效边界的振幅 |
effective_area | 有效闭合比娜姐的面积m2 |
speed_area | Area enclosed by the speed contour in m^2 |
effective_contour_height | 有效边界的海表高度 |
speed_contour_height | SSH filtered height for speed contour |
effective_contour_latitude | 有效边界的经度 |
effective_contour_longitude | 有效边界为纬度 |
speed_contour_latitude | 纬度 |
speed_contour_longitude | 经度 |
effective_contour_shape_error | 有效边界和气最优拟合圆的误差准则3%~83% |
speed_contour_shape_error | 误差 |
effective_radius | 有效边界的等效半径 |
speed_radius | 半径 |
inner_contour_height | 最内部闭合边界的高度 |
latitude | 最优拟合圆中心的纬度 |
longitude | 最优拟合圆中心的经度 |
latitude_max | 最内部闭合圆的纬度 |
longitude_max | 最内部闭合圆的经度 |
num_contours | Number of contours selected for this eddy |
num_point_e | Number of points for effective contour before resampling |
num_point_s | number of points for speed contour |
data.variables[‘observation_flag’] | Virtual Eddy Position 0:观测涡,1:插值涡 |
observation_number | Eddy temporal index in a trajectory,生命周期中的第几天 |
speed_average | Maximum circum-averaged Speed,Average speed of the contour defining the radius scale “speed_radius” |
time | days since 1950-01-01 00:00:00 |
track | Trajectory identification number |
uavg_profile | Radial Speed Profile, m/s, Speed averaged values from the effective contour inwards to the smallest contour, evenly spaced points |
life | 生命 |
life_one | 生命周期的阶段 |
所有变量:
amplitude
cost_association
effective_area
effective_contour_height
effective_contour_latitude
effective_contour_longitude
effective_contour_shape_error
effective_radius
inner_contour_height
latitude
latitude_max
longitude
longitude_max
num_contours
num_point_e
num_point_s
observation_flag
observation_number
speed_area
speed_average
speed_contour_height
speed_contour_latitude
speed_contour_longitude
speed_contour_shape_error
speed_radius
time
track
uavg_profile
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 22 15:03:39 2022
@author: Administrator
"""
import pickle
import glob
import numpy as np
import pdb
import datetime
import matplotlib.pyplot as plt
#chl=np.zeros((2937,200))
import h5py
import pandas as pd
import pdb
import json
import numpy as np
import glob
import pickle
import calendar,os
import pdb
import scipy.io as sio
from scipy import signal
import copy
from math import atan,pi,sin,cos,tan,acos
from matplotlib.path import Path
import math
import netCDF4
import gc
import os
from scipy import interpolate
file='Z:\\data\\AVISO_eddy_dataset\\META3.2_DT_allsat_Anticyclonic_long_19930101_20210802.nc'
nc_obj=netCDF4.Dataset(file)
core={}
''''涡旋的经纬度,经度0-360'''
core['lat']=nc_obj.variables['latitude'][:] #序列式的纬度
core['lon']=nc_obj.variables['longitude'][:] #序列式
'''涡旋追踪的身份识别代码,按照顺序进行排列'''
core['track']=nc_obj.variables['track'][:] #追踪身份代码,按照顺序来排列的
'''最大环向平均速度最佳拟合圆的半径'''
core['speed_radius']=nc_obj.variables['speed_radius'][:]
'''有效边界的最佳拟合圆的半径'''
core['effective_radius']=nc_obj.variables['effective_radius'][:]
'''时间,days从1950年1月1日开始'''
core['time']=nc_obj.variables['time'][:]
'''SSH极值点与涡旋有效边界间的振幅,单位m'''
core['amplitude']=nc_obj.variables['amplitude'][:]
'''径向速度剖面,单位m/s,从有效边界向最内圈等距点的速度平均值'''
'''每个涡旋对应20个点,0-1 R'''
core['uavg_profile']=nc_obj.variables['uavg_profile'][:]
#cost_association 与下一天涡旋的相似性系数
#num_contours 边界的数量
#observation_flag 涡旋标志 0 观测涡旋 1 插值涡旋
#track 涡旋追踪的身份识别代码
#time 时间 days 1950年1月1日
#observation_number 涡旋从识别开始的第几天 按顺序排列
#amplitude SSH的极值到有效边界的高度差
#uavg_profile 地转流剖面,由有效边界向最内圈延伸的径向剖面
#effective_area 有效边界所包含的面积
#effective_radius 有效边界拟合圆的等效面积半径
#effective_contour_height 有效边界的滤波后高度
#effective_contour_latitude 有效边界纬度
#effective_contour_longitude 有效边界经度
#effective_contour_shape_error 与最佳拟合圆之间的标准误差
#num_point_e 重新采样前有效边界的点数量
#speed_average 最大环流速度的平均值
#speed_area 速度边界的面积
#speed_radius
#speed_contour_height
#speed_contour_latitude
#speed_contour_longitude
#speed_contour_shape_error
#num_point_s 速度边界的有效点数量
#inner_contour_height 最小边界的滤波后高度
#latitude_max 内层边界的纬度
#longitude_max 内层边界的经度
#latitude 最佳拟合圆的纬度
#longitude 最佳拟合圆的经度
'''一下数据量太庞大,无法一次性匹配完成'''
file='Z:\\data\\AVISO_eddy_dataset\\META3.2_DT_allsat_Anticyclonic_long_19930101_20210802.nc'
nc_obj=netCDF4.Dataset(file)
'''主要变量'''
flag=nc_obj.variables['observation_flag'][:].data
time=nc_obj.variables['time'][:].data
track=nc_obj.variables['track'][:].data
observation_number=nc_obj.variables['observation_number'][:].data
'''圆变量'''
circle_lon=nc_obj.variables['latitude'][:].data
circle_lat=nc_obj.variables['longitude'][:].data
'''有效边界变量'''
effective_area=nc_obj.variables['effective_area'][:].data
e_contour_lat=nc_obj.variables['effective_contour_latitude'][:].data
e_contour_lon=nc_obj.variables['effective_contour_longitude'][:].data
amp=nc_obj.variables['amplitude'][:].data
uavg_profile=nc_obj.variables['uavg_profile'][:].data
effective_radius=nc_obj.variables['effective_radius'][:].data
num_point_e=nc_obj.variables['num_point_e'][:].data
'''最大速度边界变量'''
speed_average=nc_obj.variables['speed_average'][:].data
speed_area=nc_obj.variables['speed_area'][:].data
speed_radius=nc_obj.variables['speed_radius'][:].data
speed_contour_height=nc_obj.variables['speed_contour_height'][:].data
s_contour_lat=nc_obj.variables['speed_contour_latitude'][:].data
s_contour_lon=nc_obj.variables['speed_contour_longitude'][:].data
num_point_s=nc_obj.variables['num_point_s'][:].data
'''内层边界变量'''
inner_contour_height=nc_obj.variables['inner_contour_height'][:].data
latitude_max=nc_obj.variables['latitude_max'][:].data
longitude_max=nc_obj.variables['longitude_max'][:].data
print(1)
result=[]
track_origin=track[0]
num=0
while num<len(track):
for i in range(num,len(track)):
one_track=[]
if track[i]==track_origin:
one={}
date=datetime.datetime(1950, 1, 1)+datetime.timedelta(days=time[i])
date=date.strftime('%Y%m%d')
one['flag']=flag[i]
one['date']=date
one['track_num']=track[i]
one['observation_number']=observation_number[i]
one['circle_lon']=circle_lon[i]
one['circle_lat']=circle_lat[i]
one['effective_area']=effective_area[i]
one['effective_contour']=[e_contour_lon[i],e_contour_lat[i]]
one['effective_amplitude']=amp[i]
one['uavg_profile']=uavg_profile[i]
one['effective_contour_point']=num_point_e[i]
one['speed_average']=speed_average[i]
one['speed_area']=speed_area[i]
one['speed_radius']=speed_radius[i]
one['speed_contour_height']=speed_contour_height[i]
one['speed_contour']=[s_contour_lon[i],s_contour_lat[i]]
one['speed_contour_point']=num_point_s[i]
one['inner_contour_height']=inner_contour_height[i]
one['inner_contour_lat']=latitude_max[i]
one['inner_contour_lon']=longitude_max[i]
one_track.append(one)
else:
num=i
result.append(one_track)
break
pdb.set_trace()