Sentinel-6数据下载与读取
Sentinel
alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件,提供实时监控、限流、降级和系统保护功能,适用于微服务治理场景。
项目地址:https://gitcode.com/gh_mirrors/sentine/Sentinel
免费下载资源
·
前言
哨兵6号卫星(Sentinel-6)携带了先进的雷达高度计,用于监测全球和区域的海平面变化和海平面上升速度。它建立在Jason系列、CryoSat-2和哥白尼哨兵3号卫星的基础之上,采用由ESA开发的Poseidon-4双频(Ku波段和C波段)雷达高度计,提高了Jason系列雷达高度计的精度和稳定性的同时继承了CryoSat和哥白尼Sentinel-3的高分辨率合成孔径雷达模式,其设计允许合成孔径雷达和低分辨率模式同时提供数据。
一、下载数据
哨兵6数据并不在欧空局数据中心,而是在欧洲气象卫星中心网站(https://archive.eumetsat.int/)。
注册完成后 进入data center
每个产品有两个测量数据文件可用(标准和简化),每个都有不同数量的变量。标准数据文件包括Ku波段和C波段的1 Hz和20 Hz测量值以及1 Hz和一些20 Hz的地球物理校正值。简化的数据文件仅包含Ku和C波段的1Hz测量值以及1Hz的地球物理校正。
HR与LR的区别:HR数据产品仅包含Ku波段测量值
NTC/NRT/STC:产品于< 60 days/< 3 hours/< 36小时内处理结果
选取时间、研究区地理位置后可以在DETAILS中查看数据的轨道号。
提交订单后,即可查看订单状态并受到邮件通知
数据准备好后,会在邮箱收到下载链接。
二、读取数据(以Python为例)
哨兵6数据的存储方式与普通nc文件相比有一点不同,它将数据分成了20hz和1hz两个group,使用
matlab读取哨兵6比较麻烦,在此以python为例进行读取。
from pathlib import Path
import netCDF4 as nc
import numpy as np
import csv
filepath = Path(r'F:/S6_2022/243')
filelist = list(filepath.glob('*.nc'))
for file in filelist:
file_info = nc.Dataset(file,mode = 'r')
sig0_oceanku = file_info.groups['data_20'].groups['ku'].variables['sig0_ocean'][()]
latku = file_info.groups['data_20'].groups['ku'].variables['latitude'][()]
altku = file_info.groups['data_20'].groups['ku'].variables['altitude'][()]
sig0_oceanku = file_info.groups['data_20'].groups['ku'].variables['sig0_ocean'][()]
lonku = file_info.groups['data_20'].groups['ku'].variables['longitude'][()]
sig0_ocogku = file_info.groups['data_20'].groups['ku'].variables['sig0_ocog'][()]
sig0_ocean_mle3ku = file_info.groups['data_20'].groups['ku'].variables['sig0_ocean_mle3'][()]
latc=file_info.groups['data_20'].groups['c'].variables['latitude'][()]
sig_oceanc=file_info.groups['data_20'].groups['c'].variables['sig0_ocean'][()]
lonc=file_info.groups['data_20'].groups['c'].variables['longitude'][()]
sig0_ocogc=file_info.groups['data_20'].groups['c'].variables['sig0_ocog'][()]
cycle_number = file_info.cycle_number
pass_number = file_info.pass_number
str='--' #哨兵6A中无效值用--表示,在此将-转为NaN
sig0_ocean_ku=np.zeros_like(sig0_oceanku)
for i in range(0,len(sig0_oceanku)):
if np.isnan(sig0_oceanku[i])==False:
sig0_ocean_ku[i]=sig0_oceanku[i]
else:
sig0_ocean_ku[i]=np.nan
sig0_ocog_ku=np.zeros_like(sig0_ocogku)
for i in range(0,len(sig0_ocogku)):
if np.isnan(sig0_ocogku[i])==False:
sig0_ocog_ku[i]=sig0_ocogku[i]
else:
sig0_ocog_ku[i]=np.nan
sig0_mle3_ku=np.zeros_like(sig0_ocean_mle3ku)
for i in range(0,len(sig0_ocean_mle3ku)):
if np.isnan(sig0_ocean_mle3ku[i])==False:
sig0_mle3_ku[i]=sig0_ocean_mle3ku[i]
else:
sig0_mle3_ku[i]=np.nan
sig0_ocean_c=np.zeros_like(sig_oceanc)
for i in range(0,len(sig_oceanc)):
if np.isnan(sig_oceanc[i])==False:
sig0_ocean_c[i]=sig_oceanc[i]
else:
sig0_ocean_c[i]=np.nan
sig0_ocog_c=np.zeros_like(sig0_ocogc)
for i in range(0,len(sig0_ocogc)):
if np.isnan(sig0_ocogc[i])==False:
sig0_ocog_c[i]=sig0_ocogc[i]
else:
sig0_ocog_c[i]=np.nan
csv_file = open(f'F:/S6/S6_{cycle_number}_{pass_number}.csv', 'w', newline='', encoding='gbk') #用周期 轨道号命名
writer = csv.writer(csv_file)
writer.writerow(latku)
writer.writerow(lonku)
writer.writerow(sig0_ocean_ku)
writer.writerow(sig0_ocog_ku)
writer.writerow(sig0_mle3_ku)
writer.writerow(latc)
writer.writerow(lonc)
writer.writerow(sig0_ocean_c)
writer.writerow(sig0_ocog_c)
GitHub 加速计划 / sentine / Sentinel
19
6
下载
alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件,提供实时监控、限流、降级和系统保护功能,适用于微服务治理场景。
最近提交(Master分支:4 个月前 )
195150bc
* fix issue 2485 which occur oom when using async servlet request.
* optimize imports
* 1. fix the same issue in the webmvc-v6x
2. improve based on review comments 3 个月前
b78b09d3
3 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)