爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 几杯清澈

华北雷达组合反射率拼图数据RADA_NCN_DOR_L2_CR-2020xxxxxxxx.zip头文件格式

[复制链接]
发表于 2025-1-21 17:42:42 | 显示全部楼层
捕获.PNG
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2025-1-21 19:32:03 | 显示全部楼层
本帖最后由 edwardli 于 2025-1-21 19:45 编辑

我最开始,就是看到了1700、1500,
结合文件大小,确定了文件头有1100字节,不过这不重要。
重要的是读取文件最后的1700*1500数据,reshape,画出来,这就已经成功了90%了。
即便文件头一个内容也不知道,最起码图可以画出来。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2025-1-21 19:54:18 来自手机 | 显示全部楼层
edwardli 发表于 2025-1-21 19:32
我最开始,就是看到了1700、1500,
结合文件大小,确定了文件头有1100字节,不过这不重要。
重要的是读取 ...

其次,对于这个问题,第二重要的就是经纬度范围
首先找了一张历史华北雷达拼图png,看了看大致范围(30.5-44.6N,105.5-123.4E),结合1700x1500,去找文件头(不论2字节/4字节,整/浮点,甚至有的时候需要垫1个字节)里和上面接近的内容。
找到了经纬度范围、分辨率,也有了数值(偏移量/放大系数),齐活。
剩下的,就是之前的故事了。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2025-1-22 08:43:38 | 显示全部楼层
edwardli 发表于 2025-1-21 19:54
其次,对于这个问题,第二重要的就是经纬度范围
首先找了一张历史华北雷达拼图png,看了看大致范围(30. ...

有实力,有耐心
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2025-1-22 22:19:53 来自手机 | 显示全部楼层
本帖最后由 edwardli 于 2025-1-23 09:50 编辑

雷小Py-037:在经验基础上盲解二进制数据_2025.01.22 https://www.bilibili.com/video/BV1nGfhYGE8Q/?spm_id_from=333.1387.homepage.video_card.click



SWAN_CR_HEADER = [
    ("elses", "16c"),
    ("data_type", "12c"),
    # ("data_name", "38c"),
    ("name", "14c"),
    # ("version", "8c"),
    ("year", "u2"),#42
    ("month", "u2"),#44
    ("day", "u2"),#46
    ("hour", "u2"),#48
    ("minute", "u2"),#50
    ("start_lon", "u4"),#52
    ("start_lat", "u4"),#56
    ("end_lon", "u4"),#60
    ("end_lat", "u4"),#64
    ("unknown1", "u4"),#68
    ("x_number", "u2"),#72
    ("y_number", "u2"),#74
    ("unknown2", "u4"),#76
    ("x_reso", "u4"),#80
    ("y_reso", "u4"),#84
    ('剩下的','1012c')
]
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from metpy.plots import colortables
norm, cmap = colortables.get_with_steps('NWSReflectivity', 1, 5)
SWAN_CR_HEADER = np.dtype(SWAN_CR_HEADER)
# f = prepare_file('data/Radar/Z_OTHE_RADAMCR_20200812020000.bin.bz2')
# f = prepare_file('pics/雷小Py/RADA_NCN_DOR_L2_CR-202006252200.zip')
with open(r'pics\雷小Py\2006252200.dat','rb') as f:
    header = np.frombuffer(f.read(1100), SWAN_CR_HEADER)
    crdata = np.frombuffer(f.read(),'u1').reshape(header['y_number'][0],header['x_number'][0])/2-33

start_lon= header["start_lon"][0]*0.001
start_lat = header["start_lat"][0]*0.001
# end_lon = header["end_lon"][0]*0.001
# end_lat = header["end_lat"][0]*0.001
x_reso = header["x_reso"][0]*0.0001
y_reso = header["y_reso"][0]*0.0001

end_lon = start_lon + x_reso*header['x_number'][0]
end_lat = start_lat + y_reso*header['y_number'][0]
crdata[crdata==-32] = np.nan

lons = np.arange(start_lon,end_lon,x_reso)
lats = np.arange(start_lat,end_lat,y_reso)

# A4纸
fig = plt.figure(dpi=180)
# 坐标系
ax = plt.subplot(111, projection=ccrs.PlateCarree())
plt.pcolormesh(lons, lats, crdata, transform=ccrs.PlateCarree(),norm=norm, cmap=cmap)

from cartopy.io.shapereader import Reader
shpname=r'shp\cn_province.shp'
adm1_shapes=list(Reader(shpname).geometries())
ax.add_geometries(adm1_shapes[:],ccrs.PlateCarree(),edgecolor='k',facecolor='None',linewidth=0.5)  #36:72东三省

ax.coastlines()
plt.show()
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

 楼主| 发表于 2025-1-23 11:05:52 | 显示全部楼层
edwardli 发表于 2025-1-21 19:30
图1:根据帖子数据解析,并简单绘制的图形
图2:华北地区16部雷达基数据,0.5度仰角“拼图”【2020年6 ...

非常感谢!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2025-1-23 15:42:59 | 显示全部楼层
edwardli 发表于 2025-1-22 22:19
雷小Py-037:在经验基础上盲解二进制数据_2025.01.22 https://www.bilibili.com/video/BV1nGfhYGE8Q/?spm_i ...

不错不错,感谢感谢
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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