2015-06-23 82 views
1

我從NetCDF文件閱讀我的時間步長是否存在某些特定日期:蟒蛇 - 如何檢查在NetCDF文件

​​

現在我想知道一些特定日期(比如,6月23日)是否存在該清單。如果是這樣,我想省略它。 netcdf文件包含任意日期。

我不知道如何在Python中做到這一點。我是python新手,我的python編程經驗最好描述爲https://xkcd.com/1513/,但我沒有時間按照課程,所以任何幫助將不勝感激。

謝謝!

回答

0

好吧,這不是很好的風格,但它可能會得到你想要的。假設你的時間是字符串,你有信心,純字符串比較會爲你工作,你可以做這樣的事情:

timesteps = ncfile.variables['time'] 
dates_to_skip = set(['June 23th', 'May 28th', 'April 1st']) 
filtered_timesteps = filter(lambda t: t not in dates_to_skip, timesteps) 

這樣做的更好的辦法是分析你的時間步長的時間(無論是字符串或數字)並轉換爲datetime.date對象,並與您在代碼中創建的datetime.date對象進行比較。

+0

如果您在解決問題時upvote或接受答案,會很好:) – Bernhard

+0

太棒了!非常感謝您的快速響應,非常感謝!並且這幾乎奏效了x-)在你的幫助下,這有效:dates_to_skip = set([datetime(2010,2,28,12,0)])和在使用num2date變換時間步後:locals()['time_2010'] \t = num2date(timesteps [:],timesteps.units)用於您建議過濾的命令工作。謝謝! – qawsed