轻松下载和绘制Nexrad天气雷达反射率数据
NEXRAD-quickplot的Python项目详细描述
Nexrad快速绘图
简单的python下载和绘图nexrad n0q综合反射率。 使用北美的rgb高分辨率png图像。
使用pytest
、flake8
和mypy
类型检查进行测试。
安装
python -m pip install -e .
用法
rgb数据缩放:nexrad n0q基本反射率贴图。
- 黑色:无数据
- -32 dBz..90 dBz
- 0.5 dBz增量
这些数据是降低保真度的rgb图像。
我们用xarray.DataArray
逐幅绘制。
对于高保真的科学数据,需要较低级别的数据——如果有兴趣,请与我们联系。
importnexrad_quickplotasnqdat=nq.load('~/data/2015-01-19/nexrad/nexrad2015-01-19T01:15:00.png')>>>dat<xarray.DataArray(lat:540,lon:1220,color:3)>array([[[255,255,255],[255,255,255],...,[255,255,255],[255,255,255]]],dtype=uint8)Coordinates:*lat(lat)float6423.023.0523.123.1523.223.2523.323.3523.4...*lon(lon)float64-126.0-125.9-125.9-125.8-125.8-125.7-125.7...*color(color)'R''G''B'Attributes:filename:~/data/nexrad2015-01-19T01:15:00.pngwldfn:Nonetime:2015-01-1901:15:00
.lat
和.lon
分别是大地纬度和经度的矢量,根据图像对应的.wld
文件计算。
下载nexrad数据
得到 NEXRAD reflectivity data 并行下载:
download-nexrad start stop outdir
示例:
从2018-01-01到2018-01-02下载到~/data/nexrad
:
download-nexrad 2018-01-01T00 2018-01-03T00 ~/data/nexrad
绘制nexrad反射率数据
Nexrad QuickPlot绘图通过 Cartopy, 它是 deprecated Basemap
- 打印目录中的所有数据:
plot-nexrad ~/data/nexrad/
- 打印特定文件(如果指定了多个文件,则显示子批):
plot-nexrad ~/data/nexrad/2018-01-01T12:35:00.png
- 通过文件全局匹配打印:
plot-nexrad ~/data/nexrad/ -pat 2018-01-01T12*.png
- Keogram(指定纬度或经度和值):
plot-nexrad ~/data/2018-01-01/nexrad/ -keo lat 40
注释
坐标
epsg:4326坐标(wgs84)在.wld
文件中,通常是
对于数据的宽时间跨度也是如此。这个
.wld format
就像:
0.005 (size of pixel in x direction)
0.0 (rotation of row) (Typically zero)
0.0 (rotation of column) (Typically zero)
-0.005 (size of pixel in y direction)
-126.0 (x coordinate of centre of upper left pixel in map units--here it's WGS84 longitude)
50.0 (y coordinate of centre of upper left pixel in map units--here it's WGS84 latitude)
质量图像缩小
对于初始分析,原始nexrad图像大小12200x 5400像素可能太高,无法在合理的时间内完成。 我选择缩小10倍,这需要很长时间,但这是一个一次性的过程。
mkdir orig cp *.png orig nice mogrify -scale 10% "*.png"
如果您觉得速度太慢有问题,请尝试:
MAGICK_TEMPORARY_PATH=/run/shm nice mogrify -scale 10% "*.png"