首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

第三个合图用于表征非洲单体和多单体雷暴的空间分布

后端 23.01KB 19 需要积分: 1
立即下载

资源介绍:

看名称
# -- coding:utf-8 -- from pyhdf.SD import SD, SDC import numpy as np import math def read_shuju(): """这个函数是用来读取数据的函数""" """这是为了读取数据的""" data = SD('C:\\Users\\lvyih\\Desktop\\TRMM_tropical_convection_dataset.hdf', SDC.READ) indexx = duqu_excel() longitude = list(data.select("longitude")[:]) latitude = list(data.select("latitude")[:]) landocean = list(data.select("landocean")[:]) longitude = np.array(list(map(int, longitude))) latitude = np.array(list(map(int, latitude))) landocean = np.array(list(map(int, landocean))) flashcount = data.select('flashcount')[:] flashcount = np.array(list(map(int, flashcount))) maxht40 = data.select("maxht40")[:] maxht40 = np.array(list(map(int, maxht40))) # 筛选数据 index1 = np.where(longitude > -30) index2 = list(np.where(latitude > -20)) index3 = list(np.where(landocean == 1)) index4 = list(np.where(longitude < 60)) index5 = list(np.where(latitude < 20)) # 把没有闪电数据的但是有maxht40的和没有maxht40但有闪电数据的去除 index6 = list(np.where(flashcount != 0)) index7 = list(np.where(maxht40 != 0)) # 两个数组取交集 index = list(set(index1[0]) & set(index2[0]) & set(index3[0]) & set(index4[0]) & set(index5[0]) & set(index6[0]) & set(index7[0])) index = sorted(index) # 把hdf文件中的闪电频数数据提取出来 flashcount = data.select('flashcount')[:] """这里我们可以看到对于一个可迭代的变量索引可以使用一个列表然后就可以直接赋值。""" flashcount = flashcount[index] flashcount = flashcount[indexx] # 把hdf文件中有雷暴的经度的数据弄出来 latitude = data.select("latitude")[:] latitude = latitude[index] latitude = latitude[indexx] # 把hdf文件中有雷暴的纬度的数据弄出来 longitude = data.select("longitude")[:] longitude = longitude[index] longitude = longitude[indexx] # 把hdf文件中总的降水数据提取出来 volrain = data.select('volrain')[:] volrain = volrain[index] volrain = volrain[indexx] # 把hdf文件中的层云降水数据提取出来 rainstrat = data.select('rainstrat')[:] rainstrat = rainstrat[index] rainstrat = rainstrat[indexx] # 把hdf文件中的对流降水数据分离出来 rainconv = data.select('rainconv')[:] rainconv = rainconv[index] rainconv = rainconv[indexx] # 把hdf文件中的观测时间数据提取出来 viewtime = data.select('viewtime')[:] viewtime = viewtime[index] viewtime = viewtime[indexx] # 把hdf文件是否升轨数据提取出来 boost = data.select("boost")[:] boost = boost[index] boost = boost[indexx] # 把hdf文件的最大顶高数据提取出来(这个数据老师说第一个maxht不用操作) maxht = data.select("maxht")[:] maxht = maxht[index] maxht = maxht[indexx] maxht20 = data.select("maxht20")[:] maxht20 = maxht20[index] maxht20 = maxht20[indexx] maxht30 = data .select("maxht30")[:] maxht30 = maxht30[index] maxht30 = maxht30[indexx] maxht40 = data.select("maxht40")[:] maxht40 = maxht40[index] maxht40 = maxht40[indexx] # 这个是云的顶层的亮温,可以通过知晓这个温度的高低来判断云顶的高度,温度越低意味着云越高 minir = data.select("minir")[:] minir = minir[index] minir = minir[indexx] # 这个先不用 npixels_40 = data.select("npixels_40")[:] npixels_40 = npixels_40[index] npixels_40 = npixels_40[indexx] npixels_40 = npixels_size(npixels_40, boost) npixels_40 = np.multiply(npixels_40, 4) npixels_40 = np.divide(npixels_40, math.pi) npixels_40_R = np.sqrt(npixels_40) kk = list(np.where(npixels_40_R)) npixels_20 = data.select("npixels_20")[:] npixels_20 = npixels_20[index] npixels_20 = npixels_20[indexx] npixels_20 = npixels_size(npixels_20, boost) npixels_20 = np.multiply(npixels_20, 4) npixels_20 = np.divide(npixels_20, math.pi) # 这里的npixels_20_R其实就是我们的水平尺度(按照面积想象成圆形然后换算成直径的) npixels_20_R = np.sqrt(npixels_20) npixels_30 = data.select("npixels_30")[:] npixels_30 = npixels_30[index] npixels_30 = npixels_30[indexx] npixels_30 = npixels_size(npixels_30, boost) npixels_30 = np.multiply(npixels_30, 4) npxiels_30 = np.divide(npixels_30, math.pi) npixels_30_R = np.sqrt(npixels_30) # 20,30,40格点数 # n20d = data.select("n20dbz")[:] # n30d = data.select("n30dbz")[:] # n40d = data.select("n40dbz")[:] # n20db = [] # n30db = [] # n40db = [] # max_n(n20d, n20db) # max_n(n30d, n30db) # max_n(n40d, n40db) # n20dbz = np.array(n20db) # n30dbz = np.array(n30db) # n40dbz = np.array(n40db) # 雷暴云最大雷达回波值 # maxd = data.select("maxdbz")[:] # maxdb = [] # for k in maxd: # maxdb.append(max(k)) # maxdbz = np.array(maxdb) # 低层有降水的面积 maxnsrain = data.select("maxnsrain")[:] maxnsrain = maxnsrain[index] maxnsrain = maxnsrain[indexx] # 将所有的rainconv数据每一项除以volrain变成新的数据r数组 r = np.divide(rainconv, volrain) maxdbz20_minus_maxdbz40 = np.subtract(maxht20, maxht40) maxdbz20_minus_maxdbz40_divide_maxdbz40 = np.divide(maxdbz20_minus_maxdbz40, maxht40) maxht_divide_maxdbz20_minus_maxdbz40_divide_maxdbz40 = np.divide(maxht, maxdbz20_minus_maxdbz40_divide_maxdbz40) ellipsoidal_ratio_20 = np.divide(maxdbz20_minus_maxdbz40, npixels_20_R) ellipsoidal_ratio_30 = np.divide(maxdbz20_minus_maxdbz40, npixels_30_R) ellipsoidal_ratio_40 = np.divide(maxdbz20_minus_maxdbz40, npixels_40_R, out=np.zeros_like(npixels_40_R), where=npixels_40_R != 0) # 闪电频数=闪电数/viewtime*60,我们使用每分钟的闪电频数 flashfrequence = np.divide(flashcount * 60, viewtime) return latitude, longitude # n20dbz, n30dbz, n40dbz, maxdbz def max_n(shuju1, shuju2): k = 0 for i in shuju1: if k == 0: shuju2.append(0) k += 1 else: shuju2.append(max(i)) def npixels_size(npixels, boost): boost_former = 4.3 * 4.3 boost_latter = 5 * 5 npixel = list(npixels) pixel = [] boost = list(boost) t = zip(boost, npixel) # 记住以下我们以后要是碰到需要利用两个列表同时遍历的情况,一定要使用zip for i, j in t: if i == 1: mid = j * boost_latter pixel.append(mid) else: mid = j * boost_former pixel.append(mid) return pixel def duqu_excel(): import pandas as pd file_path = r"C:\Users\lvyih\Desktop\duqu_spss.xlsx" df = pd.read_excel(file_path, usecols=[1], names=None) dali = df.values.tolist() result = [] result_result = [] for i in dali: result.append(i[0]) for q in range(0, 138722): if q not in result: result_result.append(q) return result_result

资源文件列表:

africa_storm.zip 大约有16个文件
  1. africa_storm/
  2. africa_storm/all_storm/
  3. africa_storm/all_storm/Africa_distrbution.py 2.48KB
  4. africa_storm/all_storm/shuju_process.py 6.57KB
  5. africa_storm/all_storm/__pycache__/
  6. africa_storm/all_storm/__pycache__/shuju_process.cpython-311.pyc 8.49KB
  7. africa_storm/Multi_storm/
  8. africa_storm/Multi_storm/Africa_distrbution.py 2.5KB
  9. africa_storm/Multi_storm/shuju_process.py 7.26KB
  10. africa_storm/Multi_storm/__pycache__/
  11. africa_storm/Multi_storm/__pycache__/shuju_process.cpython-311.pyc 9.14KB
  12. africa_storm/Single_cell_storm/
  13. africa_storm/Single_cell_storm/Africa_distrbution.py 2.5KB
  14. africa_storm/Single_cell_storm/shuju_process.py 7.14KB
  15. africa_storm/Single_cell_storm/__pycache__/
  16. africa_storm/Single_cell_storm/__pycache__/shuju_process.cpython-311.pyc 8.97KB
0评论
提交 加载更多评论
其他资源 【Unity必备插件】Final IK(0积分下载)
Final IK v2.0:动画中的反向运动学终极解决方案 在3D动画和游戏开发中,角色的动作和姿态是至关重要的元素。为了让角色的动作看起来自然流畅,开发者们通常会使用一种称为反向运动学(Inverse Kinematics,简称IK)的技术。Final IK是一种先进的IK解决方案,它通过精确控制角色的关节和肢体,使得角色的动作更加真实和生动。 什么是IK? 反向运动学(IK)是一种计算方法,用于确定一组关节(通常是骨骼链)的位置和方向,以便使末端效应器(如手或脚)达到特定的目标位置。在动画中,IK允许动画师或开发者控制角色的末端肢体,而自动计算出中间骨骼的位置和旋转,以实现自然的动作。 Final IK的特点 精确控制:Final IK提供了对角色关节的精确控制,使得动画师可以轻松地实现复杂的动作,如行走、跳跃或抓取物体。 灵活性:与传统的IK解决方案相比,Final IK更加灵活,可以适应各种不同的角色模型和动画需求。 性能优化:Final IK在设计时考虑了性能,即使在复杂的场景中也能保持良好的运行速度。 易于集成:Final IK可以轻松集成到现有的动画和游戏开
2024山东选调生第一批职位表.zip
2024山东选调生第一批职位表.zip
vue3的demo练习
vue3的demo练习
win11轻松设置软件win更新关闭win关闭防火墙
某位大佬做的软件,可以关掉win防火墙,可以关掉win更新
苹果CMSV10最新版本泛目录插件1.5.0版本
苹果CMS V10泛目录插件团队承诺为用户提供持续的支持与更新服务。苹果CMS(@maccmscn)无论是在插件使用过程中遇到的问题,还是在系统版本升级后的兼容性问题,团队都会及时提供帮助和解决方案。用户可以通过官方渠道获取最新的更新信息,确保插件始终与系统保持最佳的兼容状态。
数据库课程设计 学生成绩管理系统源代码 学生期末课程设计
数据库课程设计:图书管理系统,采用C#+SQL server进行程序设计,实现了学生、教师和管理员三种身份的登录功能。 适合学习数据库课程的同学用作课设的源码,另外如需课程设计报告文档可以私信我~
和辅因助层至到4层2四珍.zip
和辅因助层至到4层2四珍.zip
和辅因助层至到4层2四珍.zip 和辅因助层至到4层2四珍.zip
好用的.md格式文档查看工具
好用的.md格式文档查看工具