satpy 处理卫星 FY4A 数据
读取数据并画图
import os
import glob
from datetime import datetime, timedelta
from satpy.scene import Scene
from pyresample import get_area_def
import warnings warnings.filterwarnings('ignore') def fileNameSplit(fileNs):
fSplit = []
for fpn in fileNs:
fp = os.path.dirname(fpn)
fn = os.path.basename(fpn).split('_P_')[-1]
nfpn = os.path.join(fp, fn)
if not os.path.exists(nfpn):
os.rename(fpn, nfpn)
fSplit.append(nfpn)
return fSplit def time_format(info, format="%Y%m%d%H%M%S", format2="%Y%m%d%H%M00"):
dt = datetime.strptime(info, format)
strdt = dt + timedelta(hours=8)
return datetime.strftime(strdt, format2) def get_fy4a(file_paths, channel_list):
fileTime = time_format(os.path.basename(file_paths[0]).split('_')[-3])
# 创建scene对象
scn = Scene(file_paths, reader='agri_l1')
# 查看可使用的通道
if 'C03' in channel_list:
print(scn.available_dataset_names())
if 'true_color' in channel_list:
# 查看可用的合成选项
print(scn.available_composite_names())
# 读取指定通道数据
scn.load(channel_list)
# 打印加载通道后 xarray.Dataset 的数据集
# print(scn) """
>python coord2area_def.py china merc 5 54 60 139 3
### +proj=merc +lat_0=29.5 +lon_0=99.5 +ellps=WGS84 china:
description: china
projection:
proj: merc
ellps: WGS84
lat_0: 29.5
lon_0: 99.5
shape:
height: 2194
width: 2931
area_extent:
lower_left_xy: [-4397119.886334, 553583.846816]
upper_right_xy: [4397119.886334, 7135562.567523]
"""
# 画自定义区域图片
area_id = 'china'
area_name = "myarea"
proj_id = 'china_99.5_29.5'
proj4_args = '+proj=merc +lat_0=29.5 +lon_0=99.5 +ellps=WGS84'
height = 2194
width = 2931
area_extent = [-4397119.886334, 553583.846816, 4397119.886334, 7135562.567523]
# 定义地图投影和区域,然后将数据投影到该区域上
areadef = get_area_def(area_id, area_name, proj_id, proj4_args, width, height, area_extent)
china_scene = scn.resample(areadef) channel_ele = {'C03': 'vis', 'C09': 'vap', 'C12': 'ir', 'true_color': 'thr'}
for cele in channel_list:
pic_dir = r'./'
pic_name = f'fy4a_{channel_ele[cele]}_{fileTime}.png'
pic_path = os.path.join(pic_dir, pic_name)
if not os.path.exists(pic_path):
print(f'生成图片 {pic_name}')
# 保存图片
china_scene.save_dataset(cele, filename=pic_path) if __name__ == '__main__':
t1 = datetime.now() grayFilePathList = ['./FY4A-_AGRI--_N_REGC_1047E_L1-_FDI-_MULT_NOM_20211020022336_20211020022753_4000M_V0001.HDF',
'./FY4A-_AGRI--_N_REGC_1047E_L1-_GEO-_MULT_NOM_20211020022336_20211020022753_4000M_V0001.HDF']
print(grayFilePathList)
channelList = ['C03', 'C09', 'C12']
get_fy4a(grayFilePathList[:1], channelList)
t2 = datetime.now()
print(t2 - t1)
print('------')
thrFilePathList = ['./FY4A-_AGRI--_N_REGC_1047E_L1-_FDI-_MULT_NOM_20211020022336_20211020022753_4000M_V0001.HDF',
'./FY4A-_AGRI--_N_REGC_1047E_L1-_GEO-_MULT_NOM_20211020022336_20211020022753_4000M_V0001.HDF'] print(thrFilePathList)
channelList1 = ['true_color']
get_fy4a(thrFilePathList, channelList1)
t3 = datetime.now()
print(t3 - t2)reader='agri_l1'
版本<=0.36.0 'agri_l1' >=0.37.0 'agri_fy4a_l1' 其他请看网址
https://satpy.readthedocs.io/en/stable/index.html#reader-table
HTTPSConnectionPool(host='zenodo.org', port=443): Max retries exceeded with url: /record/1288441/files/pyspectral_atm_correction_luts_no_aerosol.tgz
# 原因下载依赖文件失败
# 手动下载地址https://zenodo.org/record/3824535/files/pyspectral_rsr_data.tgz
https://zenodo.org/record/1288441/files/pyspectral_atm_correction_luts_no_aerosol.tgzwin
pyspectral_rsr_data.tgz 解压放到下面地址
C:\Users\admin\AppData\Local\pytroll\pyspectral pyspectral_atm_correction_luts_no_aerosol.tgz 解压放到下面地址
C:\Users\admin\AppData\Local\pytroll\pyspectral\rayleigh_only linux
pyspectral_rsr_data.tgz 解压放到下面地址
/root/.local/share/pyspectral pyspectral_atm_correction_luts_no_aerosol.tgz 解压放到下面地址
/root/.local/share/pyspectral/rayleigh_onlyDon't know how to open the following files: {'./FY4A.......HDF'}
# 按我猜测,应该是satpy 和其依赖包版本的问题
h5py==3.7.0
numpy==1.21.6
satpy==0.36.0
pyresample==1.22.0
scikit-image==0.19.3
pyspectral==0.12.0参考地址
官网:https://satpy.readthedocs.io/en/stable/readers.html#available-readers
博客:https://cloud.tencent.com/developer/article/1584969牛人:https://github.com/aiwei169/FY4A/blob/main/codes/fy4a.py
satpy 处理卫星 FY4A 数据的更多相关文章
- MeteoInfo-Java解析与绘图教程(八)_java解析卫星FY-4A一级产品文件(HDF举例)
MeteoInfo-Java解析与绘图教程(八)_java解析卫星一级产品文件(HDF举例) 最近解析卫星数据遇到了一级产品,它的解析方式与之前文章说的有些不同,特此补充一下 卫星的一级产品,里面是没 ...
- 使用GDAL工具对FY3系列卫星数据进行校正
本文档主要对如何使用GDAL提供的工具对FY3系列卫星数据进行校正处理.FY3系列卫星提供的数据一般是以HDF5格式下发,一个典型的FY3A和FY3B的数据文件名如下: FY3A_MERSI_GBAL ...
- 利用TLE数据确定卫星轨道(1)-卫星轨道和TLE
1.卫星轨道 太空中卫星和天体在各种引力的作用下都在一定的轨道中周期转动着,但实际的轨道是很复杂的,一般的项目也达不到那么精确的需求(其实精确的卫星参数数据也不可能随便公开的),所以采用一阶近似的开普 ...
- PIE SDK打开静止卫星数据
1. 功能简介 静止卫星是位于地球赤道上空约3.58万km处,与地面始终保持相对静止的卫星,静止卫星的特点是覆盖区域广,具有很强的机动灵活性,能够对特定区域进行分钟级高重复观测,可快速监测灾害目标的动 ...
- 使用Geolocation校正GDAL不支持的数据
对于低分数据来说,常用的校正方式就是给定数据的经纬度查找表来进行校正.在GDAL中,这种校正方式叫Geolocation array.常用的数据有国外的MODIS数据,国内的如风云系列(FY)和海洋系 ...
- Cesium专栏-卫星轨迹
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- 全球DEM高程数据下载
本文主要介绍如何使用“迈高图-地图数据下载器”(以下简称:迈高图)下载全球DEM高程数据,任意下载范围自动拼接.裁剪.DEM高程数据支持下载导出为:GeoTIFF.XYZ.南方CASS等常用数据格式. ...
- MeteoInfoLab脚本示例:OMI Swath HDF数据
这个例子读取OMI卫星Swath数据中的CloudFaction变量并绘图.脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'OMI-Aura_L ...
- 蒸腾量与蒸散量(ET)数据、潜在蒸散量、实际蒸散量数据、气温数据、降雨量数据
数据下载链接:数据下载链接 引言 多种卫星遥感数据反演地表蒸腾与蒸散率(ET)产品是地理遥感生态网推出的生态环境类数据产品之一,产品包括2000-2009年三个波段RGB数据,值域0-252之 ...
- 高精度10m/30米NPP净初级生产力分布数据
数据下载链接:百度云下载链接 引言 第一性生产力是绿色植物呼吸后所剩下的单位面积单位时间内所固定的能量或所生产的有机物质,即是总第一性生产量减去植物呼吸作用所剩下的能量或有机物质.多种卫星遥感数据反 ...
随机推荐
- 云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Spark Str ...
- 使用JsonTextReader提高Json.NET反序列化的性能
一.碰到的问题 在服务器的文件系统上有一个业务生成的BigTable.json文件,其可能包含的JSON字符串很大,同时里边的集合会包含很多的记录:我们使用以下的代码来反序列化,虽然使用了异步的Rea ...
- Art of Illusion 一款**的开源 3D 建模和渲染软件
原文地址:https://www.mvrlink.com/artofillusion/ Art of Illusion 是一个免费的开源 3D 建模和渲染工作室.它的许多功能可与商业程序中的功能相媲美 ...
- 打印出来的数据{ob: observer}、vue 中 [__ob__: Observer]问题
问题效果: 理想效果: 解决方案:JSON.parse(JSON.stringify( ob )) 首先我们要把这个数据获取原始数据 JSON.stringify([data]) 变成字符串 然后 ...
- js循环判断创建新对象放数组中
原效果 之后效果: <!doctype html> <html lang="en"> <head> <meta charset=" ...
- docker下netcore内存dump
一般开发阶段可以通过visualstudio来检查程序的内存 .cup等的优化问题.vs下调试=>性能探查器,这里面大有千秋. 但是好多内存问题是经过时间积累下来才暴露出来的,在生产环境中不做不 ...
- C#的闭包捕获变量与英语中Nice to meet you的联系
看标题有种"意大利面与42号混凝土"放在一起说的感觉,实际上,就是. 闭包捕获变量 我们都知道在C#里,闭包捕获的是变量,而不是变量值本身 每个Task在运行的时候,发现i的值是3 ...
- java 转发重定向
首先我们要知道: (1)request.getRequestDispatcher()是请求转发,前后页面共享一个request ; 这个是在服务端运行的,对浏览器来说是透明的.(2)response. ...
- vue项目引用vue-pdf打包多出worker.js文件
问题描述:项目要用到pdf预览功能,因为是vue项目就是直接导入了vue-pdf组件,但是在进行打包的时候在dist文件夹下面多个worker.js文件,导致项目部署后预览pdf直接报了404 方案一 ...
- Win10 笔记本禁用/启用自带键盘
文章来源:华硕笔记本怎么禁用自带键盘_虽千万里,吾往矣!的博客-CSDN博客_华硕笔记本怎么禁用自带键盘 在小娜搜索栏中输入cmd,找到命令提示符(cmd),并且右键以管理员身份运行. 在弹出的窗口中 ...