簡體   English   中英

多個目錄和文件中的Python動畫NetCDF數組用於雷達降雨

[英]Python Animating NetCDF Array in Multiple directories and files for Radar Rainfall

下一部分氣象局:我有一個目錄結構

> `-- 2012/
>     |           |-- 02/
>     |           |   |-- 27/
>     |           |   |-- 28/
>     |           |   `-- 29/ 
>     |           `-- 03/
>     |               |-- 01/
>     |               |-- 02/ 
>     |               |-- 03/
>     |               |-- 04/ 
>     |               `-- 05/

在10分鍾的時間片中包含雷達降雨的netcdf文件,用於8天的暴風雨事件。 我希望能夠為該事件的RADAR循環設置動畫,並生成總累積降雨量的最終圖。

我不知道如何開始? 我需要讀取目錄和文件,並創建一個我想象中的數組? 這些文件都在此處壓縮: https : //dl.dropboxusercontent.com/u/15223371/2012.zip

將非常感謝有關如何啟動代碼的任何指示?

好了,經過一番搜索之后,我的工作很順利....但是無法弄清楚如何動畫化..並創建所有數組的Sum(累加)?

   import os
import sys
import glob
import numpy as np
from scipy.io import netcdf
import pylab as pl
from easygui import *
import fnmatch
import matplotlib.pyplot as plt



print 'START...'
cur_dir= os.getcwd()
top_dir = os.path.dirname(cur_dir)
print cur_dir
print top_dir
print 'Present Directory Open...'
title = "Select Directory to Read Multiple rainfall .nc files"
msg = "This is a test of the diropenbox.\n\nPick the directory that you wish to open."
d = diropenbox(msg, title)
fromdir = d
rootPath = fromdir
pattern = '*.nc'

for root, dirs, files in os.walk(rootPath):
    for filename in fnmatch.filter(files, pattern):
        #print( os.path.join(root, filename))
        print filename
        # Now read NetCDF file and Plot the Radar Rainfall Array
        """
        data = NetCDFFile(filename, netcdf_mode_r)
        print 'VARIABLES:'
        print data.variables        
        """

        data = netcdf.NetCDFFile(os.path.join(root, filename), 'r')
        #print 'VARIABLES:'
        #print data.variables
        try:
            precip = data.variables['precipitation'].data
            x = data.variables['x_loc'].data
            y = data.variables['y_loc'].data
        except:
            precip = data.variables['precip'].data
            x = data.variables['x_loc'].data
            y = data.variables['y_loc'].data
        #raw_input('hold..')
        #print x
        plt.title('RADAR RAINFALL'+filename, size=20)
        plt.imshow(precip, origin='lower', interpolation='bicubic',extent=(x.min(), x.max(), y.min(), y.max()))
        plt.colorbar()
        plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM